Урок курса
Написание первых скриптов
Bash Linux + Git: от новичка до уверенного пользователяЕсли отдельные команды – это хорошо, то Bash-скрипты – это вообще праздник автоматизации. Скрипт позволяет сохранить последовательность команд в файле, чтобы потом выполнить их все разом, словно один большой рецепт. Ты можешь писать свои "программы" на Bash, не будучи программистом в классическом смысле, используя те же команды, что ты уже выучил.
Как создать и запустить скрипт:
-
Открой любимый редактор (nano или vi) и набери в первой строке скрипта:
#!/bin/bash. Сочетание символов#!называется shebang, и оно говорит системе, каким интерпретатором исполнять этот файл. В данном случае мы указываем путь к Bash. -
На следующих строках запиши нужные команды так, как ты бы вводил их в терминале, по одной на строку. Например:
#!/bin/bash echo "Привет! Это мой первый скрипт." dateЗдесь мы вывели приветствие и текущую дату. Ты можешь записать в скрипте что угодно: вызвать
ls, запустить другие программы — всё, что делаешь обычно вручную. -
Сохрани файл, назови его, скажем,
myscript.sh. Теперь нужно сделать его исполняемым: в терминале выполниchmod +x myscript.sh. Это как дать скрипту разрешение быть запущенным. -
Запусти скрипт одним из двух способов:
-
Явно через интерпретатор:
bash myscript.sh(в этом случае даже не обязательно давать права на исполнение). -
Или как самостоятельную программу:
./myscript.sh(для этого важны и права+x, и правильный shebang). Если вдруг получишь ошибку "Permission denied" или "No such file or directory", проверь права и наличие shebang в первой строке.
-
При выполнении скрипта команды внутри него будут выполняться последовательно, как если бы ты их вручную вводил. Уже чувствуешь прилив силы? Первый скрипт – как первая самостоятельная готовка: пусть это пока и "яичница" из пары команд, но начало положено!
Разбор команды chmod
Что такое chmod?
chmod (от английского change mode) — это команда, которая изменяет права доступа (режимы) для файлов и каталогов. С её помощью можно задавать, кто и каким образом может читать, записывать или выполнять файл. Это важная часть управления безопасностью и организацией доступа в Unix-подобных системах.
Основной синтаксис
chmod [опции] режим файл_или_каталог
- режим — описание новых прав доступа, которое может задаваться в символьной или восьмеричной (цифровой) форме.
- файл_или_каталог — имя файла или каталога, для которого изменяются права доступа.
Способы задания прав доступа
1. Символьный способ
Символьное задание прав выглядит следующим образом:
chmod [кто][операция][права] файл
-
кто:
u— владелец (user)g— группа (group)o— остальные (others)a— все (all; эквивалентно u+g+o)
-
операция:
+— добавить права-— удалить права=— установить права точно
-
права:
r— право на чтениеw— право на записьx— право на выполнениеX— право на выполнение только если файл является каталогом или хотя бы один из уже имеющихся прав на выполнение установлен- Можно также использовать комбинации, например,
rw.
Примеры:
-
Добавить право на выполнение владельцу:
chmod u+x script.sh
-
Удалить права на запись для остальных:
chmod o-w file.txt
-
Установить для всех права чтения и выполнения, а права записи убрать:
chmod a=rx file.txt
2. Восьмеричный (цифровой) способ
В этом случае права задаются трёхзначным числом, каждая цифра соответствует владельцу, группе и остальным:
- Числовые значения прав:
4— чтение (r)2— запись (w)1— выполнение (x)- Сумма чисел задаёт набор прав. Например,
7(4+2+1) означает полный доступ (rwx).
Примеры:
-
Установить права
rwxдля владельца,rxдля группы иrxдля остальных:chmod 755 file.txt
-
Установить права
rw-для владельца и толькоr--для группы и остальных:chmod 644 file.txt
Примеры использования
Пример 1: Добавление права на выполнение для владельца
chmod u+x script.sh
Если у файла script.sh уже установлены права на чтение и запись для владельца, данная команда добавит право на выполнение, позволяя запускать скрипт.
Пример 2: Установка фиксированных прав с помощью цифровой записи
chmod 755 /usr/local/bin/myapp
Эта команда устанавливает следующие права:
- Владелец:
rwx(7) - Группа:
rx(5) - Остальные:
rx(5)
Пример 3: Удаление права на запись для группы и остальных
chmod go-w confidential.txt
Команда удаляет право на запись (w) для группы (g) и остальных (o).
Пример 4: Использование опции -R для рекурсивного изменения прав
chmod -R 700 /home/user/secure_dir
Эта команда устанавливает права rwx только для владельца для каталога secure_dir и всех его файлов и подкаталогов.
Полезные советы
- Проверка текущих прав:
Перед изменением прав полезно посмотреть текущие настройки с помощью команды:ls -l filename
- Опция -R:
Для изменения прав доступа в каталоге вместе с его содержимым используйте опцию-R(рекурсивно). - Символьный способ удобен для небольших изменений,
а восьмеричный — для установки фиксированных наборов прав.
Продолжить с проверкой и прогрессом
Откройте интерактивный раннер с заданиями урока.
