快速了解Linux/Unix系统中最重要的概念——shell
什么是shell?
命令解释器
英文shell是外壳的意思,在计算机领域中,shell即操作系统的外壳。我们可以通过shell来操作和控制操作系统。
总的来说,shell是一个命令解释器,你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。 说到底,shell是用户与内核进行交互操作的一种接口,用户通过shell命令来启动、暂停、停止程序的运行或对计算机进行控制。
脚本语言
所谓脚本语言就是不用编译就可以直接执行的语言。它通过解释器边解释边运行,所以速度相对来说比较慢。
shell还是一种解释执行的脚本语言,由一系列shell命令组成,这些命令都是可执行程序的名字。在shell中可以调用Linux系统命令。
shell程序设计语言支持在高级语言里所能见到的绝大多数程序控制结构,比如循环,函数,变量和数组。shell编程语言很易学,并且一旦掌握后它将成为你的得力工具。任何在提示符下能键入的命令都能放到一个可执行的shell程序里,这意味着用shell语言能简单地重复执行某一任务。
Linux中常见的shell
一个系统可以存在多个shell,可以通过 cat /etc/shells 命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同的,但是最常用的shell还是/bin/bash。
$ cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh
Demo(脚本文件.sh)
1. 先创建一个脚本文件script.sh, 后缀名是 .sh:
#!/bin/bash echo "this is the first shell script"
注意:执行之前首先要为脚本文件添加可执行权限,不然就得用root权限才能执行!
2. 添加可执行权限:
chmod +x script.sh
3. 执行script.sh。
三种方式:
(1) sh script.sh
(2) ./script.sh
(3)指定脚本文件的绝对路径,即可执行。例如: /home/Min/script.sh
区别:
第一种方式,使用/bin/sh所指向的shell解释器来执行脚本文件;
第二种方式,它默认使用/bin/sh所指向的shell解释器来执行脚本文件,前提是脚本文件中未指定解释器。但如果在脚本文件中指定了使用哪种脚本解释器,那么它就不管/bin/sh指向哪个脚本解释器,而是使用脚本文件中所制定的那个脚本解释器(本例的脚本文件中指定脚本解释器: #!/bin/bash);
第三种方式执行使用的脚本解释器和第二种相同。
常用命令
cat 文件名 #输出文件内容到基本输出(屏幕 or 加>fileName 到另一个文件) cb #格式化源代码 chmod #change mode,改变文件的权限 cp #copy date #当前的时间和日期 echo $abc #在变量赋值之后,只需在变量前面加一个$去引用. lint #语法检查程序 help 命令 #只能查询shell内置命令 man 命令 #即可以帮助查询linux内置命令,也可以查询linux外部命令。man查询的内容比help内容都多 ls #显示目录内容,linux原装命令 dir #也是显示Linux目录内容的命令,来自dos,Linux兼容 type #显示指定命令的类型 du #查看磁盘空间状况 ps #查看当前进程状况 who #你的用户名和终端类型 定义变量 name=abc (bash/pdksh) || set name = abc (tcsh) mkdir #创建目录 rmdir #删除目录 cd #进入目录 rm #删除文件 more #显示文件 echo #显示指定文本 mv #改文件名/移动文件 pwd #显示目录路径命令
这里再推荐一篇从底层逻辑来介绍shell的文章,简明扼要,深入浅出:Shell是什么?1分钟理解Shell的概念!
有关shell编程的基础内容讲解还可以看看这篇:Linux——shell脚本的基础篇(变量定义、变量种类、变量操作)
(整理自网络)
参考资料:
https://blog.csdn.net/weixin_41122339/article/details/81078900
https://baike.baidu.com/item/shell/99702