Терминал и основы оболочки
Тема дорожной карты · Linux & Unix Fundamentals
Терминал и основы оболочки — это фундаментальные навыки для любого разработчика или системного администратора, работающего в Linux. Умение эффективно использовать командную строку позволяет значительно ускорить работу с файловой системой, управлением процессами и сетевыми операциями. Освоение этих навыков не только улучшает производительность, но и помогает избежать многих типичных ошибок, связанных с неправильным использованием команд.
Как это работает
Терминал и основы оболочки строятся на базе нескольких ключевых команд, которые могут быть комбинированы в сложные пайплайны. Навигация по файловой системе осуществляется с помощью команд cd, ls, и pwd. Для работы с файлами используются команды cp, mv, rm, mkdir, touch, и ln. Инспекция содержимого файлов и каталогов выполняется с помощью cat, less, head, tail, file, и stat.
Помимо этих базовых команд, существуют также более сложные команды для управления процессами (jobs, bg, fg), перенаправлением ввода-вывода (>, >>, 2>&1, |), и использованием глоббинга (*, ?, [a-z], {a,b}). Эти команды позволяют создавать сложные скрипты и автоматизировать рутинные задачи.
Когда применять
CLI (командная строка) должна использоваться до GUI (графического интерфейса пользователя) для выполнения задач на удалённых серверах, где графический интерфейс недоступен. Базовые команды CLI легко скриптуются и работают на любом Linux-сервере. Использование tldr для быстрого доступа к справочным материалам и --help для получения информации о конкретной команде значительно упрощает процесс работы.
Для написания надёжных скриптов важно использовать проверки условий и обработку ошибок. Команды set -e и set -u в скриптах обеспечивают автоматическое завершение выполнения скрипта при возникновении ошибки или при попытке использовать неопределённые переменные.
Типичные ошибки
Одним из самых опасных действий является использование команды rm -rf с опечаткой. Этот командный синтаксис может привести к необратимому удалению файлов и директорий. На личных машинах полезно использовать алиас rm = rm -i, чтобы убедиться в необходимости удаления каждого файла.
Другая распространённая ошибка — копирование длинных команд из блогов или интернета без предварительного изучения их содержимого, особенно если они содержат sudo. Это может привести к непреднамеренному выполнению команд с повышенными привилегиями.
Забытое экранирование, когда в именах файлов присутствуют пробелы, также может привести к неправильному выполнению команд. Вместо использования rm $file следует использовать rm "$file" для корректного выполнения команды.
Цепочки команд cd .. могут быть заменены на более безопасные команды pushd и popd или использование абсолютных путей в скриптах. Это упрощает управление стеком директорий и предотвращает ошибки при работе с относительными путями.