LINUX基础命令详解(一)

Linux系统上有许多统称为Filter的工具,它们可以从自己的标准输入(stdin)或其他文件送入字符串流(text stream)加以修整,最后送往标准输出(stdout)或讯如新文件。你可以用管道(pipe)将不同功能的过滤器串接在一起使用。下面将介绍他们的基本用法:

1.cut
语法 cut [options] files

将出入行的特定字段“裁减”出来(显示出来)。在默认情况下,cut将tab视为字段分隔字符,除非你以-d选项制定其他分隔字符。cut不影响原始输入文件。

选项
-b list 显示出位于list所指位置的字节。list是一连串以逗号分隔的数字,位置是以byte为计算单位。
-c list 显示出位于list所指位置的字符。
-d delim 定义字段分隔符为delim字符
-f list 显示出list所列出的字段。

范例
显示/etc/passwd文件(以冒号作为分隔符)中的第一个字段(用户名称):
    $ cut -d: -f1 /etc/passwd
显示/etc/passwd文件每行的第一个字段
    $ cut -c 1 /etc/passwd

2. expand

语法 expand [options] files 

将输入流中的tab字符转换成等宽的若干个space字符。

-t number 指定tab字符的等效空格宽度(默认值为8)
-i 只转换出现在行首的tab字符

3. fmt
语法 fmt [options] [files]

将文稿编排成制定的宽度。过长的行会背换到下一行(安插一个/n字符),过短的行会被连接到前一行之末。如果指定多个文件,则将所有文件的内容都视为连续的字符串流。

-u 使用一致的间隔方式:单字(词)之间间隔1个空格,句子之间间隔2个空格。
-w width 将版面宽度(每行的字数)设为width, 默认为75

4. head
语法 head [options] [files]

显示出文件开头的前几行。若同时制定多个文件,于每个文件开头处内容之前会多显示一个标头,以便区分。

-c n 显示处前n个字符的内容。若n后面附加了k或者m,则计数单位就是K和M字节。
-n m 显示处开头m行内容,默认值为10。

5. join
语法 join [options] file1 file2

依据所制定的字段将来自file1与file2的两个表格合并成一个表格。

-j1 nfield 索引字段为file1的第nfield个字段
-j2 nfield 索引字段为file2的第nfield个字段
-j field 将file1与file2共同的field视为索引字段

假设文件file1的内容为:
1 one
2 two
3 three
而文件file2的内容为:
1 11
2 22
3 33
 $ join -j 1 file1 file2
将会产生如下执行结果
1 one 11
2 two 22
3 three 33

6. nl
语法 nl [options] [files]

为files里的每一行加上行号。

-b style 设定内容的编号方式,默认方式为t(只有非空白行才有编号)
-f style 设定页脚的编号方式,默认方式为n(无编号)
-h style 设定页眉的编号方式,默认方式为n(无编号)

各种编号方式
a 全部编号,包括空白行
t 只编号非空白行
n 完全不编号

7. od
语法 od [options] [files]

以八进制(octal)数值格式显示文件内容。主要用于binary文件的字节编码。除了八进制之外,你页可以选择ASCII、十六进制等表示格式。

-t typoe 选择字节表示格式。各种type的意义如下:
         c ASCII或者backsslash escape
         o 八进制数值(默认)
         x 十六进制数值

假设文件file1内容为:
a1/n
A1/n

$ od -t a file1 将显示的内容如下
00000000 a 1 nl A 1 nl
00000006

8. paste
语法 paste [options] files

将一个或多个文件的内容横向排列在一起。

-d n 以n为字段分隔符(默认的分隔符为tab键)
-s 将输入文件的内容纵向排列在一起。


9. pr
语法 pr [options] file

将文本文件的内容转换成分页,分段的版本,并且另外加上页眉与页脚。主要用于“原样打印机”产生漂亮的输出字符串流

-d  两倍间距
-h header 以header替换页眉中的文件名
-l lines 将页面的长度设为lines,默认66行,最低为10行
-o width 将页面左边留白宽度设定为宽度width

10. sort
语法 sort [options] [files]

读取输入内容,以字母顺序输出他们

-f 不去分大小写
-n 以数值顺序排序
-r 以相反顺序排序

11. split
语法 split [options] [infile] [outfile]

split可将大文件分割成若干个小文件。

-n 每隔n行就分成一个新文件(默认1000)

$ split -2 file1 splitout_

12. tac
语法 tac [files]

颠倒输入行的顺序,刚好与cat命令效果相反。所以取名tac^_^


13. tail

语法 tail [options] [files]

显示出一个或多个文件的最后几行。同时指定多个文件时, 于每隔文件的内容之前会先出现该文件名以作区别。

-c n 显示出文件中最后n个字节的内容,若n后面附加了k或者m,则计数单位改变
-f 显示出文件尾端内容后关闭输入文件,并且在输入文件的末端出现新内容时实时将他们显示出来。
-n m 显示出最后m行的内容,默认值为10。


14. tr
语法 tr [options] [[string1[string2]]

将string1里面的字符转译成string2里面相应的字符。(详细说明请见man tr)

15. unexpand
语法 unexpand [options] [files]

将输入文件中的space字符换成tab字符。默认情况下,他假设tab的位置是相隔8个space字符。

-a 转换所有space,而非只有每行开头处的space。
-t number 指定tab空白宽度(默认值8)

16. uniq
语法 uniq [options] [input[output]]

读入stdin,消除连续的相同文件,然后写到stdout。由于uniq只处理相邻的文本行,所以通常搭配sort一起使用。

-d 只显示出有重复的文本行。
-u 只显示出不重复的文本行

$ cat file1
bbbbbb
bbbbbb
aaaaaa
aaaaaa
cccccc
dddddd
cccccc

$ sort file1 | uniq -d
aaaaaa
bbbbbb
cccccc


17. wc

语法 wc [option] [files]

计算files文件内容的字符数(char)、单词数(word)与行数(line)。

-c 只显示出字符数
-l 只显示出行数
-w 只显示出单词数

若想计算当前工作目录下有多少个文件,可以使用:
$ ls | wc -l

18. xargs
语法 xargs [options] [other_cmd] [initial-arguments]

将来自stdin的数据逐一作为other_cmd的自变量,逐次执行新构成的命令,直到耗尽stdin为止。如果要执行新的命令有固定的选项或者参数,则可以在initial-arguments予以指定。xargs主要是用来解决命令行过长的问题,或是需要从其他命令的执行结果得到所欲执行命令的自变量。

-n maxargs 限制每次传给other_cmd的额外自变量的数量
-p 交互模式。

删除目录下很多文件。
$ rm * 可以解决 ,但是到达一定数量bash会提示你,那么就需要使用xargs了

$ ls | xargs rm

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值