Linux(六)Bash

可以通过 Shell 请求内核提供服务,Bash 正是 Shell 的一种。

特性

1. 命令历史:记录使用过的命令。本次登录所执行的命令都会暂时存放到内存中,\~/.bash_history 文件中记录的是前一次登录所执行过的命令。

2. 命令与文件补全:快捷键:tab。

3. 命名别名:例如 lm 是 ls -al 的别名。

4. shell scripts。

5. 通配符:例如 ls -l /usr/bin/X\* 列出 /usr/bin 下面所有以 X 开头的文件。

变量操作

– 对一个变量赋值直接使用 = ;
– 对变量取用需要在变量前加上 \$ ,也可以用 \${} 的形式;
– 输出变量使用 echo 命令。

$ var=abc
$ echo $var
$ echo ${var}

变量内容如果有空格,必须需要使用双引号或者单引号。

– 双引号内的特殊字符可以保留原本特性,例如 var=”lang is \$LANG”,则 var 的值为 lang is zh_TW.UTF-8;
– 单引号内的特殊字符就是特殊字符本身,例如 var=’lang is \$LANG’,则 var 的值为 lang is \$LANG。

可以使用 \`指令\` 或者 \$(指令) 的方式将指令的执行结果赋值给变量。例如 version=\$(uname -r),则 version 的值为 3.10.0-229.el7.x86_64。

可以使用 export 命令将自定义变量转成环境变量,环境变量可以在子程序中使用,所谓子程序就是由当前 Bash 而产生的子 Bash。

Bash 的变量可以声明为数组和整数数字。注意数字类型没有浮点数。如果不进行声明,默认是字符串类型。变量的声明使用 declare 命令:

$ declare [-aixr] variable
-a : 定义为数组类型
-i : 定义为整数类型
-x : 定义为环境变量
-r : 定义为 readonly 类型

使用 [ ] 来对数组进行索引操作:

$ array[1]=a
$ array[2]=b
$ echo ${array[1]}

指令搜索顺序

1. 以绝对或相对路径来执行指令,例如 /bin/ls 或者 ./ls ;
2. 由别名找到该指令来执行;
3. 由 Bash 内建的指令来执行;
4. 按 \$PATH 变量指定的搜索路径的顺序找到第一个指令来执行。

数据流重定向

重定向指的是使用文件代替标准输入、标准输出和标准错误输出。

1 代码 运算符
标准输入 (stdin) 0 < 或 <<
标准输出 (stdout) 1 > 或 >>
标准错误输出 (stderr) 2 2> 或 2>>

其中,有一个箭头的表示以覆盖的方式重定向,而有两个箭头的表示以追加的方式重定向。

可以将不需要的标准输出以及标准错误输出重定向到 /dev/null,相当于扔进垃圾箱。

如果需要将标准输出以及标准错误输出同时重定向到一个文件,需要将某个输出转换为另一个输出,例如 2>&1 表示将标准错误输出转换为标准输出。

$ find /home -name .bashrc > list 2>&1
本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » Linux(六)Bash

Leave a Reply

欢迎加入「极客文库」,成为原创作者从这里开始!

立即加入 了解更多