摘要:学习 Linux 类终端当中的通配符、管道符号等的使用。
前提:实验环境目录 /hello
构造如下:
1 2 3 4 5 6 7 8 9 10 11
| . ├── binggo.txt ├── hello1.txt ├── hello2.txt ├── hello3.txt ├── mf.txt └── sub └── sub_binggo.txt
1 directory, 6 files
|
使用 ls
命令,可查看当前命中文件结果:
1 2 3 4 5 6 7 8
|
$ ls $ ls -l $ ls -hl $ ls -al $ ls --human-readable --size -1 -S --classify $ du -sh * | sort -h
|
1 2
| binggo.txt hello1.txt hello2.txt hello3.txt mf.txt sub
|
通配符类:“ * ”、“ ? ”
当我们不知道确切的文件名时,可以用通配符来进行模糊操作。*
可以代表任意长度的任意字符,?
代表一个任意字符。
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| binggo.txt hello1.txt hello2.txt hello3.txt mf.txt sub: sub_binggo.txt
binggo.txt hello1.txt hello2.txt hello3.txt mf.txt
hello1.txt hello2.txt hello3.txt
mf.txt
binggo.txt hello1.txt hello2.txt hello3.txt
|
转义字符类:“ \ ”
如果要操作的文件名中包含有“*”、“?”这些特殊符号,我们可以结合“\”来表达。下面是通配符和正则表达式的一个简短列表:
1 2 3 4 5 6 7 8 9
| * 匹配所有字符
? 匹配字串中的一个字符
\* 匹配“*”字符
\? 匹配“?”字符
\) 匹配“)”字符
|
目录类:“ / ”、“ ~ ”、“ . ”、“ .. ”
它们分别代表的意思是:
1 2 3 4 5 6 7
| “/”:根目录(在中间使用表示路径)
“~”:用户根目录(用户登录时所在的目录)
“.”:当前目录
“..”:上级目录
|
测试验证:
1 2 3 4 5 6 7 8 9 10 11 12
| binggo.txt hello1.txt hello2.txt hello3.txt mf.txt sub
hello
AppleInternal System bin etc private usr Applications Users cores home sbin
Desktop Documents Downloads Library Movies Music Pictures Public opt
|
后台执行类:“ & ”
用户有时候执行命令要花很长时间,可能会影响做其他事情。最好的方法是将它放在后台执行。后台运行的程序在用户注销后系统还可以继续执行。当要把命令放在后台执行时,在命令的后面加上“&”。
重导向类:“ > ”、“ >> ”、“ < ”
重导向就是使命令改变它所认定的标准输出。
1 2 3 4 5
| “>” 可将结果输出到文件中,该文件原有内容会被删除,
“>>” 则将结果附加到文件中,原文件内容不会被删除。
“<” 可以改变标准输入。
|
如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| 1、将当前目录文件名输出到 list.txt文件中:
2、验证 list.txt 文件结果:
binggo.txt hello1.txt hello2.txt hello3.txt list.txt mf.txt sub
3、把根目录文件名追加到 list.txt 文件中:
4、验证 list.txt 文件结果:
binggo.txt hello1.txt hello2.txt hello3.txt list.txt mf.txt sub AppleInternal Applications …… usr var
|
管道类:“ | ”
管道 |
可将命令的结果输出给另一个命令作为输入之用:
1 2 3 4 5 6 7 8 9 10 11 12 13
| 找出 list.txt 文件中,包含字符串 “App” 的行,注明行号:
8:AppleInternal 9:Applications
找出 list.txt 文件中,包含以字符 “r” 结尾的行,注明行号:
23:usr 24:var
*说明:关于 grep 命令的使用,会专门在后续文章详解
|
连接符号类:“ ; ”
当有几个命令要连续执行时,我们可以把它们放在一行内,中间用 ;
分开。
1 2 3 4 5 6 7 8 9 10 11 12
| 需求: 1、新建一个子目录 /test 2、并在该目录下建立一个文件 abc.txt, 3、在文件中写入 “hello,legalgeek”
验证: 1、查看当前所在文件夹为:/test 2、验证 abc.txt 文件内容:
hello,legalgeek
|