Unix / Linux - Что такое Shell?
Здравствуйте,future programmers! Добро пожаловать в увлекательное путешествие в мир Unix и Linux shell'ов. Как ваш доброжелательный сосед по компьютерным наукам, я рад помочь вам понять этот базовый концепт. Погружаемся!
Что такое Shell?
Представьте, что вы пытаетесь общаться с другом, который говорит на другом языке. Вам нужен переводчик, верно? Так вот, shell - это как раз такой переводчик между вами и вашей операционной системой. Это командный интерпретатор, который принимает ваши человеческие команды и translate их в что-то, что компьютeр может понять и выполнить.
В мои первые годы преподавания я привык tell своим студентам думать о shell как о магическом говорящем моллюске, который живет внутри их компьютeра. Вы шепчите команды ему, и компьютeр выполняет вашу волю. Это не entirely точная аналогия, но она действительно помогает запомнить концепцию!
Shell Prompt
Когда вы открываете терминал на вашей Unix или Linux системе, вы увидите что-то вроде этого:
username@hostname:~$
Это ваш shell prompt. Это как компьютeр говорит, "Я готов к вашей команде, о великий пользователь!" Давайте разберем это:
-
username
: Это вы! -
@
: Просто означает "в" -
hostname
: Имя вашего компьютeра -
~
: Ваш текущий каталог (~ означает домашний каталог) -
$
: Indicates, что вы обычный пользователь (было бы # для root пользователя)
Типы Shell
Существует несколько типов shell, доступных в Unix/Linux системах. Это как если бы у вас было несколько вкусов мороженого - все они вкусные, но у каждого свой уникальный вкус! Вот некоторые из них:
Название Shell | Описание |
---|---|
Bourne Shell (sh) | Оригинальный Unix shell |
Bourne Again Shell (bash) | Улучшенная версия sh, самая распространенная в Linux |
C Shell (csh) | Синтаксис, похожий на язык программирования C |
Korn Shell (ksh) | Комбинация особенностей sh и csh |
Z Shell (zsh) | Расширенная версия bash с множеством улучшений |
Bash - это самый распространенный shell, с которым вы столкнетесь, поэтому мы сосредоточимся на нем в наших примерах.
Shell Скрипты
Теперь, вот где происходит магия! Shell скрипты - это как кулинарные книги для вашего компьютeра. Вместо того чтобы вводить команды одну за другой, вы можете написать serie commands в файле и запустить их все сразу. Это как научить компьютeр новому трюку!
Пример Скрипта
Давайте создадим наш первый shell скрипт. Мы назовем его hello_world.sh
:
#!/bin/bash
echo "Hello, World!"
echo "Welcome to the wonderful world of shell scripting!"
echo "Today's date is $(date)"
echo "Your current directory is $(pwd)"
Давайте разберем это:
-
#!/bin/bash
: Это называется shebang. Он tells систему, какой интерпретатор использовать (в этом случае, bash). -
echo
: Эта команда выводит текст на экран. -
$(date)
и$(pwd)
: Это командные подстановки. Они запускают команды внутри скобок и вставляют результат в нашу echo команду.
Чтобы запустить этот скрипт:
- Сохраните его как
hello_world.sh
- Сделайте его исполняемым:
chmod +x hello_world.sh
- Запустите его:
./hello_world.sh
Вы должны увидеть что-то вроде:
Hello, World!
Welcome to the wonderful world of shell scripting!
Today's date is Mon May 15 10:30:45 PDT 2023
Your current directory is /home/username
Не правда ли, это классно? Вы только что создали свой первый shell скрипт!
Комментарии в Shell
Комментарии - это как маленькие записки, которые вы оставляете себе (или другим программистам) в вашем коде. В shell скриптах, комментарии начинаются с #
:
# This is a comment
echo "This will be printed"
# echo "But this won't be printed"
Я всегда говорю своим студентам: комментируйте свой код, как будто человек, читающий его, - это Violent psychopath, который знает, где вы живете. Понятные комментарии могут спасти жизни! (Или хотя бы предотвратить разочарование.)
Расширенные Shell Скрипты
По мере того как вы станете более��适но чувствовать себя с shell scripting, вы можете создавать более сложные скрипты. Вот пример, который демонстрирует переменные, ввод пользователя и условные операторы:
#!/bin/bash
# Спросите имя пользователя
echo "What's your name?"
read name
# Приветствуйте пользователя
echo "Hello, $name! Nice to meet you."
# Спросите возраст пользователя
echo "How old are you?"
read age
# Проверьте, достаточно ли пользователю лет, чтобы голосовать
if [ $age -ge 18 ]
then
echo "You're old enough to vote!"
else
echo "You're not old enough to vote yet."
years_left=$((18 - age))
echo "You'll be able to vote in $years_left years."
fi
Этот скрипт:
- Спрашивает имя и возраст пользователя
- Использует переменные для хранения и использования этой информации
- Использует условное (if-else) выражение для проверки возраста
- Выполняет расчет, чтобы определить годы до достижения избирательного возраста
Помните, учиться программировать - это как учиться ездить на велосипеде. Сначала вы можете несколько раз упасть, но с практикой вы быстро научитесь!
Надеюсь, это введение в shells вызвало ваш интерес. Продолжайте исследовать, задавайте вопросы и, самое главное, продолжайте программировать! Кто знает? Может быть,有一天 вы будете учить следующее поколение программистов о магическом мире shell'ов!
Credits: Image by storyset