Ответ
Для эффективной работы с серверами, контейнерами (Docker) и CI/CD-пайплайнами разработчику необходимо уверенно владеть базовым набором команд Linux. Вот структурированный список по категориям.
1. Навигация и работа с файлами
| Команда | Описание | Практический пример |
|---|---|---|
pwd |
Показать текущую рабочую директорию. | pwd → /home/user/project |
ls |
Список файлов и папок. | ls -la — показать все файлы (включая скрытые) с деталями. |
cd |
Сменить директорию. | cd /var/log — перейти в папку логов. cd ~ — вернуться в домашнюю директорию. |
mkdir / rmdir |
Создать / удалить директорию. | mkdir -p backup/2024 — создать вложенные папки. |
cp |
Копировать файлы/папки. | cp source.txt dest.txt — копировать файл. cp -r dir1/ dir2/ — копировать рекурсивно. |
mv |
Переместить или переименовать. | mv oldname.txt newname.txt — переименовать. mv file.txt /tmp/ — переместить. |
rm |
Удалить файлы/папки. | rm file.txt — удалить файл. rm -rf directory/ — ОСТОРОЖНО! Рекурсивное принудительное удаление папки. |
find |
Поиск файлов. | find . -name "*.log" -type f — найти все файлы .log в текущей директории и поддиректориях. |
2. Просмотр и обработка содержимого файлов
| Команда | Описание | Практический пример |
|---|---|---|
cat |
Вывести содержимое файла целиком. | cat config.yaml |
less / more |
Просмотреть файл постранично. | less large_log.txt — листать Space, выйти q. |
head / tail |
Вывести начало/конец файла. | tail -n 50 app.log — последние 50 строк. tail -f app.log — мониторить файл в реальном времени (логи). |
grep |
Поиск текста по шаблону. | grep -r "ERROR" /var/log/ — рекурсивный поиск "ERROR" в логах. grep -v "debug" file.txt — вывести строки, НЕ содержащие "debug". |
awk |
Мощный обработчик текста. | awk '{print $1}' access.log — вывести первый столбец (например, IP). |
sed |
Потоковый редактор для замены текста. | sed 's/foo/bar/g' file.txt — заменить все "foo" на "bar" в файле. |
3. Права доступа и владельцы
| Команда | Описание | Практический пример |
|---|---|---|
chmod |
Изменить права доступа (read, write, execute). | chmod +x script.sh — сделать файл исполняемым. chmod 755 script.sh — права: владелец (rwx), группа и другие (rx). |
chown |
Изменить владельца и группу файла. | sudo chown www-data:www-data /var/www/ — отдать владение веб-серверу. |
4. Управление процессами
| Команда | Описание | Практический пример |
|---|---|---|
ps |
Показать запущенные процессы. | ps aux | grep nginx — найти все процессы nginx с деталями. |
top / htop |
Интерактивный монитор процессов (как "Диспетчер задач"). | htop — более удобная версия top. |
kill |
Завершить процесс по ID (PID). | kill 12345 — отправить сигнал TERM (завершить). kill -9 12345 — принудительное завершение (SIGKILL). |
pkill |
Завершить процесс по имени. | pkill -f "python app.py" |
bg / fg |
Перевести процесс в фоновый режим / вернуть на передний план. | Запустить процесс, нажать Ctrl+Z, затем bg. |
nohup |
Запустить процесс, который не завершится при закрытии терминала. | nohup python server.py & — & запускает в фоне. |
5. Сеть и удалённый доступ
| Команда | Описание | Практический пример |
|---|---|---|
ssh |
Подключиться к удалённому серверу. | ssh user@192.168.1.100 -p 2222 |
scp |
Безопасное копирование файлов между хостами. | scp file.txt user@host:/remote/path/ — скопировать на удалённый хост. |
ping |
Проверить доступность хоста в сети. | ping -c 4 google.com — отправить 4 пакета. |
curl |
Отправка HTTP-запросов из командной строки. | curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com |
wget |
Скачать файл из интернета. | wget https://example.com/file.tar.gz |
netstat / ss |
Показать сетевые соединения, порты. | ss -tulpn — показать все слушающие порты и процессы. |
6. Системная информация и архивация
| Команда | Описание | Практический пример |
|---|---|---|
df / du |
Свободное место на дисках / размер директорий. | df -h — место в человеко-читаемом формате. du -sh /home/* — размер домашних директорий. |
free |
Информация об использовании оперативной памяти. | free -h |
tar |
Архивирование и распаковка. | tar -czvf archive.tar.gz folder/ — создать архив. tar -xzvf archive.tar.gz — распаковать. |
uname |
Информация о системе. | uname -a — вывести всю информацию (ядро, хостнейм и т.д.). |
Совет: Используйте man <команда> (например, man grep) для получения полной справки по любой команде прямо в терминале.
Ответ 18+ 🔞
Да ты посмотри, какая, блядь, библия командная! Прямо как инструкция к жизни, только для терминала. Ну что ж, разберём этот овердохуищный список, чтобы не ходить потом, как пизда бородавчатая, по серверам.
Навигация и файлы — это наш фундамент, блядь.
Вот ты зашёл на сервер, а там темень, ёпта. pwd — это твой компас, сука. Он тебе орёт: «Ты где, мудила? В /home/user/project, вот где!». ls -la — это включить фонарик и посмотреть, кто тут в углах прячется, включая эти ваши скрытые файлы с точкой в начале, хитрожопые. cd — это шаг вперёд, шаг назад, cd ~ — это как домой приползти. А вот rm -rf directory/ — это, блядь, ядерная кнопка. Нажал — и всё, пиздец, накрылось медным тазом. Терпения ноль ебать, команда не спрашивает. Так что с ней — чих-пых тебя в сраку, будь осторожен.
Чтение файлов — тут начинается магия, а иногда и пиздец.
cat config.yaml — быстренько глянуть, что внутри. Но если файл на три тома «Войны и мира», то less тебя спасёт — листай спокойно, Space-ом вниз, q — нахуй свалил. А вот tail -f app.log — это, сука, must have! Сидишь, смотришь, как логи текут в реальном времени, как сериал. Ищешь ошибку? grep -r "ERROR" /var/log/ — это твой металлоискатель. Найдёт все упоминания, даже если они закопались глубоко. sed и awk — это уже для продвинутых шаманов, которые могут текст хуярить как бог. sed 's/foo/bar/g' — и все «foo» стали «bar», волшебство, блядь!
Права доступа — вот где начинается настоящая боль, ёпта.
Прилетает ошибка «Permission denied». Ну всё, пизда. chmod +x script.sh — даёшь файлу право на жизнь, на исполнение. А chmod 755 — это уже настройка доступа для всех: хозяин — царь и бог (rwx), а остальные — смотрят, но не трогают (rx). sudo chown www-data:www-data /var/www/ — это отдать ключи от квартиры, то есть директории, веб-серверу. Главное — не отдать кому попало, а то будет «во все дыры давалка».
Процессы — тут как в джунглях, блядь.
Что-то зависло? ps aux | grep nginx — ищешь этого гада по имени. Нашёл PID — и kill 12345 ему в ебало. Не помогает? kill -9 — это уже сигнал «иди нахуй» без возможности аппеляции. htop — это как диспетчер задач, только красивее и с мышкой, можно полазать, посмотреть, кто сколько жрёт памяти. А nohup python server.py & — это запустить демона, который будет жить, даже когда ты закрыл терминал. Удобно, сука!
Сеть — наши руки, глаза и уши.
ssh user@host — это телепорт на другую машину. scp — это курьер, который перенесёт файлы туда-сюда. ping — это крик в темноту: «Эй, гугл, ты живой?». curl — это, блядь, швейцарский нож. Хочешь тестнуть апишку? Без проблем, накручивай заголовки, JSONы, методы — всё, что душе угодно. ss -tulpn — это сканирование территории: какие порты слушают, кто на них сидит. Чтобы никакой пидарас шерстяной не проник.
Ну и разное полезное барахло.
Место на диске кончилось? df -h покажет, какой диск на боку лежит. du -sh * — найдёт папку-обжору, которая всё место сожрала. tar -czvf archive.tar.gz folder/ — это упаковать весь свой скарб в один чемодан. uname -a — визитка системы, всё расскажет о ядре и прочем.
И главный совет, который все игнорят, как сосалку: man <команда>. Это священная книга, справка от самих создателей. Не помнишь ключик? man grep — и читай, блядь! Всё расписано.
Короче, вот такой базовый набор, чтобы не быть беспомощным пиздёнышем на удалённой машине. Выучи — и жизнь станет проще, ёбана!