• LInux基础命令


    一、基础命令

    内部命令: 由shell自带的,而且通过某些命令形式提供

      help 内部命令列表

      enable cmd 启用内部命令

      enable -n cmd 禁用内部命令

      enable -n  查看所有禁用的内部命令

    外部命令:在文件系统路径下有对应的可执行程序文件

      查看路径: which cmd | whereis cmd

    区别指定的命令是内部或外部命令

      type cmd

    hash  查看命令缓存表

    alias 起别名

      alias cdnet='cd /etc/sysconfig/network-script'

    存别名的文件”

      用户家目录下.bashrc  仅当前用户生效

      /etc/bahsrc  对所有用户生效

    命令执行过程

      1. 别名

      2. 内部

      3. 外部命令hash表

      4. 外部命令 $PATH

    命令格式

    command [option] [arguments]

      短选项: -c 例如: -l, -h

      长格式:--word 例如: --all

    多条命令在一行用分号隔开

    日期与时间

    Linux的两种时钟

      系统时间:由Linux内核通过CPU的工作频率进行的

      硬件时间:主板

    相关命令

      date 显示和设置系统时间

        date + %s

        date -d  @

      hwclock, clock: 显示硬件时间

        clock -s  系统同步硬件时间

        clock -w 硬件同步系统时间

    获取帮助

      whatis  cmd   查看某个命令的简要说明

        mandb 生成whatis数据库, 一般会自己生成

      

    内部命令

      help command 或 man bash

    外部命令

      command --help 或 command -h

    whoami

    who 

    w  显示当前谁在登录,编辑哪个文件

    screen 在一个终端上虚拟出一个终端来

      

    echo: 显示字符

      

       

     调颜色:  echo -e ['e[32m OK e[0m]'

    命令行扩展、被括起来的集合

      命令扩展: $()或``  把一个命令的输出打印给另一个变量的参数

      echo "This system's name is $(hostname)"

      括号扩展: {} 打印重复字符串的简化形式

      echo {a..z}  打印出a~z

      单引号:把特殊符号挡着普通字符

      双引号:解析特殊符号的含义,不解析命令

      反撇号:把执行的结果,由另一个命令来引用

    tab 自动补全

    history 查看历史命令

       -c 清除历史  

       -d offset  清除指定行历史

      在/etc/profile 里面该历史记录条数

      

      一般会保存在用户家目录下.bash_history

      

       

       

      

     屏幕快捷键

      

      

    二、 文件系统和文件管理命令 

    特殊目录: 这两个目录不占磁盘空间

      sys: 映射硬件设备

      proc: 进程相关

    文件后缀颜色定义文件:/etc/DIR_COLORS

    lsblk:  查看磁盘列表

    pwd: 查看当前目录

      -P 查看真实路径

    cd: 切换文件夹

      cd -  回到刚才切换过来的目录

      cd ~ 到家目录

    basename: 取出文件,不要文件夹

    dirname: 和上面相反

    ls: 列出列表

      -R 递归跌出

      -l 查看属性

      -d 列出文件夹本身

      --time=atime   查看文件读时间  并不是所有的场景都会记录

      --time=ctime  文件属性更改时间

    l. 列出当前所有隐藏的文件夹

    stat: 查看文件元数据  

    文件通配符

      *  匹配零个或多个字符 (不包含隐藏文件)

      ?匹配任意一个字符

      ~ 当前家目录

      ~- 前一个文件夹

      [0-5] 表示一个范围里面取一个,大小写敏感

      [^0-5] 排除中括号里面的内容

      [a-c]  a A b B c

      [:lower:] 小写a-z

      [:upper:] 大写

    touch: 创建文件

      touch `date -d '-d day' +%F`.log   创建昨天时间命名的文件

    xxd: 查看文件16进制

    hexdump: 查看二进制文件

    cp: 拷贝

      -p 保留原权限

      -a 保留最全的属性

      -r  复制目录

      -i 覆盖前提示

      -n 不覆盖

      -d 只复制链接名 不复制文件

      -v 拷贝过程

      -f 强制

      -u 复制源比目标更新文件,或目标不存在的文件

      -b 目标存在,覆盖前先备份

      --backup=numberd 覆盖前备份,加数字命名

      常见组合 -av

    mv 移动和重命名

      -i 交互

      -f 

      -b 目标存在,覆盖前先备份

    rm 删除

      -r 递归

      -f 强制喊出

      -i 交互

    mkdir 创建文件夹

      -p 如果上级不存在,创建上级

      -v 查看创建过程

    tree 显示目录树

      -d 只显示目录

      -L 指定显示的层级数目

      -P 只显示由pattern匹配到的路径

    rmdir 删除空文件夹

    rename 批量改名

      例子: rename .log .log.bak * 

    释放磁盘空间的正确方法

    > filename

    rm -f filename

    索引节点

    ls -i 查看文件节点

    df -i 查看磁盘每个挂载点能创建多少个文件

    inode (index node)表中包含文件系统

    一个节点是

    ln 创建硬连接

      特性: (同一个文件多个名称)删除源文件,链接文件还在,平级关系,不能跨设备创建,不能针对文件夹创建

    ln -s 创建软连接

      特性: 删除软连接时不要加斜线

    file: 判断一个文件的格式

    三、文本编辑工具vim

    文本编辑种类

      行编辑器: sed

      全屏编辑器: nano, vi

    vim的用法:

      vim +n filename   进入到指定的行

      -d file1 file2   文件做比较

      -b file  二进制方式打开文件

      -m 只读打开文件

    vim的三种模式

      命令模式:默认模式,移动光标,剪切/粘贴文本

        ZZ

        ZQ

        字符间跳转:h左 l右  j下  k上

        w 跳到下一个单词词首

        e 跳到上一个单词词首

        当前页跳转: H 页首  M 页中间行  L 页底

        行首行尾跳转:

          ^ 跳转到行首的第一个非空白字符

          0 跳转至行首

          $ 跳转至行尾

        行间移动 

          #G 跳转到指定的行

          G 最后一行

          gg 第一行

        字符编辑

          x 删除光标处的字符

          #x 删除光标所在处起始的#个字符

          xp 交换光标所在处的字符及其后面字符的位置

          ~ 交换大小写

          J 删除当前行后的换行符

        替换命令

          r  替换光标所在处的字符

          R 切换成REPLACE模式

        删除命令:

          d 删除命令,可结合光标 跳转字符,实现范围删除

          d$ 删除到行尾

          d^ 删除到非空行首

          d0 删除到行首

        dd 删除光标所在行

        yy 复制

        p 粘贴

        搜索

          /  n   N

          ?

        撤销

          u  撤销最近的更改

          #u 撤销之前多次更改

          U 撤销光标落在这行后所有此行的更改

          

      插入模式:修改文本,i I o O a A

      扩展命令: 保存 退出 

        q 退出

        q! 强制退出

        wq 保存退出

        x 退出保存

        !临时调用linux命令

        r!command  把linux命令执行结果放到当前文件

        替换

        

         

    Esc键 退出当前模式

    四、标准输入输出

    程序: 指令 + 数据

      读入数据: Input

      输出数据:Output

    pidof command   查看执行程序分配的id号

      标准输入的方法

      < 

      tr  转换和删除字符  

       

      

      cat 也有单行重定向的功能

        cat > filename

        多行重定向生成新文件

        cat << EOF

        ....

        EOF

      管道符 |  只能执行标准输出的结果

        2>&1 |   解决错误输出

      tee 标准输出在屏幕上显示,也可以做重定向

        hostname | tee tee.txt

        -a 追加

      seq  

    五、用户和组管理

      资源分配: 认证 授权 审计

    用户user

      令牌token,identity

      Linux用户: Username/UID

      管理员: root, 0

      普通用户: 1-60000自动分配

        系统用户 1-499,500-999

        登录用户 500+

      组group

      

     安全上下文

    配置文件

     

    opensssl 生成 随机口令

    openssl rand -base64 9

    修改用户口令信息

    chage 用户名  

    getent shawon 用户名   过滤出shadown里面的某一个用户

    vipw

    vigr

    pwck  检查passwd文件是否争取

    grpck 检查group 是否正确

    组的操作

    groupadd 

    groupmod

    groupdel

    用户操作

    useradd

      -u  指定uid

      -o 忽略id唯一  

      -r 系统账号  不会创建家目录 

      -s 指定shell类型

      -g 指定组

      -G 指定附加组

      -N 不创建和自己同名的组

      -d 指定家目录

      -M 

      -m 

      -c

      创建用户时使用的文件/etc/default/useradd   /etc/skel/

      /etc/login.defs 定义口令的信息

    usermod

      /etc/passwd  一个叹号代表锁定

      -G 配合-a 用

      -L 锁定用户

      -U 解锁

      -e 指定有效期

      -f 设置宽限期

      

    userdel

      -r 删除时连加目录和邮箱也删除

    批量创建用户

      准备一个和/etc/password相同格式的文件

      newusers  文件

      chpasswd 改口令

        用户名:密码

        也可以准备用文件存放数据根式为 用户名:密码

        执行命令:cat 文件 | chpasswd

    id命令

      -u 显示UID

      -g 显示GID

      -G 显示用户所属的组的ID

      -n 显示名称,先要配合前面三个使用

    su 切换用户

      -  带家目录

    sudo -i  提权

    passwd

      -d 删除指定用户密码

      -l 锁定指定用户

      -u 解锁指定用户

      -e 强制次登录修改密码

      -f 强制操作

      n 指定最短使用期限

      -x 最大使用期限

      -w 提前多少天使用

    echo 密码 | passwd --stdin 用户 &> /dev/null

    groupmembers  管理组相关的

    chown 修改所有者

    chmod 修改权限

    chgrp  修改组相关

    目录

    读权限: 可以列出文件名

    执行:可以进出目录,可以访问目录的文件内容

    写:决定了能不能创建新文件 

    特殊权限

    suid 作用域可执行的二进制的程序,功能:用户执行此程序时,将继承此程序的所有者权限

    sgid 作用域可执行的二进制的程序,功能:用户执行此程序,将继承此程序的所有属组权限

       作用在目录: 将来新建的文件将自动继承此目录的所属组

    sticky 作用域目录,功能: 只能删除自己的文件

    设定文件特定属性

    chattr +i 不能删除,改名,更改

      -i  取消权限

      -a 可以用echo >> 追加

    lsattr 查看权限

    umask权限

    功能:将777|666中对应权限去掉,得出默认权限

    默认权限

      目录: 777 - umask

         文件: 666 -umask  如果有奇数+1 偶数保持不变

    FACL 访问控制列表

      除了文件的所有者 所属组 其它,还可以设置其它权限

      setfacl -m -u:用户:权限  文件   给用户设置acl

      setfacl -m -g:用户:权限  文件    给组设置acl

      setfacl -x -g:用户 文件    查看权限

      setfacl -R -b dir   删除所有acl权限    

      getfacl 文件    查看权限

    六、正则表达式

    匹配文本中的内容

    抽取文本的工具

      文本内容:cat, more, less

      文件截取:head, tail

      按列抽取:cut

      排序和统计: sort, wc

      按关键字抽取:grep

    cat的常见选项

      -E 显示回车换行

      -A 显示所有的符号

      -V 显示

      -n 加行号

      -b 非空行

      -s 压缩多个空行

    tac 倒着显示

    nl 跟cat -n一个效果

    rev 同一行倒着显示

    more 允许分页显示

      -d 显示翻页信息

    less 分页处理

    head 

      -c 指定获取多少字节

      -n 指定获取多少行

    tail  默认后十行

      -c  取几个字符

      -f 动态显示新追加的内容

      例如:tr -dc [:alnum:] < /dev/urandom | head -c 12

      查看被跟踪的文件:ls /proc/`pidof tailf`/fd -l

    cut 对文本的特定列抽取

      cut -d: -f1,3 /etc/passwd

      -d  指定分隔符

      -f 指定要抽取的列

      -c 指定字符数量

      --output-delimiter=分隔符

        指定输出分隔符

        cut -d: -f1,3-5 --output-delimiter=" " /etc/passwd

      ifconfig eth0 | head -n 2 | tail -n 1 | tr -s " " | cut -d" " -f3

      

    paste 横向合并文件

      -d 指定合并符号

      -s 把原来的文件放在一行然后再合并

    wc 文本数据统计

      -l  统计行  

      -w 统计单词

      -c  

      -L

      -m

    sort 文本排序

    把整理过的文本显示stdout,不改变原始文件

      sort [options] file(s)

      r 执行反方向(由上至下)整理

      -R 随机排序

      -n 执行按数组大小整理

      -f 选项忽略

      -u 删除输出中的重复行

      -t c 选项使用c做为字段界定符

      -k X 选项按照使用c字符分割

    uniq 从舒服中删除前后相接的重复的行

      uniq [option] [file]

      -c 显示每行重复出现的次数

      -d 仅显示重复过的行

      -u 显示不重复的

    diff 比较两个文件

    patch 

        

    grep: 文本过滤

     命令选项

      --color=auto: 对匹配到的文本着色显示

      -m # 匹配#次后停止

      -v 取反

      -i 忽略大小写

      -n 显示匹配的行号

      -c 统计匹配的行数

      -o 仅显示匹配的字符串

      -q 静默默认,不输出任何 信息

      -A # after 后多少行

      -B # before 前#行

      -C # content, 前后各#行

      -e 实现多个选项之间的逻辑or关系

        grep -e 小e表示或的关系

      -w 单词

      -E 表示用正则表达试

      -F 表示用普通匹配模式

      -f 指文件,把搜索的关键字放在文件里面进行过滤

    正则表达式

      元字符分类:字符匹配、匹配次数、位置锚定、分组

      man 7 regex

      字符匹配

        * 前面的字符出现任意次

        . 匹配任意单个字符

        [] 匹配指定范围外的任意单个字符

        [^ ] 匹配指定范围外的任意单个字符

        [:alnum:] 字母和数字

        [:alpha:] 代表任何英文大小写字符

        [:lower:] 小写字母 [:upper:] 大写字母

        [:blank:] 空白字符

        [:space:] 空白字符和制表符

        [:cntrl:] 不可打印的控制符

        [:digit:] 十进制数字

        [:graph:] 可打印非空白字符

        [:print:] 可打印字符

          [:punct:] 表达符号

      匹配次数

        

       位置锚定:定位出现的位置

        

       

      分组:将一个或多个字符捆绑在一起,当作一个整体

        

    egrep扩展正则表达式

      egrep = grep -E

      egrep [OPTION] PATTERN FILE

      扩展正则表达式的元字符

      字符匹配

        . 任意单个字符

        [] 规定范围内的字符

        [^] 不在指定范围的字符

      匹配次数

        

       位置锚定

        ^ 行首

        $ 行尾

        <, 语首

        >, 语尾

      分组

        ()

        向后引用:1, 2

      或者

        a|b

        C|cat

        (C|c)at

     

  • 相关阅读:
    python鸭子类型
    chrome Network 过滤和高级过滤
    代理服务器支持https(转)
    解决fiddler不能抓取firefox浏览器包的问题(转)
    Fiddler抓包8-打断点(bpu)(转)
    Git diff (---和+++具体解释)(转)
    Xposed模块编写
    Android 渗透测试学习手册(八)ARM 利用
    Android 渗透测试学习手册(七)不太知名的 Android 漏洞
    Android 渗透测试学习手册(六)玩转 SQLite
  • 原文地址:https://www.cnblogs.com/guniang/p/13406835.html
Copyright © 2020-2023  润新知