Linux工具命令

常用命令

基本操作

  • mv, rm, cp, mkdir, cd, pwd, find

文本处理

  • grep, sed, awk, diff, vim, less, more, cat, sort, uniq, expr

文本压缩

  • tar, bzip2, gzip, unzip, unrar

日常运维

  • shutdown, mount, chown, chmod, su, password, service

系统状态

  • ps, top, free, df, inconfig, uname, ping, netstat

工作常用

  • export, xargs, date, whereis, which, locate, scp, ssh, wget, mysql


常用工具

grep: 在一个或多个文件中 搜索文本,并把匹配的文本打印(标准输出、管道、重定向文件),默认BREs; egrep和grep相同,只是默认EREs
    grep [-options] <pattern> <filename/dirpath>   

[-options]主要参数:
    -c:     统计搜索字符串的次数            
    -i:     忽略大小写
    -n:     输出对应行号
    -v:     反向搜索,搜索不匹配的文本
    -r      递归目录进行查找
    --color=auto:   将找到的关键字显示颜色
    -E:     使用扩展正则表达式EREs
    -P:        使用扩展正则表达式PREs
    -o:     只输出文件中匹配的部分
    -l:     列出内容匹配的文件名称
    -L:     列出内容不匹配的文件名称
    -d:     指定要查找的是目录而非文件
    -b:     显示匹配内容和之后的内容
    -a:     不要忽略二进制数据

示例;    
    grep -r '#define.*SIGINT' /usr/


xargs: 给其他命令传递参数的过滤器,用于组合多个命令(多行变单行),单行变多行; argument分隔符是空格, xargs默认界定符是回车
    xargs [-options] [command]

[-options]主要参数:
    -0                      #当stdin含有特殊字符时,将其当做一般字符
    -a filename             #从文件中读入作为stdin    
    -E pause_flag           #当xargs分析到pause_flag(以空格分隔的单词)时,在这停止
    -p                      #每次询问是否执行    
    -n num                  #按num列显示命令(argument分隔符)        
    -L num                  #num行显示为一行(xargs分隔符)      
    -s num                  #命令行最好字符数,指xargs后面那个命令的最大命令行数
    -x                      #exit的意思,主要配合-s使用   
    -d delim                #定义分隔符(xargs--argument)
    -I {}                   #指定一个替换字符串{}
示例:
    cat stdio.h | xargs -n 5
    ls std* | xargs -n 1 -I {} cp {} ./Downloads/
    cat stdio.h | xargs -L 1 -I {} echo 'cherrying:' {}
    
多行输出单行:
    cat stdio.h | xargs
    
与find结合应用:
    find . -name 'std*' | xargs tar -czvf std.tar.gz


find: 在目录中 递归 搜索文件,并把匹配的文件打印(标准输出、管道、重定向....), 只能用通配符 * ? 不支持正则表达式,想用正则表达式加 -regex 选项

    find <dirpath> [-options] [-print] [-exec, -ok, | xargs , | grep] [command {} \;]        注:有执行命令{}要用 \; 结尾

[-options]主要参数:(-a:逻辑与, -o:逻辑或)
    -name 'filename'            #查找名为filename的文件,支持通配符 * ?       
    -perm 0777                  #按执行权限查找      
    -user username              #按所属用户查找
    -group groupname            #按所属组查找    
    -type d/l/f/b/c/p           #按类型查找目录、链接文件、普通文件、块设备、字符设备、管道文件      
    -maxdepth num               #遍历查找的深度       
    -size n                     #查找尺寸为(大于小于等于)n字节的文件   
    -path dirpath -prune        #忽略目录
示例;
    find . -name 'signal.h' -o -name 'stdio.h'
    find . -size 1k -type f -maxdepth 3
        
        
[-print]有无的区别:
    有 -print 会输出 find 的结果 和 command {} \; 的结果
        find . -type d -print -exec echo > a.txt {} \;
    没有 -print 只输出 command {} \; 的结果, 不会输出 find 的结果   
        find . -type d -exec echo > a.txt {} \;
       
        
-exec: 对 find 的结果执行 command {} \; 命令(直接执行,不询问)
    find . -size +1b -name 'std*' -exec cat {} \;
    
-ok: 对 find 的结果执行 command {} \; 命令(每次询问是否执行)
    find . -size -2k -ok ls -l {} \;


