Linux的shell编程篇之基础篇(一)

一、什么是shell

  shell就是命令的解释器。

  1、shell会提供一个实现人机交互的渠道(比如终端)。

  2、计算机只认识“0”和“1”,而我们的输入或者编写的代码都是字母、数字、特殊符号等字符。这时候,就需要shell解释器将我们输入或者运行的代码转换成为计算机所认识的“0”和“1”。

  3、在Linux中,主要使用的shell是Bourne Again(Bash);Unix中主要使用的是C Shell(csh)。

  4、可以使用 cat /etc/shells 命令查看Linux所支持的shell。(虽然支持,但是某些命令或者文件是不存在的,也无法执行某些命令)。

  

 二、基础知识点

 1、echo 命令(我们执行shell脚本时,输出的内容可以让我们直观的看到程序是否执行完成与是否成功,若失败,更好的输出可以让我们更加准确的看出问题所在)

  一般情况下,(echo  内容)会将内容输出,但是有些时候是需要(echo “内容”)才会正常输出,所以最好以第二种(echo “内容”)方式来使用。

  

  echo也可以使用选项。选项:

  a)、-n  取消输出行末尾的换行符。

  

  字符转换(转义符"\"),如果将“\”放到特殊字符前面,shell就忽略这些特殊字符的原有含义,把它们当作普通字符对待。

   

  b)、 -e 支持反斜线控制的字符转换。

  

   

  上图可以看出,有时也需要空格隔开。

  c)、可以为字体或字体的背景上色

  echo -e "\e[1;34m 1234 \e[0m"

  其中:(\e[1;)代表开启颜色输出;(34m)代表颜色;(1234)代表输出的内容;(\e[0m)代表结束颜色输出。

  

  

  

  d)、输出“!”时,需要在后面加一个空格。

  

 2、历史命令

  a)、使用 history 是可以查看历史命令的。

  

   b)、而 history 查看的历史命令有两种:一个是在缓存中的(还未写入.bash_history这个文件中);一个是已写入 history 文件中的。  

  

  c)、当系统重启、关闭或者用户正常注销时,会自动将缓存中的历史命令写入.bash_history文件中。也可以使用(-w)参数写入。

  

  d)、而.bash_history文件的记录的行数默认是1000行(可修改),可以查看/etc/profile文件。

  

  e)、历史命令的调用可以使用以下几种方法:

  a、使用键盘上的(上下)键。

  b、使用(!!)重复执行上一条命令。

  c、使用(!n)重复执行第n条命令。

  

  d)、使用(!字符串)重复执行最后一条该字符串开头的命令。

  e)、使用(!$)重复执行上一条命令的最后一个参数。

  

  f)、清空缓存中的历史命令。

  history -c

  

 3、命令别名

  a)、别名是给一个命令起一个好记的名字,当在bash中输入这个名字的时候,等同于输入命令。

  举例说明:

  

   b)、上面这样是临时生效,并未写入配置文件(.bashrc),可以编辑这个文件,以达到永久生效的目的。

  

   注意:由于.bashrc这个是环境变量配置文件,再次执行source .bashrc 命令,可以使这个环境变量配置文件直接生效。

  

   

   c)、命令的执行等级:

  一级:使用相对路径或绝对路径执行的命令

  二级:执行别名命令

  三级:执行bash的命令

  四级:按照$PATH环境变量定义的顺序找到的第一个命令

  所以:定义别名时,一定要避开三级、四级命令的名,尤其是写入.bashrc文件中,否则就永远也不会执行三级、四级中与命令名与别名相同的命令。

 4、bash的快捷键。

  

 5、输出输入重定向

  a)、bash的标准输入输出设备。

  

   Linux中存在上图这样的三个设备文件,左→右分别代表“标准错误输出(使用2表示)”、“标准输入(使用0表示)”、“标准输出(使用1表示)”。

  b)、输入输出重定向。

  重定向的含义是:改变原本输入或者输出的路径。

  举例:

  

    cat .bashrc 这个命令正常是将 .bashrc 文件中的内容,由标准输出设备来显示到显示器上的,但是使用了“>”,改变了其输出路径,输出到了test文件中,从而使得test文件记录下来。

  c)、输出重定向的种类

  

   d)、输入重定向。

  正常情况下,命令的输入都是靠键盘进行输入的,输入重定向就是改变输入的路径,将文件中的命令作为键盘输入的命令。

  一般情况下使用率极低,例如使用RPM包提取其中的文件时(cpio)命令。

 

posted on 2020-06-04 02:00  沫仔  阅读(270)  评论(0编辑  收藏  举报

导航