Некоторые полезные команды Linux

Самая лучшая документация по любой команде, — man https://ru.wikipedia.org/wiki/Man, т.е. man команда и спокойно сидим разбираемся, но по себе знаю, что бывает очень долго читать, а готовые рецепты полезно где-то подсмотреть, для чего и запишу их в эту шпаргалку.

Ещё неплохая утилита synapic, менеджер пакетов, позволяет просмотреть что установлено, воспользоваться поиском и установить в пару кликов необходимые пакеты.


КомандаОбзорПримечание
Системная информация
cat /proc/cpuinfoЦПУ
cat /proc/meminfoИнформация об оперативной памятиМожно воспользоваться утилитами htop/top, (SHIFT+M отсортирует по наибольшему потреблению ОП)
Примеры 2

Получить топ процессов по занимаемой памяти ещё можно так:
ps -eo rss,pid,user,command --sort -size | awk '{ hr=$1/1024; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ", $x) } print "" }' | egrep -v 0.00 | sort -n | awk '{ print $1$2" "$3 }' | tail
Память и swap:
free -m
uname -aАрхитектура, используемая версия ядра, разрядность, имя
dateТекущая дата и время
calКалендарь на текущий месяц
wАвторизованные в данный момент пользователи в системеwhoami покажет ваше имя в системе
uptimeАптайм инфо
df -hИспользование места на дискахdf -i покажет использование «inode»
Примеры 1

Мощная утилита ncdu:
Например, ncdu / позволит просмотреть всю файловую систему с корня ( / ), в отсортированном по размеру виде, что очень удобно
whereis programЗарегистрированные расположения программы programwhich program расположение по умолчанию
netstatКакие порты какими программами слушаются в системеnetstat -plutn
Примеры 2

netstat -plutn | grep :80 - например, посмотреть что находится на 80 порту
netstat -anp | grep LISTEN
Файловая система
tarАрхивация/распаковка файловtar -czf files.tar.gz /path/to/files - создать архив с сжатием Gzip
tar -xzf files.tar.gz - распаковать
lsСписок директории и файловls -la список со скрытыми файлами и детальной информацией о владельце, группе, правах, символических ссылках на другие файлы
ls | wc -l бывает полезно узнать, например, количество файлов в какой-нибудь директории
cd dirСмена директорииcd перейти в домашний каталог
pwdТекущее расположение
cpКопироватьcp filename1 filename2 - скопировать filename1 в filename2
cp -r dir1 dir2 - скопировать каталог dir1 в dir2, создав предварительно dir2, если он не существует
mvПереместить/переименоватьmv filename1 filename2 - переместить или переименовать filename1 в filename2, если filename2 директория,которая существует, то переместить в нее filename1
Примеры 1

mv * ../ - переместить файлы на директорию выше
scpСкачивание/загрузка файлов на удаленный серверscp -r /home/user/files/* root@example.com:/root/files/ закачать потоком по одному файлу на удаленный example.com в /root/files/
scp root@example.com:/var/www/data/file /home/user/скачать файл с удаленного сервера
lnСоздание ссылок на файлыln -s /path/to/file /path/to/link создать символическую ссылку link на файл file
wget fileСкачать файлwget -c file - продолжить ранее приостановленную загрузку
touch filenameСоздать файлtouch test.txt | echo "some content" > test.txt создать файл и записать в него строку
cat > filename направить поток ввода в файл
mkdir dirСоздать каталог
rmУдалениеrm filename удалить файл
rm -r dir удалить каталог
head filenameВывод первых 10 строк filename
tail filenameВывод последних 10 строк filenametail -f filename - фоновый вариант данной команды
Процессы
psТекущие активные процессы
topВсе запущенные процессы
killУбить процессkill pid - убить процесс, который имеет ID pid
killall proc - убить все процессы с именем proc (осторожно с этой командой)
Обработка текста, поиск
locate fileНайти все файлы с именем file
grepУтилита поиска в файлах по заданному шаблону (маске)grep pattern files
Примеры 3

grep 'database_port:' ./app/config/parameters.yml | sed -e 's/database_port://; s/ //g' - комбинируя grep и sed (утилита обработка строк) вытащить значение ключа database_port из файла parameters.yml в проекте
grep -r pattern dir - рекурсивный поиск pattern в директории
dpkg -l | grep php7.2-fpm - найти службу php-fpm (если установлена) в выводе списка всех программ и вывести это совпадение
sedПотоковый текстовый редакторБывает просто незаменим при работе со строками, например, если требуется заменить в файле/файлах множество однотипных строк на что-то другое
sed -i '/"user_name":/s/\\u00f6/oe/g' users.json - заменить все встречающиеся умляуты ö на oe в файле users.json, в строках, которые попадают под шаблон, где "user_name":.*\n
findПоиск файлов
Примеры 2

find /path/to/dir -name '*.json' -print0 | xargs -0 sed -i 's/@all//g' - найти в интересующей директории все json файлы и с помощью sed удалить фразу @all в каждом файле
find . ! -name 'file.txt' -type f -exec rm -f {} + - удалит все обычные файлы (рекурсивно, включая скрытые), кроме file.txt. Чтобы удалить каталоги, измените -type f на -type d и добавьте параметр -r в rm
Сеть
ping hostПропинговать host
dig domainDNS информация
Прочее
mysqldumpРезервное копирование базы данныхmysqldump -u db_user -p db_name > /path/to/dump.sql - экспортировать бд dump.sql db_name от имени db_user
/usr/bin/mysql --database=db_name --user=db_user --host=host_or_ip --port=3306 < /path/to/dump.sql - импортировать в бд db_name dump.sql от имени db_user



Перед тем как писать комментарии, рекомендую ознакомиться:

Markdown синтаксис »

Оформление кода »

Нужна аватарка »

Комментарии