sed:对文本文件进行 --- 查找、替换、删除、增加等操作(按行处理)默认使用 BREs, 加 -r 使用 EREs
    sed [-options] '[range] operation' <filename>

[-options]主要参数:
    -n              #忽略执行过程,只输出结果           
    -i[suffix]      #在源文件上执行操作,输出会覆盖原文件(危险),加参数 会备份 原文件              
    -r              #使用扩展正则表达式    
    -e              #直接在列模式上执行sed操作(最常用)
    -f                #直接将 sed 的动作写在一个档案内
        
[range]范围:
    n                   #选择第n行          
    n,m(n,+m)             #第n到m行(n到(n+m)行)          
    1~2                 #奇数行            
    2~2                 #偶数行               
    n,$                 #第n行到文件尾       
    /^str/                 #字符串str开头的行     
    /^str/,/strend/     #以str开头到strend之间的数据  
    
operation操作:
    p       #打印输出结果(通常可和 -n 一起用)    
    a        #在匹配范围 后面新增字符串
    i         #在匹配范围 前面增加字符串
    c         #对匹配范围 进行修改
    d       #对匹配范围 进行删除
    s       #替换匹配内容
示例:
    ( 注:符号 & 是匹配到的内容的引用)
    sed -i.bak '2,3 c cherrying' ./hosts.tst      
    sed -n '/^127/ s/^.*$/[&]/g p' ./hosts.tst


awk: 对文本文件进行 --- 查找、替换、删除、增加等操作(按列处理); 默认使用 EREs

    awk [-options] '[range] operaton' finename
    语法结构:awk [-options] '\
                [BEGIN{}]\          #开头部分可选,可用来设置一些参数,输出头信息
                [Pattern]\          #正则匹配可选,匹配内容范围
                Action\             #主要部分: 按行处理,统计打印
                [END{}]\            #结尾部分可选,输出汇总信息
                ' filename

[-options]主要参数:
    -F delim         #指定分隔符delim       
    -v var=value        #给一个用户定义的变量赋值   
        
[range]范围: 同sed
        
peration操作:
    $1, $2, $3......表示 第1列,第2列,第3列.......
    
格式化输出:
    awk -F ':' '{printf "%-8s %-10s\n",$2,$4}' /etc/passwd
        
设置变量:
    awk -F ':' -v a=1 -v b=s '{print $3,$3+a,$3b}' /etc/passwd
    
内置变量
    FS: BEGIN块中的FS就是内部变量,可以直接指定或者输出,甚至可以指定多个分隔符同时起作用
    OFS: 指定输出内容分隔符
    NF 列数: 过滤一些列数不满足条件的内容
    NR 行号: 输出行数
    RS: 记录分隔标志
    ORS: 指定记录输出的分隔标志
    FILENAME: 当前处理的文件名称,在一次处理多个文件时非常有用
示例:
    awk 'BEGIN{FS=":";OFS="-"}{printf $1, $2, $3} file
    
数学运算:+-*/%

字符串操作:
    split(input-string, output-array, separator)
    substr(input-string, location, length)


netstat: TCP/IP监控工具

    -a: (all)显示所有选项默认不显示listen相关
    -t: (tcp)仅显示tcp相关选项
    -u: (udp)仅显示udp相关选项
    -n: 拒绝显示别名,能显示数字的全部转换成数字
    -l: 仅列出有在监听(listen)服务状态
    -p: 显示建立在相关链接的程序名
    -r: 显示路由信息
    -e: 显示扩展信息,如UID等
    -s: 按各个协议进行统计
    -c: 每隔一个固定时间,执行该netstat命令
示例:
    netstat -nat | grep "127.0.0.1:*" | awk '{printf $2}'




expr: 求表达式变量的值
四则运算

  •     运算符左右都有空格,如果没有空格表示是字符串连接
  •     使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义。
  •     对于四则运算,最好用$[]或者$(())代替expr,效率更高,而且运算符两边不用空格

    
字符串操作

  • 返回字符串长度:(expr length  字符串)

    expr length "hello world"

  • 返回 String1 中包含 String2 中任意字符的第一个位置:( expr String1 String2)

    expr index "abc" "b"

  • 提取字符串的子串:(expr substr 字符串 起始位置 终点位置)

    expr substr "this is a test" 3 5

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值