1、 > 和 >> 用法
这两个符号> 和 >> 主要区别如下:
符号>:覆盖现有文件,如果目录中不存在上述名称的文件,则创建一个文件。
符号>>:追加现有文件,如果目录中不存在上述名称的文件,则创建一个文件。
echo 'abc' > test.txt #创建个test.txt的文件,并且将abc写到文件中
echo '123' >> test.txt #会在文件下方,再次追加写入内容
2、 ; 分号用法
用于在一行中依次执行多个命令。用;号隔开每个命令, 每个命令按照从左到右的顺序,顺序执行,彼此之间不关心是否失败, 所有命令都会执行。
sleep 5h ; make timing
3、 | 管道符用法
Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
ls | grep .py 需要通过管道查询当前目录下包含.py的文件(即python文件)
| 管道符一般会与其他指令一起使用,比如sort,uniq,tee等。
uniq— 用于检查及删除文本文件中重复出现的行【去重】,一般与 sort 命令结合使用。
cat test | sort | uniq #1,使用cat命令查看test文件,打印到屏幕上内容即为cat命令的输出结果; 2.将前面cat命令输出的结果通过管道丢给sort命令,对前面cat命令输出的文本进行排序;3.通过管道将sort处理后输出的文本丢给uniq处理,uniq处理的是排序好的文本,可以进行有效去重
tee 命令从标准输入读取数据后,将数据重定向到给定的文件和标准输出。
因为 tee 意为字母 T,数据从左边(标准输入)流入,从右边(标准输出)和下面(文件)分流输出,字母 T 的形状很形象地说明了数据的流向,故将该命令命名为 tee。数据流向过程如下图所示。
bsub -n 8 -Is "pt_shell -constraints -f gca.tcl" | tee gca.log
4、 || 符号用法
|| 逻辑“或”,表示前一条命令执行成功时,后一条命令不再执行;如果前面一条命令执行失败,后面的命令再执行。
ls -l zzz.txt && echo "failure"
5、 & 符号用法
&放在启动参数后面表示设置此进程为后台进程。
java -version &
默认情况下,进程是前台进程,这时就把Shell给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个&实现这个目的。
6、 && 符号用法
&& 逻辑“与”,表示前一条命令执行成功时,才执行后一条命令;如果前面一条命令执行失败,后面的命令不再执行。
ls -l aa && echo "success"
7、 * 符号用法
星号(*)通常用于匹配任何字符,包括数字、字母和符号。*表示任意字符或字符串(用于匹配多个字符)。
8、 ? 符号用法
?代表通配符,用于匹配单个字符。例如,如果想列出所有名称以“a”为第一个字母、第三个字母为“c”以及倒数第二个字母是小写字母“x”的文件,可以使用以下命令:
9、 [] 符号用法
[…]可用于匹配括号内任意一个字符。例如,如果想列出以“a”、“d"开头的文件,可以使用以下命令:
10、 {}符号用法
{…}可用于匹配花括号内的任意一个字符串。例如,如果想列出以“Hebei”,或“Shanghai”开头的文件,可以使用以下命令:
11、 $ 符号用法
符号 $ 为变量替换符,用于引用环境变量或脚本中定义的变量。一般情况下, $ var与 $ {var}是没有区别的,但是用 $ { }会比较精确的界定变量名称的范围。
variable="world" #先定义变量variable=“world”
echo "Hello, $variable!" 再通过$(变量替换符)调用该变量
12、 () 符号用法
()代表子shell符号,用于将一组命令放到新的shell中执行。
i=1; echo $i; (let i+=5;echo $i); echo $i
在上面的实例中,执行命令i=1; echo $i时变量i的初始值为1;
执行(let i+=5;echo $i);时,会创建一个子shell来执行,变量i的值为5+1=6;
最后执行 echo $i,母shell中变量i的值并没有继承子shell中数值的变化,因此仍为1。