linux shell 指令

linux shell一些重要指令

  • ?代表的是回传值这个变量代表的是上一个命令执行的回传的值,一般来说,成功执行回传1,不成功执行就会回传其他值
  • export 代表的是自定义变量转环境变量,差别在于该变量是否会被子进程引用。
  • 变量内容的删除:{path#/*test/bin},{path%%/*test/bin}
  • 替换功能:{path/sbin/bin}{path//sbin//bin}
  • 变量内容替换 {username-ljw}和{username:-ljw}区别
  • 变量设置内容替换具体要看变量设置相关的表
  • alias 命令别名进行操作
  • history

数据流重定向

首先区分一下标准输出和标准错误输出。
简单的说,标准输出指的是命令执行所传回的正确的信息,而标准错误输出可理解为命令执行失败后所传回的错误信息。
数据重定向就是把标准输出和标准错误输出的结果分别传送到其他的文件或者设备中去,这对于我们想要将某些数据保存下来是很有用的。分别传送所用的字符如下:

  1. 标准输入(stdin):代码为0,使用< 或 <<;
  2. 标准输出(stdout):代码为1,使用> 或 >>;
  3. 标准错误输出(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

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 1,176评论 0 2
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 2,473评论 0 1
  • 概述 首先,咱们来了解一下,什么是Shell。操作系统内核给我们提供了各种接口,同时也提供了各种用户层的库,理论上...
    keysaim阅读 402评论 0 0
  • 1、bash 与 shell 管理整个计算机硬件的其实是操作系统的内核(Kernel),这个内核是需要被保护的,所...
    Zhang21阅读 188评论 0 2
  • 第 2 章 SHELL 基础知识2.1 shell脚本我们在上面简单介绍了一下什么是shell脚本,现在我们来进一...
    LiWei_9e4b阅读 244评论 0 0