个人学习笔记,如有错误,欢迎大家指出!
一.管道通配符
命令符的作用:把前一个命令原本要输出到屏幕的数据当作是后一个命令的标准输入
格式:命令A | 命令B
例子:
Cat test.txt | bc
这个命令是将cat读取出的2+8这个数值,然后再把这个数值交给bc计算命令进行计算
root@167227159:~# cat test.txt
2+8
root@167227159:~# cat test.txt | bc
10
**注:**管道命令符可以在一个命令组合中使用多次,如:命令1 | 命令2 | 命令3
二.批量查看文件属性
指令:ls -l
**结果:**会返回所有的属性,文件少还好,多的话看不起,效率很低。
root@167227159:~# ls -l
total 648
drwxr-xr-x 2 root root 4096 Nov 7 22:22 hd.txt
-rw-r--r-- 1 root root 34965 Jun 20 15:06 install.sh
drwxr-xr-x 3 root root 4096 Oct 26 22:52 psweb
drwxr-xr-x 8 501 staff 4096 Jul 14 07:46 pure-ftpd-1.0.49
-rw-r--r-- 1 root root 610239 May 6 2019 pure-ftpd-1.0.49.tar.gz
-rw-r--r-- 1 root root 4 Nov 9 12:36 test.txt
三.命令行的通配符(模糊文件名)
作用:就是用来在找文件时,只记得一个文件的开头几个字母时,用来替代一些模糊内容的。
**通配符:**就是通用的匹配信息的符号
常见通配符:
- 星号
*
:代表匹配零个或多个字符(最常见) - 问号
?
:代表匹配单个字符 - 中括号内加上数字
[0-9]
:代表匹配0~9之间的单个数字的字符 - 中括号内加上字母
[abc]
:代表匹配a、b、c三个字符中的任意一个字符
例如:
例1:下面新建三个hello文件,但后缀不同。这时就可以用通配符*
替代后缀,用于搜索文件。
root@1672271595188:~# touch hello.txt
root@1672271595188:~# touch hello.yaml
root@1672271595188:~# touch hello.zip
root@1672271595188:~# ls
hd.txt hello.yaml install.sh pure-ftpd-1.0.49 test.txt
hello.txt hello.zip psweb pure-ftpd-1.0.49.tar.gz
root@1672271595188:~# find hello.*
hello.txt
hello.yaml
hello.zip
例2:
root@1672271595188:~/test# find h[abc]
ha
hb
hc
四.转义字符
常用的转义字符
-
反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串
-
单引号(''):转义其中所有的变量为单纯的字符串
-
双引号(""):保留其中的变量属性,不进行转义处理
-
反引号(``):把其中的命令执行后返回结果。
例如:
注:变量提取符号
$
$$
作用是显示当前程序的进程ID号码
希望能够输出“Price is $5”
,但碰巧由于美元符号和变量提取符号组合成$$,显示进程
[root@linuxprobe ~]# echo "Price is $$PRICE"
Price is 3767PRICE
这时就可以用反斜杠将后面的(最靠近的一个)转成普通的字符串
[root@linuxprobe ~]# echo "Price is \$$PRICE"
Price is $5
五.环境变量
变量:是计算机系统用于保存可变值的数据类型。
- 变量名称一般都是大写的
命令的执行顺序
**第一步:**判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是的话则直接执行。
**第二步:**Linux系统检查用户输入的命令是否为“别名命令”
**第三步:**Bash解释器判断用户输入的是内部命令还是外部命令。
- 内部命令是解释器内部的指令,会被直接执行
- 外部命令将交由第四步执行
**第四步:**系统在多个路径中查找用户输入的命令文件,然后再执行。
别名命令
即用一个自定义的命令名称来替换原本的命令名称。
**方法:**可以用alias命令创建一个属于自己的命令别名
创建别名命令格式:alias 别名=命令
删除别名命令格式:unalias 别名”