Linux学习笔记(六)Bash Shell

1.用户通过Shell与核心(kernel)沟通。计算机自里向外依次是:硬件,核心,Shell,用户

2.KDE,GNOME之类的图形操作界面也可以视作广义的Shell

3.为了与自定义变量区别,环境变量通常以大写字母来表示,如PATH,MAIL

4.变量就是以一组文字或符号,来替换一些设置或是一串保留的数据

5.可以用echo命令显示变量,获取变量内容要前加$,如

echo $MAIL

6.变量赋值

myname=tae

等号左右不能有空格

7.对于含空格的赋值,采用双引号,如下

name=”how are you”

单引号类似,区别在于:双引号仍然可以保持变量的内容,但单引号内只能是一般字符

8.若追加变量内容,需用到双引号和$,如下

PATH=”$PATH”:/home

即在PATH环境变量内容中追加了:/home

9.设置变量的好处:

1)类似于别名,譬如

name=/home/tae/work/vim

cd $name

等价于

cd /home/tae/work/vim

2)脚本中方便维护,类似于C中的宏#define

10.本次登录所进行的变量设置,如果没有更改设置文件,那么这次设置的变量在下次登录时将被取消。所以如果想要变量每次都能在登录时自动设置好,就必须将设置写入登录时加载的设置文件,用alias设置的别名也一样

11.自定义变量与环境变量的区别在于:自定义变量不能存在于别的bash程序(即子程序)中

12.export [自定义变量]:将自定义变量转换为环境变量,使得其可以存在于子程序中

因此,在两个脚本文件(.sh)间传递变量时,需要使用export命令

13.上面提到的变量赋值都是通过=在命令行里赋值,另外一种方法使用read命令交互式赋值(类似于scanf)

read [-pt] [要赋值的变量名]

-p后跟提示符字符串,-t后跟等待接收的秒数

14.declare [-aixr] [变量名]

声明变量的类型和属性

-a:定义为数组

-i:定义为整型

-x:定义为环境变量,类似于export

-r:设置为只读,不能更改,也不能取消设置(unset)

15.引用数组变量方式,如

${ary[0]}

16.可以使用env命令或export命令查看环境变量

17.各环境变量意义如下:

HOME:家目录,即~

SHELL:当前环境使用的shell程序,默认为/bin/bash

PATH:执行文件的搜索路径,目录间以:分隔

18.bash配置文件(设置PATH,alias)是~/.bashrc

更改完配置文件后,可用命令

source ~/.bashrc

使配置立刻生效

否则,只能logout后重新login到bash内使之生效

19.数据流重导向:”将某个命令执行后应该要出现在屏幕上的数据,传输到其他地方“或”将原本需要由键盘输入的数据,通过文件来读入“

传送命令如下:

标准输入:使用<或<<

标准输出:使用>或>>

标准错误输出:使用2>或2>>

>与>>的区别在于:>是将文件清空后再输出,而>>是累加输出

如果不要输出信息,可将数据输出到/dev/null中,这是个相当于”黑洞“的垃圾桶

20.命令执行的条件判断

;可以一次执行多个命令,如

sync; sync; shutdown -h now

&&表示若前一个命令执行成功,则执行后一个命令,如

ls /tmp && touch /tmp/test

||表示若前一个命令执行失败,则执行后一个命令,如

ls /tmp/test || touch /tmp/test

进行分叉判断时,&&必须在||的前面,即

command1 && command2 || command3

21.

等待故人的归来。山上的树,大多数是松树比较突出。

Linux学习笔记(六)Bash Shell

相关文章:

你感兴趣的文章:

标签云: