Linux学习7之Shell基础--Bash基本功能

一、历史命令与命令补全

  1.历史命令--history

    语法:history [选项] [历史命令保存文件]

    选项:-c  清空历史命令

       -w  把缓存中的历史命令写入历史命令保存文件(默认保存文件为各用户家目录下的.bash_history文件)

  历史命令默认保存1000条,看可以在环境变量配置文件/etc/profile中进行修改。

  

  2.历史命令的调用

  • 使用上下箭头调用以前的命令
  • 使用“!n”重复执行第n条命令,n可以用history命令查看
  • 使用“!!”重复执行上一条命令
  • 使用“!字串”重复执行最后一条以该字串开头的命令

  3.命令与文件补全

    在Bash中,命令与文件补全是非常方便与常用的功能,只要在输入命令或文件时,按“Tab”键即可自动补全命令或文件名。 

二、别名与快捷键

  1.命令别名

    在管理和维护Linux系统的过程中,管理员会使用大量的命令,对于一些常用的复杂的命令,管理员可以用命令别名的功能根据自己的使用习惯来简化这些命令,以提高效率。

  1.1 设定命令别名

    alias 别名='原命令'  

    如: alias vi='vim'  

  Linux学习7之Shell基础--Bash基本功能_第1张图片

  1.2 查询命令别名

    alias

  1.3 让别名永久生效 

    要是别名永久生效,可以修改各用户下的.bashrc文件,如是root下的别名生效,修改/root/.bashrc。

  1.4 删除别名

    unalias 别名

   Linux学习7之Shell基础--Bash基本功能_第2张图片

三、输入输出重定向

  1.标准输入输出  

设备

设备文件名

文件描述符

类型

键盘

/dev/stdin

0

标准输入

显示器

/dev/stdout

1

标准输出

显示器

/dev/stderr 

2

标准错误输出

  在Linux中,输入输出设备有多个,其中以键盘为标准输入设备,以显示器为标准输出设备。Linux中输出设备有两个,一个用来显示正确输出,一个用来显示错误输出。由于设备文件名不好记忆,所以在Shell中用0来代表标准输入,用1来代表标准输出,用2来代表错误输出。

  2.输出重定向

    输出重定向是指改变了命令结果的输出方向,可以保存在文件中以便查看。对于命令来说,必须是要有输出结果的命令才能使用命令重定向。

类型

符号

作用

     标准输出重定向

命令 > 文件

以覆盖的方式,把命令的正确输出输出到指定的文件或设备中

命令 >> 文件

以追加的方式,把命令的正确输出输出到指定的文件或设备中

标准错误输出重定向

命令 2> 文件

以覆盖的方式,把命令的错误输出输出到指定的文件或设备中

命令 2>> 文件

以追加的方式,把命令的错误输出输出到指定的文件或设备中

   以上四条命令可以看到,正确命令和错误命令的输出重定向格式是不同的,即在使用这四条命令时首先需要人为的判断命令的正确与否,来选择输出重定向格式。在实际应用中用处不大。下面介绍几条正确输出和错误输出同时保存的命令格式。

类型

符号

作用

 

 

正确输出和错误输出同时保存 

 

 

 

 命令 > 文件 2>&1

 

以覆盖的方式,把正确输出和错误输出都保存到同一个文件中

 命令 >> 文件 2>&1

以追加的方式,把正确输出和错误输出都保存到同一个文件中

 命令 &> 文件

以覆盖的方式,把正确输出和错误输出都保存到同一个文件中

 命令 &>> 文件

以追加的方式,把正确输出和错误输出都保存到同一个文件中

 命令 >> 文件1 2>>文件2

把正确的输出追加到文件1中,把错误的输出追加到文件2

    Linux学习7之Shell基础--Bash基本功能_第3张图片

  最后一个命令是把正确输出和错误输出分别保存

  Linux学习7之Shell基础--Bash基本功能_第4张图片

四、多命令顺序执行与管道符

  1. 多命令顺序执行

多命令执行符

命令格式

作用

命令1;命令2

多命令顺序执行,命令之间没有逻辑关系

&&

命令1&&命令2

逻辑与

当命令1正确执行时,命令2才会执行

当命令1执行不正确时,则命令2不会执行

||

命令1||命令2

逻辑或

当命令1执行不正确时,命令2才会执行

当命令1正确执行时,命令2不会执行

  例如:当使用分号符时,符号两边的命令按照顺序执行,互不影响。

    

  当使用逻辑与命令时,需要第一个命令正确执行,才会执行第二个命令。

    Linux学习7之Shell基础--Bash基本功能_第5张图片

  当使用逻辑或命令时,只有当第一个命令不正确执行,第二个命令才会执行。

    

  2.管道符

    命令格式:命令1 | 命令2

    作用:把命令1的正确输出作为命令2的操作对象

  如:我们可以分页显示/etc 目录下的文件,以便查看

    Linux学习7之Shell基础--Bash基本功能_第6张图片

  也可以使用grep 命令来对命令1的输出结果进行进一步搜索,得到我们想要的内容

  grep [选项] "搜索内容" 文件名

  选项:

    -i   忽略大小写

    -n  输出行号

    -v  反向查找 

    --color=auto  搜索出的关键字用颜色显示

  如:

    

  当结合管道符使用时

    

五、通配符与其他特殊符号

  1. 通配符

通配符

作用

?

匹配任意一个字符

*

匹配0或任意多个字符,也就是可以匹配任何内容

[]

匹配中括号中的任意一个字符。例如:[abc]代表一定匹配abc三个字符中的一个

[-]

匹配中括号中任意一个字符,-代表一个范围。例如:[a-z]代表匹配a-z中的任意一个小写字母

[^]

逻辑非,表示匹配不是中括号中的一个字符。例如:[^0-9]代表匹配一个不是数字的字符

  2.Bash中的其他特殊符号

符号

作用

‘’

单引号。在单引号中所有的特殊符号,如:$`(反引号)都没有特殊含义

“”

双引号。在双引号中除 “$”、“`”、“\”外都没有特殊含义

``

反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$()作用一样

$()

和反引号作用一样,用来引用系统命令

#

Shell脚本中,#开头的行代表注释行,不起作用

$

用于调用变量的值。如:$name 代表调用变量name的值

\

转义符。跟在\后的特殊符号将失去特殊含义,变为普通字符

 

转载于:https://www.cnblogs.com/anchun7080/p/10251209.html

你可能感兴趣的:(Linux学习7之Shell基础--Bash基本功能)