认识与学习BASH

认识与学习BASH

应用程序在最外面,就如同鸡蛋的外壳一样,因此被称呼为shell(壳程序)。其实壳程序的功能只是提供操作系统的一个接口。

              应用程序

                ↓

              操作系统(系统呼叫+核心)

                ↓

               硬件

linux预设的shell就是bash

“Tab“:接在一串指令的第一个字的后面,则为命令补全

    接在一串指令的第二个字以后时,则为档案补齐

命令别名设定功能:(alias)

查看所有档案(包含隐藏档)及所有的文件属性:ls -al

设置别名命令:alias lm=‘ls -al’ 

可以在指令列输入alias就可以知道目前的命名别名有哪些。

type [-tpa] name

:1、不加任何选项与参数时,type会显示出name是外部指令还是bash内建指令

  2、“-t” :type会将name以底下这些字眼显示出他的意义:

      file:表示为外部指令

      alias:表示该指令为命令别名所设定的名称

      builtin:表示giant指令为bash内建的指令

   “-p”:后接name为外部指令时,才会显示完整文件名

   “-a”:会由PATH变量定义的路径中,将所有含name的指令都列出来,包含alias

变量的读取与设定:echo unset

利用echo来读取变量,变量在被读取时,前面必须要加上“$”  格式:echo $variable或者echo ${var}

设定和修改变量的内容:格式  :var=内容

如:echo $myname    //不显示任何数据,因为这个变量尚未被设定,是空值

  myname=Vbird  //myname    设定值

  echo $myname  //显示VBird

  注意:在bash当中,当一个变量名称尚未被设定时,预设的内容是“空”

变量设定规则:

1.变量与变量内容以一个等号“=”来连接,且等号两边不能直接接空格符

2.变量名称只能是英文字母与数字,但开头字符不能是数字

3.变量内容若有空格符可使用双引号【“】或者单引号【‘】将变量内容结合起来,但

  双引号内的特殊字符如$等,可以保留原来的特性。如[var="lang is $LANG"]则[echo $var]可得[lang is en_US]

  单引号内的特殊字符则仅仅为一般字符(纯文本),如[var='lang is $LANG']则[echo $var]可得[lang is $LANG]

4.可用跳脱字符""将特殊符号([enter],$,\,空格符,等)变成一般字符

5.在一串指令中,若需借由其他的指令提供的信息,可使用反单引号【`指令`】或【$(指令)】。注:`是键盘上方1左边那个按键,而不是单引号。

  【var=$(uname -r)】再【echo $var】可得【2.6.18-128.el5】

6.若该变量为扩增变量内容时,则可用“$变量名称”或${变量}累加内容。如【PATH=“PATH”:/home/bin】

7.若该变量需在其他子程序中执行,则需要以export来使变量变成环境变量:【export PATH】

8.取消变量unset,【unset变量名称】

例:unset myname