美文网首页
Linux常用命令总结

Linux常用命令总结

作者: Vikezhu | 来源:发表于2020-03-04 02:18 被阅读0次

    命令使用求助[1]

    命令名 --help

    查看命令的使用方法。
    如:date --help

    管道操作[2]

    -|

    管道,配合其他命令使用。将上一条命令的输出作为下一条命令的输入。
    如:ps -ef | grep java

    信息分析处理[3]

    #awk  #sed  #grep  #wc  #echo  #cut  #sort

    • awk:文本分析工具。awk 会把每行进行一个拆分,用相应的命令对拆分出来的“段”进行处理。
    1. 行工作模式,读入文件的每一行,会把一行的内容,存到$0里
    2. 使用内置的变量FS(段的分隔符,默认用的是空白字符),分割这一行,把分割出来的每个段存到相应的变量$(1-100)
    3. 输出的时候按照内置变量OFS(out FS),输出
    4. 读入下一行继续操作

    语法:awk ‘匹配模式+行为’ filename
    示例:
    provins=($(awk '{print $2}' provinsInfo.txt)) 将文本provinsInfo.txt中每行按空格分隔后的第2个(从1开始)。字符串放入数组provins中。
    echo "String:number" | awk -F':' ‘{print $2}’ 将字符串"String:number"按‘:’进行分隔,并取第2部分。

    • sed:文本处理工具,配合不同的参数执行删除、修改、获取等操作。

    语法:sed -参数 '行为'
    示例:
    sed -i ‘/linux/d’ log.txt 直接在log.txt文件中删除包含linux的行
    sed ‘$d’ log.txt 删除log.txt文件的最后一行
    sed -n ‘3p’ log.txt 打印log.txt文件中的第3行

    • grep:文本的条件筛选工具
      语法:cat filename | grep '筛选条件'
      示例:
      cat xferlog | grep ‘20170915’ 筛选出文件xferlog中包含字符‘20170915’的记录(行)。
      grep -v 筛选出不包含筛选条件的记录(行)。
      grep -c 输出匹配行的条数
      grep -n 输出匹配行所在的行号
      cat xferlog | egrep ‘20170915|20170916’ 筛选出文件xferlog中包含字符‘20170915’或‘20170916’的记录(行)。

    • wc:文本信息统计工具
      语法:wc filename
          -l:列出文本行数
          -w:列出文本字数(英文单字)
          -m:列出字符数
      示例:
      wc -l config.txt 显示config文件的行数。(其他写法:grep -n “” 文件名)
      wc config.txt 显示结果为:n1 n2 n3 config.txt  n1为文本行数,n2为文本字数,n3为文本字符数

    • echo:文本打印或控制台输出

    语法: echo XXX
    示例:
    echo “${username}=vike” 在控制台打印。
    echo -n "first line" 不打印换行符,后续内容将与“first line”同行显示

    • cut:按条件截取字符串

    语法:cat filename | cut -b n-m 截取文件的第n-m行字符
       echo String | cut -d '分隔符' n 根据自定义分隔符截取第n段
    示例:
    cat config.txt | cut -b 2-8 截取config.txt文件中的2-8行。
    echo config | cut -b 3 截取config字符串的第三个字符。

    • sort:将文本内容按ASCII码值进行排序,升序打印。

    语法:sort filename
    示例:
    sort config.txt 以文件的各行为单位,按ASCII码排序打印输出,原文本未做修改。

    系统信息查询[4]

    #du (disk usage)  #df  #stat

    作用:显示目录(或文件)所占磁盘空间的大小。
    示例:
    du -ah --max-depth=1 查看目录下的所有文件的大小,以K、M、G的单位显示。
    -a 表示目录中每个文件显示各自磁盘使用情况
    -h 以K,M,G为单位,提高信息的可读性。
    --max-depth=n 表示只深入到第n层目录,此处设置为1,即表示只深入到第一层子目录

    df -h 显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。

    stat -c 格式代码 文件名 获取关于文件的额外信息,包括文件系统和文件。

    用户及权限操作[5]

    #chmod #chown  #passwd

    • chmod:修改文件(夹)权限

    语法:chmod mode file
    其中mode是指:owner+[rwx]
      owner: u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
      此外mode也可以是数字:r=4,w=2,x=1。

    示例:
      chmod ugo+r file.txt 将文件 file.txt 设为所有人添加读取的权限。
      chmod 777 file.txt 将文件file.txt 设为所有人皆可读可写可执行。

    • chown:修改文件(夹)所属的用户或用户组

    语法:chown own:group file
      其中own指文件所属用户,group指文件所属的群组

    示例:
      chown root: file.txt 改变文件file.txt的拥有者和群组
      chown :aiusr file.txt 改变文件file.txt的组群

    • passwd:修改系统用户的密码

    语法:passwd username
      回车后再依次输入旧密码和两遍新密码即可修改完成
      (先登录root,获得root权限) passwd aiusr :修改用户aiusr的密码。

    文件操作[6]

    #mkdir  #cd  #cp  #scp  #mv  #rm  #touch  #cat  #head  #tail  #vi

    • mkdir:创建文件夹

    语法:mkdir [mode] dirname

    示例:
      mkdir 760 data 创建名为data的文件夹,权限为创建者可读可写可执行,同组的可读可写,普通用户无任何权限。

    • cd:进入某个路径下的文件夹

    语法: cd filepath

    示例:
      cd /home/data 进入目录/home/data

    • cp:复制文件

    语法:cp filepath1/filename1 filepath2/filename2

    示例:
      cp /home/data/1.txt /home/data/backup/2.txt 复制/home/data/目录下的文件1.txt到目录/home/data/backup/下,命名为2.txt。

    • scp:复制文件至远程服务器

    语法:scp filepath1/filename1 remote_username@remote_ip:filepath2/filename2

    示例:
      scp home/vike/data/1.txt universal@192.168.1.246:/home/zw/data/1.txt 复制当前主机下/home/data/目录下的文件1.txt到远程主机universal(ip:192.168.1.246)的/home/zw/data/目录下。

    • mv:移动文件(重命名文件)

    语法:mv filepath1/filename1 filepath2/filename2

    示例:
      mv /home/data/1.txt /home/data/backup/2.txt 移动/home/data/目录下的文件1.txt到目录/home/data/backup/下,命名为2.txt。
      mv /home/data/1.txt /home/data/2.txt 将/home/data/目录下的文件1.txt重命名为2.txt。

    • rm:删除文件

    语法:rm filepath/filename

    示例:
      rm /home/data/1.txt 删除/home/data/目录下的文件1.txt
        -f 强制删除文件或者文件夹,不提示
        -r 递归处理,将目录下的文件及其子文件夹全部删除
        -i 删除文件或目录前先询问用户(输入y或n后再进行操作)

    • touch:创建文件

    语法:touch filepath/filename

    示例:
      touch /home/data/2.txt 在/home/data/目录下创建文件2.txt

    • cat:打开文件

    语法:cat filepath/filename

    示例:
      cat /home/data/1.txt 打开/home/data/目录下的文件1.txt
      cat -n filename 打开文件,并显示行号。

    • head,tail:查看文件前/后n行(不填写参数时默认显示10行)

    语法:head [-n] filepath/filename
       tail [-n] filepath/filename

    示例:
      head /home/data/1.txt 打印/home/data/目录下文件1.txt的前10行
      tail -50 /home/data/1.txt 打印/home/data/目录下文件1.txt的后50行

    • vi,vim:编辑文件(打开文件后--i(输入),:q!(退出),:wq(保存退出))

    语法:vi filepath/filename

    示例:
      vi /home/data/1.txt 编辑/home/data/目录下的文件1.txt

    搜索[7]

    #find #locate #whereis

    进程[8]

    • ps -ef  查看进程
    • crontab -l  查看当前定时任务
    • crontab -e  编辑当前定时任务
      crontab格式
    命令行

    * :所有取值  / :每  X-Y:从X连续到Y  X,Y:离散的X和Y

    停止运行[9]

    • 筛选出需要的脚本,获取进程ID

    ps -ef | grep '脚本名'

    • 强行终止脚本

    kill -9 进程ID

    其他[10]

    整数比较:
        -eq 等于,如:if [ "a" -eq "b" ]
        -ne 不等于,如:if [ "a" -ne "b" ]
        -gt 大于,如:if [ "a" -gt "b" ]
        -ge 大于等于,如:if [ "a" -ge "b" ]
        -lt 小于,如:if [ "a" -lt "b" ]
        -le 小于等于,如:if [ "a" -le "b" ]
        < 小于(需要双括号),如:(("a" < "b"))
        <= 小于等于(需要双括号),如:(("a" <= "b"))
        > 大于(需要双括号),如:(("a" > "b"))
        >= 大于等于(需要双括号),如:(("a" >= "b"))

    字符串比较:
        = 等于,如:if [ "a" = "b" ]
        == 等于,如:if [ "a" == "b" ], 与=等价
      注意:==的功能在[[]]和[]中的行为是不同的,如下:
        1 [[ a == z* ]] # 如果a以"z"开头(模式匹配)那么将为true
         2 [[ a == "z*" ]] # 如果a等于z(字符匹配),那么结果为true
        3 [ a == z* ] # File globbing 和word splitting将会发生     4 [ "a" == "z
    " ] # 如果$a等于z*(字符匹配),那么结果为true

    != 不等于,如:if [ "a" != "b" ], 这个操作符将在[[]]结构中使用模式匹配.
        < 小于,在ASCII字母顺序下.如:
       if [[ "a" < "b" ]]
       if [ "a" \< "b" ] 在[]结构中"<"需要被转义.
        > 大于,在ASCII字母顺序下.如:
           if [[ "a" > "b" ]]
           if [ "a" \> "b" ] 在[]结构中">"需要被转义.
        -z 字符串为"null".就是长度为0.
        -n 字符串不为"null"

    假设有变量 var=http://www.aaa.com/123.htm.

    1. # 号截取,删除左边字符,保留右边字符。

    echo ${var#*//}

    其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符

    即删除 http://,结果是 :www.aaa.com/123.htm

    1. ## 号截取,删除左边字符,保留右边字符。

    echo ${var##*/}

    ##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符

    即删除 http://www.aaa.com/,结果是 123.htm

    1. %号截取,删除右边字符,保留左边字符

    echo ${var%/*}

    %/* 表示从右边开始,删除第一个 / 号及右边的字符

    结果是:http://www.aaa.com

    1. %% 号截取,删除右边字符,保留左边字符

    echo ${var%%/*}

    %%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符

    结果是:http:

    1. 从左边第几个字符开始,及字符的个数

    echo ${var:0:5}

    其中的 0 表示左边第一个字符开始,5 表示字符的总个数。

    结果是:http:

    1. 从左边第几个字符开始,一直到结束。

    echo ${var:7}

    其中的 7 表示左边第8个字符开始,一直到结束。

    结果是 :www.aaa.com/123.htm

    1. 从右边第几个字符开始,及字符的个数

    echo ${var:0-7:3}

    其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。

    结果是:123

    1. 从右边第几个字符开始,一直到结束。

    echo ${var:0-7}

    表示从右边第七个字符开始,一直到结束。

    结果是:123.htm

    注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

    目录


    1. 命令使用求助

    2. 管道操作

    3. 信息分析处理

    4. 系统信息查询

    5. 用户及权限操作

    6. 文件操作

    7. 搜索

    8. 进程

    9. 停止运行

    10. 其他(字符处理)

    相关文章

      网友评论

          本文标题:Linux常用命令总结

          本文链接:https://www.haomeiwen.com/subject/krcjlhtx.html