linux shell一些重要指令
- ?代表的是回传值这个变量代表的是上一个命令执行的回传的值,一般来说,成功执行回传1,不成功执行就会回传其他值
- export 代表的是自定义变量转环境变量,差别在于该变量是否会被子进程引用。
- 变量内容的删除:{path%%/*test/bin}
- 替换功能:{path//sbin//bin}
- 变量内容替换 {username:-ljw}区别
- 变量设置内容替换具体要看变量设置相关的表
- alias 命令别名进行操作
- history
数据流重定向
首先区分一下标准输出和标准错误输出。
简单的说,标准输出指的是命令执行所传回的正确的信息,而标准错误输出可理解为命令执行失败后所传回的错误信息。
数据重定向就是把标准输出和标准错误输出的结果分别传送到其他的文件或者设备中去,这对于我们想要将某些数据保存下来是很有用的。分别传送所用的字符如下:
- 标准输入(stdin):代码为0,使用< 或 <<;
- 标准输出(stdout):代码为1,使用> 或 >>;
- 标准错误输出(stderr):代码为2,使用2> 或 2>>;
这里说明一下:单个(> 或 <)是指覆盖写,覆盖的意思就是如果目标文件存在数据时,把原数据清空,再写进去。而双个(<< 或 >>)是指追加写。也就是,接在原数据的后面写入。
graph LR
file-->Command
Command-->standardOutput-File/device
Command-->standardError-File/device
输出正确数据输出到文件忠
数据流输出到指定文件进行覆盖>或1> 文件路径
[carver@master ~]$ ll > ~/rootfile
[carver@master ~]$ cat ~/rootfile
total 8
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Desktop
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Documents
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Downloads
-rw-rw-r--. 1 carver carver 92 Jun 19 14:53 dump.rdb
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Music
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Pictures
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Public
-rw-rw-r--. 1 carver carver 0 Aug 12 22:05 rootfile
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Templates
-rwxrwxr-x. 1 carver carver 46 Aug 12 21:02 test.sh
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Videos
[carver@master ~]$ ll > ~/rootfile
[carver@master ~]$ cat ~/rootfile
total 8
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Desktop
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Documents
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Downloads
-rw-rw-r--. 1 carver carver 92 Jun 19 14:53 dump.rdb
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Music
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Pictures
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Public
-rw-rw-r--. 1 carver carver 0 Aug 12 22:07 rootfile
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Templates
-rwxrwxr-x. 1 carver carver 46 Aug 12 21:02 test.sh
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Videos
数据流追加到原来文件命令>>h或1>> 文件路径
[carver@master ~]$ ll >> ~/rootfile
[carver@master ~]$ cat ~/rootfile
total 8
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Desktop
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Documents
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Downloads
-rw-rw-r--. 1 carver carver 92 Jun 19 14:53 dump.rdb
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Music
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Pictures
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Public
-rw-rw-r--. 1 carver carver 0 Aug 12 22:07 rootfile
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Templates
-rwxrwxr-x. 1 carver carver 46 Aug 12 21:02 test.sh
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Videos
total 12
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Desktop
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Documents
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Downloads
-rw-rw-r--. 1 carver carver 92 Jun 19 14:53 dump.rdb
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Music
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Pictures
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Public
-rw-rw-r--. 1 carver carver 585 Aug 12 22:07 rootfile
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Templates
-rwxrwxr-x. 1 carver carver 46 Aug 12 21:02 test.sh
drwxr-xr-x. 2 carver carver 6 May 28 18:00 Videos
进行分类输出文件
[carver@master ~]$ find / -name redis >rightMessage 2> errorMessage
[carver@master ~]$ ll rightMessage errorMessage
-rw-rw-r--. 1 carver carver 76497 Aug 12 22:16 errorMessage
-rw-rw-r--. 1 carver carver 18 Aug 12 22:16 rightMessage
命令执行判断依据
很多命令需要一次性执行,而不想要分开执行,可以使用shell编程或者使用:;,&& ||命令进行执行操作,但是笔主觉得偏向于用shell编程,所以这里不展开说明。
管道命令
我们经常会遇到一些命令,输出就会霸占整个控制台,对排查问题并不友好。管道命令可以解决上面的问题,类似less,more,tail命令
- cut -d'分割符' -f fields | cut -c 字符范围
- grep 指令,sort wc uniq 命令
- 字符转换命令 tr col join psate expand