Учебник по 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.
Введите некоторый код. Первая строка обычно выглядит так:
Пример
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
Скрипты, запускаемые таким образом, не нуждаются в указании информации об интерпретаторе в первой строке; она бесполезна, даже если вы её напишете.
Другие расширения