Начало работы с командной строкой Linux
Практический справочник, охватывающий основы Linux shell: навигацию, работу с файлами, права доступа и привычки, которые делают вас быстрым в работе.
Командная строка — это текстовый интерфейс для прямого общения с операционной системой. Вместо щелчков по значкам вы вводите команды в shell, и он их выполняет. На большинстве дистрибутивов Linux это bash, хотя zsh стал широко распространен, особенно после того как стал стандартным на macOS и набирает популярность в Linux. Изучение командной строки — это не запоминание сотен команд. Это усвоение небольшого набора инструментов и умение хорошо их комбинировать.
Что на самом деле делает shell
Когда вы открываете терминал, запускается эмулятор терминала, и внутри него процесс shell ждет ввода. Вы вводите команду, нажимаете Enter, shell разбирает её, находит названную программу и запускает её с переданными аргументами. Вывод возвращается текстом. Это весь цикл. Понимание разделения между терминалом (окном) и shell (программой, интерпретирующей ваш текст) развеивает много ранних недоразумений.
Перемещение и просмотр
Четыре команды покрывают большую часть ранней навигации:
pwd # print working directory
ls -la # list files, including hidden ones, with details
cd projects # change into a directory
cd .. # go up one level
ls -la стоит вводить полностью в начале, а не полагаться на aliases, чтобы привыкнуть видеть права доступа, владельца и размеры файлов в выводе. Первый символ d или - в строке прав показывает, это директория или обычный файл, и это часто путает новичков.
Чтение и изменение файлов
cat somefile.txt выводит весь файл на экран. Для более длинных файлов less somefile.txt позволяет прокручивать и искать с помощью /pattern. head -n 20 file.log и tail -n 20 file.log показывают первые или последние строки, а tail -f file.log следит за файлом по мере добавления новых строк, что позволяет наблюдать лог в реальном времени во время отладки.
Для копирования, перемещения и удаления используются cp, mv и rm:
cp report.txt report.bak
mv report.bak archive/
rm archive/report.bak
rm не перемещает файлы в корзину. Он удаляет их. Добавление -i заставляет запросить подтверждение, это разумная привычка, пока вы ещё вырабатываете мышечную память.
Права доступа, без загадок
Запуск ls -l на файле показывает что-то вроде -rwxr-xr--. Разбейте на три группы по три: владелец, группа, остальные. Каждая группа имеет чтение, запись, выполнение. chmod 755 script.sh устанавливает для владельца чтение/запись/выполнение (7), а для группы/остальных чтение/выполнение (5). chmod +x script.sh — это сокращение для сделать файл исполняемым без пересчета полного числа. chown меняет владельца файла и обычно требует sudo, если это не ваш собственный файл.
Piping и редирекция
Здесь командная строка перестает быть просмотрщиком файлов и становится настоящим инструментом. Pipe | отправляет вывод одной команды в другую:
ps aux | grep nginx
ls -la | wc -l
cat access.log | grep 404 | sort | uniq -c | sort -rn
Последняя команда подсчитывает, сколько раз каждая строка, генерирующая 404, появляется в логе, и сортирует по частоте, построена полностью из небольших команд, объединенных в цепь. Редирекция с помощью > и >> отправляет вывод в файл вместо экрана: > перезаписывает, >> добавляет. 2> перенаправляет вывод ошибок специально, это важно, когда вы начинаете писать скрипты, которым нужно разделять нормальный вывод от ошибок.
Поиск вещей
find ищет по имени, типу или времени изменения:
find /var/log -nameНаписано с помощью ИИ, проверено и опубликовано Михалом Пильхом (CISSP), Korra Studio.
Это одна заметка из базы знаний Korra Studio — платформа сочетает каждую тему с наставничеством один на один.
Начать бесплатноarrow_forward