linux常用指令

grep

按照文件中指定pattern的,语法:

# grep [选项] '关键字' 文件名

常见选项:

OPTIONS:
  -i:不区分大小写
  -v:反向选择
  -n:显示行号
  -w:搜索单词
  -o:只打印单词
  -e:使用正则匹配
  -A:显示匹配行以及后面多少行
  -B:显示匹配行以及前面多少行
  -C:显示匹配行以及前后多少行

^key:以关键字开头
key$:以关键字结尾
--color=auto:高亮key

举例:

# 复制passwd文件到当前文件夹
cp /etc/passwd .

# 搜索所有不是root开头的行,不区分大小写并显示行号
grep -niv '^root' passwd
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6:sync:x:5:0:sync:/sbin:/bin/sync
7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:operator:x:11:0:operator:/ROOT:/sbin/nologin
11:games:x:12:100:games:/usr/games:/sbin/nologin
12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13:nobody:x:99:99:Nobody:/:/sbin/nologin
14:systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
15:dbus:x:81:81:System message bus:/:/sbin/nologin
16:polkitd:x:999:998:User for polkitd:/:/sbin/nologin
17:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
18:postfix:x:89:89::/var/spool/postfix:/sbin/nologin
19:chrony:x:998:996::/var/lib/chrony:/sbin/nologin
20:nnlrl:x:1000:1000:nnlrl:/home/nnlrl:/bin/bash
21:dockerroot:x:997:994:Docker User:/var/lib/docker:/sbin/nologin

cut

cut是的截取工具,语法:

cut [选项] 文件名

常见选项:

  -c:以字符为单位进行分割并截取
  -d:自定义分隔符,默认为制表符\t
  -f:与-d联用指定截取某一个区域

举例:

# 复制passwd文件到当前文件夹
cp /etc/passwd .

# 以:为分隔符截取第一列和第七列并通过管道符|传递给第二次cut操作,以字符为单位,截取5个字符
cut -d: -f1,7 passwd | cut -c 1-5 | head
root:
bin:/
daemo
adm:/
lp:/s
sync:
shutd
halt:
mail:
opera

sort

sort工具用于排序,它将文件的每一行作为一个单位,从首字符向后依次按照ASCII值进行比较最后升序输出。

语法:

sort [选项] 文件名 -o 指定文件

常见选项:

  -u:去除重复行
  -r:降序排列,默认是升序
  -o:将排序结果输出到指定文件,类似重定向符>
  -n:以数字排序,默认按字符排序
  -t:分隔符
  -k:第N列
  -b:忽略前导空格
  -R:随机排序 

举例:

# 对passwd第三列进行数字降序排序,输出到1.txt
sort -nr -t: -k3 passwd -o 1.txt
# 等同于:sort -nr -t: -k3 passwd 1> 1.txt

cat 1.txt
operator:x:11:0:operator:/ROOT:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin

uniq

uniq用于去除连续的重复行,语法:

uniq [选项] 文件

常见选项:

  -i:忽略大小写
  -c:统计重复行次数
  -d:只显示重复行

tee

接受输入打印并输出到指定文件中,双向重定向

diff

用于逐行比较文件的不同,diff描述两个文件不同的方式是告诉我们怎样改变第一个文件之后与第二个文件匹配

语法:

diff [选项] 文件1 文件2

常见选项:

  -b:不检查空格
  -B:不检查空行
  -i:不检查大小写
  -w:忽略所有空格
  --normal:正常模式显示,默认格式
  -c:上下文格式显示
  -u:合并格式显示

举例:

diff -c file1 file2
*** file1   2020-07-12 16:07:25.188454248 +0800
--- file2   2020-07-12 16:07:51.352431341 +0800
***************
*** 1,6 ****
! aaaa                              表示该行需要修改才能与第二个文件匹配
  111
- hello world                       表示该行需要删除才能与第二个文件匹配
  222
- 333                               表示该行需要删除才能与第二个文件匹配
  bbb
--- 1,7 ----
! aaa                               表示第一个文件需要修改才能与第二个文件匹配
! hello                             表示第一个文件需要修改才能与第二个文件匹配
  111
  222
  bbb  
+ 333                               表示第一个文件需要加上该行才能与第二个文件匹配
+ world                             表示第一个文件需要加上该行才能与第二个文件匹配

你可能感兴趣的:(linux常用指令)