Основы работы с терминалом
Содержание поста
Терминал (еще известен как консоль или командная строка) — это возможность общаться с компьютером с помощью команд, без визуального интерфейса. Новичков терминал всегда пугает своим черным экраном: что вводить, как использовать, а где кнопочки… Но все это быстро проходит, как только приходит понимание, что это незаменимый инструмент для каждого веб-разработчика в частности и программиста в целом.
В данном посте я приведу основные команды, которые наиболее часто используются в терминале на примере операционных систем Linux и macOS. Для Windows некоторые команды тоже подходят, но другие немного отличаются. Поэтому, обязательно проверьте корректность использования для своей ОС. Погнали.
Общие команды
Очистить историю ранее выполняемых команд:
clear
# или горячие клавиши CTRL + K (CMD + K)Посмотреть историю ввода:
history
history 5 # выводит 5 последних команд
history 10 # выводит 10 последних командОтложить выполнение следующей команды:
# && - используется для связывания двух или более команд
# s — секунды
# m — минуты
# h — часы
# d — дни
# подождать 2 минуты и открыть папку
sleep 2m && cd folder_name
# подождать 1 час 30 минут и создать файл (подробности ниже)
sleep 1h 30m && touch filename.txtСправочная информация
Получить подробную информацию о команде и ее использованию:
man command_name
# например
man ls
# или
man touchПолучить справку о команде (если man не сработал или нужно более кратко):
command_name --help
# например
ls --help
# или
touch --helpПолучить краткое описание команды:
whatsis command_name
# например
whatis ls
# или
whatis touchИнформация о системе
Информация о текущем пользователе:
whoamiПоказать общий объем дисков и их свободного пространства:
df
# по умолчанию выводит размер в килобайтах, чтобы получить данные в мегабайтах:
df -mПоказать данные о системе:
uname
# более подробный вывод с указанием имени компьютера и версией ядра:
uname -aПоказать время непрерывной работы операционной системы и количество пользователей:
uptimeПоказать текущие дату и время (полезно при работе на сервере для проверки часового пояса):
dateФайловая система
Список файлов и папок в текущей директории:
lsСписок файлов и папок с указанием деталей: права доступа, размер и т.п. Если первый символ — «d» — это папка (директория), если «-» — это файл:
ls -lСписок файлов и папок включая скрытые элементы:
ls -aТо, что начинается с символа «-» — называется флаг. Это не считается отдельной командой, а является дополнительными параметрами, которые добавляют функциональность или фильтруют вывод.
Все флаги можно комбинировать. Так что, если вы хотите посмотреть подробную информацию обо всех папках и файлах, включая скрытые элементы, используйте:
ls -laПерейти в определенную директорию:
cd folder_nameПерейти в директорию выше (две точки):
cd ..Перейти в корневую директорию (одна точка или без нее):
cd .Узнать полный путь к текущей директории:
pwdСоздать новую директорию в текущей:
mkdir folder_nameУдалить файл:
rm filename.txt # с нужным расширением файлаУдалить директорию (только если она пуста):
rmdir folder_nameУдалить директорию и все файлы в ней:
rm -r folder_nameПереместить файл (первый путь — откуда, второй путь — куда):
mv folder_name/filename.txt new_folder_name/filename.txtСкопировать файл (первый путь — откуда, второй путь — куда):
cp folder_name/filename.txt new_folder_name/filename.txtСоздать файл:
touch filename.txtПоказать текстовое содержимое файла:
cat filename.txtПереименовать файл или директорию:
# для файла
mv filename.txt new_filename.txt
# для директории
mv folder_name new_folder_nameПоказать статистику по файлу (количество строк, слов, знаков и байтов):
wc filename.txtЗагрузить файл по ссылке:
wget https://site.ru/filename.txtУправление пользователями
Добавить пользователя:
useradd user_nameУдалить пользователя:
userdel user_nameИзменить данные пользователя:
usermod user_nameЗадать пароль пользователю:
passwd user_nameРабота с сетью
Показать текущее имя хоста:
hostnameПоказать IP-адрес хоста:
hostname -iПоказать доменное имя хоста:
hostname -dПоказать все псевдонимы хоста:
hostname -aПоказать информация о сетевых настройках:
ip -aПоказать сведения о сетевых адресах:
ip address showПоказать маршрут сетевых пакетов (проверка доступности сайта и тестирование качества соединения):
ping site.ruПоказать маршрут сетевых пакетов, данные по узлу и время доставки пакетов:
traceroute site.ruАрхивирование
Создать zip-архив:
zip archive_name.zip path/to/folder/file_to_archive.txtРаспаковать zip-архив:
# распаковать в текущую директорию
unzip archive_name.zip
# распаковать в определенную директорию
unzip archive_name.zip -d path/to/folderСоздать/посмотреть/распаковать tar-архив (tar-архивы не сжимают файлы, поэтому чаще всего используются для создания резервных копий):
# доступные флаги:
# -c - создать новый архив
# -t - вывести список содержимого архива
# -x - извлечь файлы из архива
# -v - вывести список с деталями
# -f - файл (архив)
# создать tar-архив
tar -cf archive_name.tar path/to/folder/file_to_archive.txt
# посмотреть tar-архив
tar --tvf archive_name.tar
# распаковать tar-архив
tar -xvf archive_name.tarУправление процессами
Показать все процессы запущенные в системе:
topПринудительно завершить процесс по PID (PID процесса можно узнать из команды top выше):
kill proccess_PIDПринудительно завершить процесс по имени:
pkill chromeПринудительно завершить ВСЕ процессы по имени:
killall chromeАлиасы
Алиасы — это возможность создания собственной команды, которая будет являться оберткой для длинной и сложной команды.
Например, у вас есть следующая команда, которая очень часто используется:
sleep 1h 30m && touch filename.txtВы можете создать алиас (в данном случае slp) и использовать его вместо длинного варианта:
alias slp="sleep 1h 30m && touch filename.txt"Посмотреть все алиасы:
aliasУдалить алиас:
unalias alias_name