Решение 1. chmod 644 file.txt
644 = 6 (владелец) + 4 (группа) + 4 (остальные):
- 6 = 4+2 = r+w → владелец может читать и писать
- 4 = r → группа может только читать
- 4 = r → остальные могут только читать
Строка в ls -la: -rw-r--r--
chmod 644 file.txt
ls -la file.txt
# -rw-r--r-- 1 alice devs 512 Jun 11 10:00 file.txt
644 — стандартные права для текстовых файлов, конфигураций, HTML.
Решение 2. chmod a+x script.sh
a = all = u (владелец) + g (группа) + o (остальные). +x = добавить право выполнения.
Если до команды было -rw-r--r-- (644), то после будет -rwxr-xr-x (755):
ls -la script.sh
# -rw-r--r-- 1 alice devs 128 Jun 11 10:01 script.sh
chmod a+x script.sh
ls -la script.sh
# -rwxr-xr-x 1 alice devs 128 Jun 11 10:01 script.sh
chmod a+x эквивалентно chmod +x — a подразумевается по умолчанию.
Решение 3. Первый bash-скрипт
Создаём файл через nano:
nano script.sh
Содержимое файла:
script.sh
#!/bin/bash
echo "Hello, Linux!"
date
Сохраняем: в nano — Ctrl+O, Enter, Ctrl+X. В vi — Esc, :wq.
Делаем исполняемым и запускаем:
chmod +x script.sh
./script.sh
# Hello, Linux!
# Wed Jun 11 10:05:00 UTC 2025
Решение 4. Переменная в скрипте
script.sh
#!/bin/bash
# Скрипт приветствия с переменной
name="Andrew"
echo "Hello $name"
date
chmod +x script.sh
./script.sh
# Hello Andrew
# Wed Jun 11 10:06:00 UTC 2025
Важные правила переменных в bash:
name="Andrew"— пробелов вокруг=НЕТ (иначе ошибка)$name— для чтения значения нужен$"Hello $name"— двойные кавычки раскрывают переменную; одинарные — не раскрывают
Три способа запуска: сравнение
# Способ 1: ./script.sh — запускает через shebang (#!/bin/bash)
# Требует: chmod +x script.sh
./script.sh
# Способ 2: полный путь — аналогично способу 1
/home/alice/script.sh
# Способ 3: bash script.sh — явно указываем интерпретатор
# НЕ требует chmod +x, но обходит права на исполнение
bash script.sh
Способ 3 (
bash script.sh) обходит биты прав. Если скрипт «работает» через bash script.sh, но не через ./script.sh — скорее всего, вы просто забыли сделать chmod +x.