При работе с операционной системой 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
С помощью этой команды можно перемещаться между папками.
Для перемещения в другую папку для работы с файлами, нужно ввести:
cd адрес_папки
Чтобы подняться по древу каталогов на уровень вверх набираем:
cd ..
Чтобы вернуться к предыдущей директории:
cd -
Возврат в домашний каталог текущего пользователя:
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 - cache
free
- Свободная / Неиспользуемая память.
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