linux中常用的基础命令
diff 命令
patch 命令
grep 命令
Cut 命令
sort 命令
uniq 命令
tr 命令
sed 命
1.diff 命令 比较两个文件的不同 用于创建补丁文件
diff -u file file.new >file.path ##生成补丁文件
yum install patch -y ##安装打补丁工具
(1)patch -b file file.path ##给老文件件打补丁,并且对老文件进行备份
补丁版替换原始文件 , 但当指定 -b 选项时 , 可以制作备份。将用 .orig 文件名后缀
重命名原始文件
17 vim file ##建立file
18 vim file1##建立file1
19 cat file ##查看file
20 cat file1 ##查看file
21 diff file file1 ##比较两个文件的不同
22 diff -c file file1 ## -c 显示上下文周围的行
23 diff -u file file1 ## -u 使用统一的输出格式
24 diff -u file file1 > file.path ##创建补丁文件
25 cat file.path ##查看补丁文件
26 yum install patch -y ##安装打补丁工具
27 patch file file.path ##给文件打补丁,文件在前,补丁文件在后
28 cat file ##查看文件
34 ls
40 vim file
41 patch -b file file1
42 patch -b file file.path ##给老文件件打补丁,并且对老文件进行备份
43 ls
44 cat file.orig 查看备份文件
45 cat file 查看新文件
46 history
(2)patch 可用于将简单的补丁文件应用于使用以下语法的单个文件
– [[email protected] etc]# patch issue patchfile
Patching file issue
(3)以下命令显示如何使用通过 diff -Naur 创建的补丁文件。用户更改为
与从中创建补丁文件的原始目录相似的可比较目录后 , 将执行patch
– [[email protected] orig-dir]$ patch -b < /tmp/patchfile
Patching file hosts
Patching file network
2.grep命令
grep 将显示文件中与模式匹配的行。
grep -i ##忽略大小写
-v ##反向过滤
-E "关键字1|关键字2|....." ##过滤多个关键字
1 cd/mnt/
2 ls
3 cp /etc/passwd /mnt/ ##将/etc/passwd复制到/mnt
22 vim passwd ##编辑passwd文本
23 cat passwd ##查看passwd文本
24 grep -i test passwd ##显示文件中含有test的行,忽略test大小写
25 grep test passwd ##显示文件中含有test的行
26 grep -i test passwd -v ##显示文件中不含有test的行,忽略test大小写
27 grep -E "TEST|root" passwd ##显示文件中含有TEST或root"的行
28 grep -E "test|root" passwd##显示文件中含有test或root的行
29 grep -E "test|ROOT" passwd##显示文件中含有test或ROOT的行
30 grep -E "^test|ROOT" passwd##显示文件中行首是test或含有ROOT的行
31 grep -E "test|ROOT$" passwd##显示文件中含有test或行尾是ROOT的行
32 grep -E -i "^test|ROOT" passwd
##显示文件中行首是test或含有ROOT的行,忽略大小写
33 grep test passwd | grep -i testpasswd -v
##显示文件中不含有test的行,忽略test大小写
34 grep test passwd | grep -E "^test|root$" -v
显示文件中行首不是test或不含有root的含有test的行
35 grep test passwd | grep -E "^test|test$" -v
显示文件中行首不是test或不含有test的含有test的行
36 grep test passwd | grep -E "^root|root$" -v
显示文件中行首不是root或不含有root的含有test的行
grep -r 关键字 目录 ##在目录中过滤还有关键字的文件
-n ##显示结果所在行的行号
-c ##结果个数
练习
提取ifconfig eth0 中的ip地址
3.cut 命令
##-d指定用于提取字段的分隔符
##-f 指定要从每行中提取的字段
##-c 指定要从每行中提取的文本列
2 cd /mnt/
3 cp /etc/passwd .
4 vim passwd
5 cat passwd
6 cut -d : -f 1,7 passwd ##剪切每行中的1和7字段,并提取字段的分隔符
-d : -f 一起用,不能分开
7 cut -d : -f 1,3 passwd ##剪切每行中的1和3字段,并提取字段的分隔符
8 cut -d : -f 1-3 passwd ##剪切每行中的1到3字段,并提取字段的分隔符
9 cut -c 1-3 passwd ##剪切每行中的1到3列文本
3.sort 排序
-n ##纯数字
-r ##倒序
-u ##去掉重复行
-t ##指定分隔符
-k ##指定排序的列
4.uniq
处理重复行
-c ##统计重复行的个数
-u ##显示唯一的行
-d ##显示重复行
1 vim file
2 sort -n file ##纯数字排序
3 sort -rn file ##倒序
4 sort -rnu file ##去掉重复行
5 sort -rn file | uniq -c ##统计重复行的个数,倒序
6 sort -rn file | uniq -u ##显示唯一的行,倒序
7 sort -rn file | uniq -d ##显示重复行,倒序
11 vim file
12 cat file
13 sort -t : -k 3 -n file ## 排序分隔符分的第三列
14 sort -t : -k 3 -n file | uniq -c##排序分隔符分的第三列,并统计重复行的个数
15 sort -t : -k 1 -n file | uniq -c##排序分隔符分的第1列,并统计重复行的个数
17 sort -t : -k 2 file | uniq -c ##排序分隔符分的第2列,并统计重复行的个数
18 sort -t : -k 3 -n file | uniq -u##排序分隔符分的第三列,显示唯一的行
19 sort -t : -k 3 -n file | uniq -d##排序分隔符分的第三列,显示重复行
5.tr 转换字符大小写
4 vim file
5 cat file
6 tr ‘a-z‘ ‘A-Z‘ < file ##把file中所有小写字符转换成大写
7 tr ‘A-Z‘ ‘a-z‘ < file ##把file中所有大写字符转换成小写
8 history
6.sed 控制流输出
sed 命令是流编辑器 , 用于对文本数据流执行编辑。假定要处理一个文件名 , sed 将对文件中的所有行执行搜索和替换 , 以将修改后的数据发送到标准输出 ; 即 , 其实际上并不修改现有文件。与 grep 一样 , sed 通常在管道中
9 cat passwd
10 cat passwd -b > westos ##将passwd中的内容输入到westos中 并且显示行数
11 cat westos
12 sed ‘s/nologin/westos/g‘ westos ##替换输出中的nologin为westos
16 sed -e ‘s/nologin/westos/g‘ -e ‘s/sbin/lee/g‘ westos
##多条替换策略用-e连接
18 sed ‘1,3s/nologin/westos/g‘ westos
##替换输出中1-3行的nologin为westos
20 sed 3,7d westos ##不显示文件中的3-7行
21 sed 3,7p westos ##重复显示文件中的3-7行
22 sed -n 3,7p westos ##只显示文件中的3-7行
23 sed 3d westos ##不显示文件中的第三行
将修改后的数据发送到标准输出 ; 其实际上并不修改现有文件。
27 sed -e ‘s/nologin/westos/g‘ -e ‘s/sbin/lee/g‘ westos
##多条替换策略用-e连接
28 cat westos
-i将输出导入westos, 修改现有文件
30 sed -e ‘s/nologin/westos/g‘ -e ‘s/sbin/lee/g‘ -i westos
##多条替换策略用-e连接
31 cat westos
sed -ne 3p -ne 7p westos ##只显示文件中的3,7行
sed ‘/games/,/nobody/s/nologin/westos/g‘ passwd ##替换输出中的games字符到nobody字符之间的nologin为westos
[[email protected] mnt]# cat rule ##规则文件内容
s/nologin/westos/g
s/sbin/lee/g
[[email protected] mnt]# sed -f rule file ##使用规则文件更改输出
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/lee/westos
3 daemon:x:2:2:daemon:/lee:/lee/westos
4 adm:x:3:4:adm:/var/adm:/lee/westos