Shell 教程

Shell 是一个用 C 说话编写的法式,它是用户利用 Linux 的桥梁。Shell 既是一种号令说话,又是一种法式设想说话。

Shell 是指一种利用法式,这个利用法式供给了一个界面,用户经由进程这个界面拜候操纵体系内核的办事。

Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典范的图形界面 Shell。

快乐飞艇是犯法的吗:Shell 在线东西


Shell 剧本

Shell 剧本(shell script),是一种为 shell 编写的剧本法式。

业界所说的 shell 凡是都是指 shell 剧本,但读者伴侣要晓得,shell 和 shell script 是两个差别的观点。

因为习气的缘由,简练起见,本文呈现的 "shell编程" 都是指 shell 剧本编程,不是指开辟 shell 本身。


Shell 环境

Shell 编程跟 JavaScript、php 编程一样,只需有一个能编写代码的文本编辑器和一个能诠释履行的剧本诠释器便能够了。

Linux 的 Shell 品种浩繁,罕见的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)
  • ……

本教程存眷的是 Bash,也便是 Bourne Again Shell,因为易用和收费,Bash 在平常任务中被普遍利用。同时,Bash 也是大大都Linux 体系默许的 Shell。

在普通环境下,人们并不辨别 Bourne Shell 和 Bourne Again Shell,以是,像 #!/bin/sh,它一样也能够改成 #!/bin/bash

#! 告知体系厥后途径所指定的法式便是诠释此剧本文件的 Shell 法式。


第一个shell剧本

翻开文本编辑器(能够利用 vi/vim 号令来建立文件),新建一个文件 test.sh,扩大名为 sh(sh代表shell),扩大名并不影响剧本履行,见名知意就好,若是你用 php 写 shell 剧本,扩大名就用 php 好了。

输入一些代码,第一行普通是如许:

实例

#!/bin/bash
echo "Hello 法式员 !"

运转实例 »

#! 是一个商定的标记,它告知体系这个剧本须要甚么诠释器来履行,即利用哪种 Shell。

echo 号令用于向窗口输入文本。

运转 Shell 剧本有两种体例:

1、作为可履行法式

将下面的代码保管为 test.sh,并 cd 到响应目次:

chmod +x ./test.sh  #使剧本具备履行权限
./test.sh  #履行剧本

注重,必然要写成 ./test.sh,而不是 test.sh,运转别的二进制的法式也一样,间接写 test.sh,linux 体系会去 PATH 里寻觅有不叫 test.sh 的,而只要 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你确以后目次凡是不在 PATH 里,以是写成 test.sh 是会找不到号令的,要用 ./test.sh 告知体系说,就在以后目次找。

2、作为诠释器参数

这类运转体例是,间接运转诠释器,其参数便是 shell 剧本的文件名,如:

/bin/sh test.sh
/bin/php test.php

这类体例运转的剧本,不须要在第一行指定诠释器信息,写了也没用。