Ответ
Бэкенд-разработчику необходим уверенный набор команд для работы на сервере, анализа логов и управления приложениями. Вот основные группы и команды:
1. Навигация и работа с файлами:
ls -la
: Показать список файлов и директорий с детальной информацией (права, владелец, размер).cd <path>
: Переместиться в другую директорию.pwd
: Показать текущую рабочую директорию.cp <source> <dest>
: Скопировать файл или директорию (-r
для рекурсивного копирования).mv <source> <dest>
: Переместить или переименовать файл/директорию.rm <file>
: Удалить файл (-r
для директорий,-f
для принудительного удаления).mkdir <name>
: Создать новую директорию.
2. Просмотр и поиск в файлах (критично для логов):
cat <file>
: Вывести содержимое файла в консоль.less <file>
: Постраничный просмотр больших файлов с возможностью поиска.tail -f <file>
: Следить за файлом в реальном времени (например,tail -f /var/log/app.log
).grep "pattern" <file>
: Поиск строк, содержащихpattern
, в файле. Часто используется в связке с другими командами:cat app.log | grep "ERROR"
.
3. Управление процессами:
ps aux
: Показать все запущенные процессы.top
/htop
: Мониторинг использования CPU/памяти процессами в реальном времени (htop
более наглядный).kill <PID>
: Отправить сигнал процессу (по умолчаниюTERM
).kill -9 <PID>
: Принудительно завершить процесс.
4. Работа с сетью:
curl <url>
: Сделать HTTP-запрос к URL, полезно для проверки доступности API.netstat -tulnp
илиss -tulnp
: Показать, какие порты слушают запущенные процессы.
5. Системная информация и диски:
df -h
: Показать использование дискового пространства в читаемом формате.du -sh <dir>
: Показать размер указанной директории.free -h
: Показать информацию об использовании оперативной памяти.
6. Права доступа:
chmod 755 <file>
: Изменить права доступа к файлу (например, сделать скрипт исполняемым).chown <user>:<group> <file>
: Изменить владельца и группу файла.
Пример полезной связки:
# Найти все Go-файлы в текущей директории и её поддиректориях,
# а затем посчитать общее количество строк в них.
find . -name "*.go" | xargs wc -l