1. Просмотр прав — ls -la
ls -la
Типичный вывод:
total 28
drwxr-xr-x 2 alice devs 4096 Jun 11 10:00 .
drwxr-xr-x 5 alice devs 4096 Jun 11 09:00 ..
-rw-r--r-- 1 alice devs 512 Jun 11 10:00 file.txt
-rwxr-xr-x 1 alice devs 128 Jun 11 10:01 script.sh
-rw------- 1 alice alice 1234 Jun 8 12:00 id_rsa
Расшифровка строки -rwxr-xr-x:
-— обычный файл (не директория)rwx— владелец: читать, писать, запускатьr-x— группа: читать, запускать (не писать)r-x— остальные: читать, запускать (не писать)
2. Числовой chmod
# Скрипт: владелец всё, группа и остальные — читать+запускать
chmod 755 script.sh
ls -la script.sh
# -rwxr-xr-x 1 alice devs 128 Jun 11 10:01 script.sh
# Файл данных: владелец читает+пишет, остальные — только читают
chmod 644 file.txt
ls -la file.txt
# -rw-r--r-- 1 alice devs 512 Jun 11 10:00 file.txt
# Приватный SSH-ключ: только владелец читает+пишет
chmod 600 ~/.ssh/id_rsa
ls -la ~/.ssh/id_rsa
# -rw------- 1 alice alice 1234 Jun 8 12:00 /home/alice/.ssh/id_rsa
3. Буквенный chmod
# Добавить право выполнения всем (a+x = u+x + g+x + o+x)
chmod a+x script.sh
# Добавить выполнение только владельцу
chmod u+x script.sh
# Убрать запись у группы и остальных
chmod go-w file.txt
# Точно установить права: владелец rw, группа и остальные r
chmod u=rw,go=r file.txt
# Убрать все права у остальных
chmod o= private.key
4. Первый bash-скрипт
Создайте файл с помощью nano script.sh или vi script.sh и введите следующее содержимое:
script.sh
#!/bin/bash
# Это мой первый bash-скрипт — комментарий
name="Andrew"
echo "Hello $name"
date
Строки:
#!/bin/bash— shebang: скажет системе запускать этот файл через/bin/bash# Это мой первый bash-скрипт— комментарий, игнорируется при выполненииname="Andrew"— переменная без пробелов вокруг=(важно!)echo "Hello $name"— вывод строки,$nameзаменится значением переменнойdate— вывод текущей даты и времени
5. Сделать исполняемым и запустить
# Шаг 1: сделать файл исполняемым
chmod +x script.sh
# Шаг 2: убедиться, что бит x появился
ls -la script.sh
# -rwxr-xr-x 1 alice devs 128 Jun 11 10:01 script.sh
# Шаг 3: запустить из текущей директории
./script.sh
# Вывод:
# Hello Andrew
# Wed Jun 11 10:01:00 UTC 2025
Три способа запуска
# Способ 1 (предпочтительный): ./имя_скрипта
./script.sh
# Способ 2: полный путь к скрипту
/home/alice/scripts/script.sh
# Способ 3: через интерпретатор (НЕ требует chmod +x)
bash script.sh
6. Bash-скрипт с переменной «Hello Имя»
Расширенная версия скрипта с переменной для имени:
script.sh
#!/bin/bash
# Скрипт приветствия с именем пользователя
name="Andrew"
echo "Hello $name"
echo "Current date and time:"
date
echo "You are running this script from: $(pwd)"
chmod +x script.sh
./script.sh
# Hello Andrew
# Current date and time:
# Wed Jun 11 10:05:00 UTC 2025
# You are running this script from: /home/alice
Команда $(pwd) — это подстановка команды: результат выполнения pwd встраивается прямо в строку echo.