【Linux】Bash Shell之命令续篇

8、 历史命令:history
语法:history [参数]

n 数字,意思是要列出最近的n条命令

-c 将当前shell中的所有history内容全部清楚

-a 将当前新增的命令加入接在后面的file中,如果后面没跟file,则默认加入~/.bash_history中

-r 将接在后面的file中的内容读到当前shell的历史记忆中

-w 将当前的历史记忆内容写入file中

!n 执行第几条命令

!command 由最近的命令先前搜索“命令串开头为command”的命令,并执行

!!执行上一个命令

注:执行当前目录的命令,如果使用相对路径的话,直接使用command,系统会提示查不到这个命令,应该使用./command。是因为PATH中并没把.给设置进去,为了防止黑客漏洞

9、 选取命令cut、grep

语法:cut –c 字符范围 以字符为单位取出固定的字符范围

cut –d’分隔符’-f fields 根据-d的分隔符将一旦信息分为数段,用-f取出滴几段

grep [-acinv] ‘搜索字符串’ filename

-a 将为二进制文件以文本文件的方式搜索数据

-c 计算找到搜索字符串的次数

-i 忽略大小写

-n 输出行号

-v 反向选择,即显示出没有搜索字符串的内容的那一行

10、 通配符

  • 通配符,0个或多个字符

? 通配符,一定有一个字符

注释,常用于脚本中

转义符号

| 管道命令

; 连续命令的分隔,与管道命令不同

~ 用户的家目录

$ 变量之前需要加的变量替换值

& 将命令变成后台工作

! 逻辑运算,非

/ 路径分隔符号

输出导向,替换

输出导向,累加

‘ 单引号,不具有变量置换的功能

“ 双引号,具有变量置换功能

`` 之间的命令可先执行

() 之间为子shell的起始与结束

[] 一个字符,之间为字符的组合

{} 之间为命令区块的组合

Ctrl+C 终止当前命令

Ctrl+D 输入结束(EOF)

Ctrl+M Enter按键

Ctrl+S 暂停屏幕输出

Ctrl+Q 恢复屏幕输出

Ctrl+U 在提示符下,删除整行命令

Ctrl+Z 暂停当前命令

11、排序命令:

sort 根据不同的数据类型排序,排序的字符与语系的编码有关

uniq 排序好后想要重复的数据只显示一条,配合sort使用

wc 计算文件内容的工具,-l 计算有多少行 –w 计算有多少字(word英文单词) –m 计算有多少字符

12、双向重导向:tee 【同时将数据送到文件和屏幕】

13、字符转换命令:

tr 删除一段信息中的文字,或者进行文字信息的替换

col –x 将tab键转换成对等的空格键

join 找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备

paste 直接将两行贴在一起,且中间以tab键隔开

expand 将tab按键转成空格键 (unexpend 功能相反)

14、拆分命令:split 把大文件拆分成小文件

语法:split [-bl] file PREFIX

-b 接要拆分的文件大小,可加单位【b,k,m等】

-l 按行数进行拆分

例:split –b 300k /ect/test test

结果为,test被拆分成testa,testb,testc等方式来建立小文件

cat test* >> test

将方才拆分的小文件合成一个大文件

上一篇:自定义hadoop map/reduce输入文件切割InputFormat


下一篇:【Linux】Bash Shell之变量设置