Учебник по Shell

Shell — это программа, написанная на языке C, и она является мостом для пользователей, чтобы использовать Linux. Shell — это одновременно командный язык и язык программирования.

Shell — это прикладная программа, предоставляющая интерфейс, через который пользователи получают доступ к службам ядра операционной системы.

sh Кена Томпсона был первым Unix Shell, а Windows Explorer — типичный Shell с графическим интерфейсом.

Онлайн-инструменты Shell


Shell-скрипты

Shell-скрипт — это программа-скрипт, написанная для shell.

Когда в индустрии говорят "shell", обычно имеют в виду shell-скрипты, но читателям следует знать, что shell и shell-скрипт — это два разных понятия.

В силу привычки и для краткости под «программированием 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 для Root(/sbin/sh)
  • ……

В этом руководстве основное внимание уделяется Bash, то есть Bourne Again Shell. Благодаря простоте использования и бесплатности Bash широко применяется в повседневной работе. В то же время Bash также является Shell по умолчанию в большинстве систем Linux.

Обычно люди не различают Bourne Shell и Bourne Again Shell, поэтому, как#!/bin/sh, его также можно изменить на#!/bin/bash。

#!сообщает системе, что программа, указанная в пути после него, является Shell-программой, которая интерпретирует этот файл скрипта.


Первый Shell-скрипт

Откройте текстовый редактор (можно использовать команду vi/vim для создания файла), создайте новый файл test.sh с расширением sh (sh означает shell). Расширение не влияет на выполнение скрипта; оно нужно только для удобства именования. Если вы пишете Shell-скрипты на PHP, просто используйте расширение php.

Введите некоторый код. Первая строка обычно выглядит так:

Пример

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

#!— это традиционный маркер, который сообщает системе, какой интерпретатор должен выполнить этот скрипт, то есть какую оболочку использовать.

Команда echo используется для вывода текста в окно.

Существует два способа запуска Shell-скрипта:

1. Как исполняемая программа

Сохраните приведённый выше код как test.sh и перейдите с помощью cd в соответствующий каталог:

chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

Обратите внимание, что нужно писать./test.sh, а неtest.sh. То же самое относится к запуску других бинарных программ. Если вы напишете test.sh напрямую, система Linux будет искать в PATH файл с именем test.sh, а в PATH обычно входят только /bin, /sbin, /usr/bin, /usr/sbin и т. д. Ваш текущий каталог обычно не входит в PATH, поэтому написание test.sh приведёт к "command not found"; нужно использовать ./test.sh, чтобы сообщить системе, что искать следует в текущем каталоге.

2. Как аргумент интерпретатора

Этот способ запуска заключается в прямом выполнении интерпретатора, аргументом которого является имя файла Shell-скрипта, например:

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

Скрипты, запускаемые таким образом, не нуждаются в указании информации об интерпретаторе в первой строке; она бесполезна, даже если вы её напишете.

Другие расширения