Блок 1: Базовые команды и перенаправление
Ошибка 1. > vs >>
Путают оператор записи (
Проблема:
Правило: первый шаг —
Путают оператор записи (
>) и дозаписи (>>).Проблема:
date > /tmp/file.txt в каждом шаге — предыдущее содержимое стирается.Правило: первый шаг —
> (создать файл), все следующие шаги — >> (дозаписать).
Ошибка 2. mkdir vs touch
Путают команды для создания директорий и файлов.
Неверно:
Верно:
Путают команды для создания директорий и файлов.
Неверно:
mkdir /tmp/file.txt — создаст директорию, не файл.Верно:
touch /tmp/file.txt или date > /tmp/file.txt для файла.
Ошибка 3. Ключ -p в mkdir
Не помнят значение ключа
Без -p:
С -p:
Не помнят значение ключа
-p.Без -p:
mkdir /opt/task/start.txt — ошибка, если /opt/task/ не существует.С -p:
mkdir -p /opt/task/ — создаст все промежуточные директории.
Ошибка 4. Пути в корне файловой системы
Путают относительный и полный путь; не знают папок в корне.
Проблема: пишут
Правило: полный путь начинается с
Путают относительный и полный путь; не знают папок в корне.
Проблема: пишут
home/file.txt вместо /home/file.txt.Правило: полный путь начинается с
/. Без слеша — относительный (от текущей директории).
Ошибка 5. ls vs cat
Путают назначение команд.
Неверно:
Верно:
Путают назначение команд.
ls — показывает список файлов в директории.cat — выводит содержимое файла.Неверно:
cat /home — выведет ошибку, это директория.Верно:
ls /home — список файлов; cat /tmp/file.txt — содержимое.
Блок 2: grep, pipe и &&
Ошибка 6. grep с ключами и без
Не видят разницы между обычным grep и с ключами
Не видят разницы между обычным grep и с ключами
-w, -o.grep / — найдёт все строки, содержащие символ / (много строк).grep -w / — только строки, где / является отдельным словом (строка корневого раздела).
Ошибка 7. Злоупотребление &&
Строят всё задание в одну строку через
Проблема: трудно отлаживать; если одна команда упала — все последующие тоже не выполняются.
Лучше: выполнять каждый шаг отдельной командой и проверять результат.
Строят всё задание в одну строку через
&&.Проблема: трудно отлаживать; если одна команда упала — все последующие тоже не выполняются.
Лучше: выполнять каждый шаг отдельной командой и проверять результат.
Ошибка 8. Непонимание pipe |
Пытаются использовать перенаправление вместо пайпа или не понимают порядок.
Неверно:
Верно:
Справа от
Пытаются использовать перенаправление вместо пайпа или не понимают порядок.
Неверно:
df -h > grep / — синтаксическая ошибка.Верно:
df -h | grep / — stdout первой команды → stdin второй.Справа от
| всегда команда, не файл.
Ошибка 9. Незакрытые кавычки
Забывают закрывать открытые кавычки и скобки в awk/sed.
Симптом: терминал показывает
Выход: нажать
Забывают закрывать открытые кавычки и скобки в awk/sed.
Симптом: терминал показывает
> и ждёт продолжения — редактор «завис».Выход: нажать
Ctrl+D (EOF) или Ctrl+C (прервать).
Блок 3: tail, head, awk
Ошибка 10. tail и head: верх и низ
Путают:
Забывают ключ:
Путают:
head — начало файла; tail — конец файла.tail -3 — три последних строки; head -3 — три первых строки.Забывают ключ:
tail /etc/group — по умолчанию 10 строк; tail -3 /etc/group — 3 строки.
Ошибка 11. awk: кавычки и скобки
Забывают какие кавычки ставить и как выйти из awk.
Неверно:
Верно:
Если попали в интерактивный режим awk — выход:
Забывают какие кавычки ставить и как выйти из awk.
Неверно:
awk {print $1} — нужны одинарные кавычки и фигурные скобки.Верно:
awk '{print $1}'Если попали в интерактивный режим awk — выход:
Ctrl+D.
Ошибка 12. awk: неправильный счёт столбцов
Ошибаются в номере столбца (нумерация с 1, не с 0).
Пример: для
Совет: сначала выведите всё
Ошибаются в номере столбца (нумерация с 1, не с 0).
Пример: для
df -h — $1 имя, $2 размер, $3 использовано, $4 доступно, $5 процент.Совет: сначала выведите всё
awk '{print $0}' и посчитайте столбцы.
Блок 4: sed, wc и ~
Ошибка 13. sed: конструкция замены и флаг g
Не понимают структуру:
Без g:
С g:
Не понимают структуру:
s/что/чем/флаги.Без g:
sed 's/1000/777/' — заменяет только первое вхождение в строке.С g:
sed 's/1000/777/g' — заменяет все вхождения в строке.
Ошибка 14. sed: незакрытые слеши и кавычки
Неверно:
Верно:
Везде используется флаг
Неверно:
sed 's/1000/777 — без закрывающего слеша и кавычки.Верно:
sed 's/1000/777/g' — три части: шаблон / замена / флаги.Везде используется флаг
-o (только совпадение) — не нужен при замене!
Ошибка 15. wc -l vs wc -1
Путают ключ
Правильно:
Количество символов равно количеству байт (в ASCII-тексте).
Путают ключ
-l (буква «эль», подсчёт строк) и -1 (цифра «один»).Правильно:
wc -l — Lines (строки); wc -w — Words; wc -c — Characters/bytes.Количество символов равно количеству байт (в ASCII-тексте).
Ошибка 16. Тильда ~
Пугаются символа
Пример:
Пугаются символа
~ — не помнят, что это домашняя папка пользователя.~ = /home/имя_пользователя (или /root для root).Пример:
~/.ssh/id_rsa = /home/user/.ssh/id_rsa.
Ошибка 17. echo "TEXT" >> не выводит на экран
Не понимают, почему текст не появляется на экране, а записывается в файл.
Объяснение:
Чтобы проверить:
Не понимают, почему текст не появляется на экране, а записывается в файл.
Объяснение:
>> перенаправляет stdout в файл. Вывода на экран нет — это норма.Чтобы проверить:
cat /tmp/file.txt.