8_认识与学习shell

1.什么是shell

简单来说,就是可以调用其他应用程序的接口。如:可以通过shell将我们的指令与kernel进行沟通,从而使得硬件进行工作。

2.bash的功能
2.1 命令记录功能(history)

可以通过上下键进行翻阅历史指令。这些指令一般存放在家目录下的.bash_history文件中。不过值得注意的是/.bash_history记录的是上一次登录以前执行过的指令,而本次执行的指令驻留在内存当中,当注销系统后,本次登录系统后执行过的指令会记录在/.bash_history文件中

2.2 tab指令文件不全功能
2.3 命令别名设定功能(alias)

可以在命令行输入alias指令查看目前别名有哪些。如果要给某个指令设置别名可以通过alias 别名='指令',如:alias lm='ls -al'

2.4 作业控制、前台、后台控制(jobs control、foreground、background)

jobs、fg、bg

2.5 程序化脚本
2.6 通配符(wildcard)

例如ls -al /etc/s*

3.Shell的变量功能

变量是bash环境中重要的一个变量,linux系统是多人多任务的操作系统,每个用户登录都可以得到一个bash,所以对于每个用户而言,并不是所有的文件都是一样的,所以需要变量来区分。

3.1 影响bash环境的变量

某些特定的变量会影响到bash的环境。例如:PATH这个环境变量,能不能在任何目录下执行某个指令,与PATH这个环境变量有很大的关系。在Linux System中,真正以shell来和Linux沟通,是在正确的登录Linux系统之后,这个时候有一个bash的执行程序,也才可以真正的经由bash来和系统进行沟通。而在进入shell之前,由于系统需要一些变量来提供其数据的存储,就产生了所谓的环境变量。同时,为了区分环境变量与自定义的变量的不同,环境变量通常以大写字符表示。

3.2 脚本程序设计(shell script)的好帮手

.如果设计大型的脚本,可以使用自定义变量来定义,增强脚本的可移植性

3.3 变量的设定、变量的规则、以及变量移除

变量的读取:echo
可以在bash中通过 echo $变量名或者echo ${变量名}读取变量的具体内容
变量的设定:
变量名=内容 注:其中=号两侧不能有空格,即使内容后面也不能有空格,如果内容中存在空格可以使用双引号或者单引号将内容括起来
变量具体的设定规则如下:

  • 变量与变量内容以一个等号【=】来连接,如下所示
    myname=helloworld
  • 等号两边不能有直接空格符,如下错误演示:
    myname = helloworldmyname=hello world
  • 变量内容若有空格符,可使用双引号或者单引号将变量内容括起来,但是以下两种情况要注意:
    一、双引号内的特殊字符如$等,可以保持原本的特性,如:
    var="language is $LANG"echo $var可得到的是language is en_US
    二、单引号内的特殊字符则仅为一般字符(纯文本),如:
    var='language is $LANGecho $var可得到的是language is $LANG
  • 可以使用反斜杠\将特殊字符变为一般字符
  • 在一串指令中,如果还需要其他指令提供信息,可以使用反单引号`指令`或者 ( 指 令 ) 。 特 别 注 意 : 反 单 引 号 是 1 左 侧 的 按 键 , 如 : v e r s i o n = (指令)。特别注意:反单引号是1左侧的按键,如:version= ()1version=(uname -r)
  • 如果该变量要增加内容时可以使用 变 量 名 或 者 变量名或者 {变量名}累加内容,如:
    PATH="$PATH":/home/bin
  • 如果该变量需要在其他子程序执行,可以以export来使得变量成为环境变量
    export PATH
    取消变量名的方法:unset 变量名

你可能感兴趣的:(Linux)