Linux Shell学习笔记1:常用命令
基本操作介绍
tar
用法1:打包
1 tar cvzf ets.tgz /etc
这里的4个选项c代表建立tar文件,v代表详细显示过程,z代表使用gzip压缩tar文件,f指定文件名。这条指令是指打包/ets目录,并压缩成ets.tgz
另一种打包命令:tar cvf – test2 | gzip -9 > save.tgz
这个方法不适用于支持项z的tar版本。先用cvf把test2的目录打包,然后-将结果输出要gzip进行压缩,最后转存为save.tgz
用法2:检查
1 tar tvzf ets.tgz
t选项的意思是列出打包内容
用法3:解包
1 tar xvzf etc.tgz
z表示使用gzip解压,x表示解包
1 gzip -9dc save.tgz | tar xvf –
这个方法不适用于支持项z的tar版本。gzip -9dc将save.tgz进行解压,-d表解压的意思,-c则是解压到比哦啊准输出。然后通过管道交给tar解包,tar的-表示标准输入读取数据
用法4:指定解包位置
1 tar xvzf etc.tgz –C tets2
-C表示切换到某一目录
sort:对文本文件进行排序
用法:
1 sort data
将data进行升幂排序(使用ASCII的字符进行大小比较
1 sort –r data
将data进行降幂排序(使用ASCII的字符进行大小比较
1 sort –n data
将data进行降幂排序(以字符串的数值进行大小比较
1 sort –k 2 data
将data进行降幂排序(以data文本中的第二个子段的字符串数值进行大小比较
uniq:筛选排序后文本重复行
用法:
1 uniq data
(如果重复列没有相邻则没有效果)
1 sort data | uniq
删除排序后data中的重复行
1 sort data | uniq –d
调出排序后data中的重复行
1 sort data | uniq –c
计算排序后data中的每一行出现的次数
cut:抽取文件每一行的一部分
用法:
1 cut –c2 data
抽出data中每一行的第二个字符
1 cut –c2- data
抽出data中每一行的第二个字符往后的全部字符
cut –c2-10 data
抽出data中每一行的第二到第十的字符
1 cut –d: -f1 /etc/passwd
-d代表使用分隔符”:”,-f1是取出第一个字段,所以这个指令的意思是取出/ets/passwd中以:为分隔符的第一个子段
tr:转换或者删除字符
用法:
1 tr t T < data
将data文件中的t字符转换成大T
1 tr –d k < data
删除data中的t字符
grep:显示符合样式的行
用法:
1 grep A data
显示data文件中含有A这个字符的行
1 grep –i A data
-i的意思是不分大小写
1 grep –v A data
-v的意思是不显示,不显示带有A的行
1 grep –l A *
-l的意思是只显示哪些文件带有A,不显示具体行
1 grep –n A *
与-l功能相同,但是会显示出行号
1 grep –q keyword filename
如果filename中含有keywordname就会返回0,否则返回非0
执行多个命令的方法
;:cmd1 ; cmd2 ; cmd3,依次执行cmd命令,但是不会理会前一个命令是否能够成功
&& :cmd1 && cmd2 && cmd3,依次执行cmd命令,cmd1执行失败了就不会执行接下来的命令
|| :cmd1 || cmd2 || cmd3,如果cmd1执行成功了就不会执行cmd2,