English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

教程Shell

Shell è un programma scritto in C, è il ponte tra l'utente e Linux. Shell è sia un linguaggio di comando che un linguaggio di programmazione.

Shell è un'applicazione che fornisce un'interfaccia per accedere ai servizi del kernel del sistema operativo.

Sh di Ken Thompson è il primo Shell Unix, Windows Explorer è un esempio tipico di Shell a interfaccia grafica.

Shell script

Shell script (script Shell), è un programma scritto per Shell.

Nel gergo dell'industria, si dice spesso Shell, ma è importante sapere che Shell e Shell script sono due concetti diversi.

Per motivi di abitudine e chiarezza, nel testo si fa riferimento alla "programmazione Shell" come programmazione di script Shell, non come sviluppo del Shell stesso.

Ambiente Shell

La programmazione Shell è simile alla programmazione JavaScript o php, è sufficiente avere un editor di testo in grado di scrivere codice e un interprete di script in grado di eseguire il file.

Ci sono molte varianti di Shell in Linux, tra le più comuni ci sono:

  • Bourne Shell (/usr/bin/sh o /bin/sh)

  • Bourne Again Shell (/bin/bash)

  • C Shell (/usr/bin/csh)

  • K Shell (/usr/bin/ksh)

  • Shell for Root (/sbin/sh)

  • ...

Questa guida si concentra su Bash, ovvero Bourne Again Shell, grazie alla sua facilità d'uso e gratuità, Bash è ampiamente utilizzato在日常工作中. Inoltre, Bash è anche lo Shell predefinito su molti sistemi Linux.

In generale, le persone non distinguono tra Bourne Shell e Bourne Again Shell, quindi, come #!/bin/sh, può anche essere modificato in #!/bin/bash

#! Informare il sistema che il programma specificato dal percorso successivo è il programma Shell che interpreta questo file di script.

Il primo script shell

Apri un editor di testo (puoi utilizzare i comandi vi/vim per creare file), crea un nuovo file chiamato test.sh con estensione sh (sh rappresenta shell), l'estensione non influisce sull'esecuzione dello script, basta che sia intuitivo, se stai scrivendo uno script shell in php, usa l'estensione php.

输入一些代码,第一行一般是这样:

实例

#!/bin/bash
echo "Hello World !"

#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 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

这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。