Основные команды Linux
При работе с операционной системой Linux часто приходится использовать интерфейс командной строки (CLI), так как он более мощный и эффективный. Задачи, для решения которых в графическом интерфейсе понадобиться много этапов, можно выполнить за считанные секунды, вводя команды в CLI.
Если вы планируете использовать Linux, знание базовых команд является необходимостью.
Вот список самых часто используемых.
pwd cd ls tree ln && date w cat cp mv mkdir rm touch find grep sudo mount/umount df du head/tail less/more diff which tar chmod chown ps kill free ip uname ping
-
pwd
Укажет полный путь до директории, в которой вы находитесь.
-
cd
С помощью этой команды можно перемещаться между папками. Для перемещения в другую папку для работы с файлами, нужно ввести:
1cd адрес_папки
Чтобы подняться по древу каталогов на уровень вверх набираем:
1cd ..
Чтобы вернуться к предыдущей директории:
1cd -
Возврат в домашний каталог текущего пользователя:
cd ~
-
ls
Используется для просмотра содержимого каталога в котором вы сейчас находитесь. Для просмотра содержимого других каталогов не переходя в них можно указав путь к интересующей нас папке:
ls /home/username/Downloads
Для более информативного отображения содержимого нужно воспользоватся ключём
-l
ls -l /home/username/Downloads
Для отображения скрытых файлов и папок необходимо добавить ключ
-a
-
tree
Команда
tree
рекурсивно обходит все вложенные директории и файлы для выбранной директории и выводит информацию в удобном древовидном формате.Можно использовать следующим образом:
tree tree /путь/до/директории tree опции tree опции /путь/до/директории
-a
показывать все файлы, включая скрытые.-d
показывать только директории.-u
показывать владельца или идентификатор пользователя (UID).-g
показывать группу или идентификатор группы (GID).-L
уровень выводить дерево не глубже определенного уровня вложенности.-h
показывать размер файлов.-D
показывать дату последнего изменения файла или директории.-С
включить подсветку разными цветами.-X
вывести информацию в формате XML.-J
вывести информацию в формате JSON. -
ln
Создание жестких и символических ссылок. Ссылки дают одному и тому же файлу несколько имен и позволяют им быть в двух или более местах одновременно.
- Мягкая ссылка или символическая ссылка: это просто ярлык к исходному файлу.
- Жесткая ссылка: указывает на место в памяти исходного файла.
Обычно для создания ссылок мы используем команду
ln
и опцию-s
, чтобы указать символическую ссылку. Это самый простой и гибкий способ. В создании символических ссылок в Linux нет ничего сложного — нужно просто выполнить один простой шаг.ln -s [целевой_файл] [имя_символической_ссылки] ln -s [конкретный_файл/каталог] [имя_символической_ссылки]
Проверить создалась ли ссылка можно с помощью команды вывода подробного списка содержимого каталога:
ls -l
-
&&
Двойной амперсанд – не полноценная команда, а управляющий оператор. Он предназначен для выполнения последовательного ряда команд. Чтобы терминал выполнил команды одну за другой, нужно разделить их следующим образом:
команда_1 && команда_2 && команда_3
Число команд в такой последовательности не ограничено.
-
date
Отображает текущее время и дату. Отдельными переменными можно задать удобный формат вывода и число отображаемых параметров, вплоть до миллисекунд.
-
w
Выводит краткую сводку о работающих в системе, в данный момент пользователях (залогиненных), а также о том, какие процессы у них запущены
-
cat
Показывает содержимое документов. Можно скормить этой утилите любой текстовый файл, и она прямо в терминале отобразит все, что в нем записано.
cat имя_файла
Если нужно узнать содержимое нескольких файлов подряд:
cat файл_1 файл_2 файл_3
-
cp
Утилита, позволяющая скопировать файл или каталог.
cp [что_копируем] [куда_копируем]
Копируем файл
cp file.txt file2.txt
Чтобы скопировать файл в другой каталог, укажите абсолютный или относительный путь к каталогу назначения.
Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте
-R
или-r
.В следующем примере мы копируем каталог Pictures в Pictures_backup :
cp -R Pictures Pictures_backup
Другой способ скопировать только содержимое каталога, но не сам каталог, - использовать подстановочный знак ( * ). Недостаток следующей команды в том, что она не копирует скрытые файлы и каталоги (те, которые начинаются с точки . ):
cp -R Pictures/* Pictures_backup/
-
mv
Применяется для перемещение и переименование файла или каталога.
Команда
mv
может:- Переместить один или несколько файлов в другую директорию.
- Переместить одну или несколько директорий в другую директорию.
- Переименовать файл.
- Переименовать директорию.
Переместить файл
Переместим файл myfile1.txt в директорию mydir/ (директория должна существовать). Для этого выполняем команду без каких-либо аргументов:
mv myfile1.txt mydir/
Переименовать файл
Переименуем файл myfile1.txt в myfile2.txt:
mv myfile1.txt myfile2.txt
Переименовать директорию
Переименуем директорию mydir1 в mydir2. Выполняется точно также, как и переименование файлов.
mv mydir1 mydir2
Переместить несколько файлов
Переместим сразу три файла в директорию mydir/
mv myfile1 myfile2 myfile3 mydir/
Переместим все файлы из текущей директории в директорию mydir/
mv * mydir/
Переместим все файлы с расширением .jpg в директорию mydir/
mv *.jpg mydir
Если в имени файла есть пробелы
Если в имени файла есть пробелы, то имя файла нужно заключить в кавычки или перед каждым пробелом добавлять символ
\
mv "My file1.txt" "My file2.txt"
Или использовать символ косой черты перед пробелом.
mv My\ file1.txt My\ file2.txt
-
mkdir
Создает новую директорию.
Создание директорий
Создать директорию с именем mydir:
mkdir mydir
Создать несколько директорий:
mkdir mydir1 mydir2 mydir3
Создание директории с указанием относительного пути:
mkdir Downloads/pictures
Создание директорий, включая родительские
Чтобы создать все директории, которые содержатся в пути, используется ключ
-p
:mkdir -p subdir/somedir/mydir
В результате будут созданы директории: subdir, subdir/somedir, subdir/somedir/mydir
-
rm
Отвечает за удаление папок и файлов. Использовать команду
rm
следует крайне осторожно!Удаление файла
rm file.txt
Удаление нескольких файлов одновременно.
rm file.txt pic.jpg
Интерактивное удаление файлов
Параметр
-i
спрашивает разрешение перед удалением, как показано ниже.rm -i file.txt
Рекурсивное удаление директорий
Команда
rm
вместе параметром-r
рекурсивно удалит все файлы и подкаталоги в каталге mydir.rm -r mydir/
Принудительное удаление файлов
Параметр
-f
в командеrm
принудительно удаляет файлы независимо от их прав доступа, а также игнорирует несуществующие файлы. -
touch
Эта команда создавалась для изменения времени последнего открытия файла или директории, но используют её, в основном, для создания новых файлов.
Например для создания пустого файла test.txt необходимо ввести в терминал:
touch test.txt
-
find
Осуществляет поиск в файловой системе, файлах и папках.
Для поиска файла по имени в определенной директории введите:
find /home -name "linux.txt"
Эта команда будет искать файл linux.txt в директории /root. Так же мы найти все файлы с расширением .txt:
find /home -name "*.txt"
Найти файл во множестве директорий:
find /home /tmp -name "linux.txt"
Найти файл по имени без учета регистра:
find /home -iname "Linux.txt"
Найти все типы файлов отличные от упомянутого:
find /home -not -name "*.txt"
Найти все скрытые файлы:
find /home -type f name ".*"
Найти все файлы определенного размера:
find /home -size -2M
Найти все пустые файлы и директории:
для файлов
find / -type f -empty
для директорий
find ~/ -type d -empty
-
grep
Утилита выполняет поиск в текстовом файле за заданным нами паттерном. Другими словами, с помощью grep вы можете найти необходимое вам слово или значение. А содержащие ваш запрос строки или строка будут выведены в терминал.
Наиболее важные и часто используемые параметры:
-i
— поиск не будет чувствителен к регистру. То есть, если вы хотите найти слово «автомобиль», написанные как «АВТОМОБИЛЬ» слова тоже будут найдены.-c
— покажет только количество строк, содержащих поисковый запрос-r
— включает рекурсивный поиск в текущем каталоге-n
— выведет номера строк, содержащих поисковый запрос-v
— обратный поиск, выводит только строки, в которых нет указанного поискового запросаПоиск в текстовом файле слова Linux:
grep Linux test.txt
Если строка содержит пробелы, вам необходимо заключить ее в одинарные или двойные кавычки:
grep "Linux user" /home/user/passwd.txt
-
sudo
Это утилита, предоставляющая привилегии root для выполнения административных операций.
Самый распространённый вариант запуска команд с sudo:
sudo КОМАНДА
Если нужно выполнить команду от имени иного, не root пользователя, то используйте опцию
-u
:sudo -u ПОЛЬЗОВАТЕЛЬ КОМАНДА
-
mount/umount
Для подключения и отключения файловых систем и съемных устройств, таких как флэш-накопители USB.
Для вывода списка всех подключенных файловых систем:
mount
Монтирование файловой системы В примере
/dev/sdb1
это раздел на флешке, а/mnt/media
- это папка куда мы подключим нашу флешку.sudo mount /dev/sdb1 /mnt/media
Отключение файловой системы Чтобы отсоединить смонтированную файловую систему, используйте команду umount после которой укажите либо каталог, в котором она была смонтирована (точка монтирования), либо имя устройства:
umount /mnt/media или umount /dev/sdb1
смонтировать диск только для чтения Чтобы смонтировать диск только с правами чтения, используйте любой из вариантов опции:
-r
,--read-only
,-o ro
.sudo mount -o ro /dev/sdb1 /mnt/media
-
df
(Disk Free). показывает, сколько пространства занято на подключенных дисках и разделах.
df -h /home/user/Desktop
После выполнения команды, можно увидеть несколько стандартных колонок: Файловая система, Размер, Использовано, Доступно, %Использования, Куда смонтирован
-
du
(Disk Usage). Позволяет определить размер файла или каталога.
-a
,--all
- выводить размер для всех файлов, а не только для директорий, по умолчанию размер выводится только для папок;-B
,--block-size
- указать единицы вывода размера, доступно: K,M,G,T,P,E,Z,Y для 1024 и KB, MB и так далее для 1000;-c
,--total
- выводить в конце общий размер всех папок;-d
,--max-depth
- максимальная глубина вложенности директорий;-h
,--human-readable
- выводить размер в единицах измерения удобных для человека;--inodes
- выводить информацию об использованию inode;-L
,--dereference
- следовать по всем символическим ссылкам;-l
,--count-links
- учитывать размер файла несколько раз для жестких ссылок;-P
,--no-dereference
- не следовать по символическим ссылкам, это поведение используется по умолчанию;-S
,--separate-dirs
- не включать размер подпапок в размер папки;--si
- выводить размер файлов и папок в системе си, используется 1000 вместо 1024;-s
,--summarize
- выводить только общий размер;-t
,--threshold
- не учитывать файлы и папки с размером меньше указанного;--time
- отображать время последней модификации для файла или папки, вместо времени модификации можно выводить такие метки: atime, access, use, ctime;-X
,--exclude
- исключить файлы из подсчёта;-x
,--one-file-system
- пропускать примонтированные файловые системы;--version
- вывести версию утилиты.du -h --max-depth=1 /home/user
-
head/tail
Пара дополняющих друг друга команд для просмотра начала и конца текста. Команда head выдаёт 10 (по умолчанию) первых строк текста, tail — последних. Число строк в обоих случаях меняется с помощью аргумента
-n
. -
less/more
Две команды для облегчения просмотра больших текстов, не умещающихся на одном экране эмулятора терминала. Т.к. функционально команды одинаковы, но less — новее и поддерживает больше опций, рекомендуется использовать именно её.
-
diff
(Difference). Производит построчное сравнение двух текстовых файлов, выводя различия между ними.
diff file1.txt file2.txt
-
which
Используется для определения местоположения исполняемого файла.
Например необходимо определить где находится исполняемый файл команды ifconfig:
which ifconfig
-
tar
Архиватор, используемый в Linux-системах. Вы можете сжимать как файлы, так и папки. В обоих случаях в результате вы получите архив с расширением .tar.
Создание архива
tar -cvf files.tar /home/user/Documents
Здесь
/home/user/Documents
— это каталог, который необходимо сжать, в результате чего мы получимfiles.tar
.В команде используются параметры
–cvf
, которые реализуют следующие модификации:c
– создает новый файл .tar;v
– выводит подробное описание процесса сжатия;f
– имя файла.Если вы хотите добиться ещё большего сжатия, создайте архив .tar.gz.
tar -cvzf files.tar.gz /home/user/Documents
разархивировать файлы
Команду tar также можно использовать для извлечения файлов. Следующая команда извлечет файлы в текущий каталог:
tar -xvf files.tar
Если вы хотите распаковать файлы в другой каталог, используйте опцию
-C
. Например:tar -xvf files.tar -C /home/user/files/
Аналогичную команду можно использовать для распаковки файлов .tar.gz:
tar -xvf files.tar.gz
-
chmod
Предназначена для изменения прав доступа к файлам и каталогам в Unix-подобных операционных системах.
Разрешения можно задавать двумя способами:
- Числом
- Символами
В данном формате права доступа задаются не символами rwx, как описано выше, а трехзначным числом. Каждая цифра числа означает определенный набор прав доступа.
Первая цифра используется для указания прав доступа для пользователя. Вторая цифра для группы. Третья для всех остальных.
Число Разрешения Символьное обозначение 0
разрешения отсутствуют ---
1
x
— запуск--x
2
w
— изменение-w-
3
x+w
— запуск+изменение-wx
4
r
— чтениеr--
5
r+x
— чтение+запускr-x
6
r+w
— чтение+изменениеrw-
7
r+w+x
— чтение+изменение+запускrwx
chmod 764 myfile.txt
Это означает (см. таблицу выше), что для файла myfile.txt мы устанавливаем права доступа 764, которые означают:
7
— права для владельца-пользователя. Владелец файла может читать, изменять и запускать файл (r+w+x).6
— права для группы. Пользователи, которые принадлежат группе могут читать и изменять файл (r+w).4
— права для всех остальных. Все остальные могут только читать файл (r).Если записать 764 с помощью символов (см. таблицу), то мы получим: «rwxrw-r-».
В таблице ниже приведены некоторые часто используемые значения числовых значений прав доступа:
Числовое обозначение “rwx”-обозначение Описание 400 -r——– Владелец файла может только читать файл. Для всех остальных все действия с файлом запрещены. 644 -rw-r–r– Все пользователи могут читать файл. Владелец может изменять файл. 660 -rw-rw—- Владелец и группа могут читать и изменять файл. Для всех остальных все действия с файлом запрещены. 664 -rw-rw-r– Все могут читать файл. Владелец и группа могут изменять. 666 -rw-rw-rw- Все могут читать и изменять файл. 700 -rwx—— Владелец может читать, изменять и запускать файл. Для всех остальных все действия с файлом запрещены. 744 -rwxr–r– Все могут читать файл. Владелец может также изменять и запускать файл. 755 -rwxr-xr-x Все могут читать и запускать файл. Владелец может также изменять файл. 777 -rwxrwxrwx Все пользователи могут читать, изменять и редактировать файл. -
chown
Служит для изменения владельца файлов, каталогов, ссылок.
Базовый синтаксис:
chown [OPTIONS] USER[:GROUP] FILE(s)
USER
это имя пользователя или идентификатор пользователя (UID) нового владельца,GROUP
имя новой группы или идентификатор группы (GID)FILE(s)
имя одного или нескольких файлов, каталогов или ссылок.Используйте команду
ls -l
, чтобы узнать, кому принадлежит файл или какая группа. -
ps
Одна из самых простых и в то же время часто используемых программ для просмотра списка процессов в Linux.
Вывод всех процессов
ps -A ИЛИ ps -e
Отображение пользовательских запущенных процессов
ps -x
-
kill
Для отправки сигналов процессам.
Используется для:
- Чтобы остановить любой автоматизированный процесс
- Чтобы остановить процесс, который был запущен случайно * Чтобы остановить процесс, который потребляет много памяти
- Чтобы принудительно остановить любой процесс, запущенный в Linux
- Чтобы остановить фоновый процесс
убить процесс
Чтобы убить процесс с определённым PID, используйте следующую команду:
kill 63771
PID можно узнать используя команду ps
-
free
Показывает объём свободной и уже используемой памяти(оперативной и swap).
total
- это число представляет собой общий объем памяти, который может использоваться приложениями.used
- использованная память Он рассчитывается как:used = total - free - buffers - cachefree
- Свободная / Неиспользуемая память.shared
- этот столбец можно игнорировать, так как он не имеет смысла. Это здесь только для обратной совместимости.buff / cache
- объединенная память, используемая буферами ядра, кешем страниц и слэбами. / эта память может быть восстановлена в любое время, если это необходимо приложениям. Если вы хотите, чтобы буферы и кеш отображались в двух отдельных столбцах, используйте эту -w опцию.available
- оценка объема памяти, доступной для запуска новых приложений без замены. -
ip
Позволяет выполнять настройку сетевой подсистемы и является заменой таких утилит, как ifconfig, route, arp.
Синтаксис ip команды следующий:
ip [ OPTIONS ] OBJECT { COMMAND | help }
Показать информацию обо всех IP-адресах
ip addr show
Отображение информации об одном сетевом интерфейсе
ip addr show dev eth0
Назначьте IP-адрес интерфейсу
sudo ip address add 192.168.1.10/24 dev eth0
Удалить IP-адрес с интерфейса
sudo ip address del 192.168.1.10/24 dev eth0
Отображение информации о сетевых интерфейсах
ip link show или ip link show dev eth0
включить/отключить интерфейс
ip link set eth0 up ip link set eth0 down
Показать таблицу маршрутизации
ip route
Добавить новый маршрут
Чтобы добавить новую запись в таблицу маршрутизации, используйте route add команду, а затем имя сети или устройства.
Добавим маршрут к 192.168.1.0/24 через шлюз в 192.168.1.1
ip route add 192.168.1.0/24 via 192.168.1.1
Добавим маршрут к 192.168.121.0/24, который может быть достигнут на устройстве eth0.
ip route add 192.168.121.0/24 dev eth0
Удалить маршрут
Следующая команда удалит маршрут по умолчанию:
ip route del default
Удалите маршрут для 192.168.1.0/24 через шлюз в 192.168.1.1
ip route add 192.168.1.0/24 via 192.168.1.1
-
uname
Утилита, выводящая информацию об операционной системе.
Без дополнительных параметров она выдаст только название ядра. Чтобы получить всю возможную системную информацию, введите:
uname -a
-
ping
Используется для проверки доступности удаленного хоста в основном. Удаленным хостом может быть любое устройство подключенное к компьютерной сети.
эта команда даёт возможность выполнять и другие диагностические задачи в том числе:
- измерение времени за которое общаются два хоста;
- выявление IP адреса конкретного хоста, как в локальной сети, так и в глобальной
- она может быть частью bash скрипта для автоматической проверки сетевого устройства
- проверка связи с конкретным устройством.
Синтаксис команды следующий:
ping [options] [destination]
-c
: Позволяет указать количество пакетов для отправки.-s
: Позволяет изменять размер пакета по умолчанию.-v
: Отображает текущее состояние выполнения команды.-w
: Указывает в секундах время завершения команды.-I
: Позволяет указать интерфейс, с которого будут идти запросы.-i
: указывает интервал между отправкой пакетов.Примеры команды:
ping 1.1.1.1 ping -c 5 1.1.1.1 ping -w 5 1.1.1.1 ping -i 0.5 1.1.1.1 ping -s 100 1.1.1.1