DevGang
Авторизоваться

Команды Linux, которые вы должны знать

Я использую инструментарий с открытым исходным кодом, который преимущественно работает на серверах Linux, поэтому часто нахожусь в терминале, выполняя команды для решения различных задач.

В этом руководстве я представлю вам шпаргалку (как бы) некоторых полезных и интересных команд, которые я часто использую.

Загляните внутрь процесса

У вас есть запущенный процесс, но вы не знаете, что он делает?

Используя команду "strace", вы можете легко заглянуть внутрь запущенного процесса и вывести информацию о нем в журнал, выполнив следующую команду:

sudo strace -p 3612485 -e write

Остановка и перевод процесса в фоновый режим

# Press ctrl+z and type the following:
bg

Плохой интернет?

Хотите выполнить команду в удаленном терминале, но боитесь, что отключение может преждевременно остановить процесс?

Для этого есть два варианта: "nohup" или "screen". Screen открывает терминал в окне, поэтому даже если сеть прервется, экран сохранится.

Команда nohup делает нечто подобное, но при этом процесс продолжает выполняться даже при разрыве сети и записывается в файл журнала.

nohup python run_my_awesome_script.py &

Мы используем символ "&" для немедленного перевода процесса в фоновый режим, чтобы мы могли продолжить работу в терминале. Если это пропустить, то терминал будет заблокирован на этой команде до тех пор, пока она не завершится.

Для использования экранов:

screen -S MyScreen

Чтобы выйти и оставить экран открытым, введите "ctrl+alt+d".

Если же вы хотите вернуться к экрану:

# ScreenNameHere - optional - if you have only one open screen.
screen -r ScreenNameHere

Что выполняется на порту xyz?

lsof -i :5000

# Or
netstat -tupln | grep :5000

# Or - this one may not always give you the best results
# - as it also searches process IDs

ps aux | grep 5000

Сформирует список процессов, использующих указанный порт.

Синхронизация и копирование файлов

Rsync - это очень мощный инструмент для инкрементной синхронизации файлов. Я не буду подробно описывать, что означают те или иные флаги - обратитесь к руководству, однако я расскажу о некоторых распространенных случаях использования rsync.

Найдите и скопируйте в каталог резервного копирования файлы журналов, возраст которых превышает 180 минут.

find /var/log/nginx -type f -mmin +180 -exec rsync -av {} /backups/nginx/logs \;

Синхронизируйте все файлы в каталоге /var/lib/mysql с удаленным сервером. Установите для порта SSH значение "9023".

rsync -rav -e 'ssh -p 9023' --progress /var/lib/mysql/ root@192.168.1.1:/var/lib/mysql2/

Простое копирование - если требуется просто скопировать файлы между двумя системами и не требуется инкрементная синхронизация.

scp -P9023 -r somefiles/ root@192.168.1.1:/tmp/

Сжатие и распаковка файлов

 tar -czvf somestuff.tar.gz somestuff/

# And unpack
tar -xzvf somestuff.tar.gz

# Compress a single file
gzip -9 data.xml

# Uncompress single file
gzip -d data.xml.gz

Метрики

# Open system monitor tool
htop

# View memory usage
free -m

# View processes
ps aux

# View CPU information
cat /proc/cpuinfo

# Disk space usage
df -h

# File/directory sizes in the current directory
du -h

# To 20 biggest files & folders in directory
du -h | sort -rh | head -n 20

Заключение

Это лишь малая часть полезных команд Linux, которые вы будете часто использовать.

Надеюсь, эта статья оказалась полезной для вас, но если у вас есть другие предложения или вы хотите, чтобы я в будущем написал статью о конкретной области, которую вы хотели бы осветить, пожалуйста, оставляйте свои комментарии ниже.

Источник:

#Начинающим #Bash #Linux
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу