通配符
- # 批注符号,这个最常用在script当中,视为说明,其后的数据均不执行
- \ 转义符号,将特殊字符或通配符还原成一般符号
- | 管道,分割两个管道命令的界定
- ; 连续命令执行分隔符
- ~ 用户的主文件夹
- $ 使用变量前导符,即是变量之前需要加的变量替代值
- & 作业控制,将命令变成背景下工作
- ! 逻辑运算中非的意思
- / 目录符号,路径分割的符号
- >, >> 数据流重定向,输出导向,分别是替换和累加
- <, << 数据流重定向,输入导向
- ‘’ 单引号,不具有变量置换的功能
- “” 双引号,具有变量置换功能
- `` 中间为可以先执行的命令,也可以使用$()
- ( ) 中间为子shell的起始与结束
- {} 中间为命令块的结合
数据流重定向
输出
1> 以覆盖的方法将正确的数据输出到指定的文件或设备上 ll / > ~/rootfile
1>> 以累加的方式将正确的数据输出到指定的文件或设备上
2> 以覆盖的方法将错误的数据输出到指定的文件或设备上
2>> 以累加的方式将错误的数据输出到指定的文件或设备上
输入
< 示例:cat > catfile < ~/.bashrc
,将~/.bashrc文件内容复制到catfile文件中去
<< 代表结束输入的意思,示例:
cat > catfile << "eof
>one
>two
>eof //输入这个关键字,就立即结束而不需要输入
//catfile中只保存eof行前的内容`
管道命令
选取命令
cut -d'分隔符号' -f fields
-d 后面接分割字符,与-f一起使用
-f 取出第几段的意思
-c 以字符的单位取出固定字符区间
grep [-acinv] [--color=auto] '查找字符串' filename
-a 将binary文件以text文件的方式查找数据
-c 计算找到‘查找字符串’的次数
-i 忽略大小写
-n 顺便输出行号
-v 反向选择
--color=auto 可以将找到的关键字部分加上颜色显示
排序命令
sort [-fbMnrtuk] [file or stdin]
-f 忽略大小写的差异
-b 忽略最前面的空格
-M 以月份的名称来排序
-n 使用纯数字进行排序,默认是文本
-r 反向排序
-u 相同的数据仅取出一行
-t 分隔符,默认是[Tab]键分隔
-k 以哪个区间(field)来进行排序的意思
示例:/etc/passwd内容是以":"分隔的,如果以第三列来排序,则是:cat /etc/passwd | sort -t ':' -k 3
wc [-lwm]
-l 仅列出行
-w 仅列出多少字(英文单字)
-m 多少字符
双向重定向
tee [-a] file
-a 以累加的方式加入到file中
示例:ls -l / | tee -a ~/homefile | less
字符转换命令
tr [-ds] string
-d 删除信息中string字符
-s 替换掉重复的字符
示例:
cat /root/passwd | tr -d '\r' > /root/passwd.linux
//cat -A /root/passwd可以显示所有特殊按键
//r指的是dos的断行字符
//上述命令可以将dos系统的换行符号转换成linux的
paste [-d] file1 file2
将两行贴在一起,且中间以[tab]分隔
-d 后面可以接分隔字符,默认是以[tab]分隔
- 如果file部分写成 - ,表示来自standard input的数据的意思
expand [-t] file
将[tab]按键转换成空格
-t 后面可以接数字,自定义一个tab代表多少个字符
split [-bi] file PREFIX
将一个大文件分割成几个小文件
-b 后面接欲切割成的文件的大小,可加单位,例如b, k, m
-l 以行数来进行分割
参数代换
xargs [-Open] command
-0 如果输入的stdin含有特殊字符,如 `, \ 等,这个参数可以将它还原成一般字符
-e 这个是eof,后面可以接一个字符串,当xargs分析到这个字符串时,就停止继续工作
-p 在执行每个命令的参数是,都会询问用户的意思
-n 后面接次数,每次command命令执行时,要使用几个参数的意思
示例可以参考man xargs