Время на прочтение
5 мин
Количество просмотров 124K
Иногда критически важно быстро найти нужный файл или информацию в системе. Порой можно ограничиться стандартами функциями поиска, которыми сейчас обладает любой файловый менеджер, но с возможностями терминала им не сравниться.
Команда find – это невероятно мощный инструмент, позволяющий искать файлы не только по названию, но и по:
- Дате добавления.
- Содержимому.
- Регулярным выражениям.
Данная команда будет очень полезна системным администраторам для:
- Управления дисковым пространством.
- Бэкапа.
- Различных операций с файлами.
Команда find в Linux производит поиск файлов и папок на основе заданных вами критериев и позволяет выполнять действия с результатами поиска.
Синтаксис команды find:
$ find directory-to-search criteria action
Где:
- directory-to-search (каталог поиска) – это отправной каталог, с которой find начинает поиск файлов по всем подкаталогам, которые находятся внутри. Если не указать путь, тогда поиск начнется в текущем каталоге;
- criteria (критерий) – критерий, по которым нужно искать файлы;
- action (действие) – что делать с каждым найденным файлом, соответствующим критериям.
Поиск по имени
Следующая команда ищет файл s.txt в текущем каталоге:
$ find . -name "s.txt"
./s.txt
Где:
- . (точка) – файл относится к нынешнему каталогу
- -name – критерии по которым осуществляется поиск. В данном случае поиск по названию файла.
В данном случае критерий -name учитывает только символы нижнего регистра и файл S.txt не появиться в результатах поиска. Чтобы убрать чувствительность к регистру необходимо использовать –iname.
$ find . -iname "s.txt"
./s.txt
./S.txt
Для поиска всех изображений c расширением .png нужно использовать шаблон подстановки *.png:
$ find . -name "*.png"
./babutafb.png
./babutafacebook.png
./Moodle2.png
./moodle.png
./moodle/moodle1.png
./genxfacebook.png
Можно использовать название каталога для поиска. Например, чтобы с помощью команды find найти все png изображения в каталоге home:
$ find /home -name "*.png"
find: `/home/babuta/.ssh': Permission denied
/home/vagrant/Moodle2.png
/home/vagrant/moodle.png
/home/tisha/hello.png
find: `/home/tisha/testfiles': Permission denied
find: `/home/tisha/data': Permission denied
/home/tisha/water.png
find: `/home/tisha/.cache': Permission denied
Если выдает слишком много ошибок в отказе разрешения, тогда можно добавить в конец команды – 2> /dev/null. Таким образом сообщения об ошибках будут перенаправляться по пути dev/null, что обеспечит более чистую выдачу.
find /home -name "*.jpg" 2>/dev/null
/home/vagrant/Moodle2.jpg
/home/vagrant/moodle.jpg
/home/tisha/hello.jpg
/home/tisha/water.jpg
Поиск по типу файла
Критерий -type позволяет искать файлы по типу, которые бывают следующих видов:
- f – простые файлы;
- d – каталоги;
- l – символические ссылки;
- b – блочные устройства (dev);
- c – символьные устройства (dev);
- p – именованные каналы;
- s – сокеты;
Например, указав критерий -type d будут перечислены только каталоги:
$ find . -type d
.
./.ssh
./.cache
./moodle
Поиск по размеру файла
Допустим, что вам необходимо найти все большие файлы. Для таких ситуаций подойдет критерий -size.
- «+» — Поиск файлов больше заданного размера
- «-» — Поиск файлов меньше заданного размера
- Отсутствие знака означает, что размер файлов в поиске должен полностью совпадать.
В данном случае поиск выведет все файлы более 1 Гб (+1G).
$ find . -size +1G
./Microsoft_Office_16.29.19090802_Installer.pkg
./android-studio-ide-183.5692245-mac.dmg
Единицы измерения файлов:
- c — Байт
- k — Кбайт
- M — Мбайт
- G — Гбайт
Поиск пустых файлов и каталогов
Критерий -empty позволяет найти пустые файлы и каталоги.
$ find . -empty
./.cloud-locale-test.skip
./datafiles
./b.txt
...
./.cache/motd.legal-displayed
Поиск времени изменения
Критерий -cmin позволяет искать файлы и каталоги по времени изменения. Для поиска всех файлов, измененных за последний час (менее 60 мин), нужно использовать -60:
$ find . -cmin -60
.
./a.txt
./datafiles
Таким образом можно найти все файлы в текущем каталоге, которые были созданы или изменены в течение часа (менее 60 минут).
Для поиска файлов, которые наоборот были изменены в любое время кроме последнего часа необходимо использовать +60.
$ find . -cmin +60
Поиск по времени доступа
Критерий -atime позволяет искать файлы по времени последнего доступа.
$ find . -atime +180
Таким образом можно найти файлы, к которым не обращались последние полгода (180 дней).
Поиск по имени пользователя
Опция –user username дает возможность поиска всех файлов и каталогов, принадлежащих конкретному пользователю:
$ find /home -user tisha 2>/dev/null
Таким образом можно найти все файлы пользователя tisha в каталоге home, а 2>/dev/null сделает выдачу чистой без ошибок в отказе доступа.
Поиск по набору разрешений
Критерий -perm – ищет файлы по определенному набору разрешений.
$ find /home -perm 777
Поиск файлов с разрешениями 777.
Операторы
Для объединения нескольких критериев в одну команду поиска можно применять операторы:
- -and
- -or
- -not
Например, чтобы найти файлы размером более 1 Гбайта пользователя tisha необходимо ввести следующую команду:
$ find /home -user tisha -and -size +1G 2>/dev/null
Если файлы могут принадлежать не только пользователю tisha, но и пользователю pokeristo, а также быть размером более 1 Гбайта.
$ find /home ( -user pokeristo -or -user tisha ) -and -size +1G 2>/dev/null
Перед скобками нужно поставить обратный слеш «».
Действия
К команде find можно добавить действия, которые будут произведены с результатами поиска.
- -delete — Удаляет соответствующие результатам поиска файлы
- -ls — Вывод более подробных результатов поиска с:
- Размерами файлов.
- Количеством inode.
- -print Стоит по умолчанию, если не указать другое действие. Показывает полный путь к найденным файлам.
- -exec Выполняет указанную команду в каждой строке результатов поиска.
-delete
Полезен, когда необходимо найти и удалить все пустые файлы, например:
$ find . -empty -delete
Перед удалением лучше лишний раз себя подстраховать. Для этого можно запустить команду с действием по умолчанию -print.
-exec:
Данное действие является особенным и позволяет выполнить команду по вашему усмотрению в результатах поиска.
-exec command {} ;
Где:
- command – это команда, которую вы желаете выполнить для результатов поиска. Например:
- rm
- mv
- cp
- {} – является результатами поиска.
- ; — Команда заканчивается точкой с запятой после обратного слеша.
С помощью –exec можно написать альтернативу команде –delete и применить ее к результатам поиска:
$ find . -empty -exec rm {} ;
Другой пример использования действия -exec:
$ find . -name "*.jpg" -exec cp {} /backups/fotos ;
Таким образом можно скопировать все .jpg изображения в каталог backups/fotos
Заключение
Команду find можно использовать для поиска:
- Файлов по имени.
- Дате последнего доступа.
- Дате последнего изменения.
- Имени пользователя (владельца файла).
- Имени группы.
- Размеру.
- Разрешению.
- Другим критериям.
С полученными результатами можно сразу выполнять различные действия, такие как:
- Удаление.
- Копирование.
- Перемещение в другой каталог.
Команда find может сильно облегчить жизнь системному администратору, а лучший способ овладеть ей – больше практиковаться.
Обновлено: 01.02.2022
Опубликовано: 25.07.2016
Утилита find представляет универсальный и функциональный способ для поиска в Linux. Данная статья является шпаргалкой с описанием и примерами ее использования.
Синтаксис
Примеры
Поиск по имени
По дате
По типу файла
По правам
По содержимому
С сортировкой по дате изменения
Лимиты
Действия над найденными объектами
Запуск по расписанию в CRON
Общий синтаксис
find <где искать> <опции>
<где искать> — путь к корневому каталогу, откуда начинать поиск. Например, find /home/user — искать в соответствующем каталоге. Для текущего каталога нужно использовать точку «.».
<опции> — набор правил, по которым выполнять поиск.
* по умолчанию, поиск рекурсивный. Для поиска в конкретном каталоге можно использовать опцию maxdepth.
Описание опций
Опция | Описание |
---|---|
-name | Поиск по имени. |
-iname | Регистронезависимый поиск по имени. |
-type |
Тип объекта поиска. Возможные варианты:
|
-size | Размер объекта. Задается в блоках по 512 байт или просто в байтах (с символом «c»). |
-mtime | Время изменения файла. Указывается в днях. |
-mmin | Время изменения в минутах. |
-atime | Время последнего обращения к объекту в днях. |
-amin | Время последнего обращения в минутах. |
-ctime | Последнее изменение владельца или прав на объект в днях. |
-cmin | Последнее изменение владельца или прав в минутах. |
-user | Поиск по владельцу. |
-group | По группе. |
-perm | С определенными правами доступа. |
-depth | Поиск должен начаться не с корня, а с самого глубоко вложенного каталога. |
-maxdepth | Максимальная глубина поиска по каталогам. -maxdepth 0 — поиск только в текущем каталоге. По умолчанию, поиск рекурсивный. |
-prune | Исключение перечисленных каталогов. |
-mount | Не переходить в другие файловые системы. |
-regex | По имени с регулярным выражением. |
-regextype <тип> | Тип регулярного выражения. |
-L или -follow | Показывает содержимое символьных ссылок (симлинк). |
-empty | Искать пустые каталоги. |
-delete | Удалить найденное. |
-ls | Вывод как ls -dgils |
Показать найденное. | |
-print0 | Путь к найденным объектам. |
-exec <команда> {} ; | Выполнить команду над найденным. |
-ok | Выдать запрос перед выполнением -exec. |
Также доступны логические операторы:
Оператор | Описание |
---|---|
-a | Логическое И. Объединяем несколько критериев поиска. |
-o | Логическое ИЛИ. Позволяем команде find выполнить поиск на основе одного из критериев поиска. |
-not или ! | Логическое НЕ. Инвертирует критерий поиска. |
Полный набор актуальных опций можно получить командой man find.
Примеры использования find
Поиск файла по имени
1. Простой поиск по имени:
find / -name «file.txt»
* в данном примере будет выполнен поиск файла с именем file.txt по всей файловой системе, начинающейся с корня /.
2. Поиск файла по части имени:
find / -name «*.tmp»
* данной командой будет выполнен поиск всех папок или файлов в корневой директории /, заканчивающихся на .tmp
3. Несколько условий.
а) Логическое И. Например, файлы, которые начинаются на sess_ и заканчиваются на cd:
find . -name «sess_*» -a -name «*cd»
б) Логическое ИЛИ. Например, файлы, которые начинаются на sess_ или заканчиваются на cd:
find . -name «sess_*» -o -name «*cd»
в) Более компактный вид имеют регулярные выражения, например:
find . -regex ‘.*/(sess_.*cd)’
find . -regex ‘.*/(sess_.*|.*cd)’
* где в первом поиске применяется выражение, аналогичное примеру а), а во втором — б).
4. Найти все файлы, кроме .log:
find . ! -name «*.log»
* в данном примере мы воспользовались логическим оператором !.
Поиск по дате
1. Поиск файлов, которые менялись определенное количество дней назад:
find . -type f -mtime +60
* данная команда найдет файлы, которые менялись более 60 дней назад.
Или в промужутке:
find . -mmin -20 -mmin +10 -type f
* найти все файлы, которые менялись более 10 минут, но не более 20-и.
2. Поиск файлов с помощью newer. Данная опция доступна с версии 4.3.3 (посмотреть можно командой find —version).
а) дате изменения:
find . -type f -newermt «2019-11-02 00:00»
* покажет все файлы, которые менялись, начиная с 02.11.2019 00:00.
find . -type f -newermt 2019-10-31 ! -newermt 2019-11-02
* найдет все файлы, которые менялись в промежутке между 31.10.2019 и 01.11.2019 (включительно).
б) дате обращения:
find . -type f -newerat 2019-10-08
* все файлы, к которым обращались с 08.10.2019.
find . -type f -newerat 2019-10-01 ! -newerat 2019-11-01
* все файлы, к которым обращались в октябре.
в) дате создания:
find . -type f -newerct 2019-09-07
* все файлы, созданные с 07 сентября 2019 года.
find . -type f -newerct 2019-09-07 ! -newerct «2019-09-09 07:50:00»
* файлы, созданные с 07.09.2019 00:00:00 по 09.09.2019 07:50
По типу
Искать в текущей директории и всех ее подпапках только файлы:
find . -type f
* f — искать только файлы.
Поиск по правам доступа
1. Ищем все справами на чтение и запись:
find / -perm 0666
2. Находим файлы, доступ к которым имеет только владелец:
find / -perm 0600
Поиск файла по содержимому
find / -type f -exec grep -i -H «content» {} ;
* в данном примере выполнен рекурсивный поиск всех файлов в директории / и выведен список тех, в которых содержится строка content.
С сортировкой по дате модификации
find /data -type f -printf ‘%TY-%Tm-%Td %TT %pn’ | sort -r
* команда найдет все файлы в каталоге /data, добавит к имени дату модификации и отсортирует данные по имени. В итоге получаем, что файлы будут идти в порядке их изменения.
Лимит на количество выводимых результатов
Самый распространенный пример — вывести один файл, который последний раз был модифицирован. Берем пример с сортировкой и добавляем следующее:
find /data -type f -printf ‘%TY-%Tm-%Td %TT %pn’ | sort -r | head -n 1
Поиск с действием (exec)
1. Найти только файлы, которые начинаются на sess_ и удалить их:
find . -name «sess_*» -type f -print -exec rm {} ;
* -print использовать не обязательно, но он покажет все, что будет удаляться, поэтому данную опцию удобно использовать, когда команда выполняется вручную.
2. Переименовать найденные файлы:
find . -name «sess_*» -type f -exec mv {} new_name ;
или:
find . -name «sess_*» -type f | xargs -I ‘{}’ mv {} new_name
3. Переместить найденные файлы:
find . -name «sess_*» -type f -exec mv {} /new/path/ ;
* в данном примере мы переместим все найденные файлы в каталог /new/path/.
4. Вывести на экран количество найденных файлов и папок, которые заканчиваются на .tmp:
find . -name «*.tmp» | wc -l
5. Изменить права:
find /home/user/* -type d -exec chmod 2700 {} ;
* в данном примере мы ищем все каталоги (type d) в директории /home/user и ставим для них права 2700.
6. Передать найденные файлы конвееру (pipe):
find /etc -name ‘*.conf’ -follow -type f -exec cat {} ; | grep ‘test’
* в данном примере мы использовали find для поиска строки test в файлах, которые находятся в каталоге /etc, и название которых заканчивается на .conf. Для этого мы передали список найденных файлов команде grep, которая уже и выполнила поиск по содержимому данных файлов.
7. Произвести замену в файлах с помощью команды sed:
find /opt/project -type f -exec sed -i -e «s/test/production/g» {} ;
* находим все файлы в каталоге /opt/project и меняем их содержимое с test на production.
Чистка по расписанию
Команду find удобно использовать для автоматического удаления устаревших файлов.
Открываем на редактирование задания cron:
crontab -e
И добавляем:
0 0 * * * /bin/find /tmp -mtime +14 -exec rm {} ;
* в данном примере мы удаляем все файлы и папки из каталога /tmp, которые старше 14 дней. Задание запускается каждый день в 00:00.
* полный путь к исполняемому файлу find смотрим командой which find — в разных UNIX системах он может располагаться в разных местах.
Содержание
- Смотрим информацию о системе в Linux (Ubuntu, CentOS, Fedora)
- Получение информации о компьютере на UNIX
- Информация о процессоре
- 1. lscpu (Linux)
- 3. Файл /proc/cpuinfo (Linux)
- 4. Температура процессора
- Linux
- FreeBSD
- Информация об оперативной памяти
- 1. Файл /proc/meminfo (Linux)
- 2. free (Linux)
- Как узнать версию Linux (+ информацию о железе, хар-ки ПК)
- Несколько вариантов узнать информацию о текущей ОС Linux
- 👉 Вариант 1: вкладка «About»
- 👉 Вариант 2
- 👉 Вариант 3
- 👉 Вариант 4
- 👉 Вариант 5
- 👉 Вариант 6
- Как посмотреть информацию о системе в Linux
- Информация о ядре Linux
- Информация о жёстких дисках
- Информация о разделах/свободном месте на жёстких дисках
- Температура процессора
- Информация о памяти
- Версия Debian
- Версия Ubuntu/Mint
- Утилита inxi
- Inxi: Материнская плата и BIOS
- Inxi: Аудио
- Дополнительная информация: /proc
- Информация о процессах: ps
- Мониторинг процессов: top и htop
- Сетевые интерфейсы
- Информация о сети
- Просмотр PCI оборудования
- 10 команд Linux что бы получить информацию о системе
- 1. Как просмотреть информацию о системе linux
- 2. Как просмотреть информацию об оборудовании Linux
- 3. Как получить информацию о CPU
- 4. Как получить информацию об устройствах Linux
- 5. Как получить информацию о USB контролере
- 6. Как получить информацию по PCI устройствам.
- 7. Как получить информацию о SCSI устройствах
Смотрим информацию о системе в Linux (Ubuntu, CentOS, Fedora)
Тем кто только-только пересел с операционной системы Windows на более сложный Linux, порой бывает сложно выполнить те операции, которые на знакомой ОС делались за пару секунд.
Одна из подобных задач — посмотреть основную информацию о системе: какой стоит процессор, материнская плата, версия операционной системы, разрядность, ядро и т.п. В старой доброй Windows достаточно было вывести свойства системы или открыть диспетчер задач. А тут всё сложнее. Но вся сила Линукс — в консоли и есть ряд специальных команд командой строки, которые помогут узнать всю необходимую информацию о Вашей ОС Linux, будь то Ubuntu, CentOS, Fedora или иной дистрибутив. Сейчас я Вам их покажу!
hwinfo — эта утилита выдаёт массу информации о комплектующих: процессоре, материнской плате, оперативной памяти, видеокарте, жесткому диску и т.п. К сожалению, не во всех дистрибутивах она присутствует, но установить ещё случай чего — проще простого:
— в Debian, Ubuntu: sudo apt-get install hwinfo
— в Fedora и Red Hat: yum install hwinfo
Чтобы вывести основную информацию, воспользуйтесь ключом —short.
lshw — эта команда выдаёт полную информацию о аппаратной части компьютера или ноутбука.
Конечно, до уровная утилиты hwinfo ещё далеко, но основную информацию получить вполне реально. Команда lshw выполняется с правами рута — sudo lshw.
cat /proc/cpuinfo — вывод полной информации о процессоре, установленном на ПК.
cat /proc/meminfo — подробные данные о полном объёме оперативной памяти, сколько её занято и сколько свободно.
lspci | grep VGA — эта директива отобразит информацию по установленной видеокарте.
lspci | grep Audio — смотрим какая на компьютере установлена звуковая карта.
lspci | grep Ethernet — модель и производитель сетевого адаптера ПК.
cat /proc/version — вывод команды полностью аналогичен предыдущей.
cat /etc/*release* — результат выполнения команды будет во много аналогичным предшествующей директиве. То есть будет показана инфа о дистрибутиве и его версии.
Важное отличие — если Вы используете ОС построенную на каком либо дистрибутиве, то команда отобразить и информацию о базовом дистрибутиве Линукс.
cat /etc/issue — результат выполнения команды аналогичен предыдущей. Вам будет показана версия дистрибутива ОС.
С помощью этого списка основных команд Вы сможете без проблем посмотреть и узнать основную информацию о ПК и операционной системе.
Источник
Получение информации о компьютере на UNIX
В данной статье пойдет речь о способах сбора сведений об оборудовании компьютера, который находится под управлением операционных систем семейства UNIX, такие как Linux и BSD. Также, будет немного затронута часть получения системной информации. Действия будут выполняться из командной строки без графической оболочки — их можно выполнить, подключившись к компьютеру удаленно по SSH.
Информация о процессоре
Команды для получения данных о процессоре.
1. lscpu (Linux)
Команда показывает информацию о характеристиках процессора в удобном виде:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 2
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 62
Model name: Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz
Stepping: 4
CPU MHz: 2592.918
BogoMIPS: 5187.50
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 20480K
NUMA node0 CPU(s): 0-7
* больше всего нас интересует:
Команда отображает множество данных, поэтому добавляем фильтр:
hw.model: Intel(R) Xeon(R) CPU X5690 @ 3.47GHz
hw.machine: amd64
hw.ncpu: 2
* на самом деле, команда sysctl работает и в Linux, но формат вывода менее удобен, по сравнению с вышерассмотренной lscpu.
3. Файл /proc/cpuinfo (Linux)
Позволяет увидеть подробную информацию по каждому ядру:
Команда для подсчета количества ядер:
4. Температура процессора
Linux
Сначала необходимо установить утилиту.
yum install lm_sensors
apt-get install lm-sensors
После установки утилиты выполняем:
FreeBSD
Загружаем необходимый модуль:
* для автоматической его загрузки добавляем в файл /boot/loader.conf строку coretemp_load=»YES»
dev.cpu.0.temperature: 40.0C
dev.cpu.1.temperature: 41.0C
Информация об оперативной памяти
1. Файл /proc/meminfo (Linux)
MemTotal: 8010284 kB
MemFree: 1058580 kB
MemAvailable: 2791616 kB
Buffers: 1884 kB
Cached: 1754092 kB
SwapCached: 122280 kB
Active: 4330296 kB
Inactive: 2006792 kB
Active(anon): 3623768 kB
Inactive(anon): 983120 kB
Active(file): 706528 kB
Inactive(file): 1023672 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 1048572 kB
SwapFree: 597684 kB
Dirty: 20 kB
Writeback: 0 kB
AnonPages: 4466532 kB
Mapped: 92808 kB
Shmem: 25776 kB
Slab: 408732 kB
SReclaimable: 308820 kB
SUnreclaim: 99912 kB
KernelStack: 7312 kB
PageTables: 23276 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 5053712 kB
Committed_AS: 3770324 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 159328 kB
VmallocChunk: 34359341052 kB
HardwareCorrupted: 0 kB
AnonHugePages: 3248128 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 257984 kB
DirectMap2M: 8130560 kB
* чаще всего, самое важное:
Для перевода килобайт в гигабайты можно воспользоваться онлайн калькулятором.
2. free (Linux)
total used free shared buff/cache available
Mem: 3,7G 568M 378M 193M 2,8G 2,6G
Swap: 4,0G 94M 3,9G
Источник
Как узнать версию Linux (+ информацию о железе, хар-ки ПК)
Всех приветствую!
В тему: «В гостях, конечно, хорошо, но дома лучше. «.
Когда работаешь за своим ПК — обычно всё о нем знаешь (и железки, и ПО (и все царапины на корпусе 😉)). Но при знакомстве с «неизвестной машиной» — порой, требуется узнать о ней больше: характеристики, версию дистрибутива и ядра Linux.
В принципе, сделать это несложно: 1-2 команды (если не брать отдельные исключительные случаи. ).
Собственно, ниже я и собираюсь привести пару способов, которые «расскажут» нам о текущей ОС (отмечу, что приведенные команды универсальны и работают в разных дистрибутивах).
Примечание : я исхожу из того, что ОС у вас запущена и вы можете вызвать терминал (Ctrl+Alt+T или Win+T). Если какая-то команда ниже у вас не сработает — попробуйте следующую.
Несколько вариантов узнать информацию о текущей ОС Linux
👉 Вариант 1: вкладка «About»
POP!_OS — скрин из панели управления, вкладка About
Кстати, обратите внимание, что через вкладку «About» можно узнать не только о ОС, но и о железках на ПК: процессор, ОЗУ, видеокарта и пр.
Elementary OS — вкладка About
👉 Вариант 2
👉 Вариант 3
Команда hostnamectl позволяет вывести на экран базовые сведения о текущей версии ОС (обратите внимание на строчку «Operating System» 👇).
hostnamectl (Elementary OS)
Пример (в тексте из Linux Mint):
$ hostnamectl
Static hostname: mint
Icon name: computer-laptop
Chassis: laptop
Machine ID: 939972095cf1459c8b22cc608eff85da
Boot ID: cc35e48fabd4460fb94d7102965ce576
Operating System: Linux Mint 20.1
Kernel: Linux 5.4.0-58-generic
Architecture: x86-64
👉 Вариант 4
Этот вариант помимо ОС, расскажет о многих железках на ПК. Наиболее информативный способ!
60Hz
OpenGL: renderer: Mesa Intel HD Graphics 620 (KBL GT2) v: 4.6 Mesa 20.0.8
Audio:
Device-1: Intel Sunrise Point-LP HD Audio driver: snd_hda_intel
Sound Server: ALSA v: k5.4.0-58-generic
Network:
Device-1: Intel Wireless 8260 driver: iwlwifi
IF: wlp2s0 state: up mac: 90:61:ae:46:f1:2c
Drives:
Local Storage: total: 581.02 GiB used: 840.5 MiB (0.1%)
ID-1: /dev/sda vendor: Crucial model: CT480BX500SSD1 size: 447.13 GiB
ID-2: /dev/sdb model: SSD 128GB size: 119.24 GiB
ID-3: /dev/sdc type: USB vendor: Innostor model: Innostor size: 14.65 GiB
Partition:
ID-1: / size: 5.79 GiB used: 840.5 MiB (14.2%) fs: overlay source: ERR-102
Sensors:
System Temperatures: cpu: 36.0 C mobo: N/A
Fan Speeds (RPM): cpu: 3100
Info:
Processes: 236 Uptime: 13m Memory: 11.59 GiB used: 1.22 GiB (10.5%)
Shell: bash inxi: 3.0.38
👉 Вариант 5
Информация о ядре доступна в файле: /proc/version (команда cat /proc/version ).
$ cat /etc/os-release
NAME=»Linux Mint»
VERSION=»20.1 (Ulyssa)»
>
ID_LIKE=ubuntu
PRETTY_NAME=»Linux Mint 20.1″
VERSION_ID=»20.1″
HOME_URL=»https://www.linuxmint.com/»
SUPPORT_URL=»https://forums.linuxmint.com/»
BUG_REPORT_URL=»http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/»
PRIVACY_POLICY_URL=»https://www.linuxmint.com/»
VERSION_CODENAME=ulyssa
UBUNTU_CODENAME=focal
mint@mint:
👉 Вариант 6
Чтобы узнать версию ядра Linux (и доп. сведения о архитекторе), можно воспользоваться утилитой uname, парочка команд в помощь:
Источник
Как посмотреть информацию о системе в Linux
В этом видео приводятся команды и результаты работы нескольких утилит, с помощью которых можно узнать исчерпывающую информацию об оборудовании и его состоянии в системах Linux. Инструменты тестировались в Debian 8. В Ubuntu или Linux Mint все будет работать аналогично. В Fedora или OpenSuse тоже должно работать. Отпишитесь в комментариях, пожалуйста, если что-то будет отличаться.
Информация о ядре Linux
Будет показан тип ОС, хост, версия ядра, дата и архитектура.
Информация о жёстких дисках
Что бы получить информацию о HDD, наберите в терминале:
Замените /dev/sda на свой, если отличается.
Для запуска теста дисков, наберите:
Программа предложит подождать пару минут. Затем результаты теста можно вывести командой:
Информация о разделах/свободном месте на жёстких дисках
Информация в колонках:
Температура процессора
Что бы посмотреть температуру процессора, можно использовать команду sensors, утилиты [highlight] lm-sensors [/highlight], которая есть в репозиториях. Команда выведет температуру ядер, максимальную и критическую температуру:
Информация о памяти
Стандартная утилита Linux [highlight] free [/highlight], расположенная в /usr/bin:
Версия Debian
Текстовый файл с информацией о дистрибутиве /etc/debian_version:
Версия Ubuntu/Mint
В Ubuntu и Mint есть аналогичный файл /etc/issue:
Утилита inxi
Мощная утилита по сбору информации об оборудовании и програмном обеспечении в Linux [highlight] inxi [/highlight]. По умолчанию установлена в Linux Mint.
По умолчанию, команда сообщит кратнкую информацию о процессоре, версии ядра, памяти и жестких дисках:
Inxi: Материнская плата и BIOS
Inxi: Аудио
Дополнительная информация: /proc
Информация о процессоре:
Информация о памяти:
Информация о процессах: ps
Мониторинг процессов: top и htop
Мониторинг процессов в реальном времени:
Для выхода нажать “q”.
Сетевые интерфейсы
Информация о сети
Просмотр PCI оборудования
Для более подробной информации:
Подписывайтесь на наш канал в YouTube, там много интересного.
Комментируйте и делитесь страницей с друзьями.
Источник
10 команд Linux что бы получить информацию о системе
В данной статья я расскажу вам про 10ть команд Linux с помощью которых можно собрать информацию о системе и оборудовании.
1. Как просмотреть информацию о системе linux
Что бы определить системное имя выполните команду
Что бы узнать имя компьютера в сети его hostname
Что бы узнать версию ядра
Что бы узнать релиз ядра
Что бы определить разрядность ОС
Всю эту информацию можно получить одной командой
2. Как просмотреть информацию об оборудовании Linux
Что бы узнать информацию об cpu, disks, memory, usb controllers можно воспользоваться командой lshw
Если её нет в системе то необходимо предварительно установить, она есть в репозитории rpmforge
Выполнить команду и в результате получите подобную информацию
Можно сократить и упорядочить вывод с помощью опции
Также есть возможность вывода информации в html файл
3. Как получить информацию о CPU
Что бы получить информацию о CPU можно воспользоваться командами
Результат команды будет следующим
4. Как получить информацию об устройствах Linux
Что бы получить инфо о блочных устройствах таких как жесткие диски, флэшки и т.п. используйте команду lsblk
Пример вывода команды
5. Как получить информацию о USB контролере
Команда lsusb покажет информацию об usb контролере и устройствах подключенных к нему
6. Как получить информацию по PCI устройствам.
PCI устройства могут включать usb порты, графические карты, сетевые адаптеры.
7. Как получить информацию о SCSI устройствах
Что бы просмотреть все scsi/sata можно воспользоваться командой lsscsi, если данной команды у вас нет, то установите:
Источник
Python является одним из самых популярных языков программирования и по умолчанию предустановлен во многих операционных системах Linux
Знаете ли вы, что мы можем найти информацию о системе Linux, используя Python?
Да! В этом кратком руководстве объясняется, как найти сведения о системе Linux с помощью Python.
В Python есть модуль с именем Platform, который позволяет нам находить различную системную информацию, такую как версия ОС, имя дистрибутива, архитектура компьютера, ядро, кодовое имя ОС, версия Python и т. д.
Найти сведения о системе Linux с помощью Python
Как указано выше, большинство дистрибутивов Linux поставляются с Python по умолчанию.
Если он еще не установлен, вы можете установить его с помощью менеджера пакетов дистрибутива.
Сюда я также включил шаги по установке последней версии Python 3.6.x в некоторых дистрибутивах Linux.
На Arch Linux и его вариантах:
$ sudo pacman -S python
На Fedora:
$ sudo dnf install python36
На CentOS 7 мы можем установить Python 3.6 из репозитория IUM (Inline with Upstream Stable), как показано ниже.
$ sudo yum install https://centos7.iuscommunity.org/ius-release.rpm
$ sudo yum install python36u
В Ubuntu 17.10 и более новые версии, Python 3.6 доступен по умолчанию.
Так что не беспокойтесь об установке.
В Ubuntu 16.10 и 17.04 Python3 доступен в репозитории [Universe].
Убедитесь, что вы включили репозиторий [Universe] и установите Python 3.6, как показано ниже.
$ sudo add-apt-repository universe $ sudo apt-get install python3.6
В Ubuntu 14.04 или 16.04 Python 3 недоступен в репозитории Universe.
Итак, используйте следующий PPA для установки Python 3.
$ sudo add-apt-repository ppa:deadsnakes/ppa $ sudo apt-get update $ sudo apt-get install python3.6
После установки Python проверьте его версию с помощью команды:
$ python3 --version
Или,
$ python3.6 -V
Вы можете увидеть что-то вроде того, как показано ниже.
Теперь пришло время выяснить, на какой ОС мы работаем.
Показать название ОС, версию и кодовое имя:
$ python3 -c 'import platform; print(platform.linux_distribution())'
Если у вас есть Python 2.x в вашей системе, просто используйте:
$ python -c 'import platform; print(platform.linux_distribution())'
Пример вывода на Ubuntu 18.04 Desktop:
('Ubuntu', '18.04', 'bionic')
Показать архитектуру машины:
$ python3 -c 'import platform; print(platform.architecture())' ('64bit', 'ELF')
Показать тип машины:
$ python3 -c 'import platform; print(platform.machine())' x86_64
Показать имя компьютера в сети:
$ python3 -c 'import platform; print(platform.node())' itisgood
Показать базовую платформу:
$ python3 -c 'import platform; print(platform.platform())' Linux-5.0.0-32-generic-x86_64-with-Ubuntu-18.04-bionic
Показать имя процессора:
$ python3 -c 'import platform; print(platform.processor())' x86_64
Показать информацию о выпуске системы:
$ python3 -c 'import platform; print(platform.release())' 5.0.0-32-generic
Отображение названия системы / ОС:
$ python3 -c 'import platform; print(platform.system())' Linux
Показать версию системы:
$ python3 -c 'import platform; print(platform.version())' #34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019
Показать все данные, такие как система, узел, выпуск, версия, машина и процессор
$ python3 -c 'import platform; print(platform.uname())' uname_result(system='Linux', node='ostechnix', release='5.0.0-32-generic', version='#34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019', machine='x86_64', processor='x86_64')
Это эквивалентно команде «uname -a».
Как я уже упоминал ранее, мы можем также получить установленную версию Python.
Для Python 2.x запустите:
$ python -c 'import platform; print(platform.python_version())' 2.7.15+
Для Python 3.x:
$ python3 -c 'import platform; print(platform.python_version())' 3.6.8
Создайте простой скрипт Python для отображения сведений о системе Linux
Мы можем создать простой скрипт Python для отображения информации о системе Linux, объединив все функции в текстовом файле и просматривая все детали за один раз.
Давайте создадим текстовый файл с именем os_info.py:
$ nano os_info.py
Добавьте следующие строки:
import platform print('Uname:', platform.uname()) print() print('Distribution :', platform.linux_distribution()) print('Machine :', platform.machine()) print('Node :', platform.node()) print('Processor :', platform.processor()) print('Release :', platform.release()) print('System :', platform.system()) print('Version :', platform.version()) print('Platform :', platform.platform())
Сохраните и выйдите из файла.
Теперь выполните следующую команду, чтобы найти информацию о вашей системе Linux:
$ python os_info.py
или,
$ python3 os_info.py
Пример вывода будет следующим:
Uname: uname_result(system='Linux', node='ostechnix', release='5.0.0-32-generic', version='#34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019', machine='x86_64', processor='x86_64') Distribution : ('Ubuntu', '18.04', 'bionic') Machine : x86_64 Node : ostechnix Processor : x86_64 Release : 5.0.0-32-generic System : Linux Version : #34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019 Platform : Linux-5.0.0-32-generic-x86_64-with-Ubuntu-18.04-bionic
Все вышеперечисленные команды были протестированы с Python 3.6.8 на настольной версии Ubuntu 18.04.
Найти сведения о системе Linux с помощью Python 3.8.0
Обратите внимание, что функция platform.linux_distribution () устарела с версии 3.5 и будет удалена в 3.8.
Если вы используете самую последнюю версию Python, которая является 3.8.0, вы должны использовать альтернативу, такую как пакет distro.
$ pip install distro
После установки дистрибутива просто запустите следующую команду, чтобы узнать, на какой ОС вы работаете:
Пример вывода:
Name: Ubuntu 18.04.2 LTS Version: 18.04 (bionic) Codename: bionic
Чтобы отобразить немного больше деталей, используйте флаг -j:
Пример вывода:
{ "codename": "bionic", "id": "ubuntu", "like": "debian", "version": "18.04", "version_parts": { "build_number": "", "major": "18", "minor": "04" } }
Существует также множество других способов и приложений, позволяющих узнать подробности о машине Linux.
Какие используете вы?
Как всегда, любые комментарии приветсвуются!
#Руководства
- 24 мар 2023
-
0
Поставить будильник одной строкой или стереть важные файлы — решать вам, но эти команды нужно знать.
Иллюстрация: Оля Ежак для Skillbox Media
Востоковед, интересующийся IT. В прошлом редактор раздела «Системный блок» журнала «Fакел», автор журналов Computer Gaming World RE, Upgrade Special, руководитель веб-ресурсов компании 1С-Softclub.
Какой смысл пользоваться терминалом, если дистрибутивы Linux и большинство современных приложений имеют графический интерфейс? На первый взгляд, это удобнее: не надо читать документацию и вбивать команды от руки. Но в Linux только официальных сред рабочего стола более десяти, а неофициальных ещё больше. Они сильно отличаются друг от друга и часто работают по-разному, тогда как команды почти одни и те же.
Затем, если вы программист, вам наверняка придётся удалённо подключаться к серверу под управлением Linux, а там вообще не будет графической оболочки.
Кроме того, даже самая продуманная графическая оболочка никогда не даст вам той гибкости и функциональности, которую предлагает командная строка. Например, возможность составлять и запускать сложные цепочки из нескольких разных команд, писать отложенные сценарии и тому подобное. Открыть терминал и написать команду будет всегда быстрее, чем кликать по меню, выбирая нужную опцию.
Наконец, стоит вспомнить, что Linux — это лишь одна из множества Unix-подобных ОС. Изучив терминал Linux, вы сможете ориентироваться в Unix, BSD-системах и macOS. Другими словами, получите универсальный, быстрый и мощный инструмент для работы.
Прежде чем идти дальше, нужно понять следующие правила:
- Не запускайте команды, которых вы не знаете. Копировать команды из интернета и вводить их в терминал, не понимая, что они делают, — плохая практика.
- Если терминал пишет, что команда не найдена, её можно найти в репозиториях и установить с помощью пакетного менеджера. Как именно — смотрите ниже.
- Читайте руководство. Терминал хорош ещё и тем, что содержит встроенную подробную справку по всем командам — её можно вызвать командами man или help. В общем, старый добрый принцип RTFM (read the fucking manual).
Ctrl + Alt + T — запуск терминала.
Ctrl + Shift + T — открыть новую вкладку.
Ctrl + Shift + W или Ctrl + D — закрыть текущую вкладку (или весь терминал, если вкладка одна).
Ctrl + Shift + N — открыть новое окно терминала.
Ctrl + C — отмена выполнения ранее введённой команды.
clear — очищение окна терминала.
history — история ввода.
Чтобы посмотреть определённое количество введённых ранее команд, нужно добавить к команде history число:
$ history 5
1010 ip -h monitor
1011 whatis ls
1012 nethogs
1013 clear
1014 history 5
$
«Листать» введённые ранее команды можно с помощью клавиш со стрелками «вверх» и «вниз».
sleep [number] — отложить выполнение следующей команды. Полезно, когда выполнение следующей команды зависит от успешного завершения предыдущей.
Чтобы указать время, на которое нужно перенести выполнение команды, используют специальные символы:
- s — секунды;
- m — минуты;
- h — часы;
- d — дни.
Следующий пример запустит файл song в программе mplayer через 2 часа 20 мин:
$ sleep 2h 20m && mplayer song.mp3
С помощью командной строки можно быстро получить информацию о программах, состоянии системы и настройках.
man [имя_пакета] — главное руководство по командам Linux.
Даёт подробную информацию по команде и её использованию. У каждой команды есть множество опций, запомнить их все сложно, поэтому стоит научиться пользоваться руководством. Поначалу вывод man кажется запутанным, но стоит с ним разобраться — и необходимость гуглить сведётся к минимуму.
Например, man ls выведет следующую информацию:
LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alpha‐ betically if none of -cftuvSUX nor --sort is specified. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author with -l, print the author of each file ...
Вывод man включает следующие поля:
- Name — имя команды, которую описывает man-страница.
- Synopsis — краткое описание команды и её синтаксиса.
- Description — объяснение того, что делает программа.
- Options — описание опций командной строки, которые принимает команда, и дополнительная информация.
Самое полезное тут — опции. Например, вы хотите вывести список не только файлов, а ещё и их авторов. Выбираете в man нужную опцию и пишете:
ls --author -l total 225824 -rw-r--r--. 1 tam tam tam 5615374 Nov 29 2021 1default.png -rw-r--r--. 1 tam tam tam 5517455 Nov 29 2021 2default.png -rw-r--r--. 1 tam tam tam 5807674 Nov 29 2021 3default.png -rw-r--r--. 1 tam tam tam 6155385 Nov 29 2021 4default.png -rw-r--r--. 1 tam tam tam 6039516 Nov 29 2021 5default.png -rw-r--r--. 1 tam tam tam 5464565 Nov 29 2021 6default.png
LS (1) в выводе man означает первую страницу. Перемещаться по тексту можно с помощью колеса мыши, стрелок вверх/вниз, клавиши пробел или PgUp/PgDn. Перейти в начало/конец руководства можно с помощью клавиш Home и End.
Если ввести заглавную Н, то появится более детальная подсказка с альтернативными способами передвижения по тексту.
Для поиска конкретного слова в man введите ? [искомое_слово] и жмите Enter.
help — справка.
Если в мануале нет информации по команде или утилите или требуется краткая справка, то help — то, что нужно.
ls --help Usage: ls [OPTION]... [FILE]... List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author with -l, print the author of each file -b, --escape print C-style escapes for nongraphic characters --block-size=SIZE with -l, scale sizes by SIZE when printing them; e.g., '--block-size=M'; see SIZE format below
whatis [имя_пакета] — краткое описание утилиты.
$ whatis whatis whatis (1) - display one-line manual page descriptions
whoami — информация о текущем пользователе системы.
$ whoami
tam
whereis — путь к программе.
Показывает полный путь к исполняемому файлу.
$ whereis firefox firefox: /usr/bin/firefox /usr/lib64/firefox /etc/firefox /usr/share/man/man1/firefox.1.gz
lsblk — информация о дисках.
Выводит данные о дисках, разделах и их названия (sda1, sda2 и тому подобное).
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 931.5G 0 disk ├─sda1 8:1 0 128G 0 part /run/media/tam/25881-1 └─sda2 8:2 0 803.5G 0 part zram0 252:0 0 8G 0 disk [SWAP] nvme0n1 259:0 0 476.9G 0 disk ├─nvme0n1p1 259:1 0 200M 0 part /boot/efi ├─nvme0n1p2 259:2 0 1G 0 part /boot ├─nvme0n1p3 259:3 0 439.1G 0 part /home └─nvme0n1p4 259:4 0 36.7G 0 part /
df — объём занятого пространства.
Показывает общий объём диска/раздела и свободный.
По умолчанию выводит данные в килобайтах.
Для отображения в мегабайтах добавьте параметр -m.
$ df -m Filesystem 1M-blocks Used Available Use% Mounted on devtmpfs 4 0 4 0% /dev tmpfs 7896 195 7701 3% /dev/shm tmpfs 3159 2 3157 1% /run /dev/nvme0n1p4 36674 20796 13984 60% / tmpfs 7896 46 7851 1% /tmp /dev/nvme0n1p2 974 271 636 30% /boot /dev/nvme0n1p3 441436 349935 69006 84% /home /dev/nvme0n1p1 200 18 183 9% /boot/efi tmpfs 1580 12 1568 1% /run/user/1000
du — размер файла или папки.
Показывает, сколько места занимает файл или директория.
Лучше вызывать с параметром -h, чтобы получить информацию в МБ, КБ.
du -h ~/Desktop 15G /home/tam/Desktop
free — объём ОЗУ.
Показывает объём доступной и занятой оперативной памяти. Для отображения в МБ, вызывайте с параметром -h.
$ free -h total used free shared buff/cache available Mem: 15Gi 10Gi 536Mi 1.4Gi 4.3Gi 3.2Gi Swap: 8.0Gi 6.9Gi 1.1Gi
uname — сведения о системе.
Показывает данные о системе. Для более подробной информации лучше вводить uname -a. Будут выведены имя компьютера и версия ядра.
$ uname -a Linux fedora 6.1.14-200.fc37.x86_64 #1 SMP PREEMPT_DYNAMIC Sun Feb 26 00:13:26 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
uptime — время работы системы.
Показывает время непрерывной работы ОС и количество пользователей.
$ uptime 22:18:30 up 14 days, 21:50, 1 user, load average: 0.48, 0.53, 0.54
date — вывод даты и времени.
Показания можно форматировать, например установить 12-/ 24-часовой формат, получить наносекунды и тому подобное.
$ date Tue 21 Mar 22:18:58
cat /etc/*-release — информация о дистрибутиве.
$ cat /etc/*-release Fedora release 37 (Thirty Seven) NAME="Fedora Linux" VERSION="37 (Workstation Edition)"
pwd — «где я?».
Позволяет узнать, в какой папке вы находитесь.
$ pwd
/home/tam
file — определение типа файла.
Покажет, с чем вы имеете дело (текстовый документ, картинка, папка).
$ file Dropbox/ Dropbox/: directory
mount/umount — подключение/отключение дисков.
Используется для монтирования дисков, устройств, файловых систем, ISO-образов. Требуются права суперпользователя.
У команд много опций. Смотрите их описание в руководстве, чтобы выбрать ту, которая подходит под вашу задачу.
$ mount /dev/sdb1 /mnt — эта команда примонтирует флешку. $ sudo umount /dev/sdb1 — а эта, наоборот, демонтирует её.
ls — просмотр содержимого директории.
По умолчанию показывает текущую папку. Чтобы посмотреть, что внутри другой папки, нужно прописать путь к ней.
ls [адрес_конкретной_папки] — покажет, что в этой папке с аргументом -R выдаст, что лежит в подпапках.
$ ls Desktop 2014.pdf 50689841.pdf 959f945cb24b3d3f7b68306e5ce1b301.jpg 98551794.pdf archive dir00 dir01 dir02 dir03 dir04 dir05
Полезные опции:
ls -l выводит список содержимого с подробной информацией.
ls -a показывает скрытые файлы.
du — информация о размере файла или папки.
Полезные опции:
-h — выдаёт размеры в лёгком для чтения формате.
-s — выводит минимум данных.
-d — устанавливает глубину рекурсии по папкам.
$ du -h -s Desktop/ 15G Desktop/
df — анализ дискового пространства.
Выдаёт информацию о файловых системах, их размере, использованном и свободном месте.
Полезная опция:
-h — вывод в удобном для чтения формате.
$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 7.8G 212M 7.6G 3% /dev/shm tmpfs 3.1G 1.9M 3.1G 1% /run /dev/nvme0n1p4 36G 21G 14G 60% / tmpfs 7.8G 54M 7.7G 1% /tmp /dev/nvme0n1p2 974M 271M 636M 30% /boot /dev/nvme0n1p3 432G 342G 68G 84% /home /dev/nvme0n1p1 200M 18M 183M 9% /boot/efi tmpfs 1.6G 12M 1.6G 1% /run/user/1000
cd — навигация по папкам.
cd [адрес_папки] — перемещение в нужную папку.
Вызов без параметров возвращает в домашнюю директорию.
cd .. — выход на уровень вверх.
cd — — возврат в предыдущую папку.
$ cd Desktop/ [tam@fedora Desktop]$
Если нужно посмотреть, куда можно перейти из текущей папки, введите cd + пробел + два раза нажмите Tab.
$ cd + archive/ iscan-gt-s600-bundle-2.30.4.x64.rpm/ dir00/ pics/ dir01/ OneDrive/ dir02/ OneDrive-2021/ dir03/ Photos/ dir04/ Photos_c/ dir05/ REACT/
Чтобы узнать, какие папки начинаются, например, с буквы D, введите cd + D + двойной Tab.
cd + D dir00/ dir01/ dir02/ dir03/ dir04/ dir05/
diff — разница между файлами.
Показывает отличия двух текстовых документов.
$ diff textfile-1.txt textfile-2.txt 1,2c1,2 < Если нужно посмотреть, куда можно перейти из текущей папки, введите cd + пробел + двойной Tab. < Чтобы узнать, какие папки начинаются, например, с буквы D, введите cd + D + двойной Tab. --- > diff — разница между файлами. > Показывает разницу между двумя текстовыми файлами.
mkdir — создание новой папки.
Чтобы создать всю структуру папки с подпапками добавьте параметр -p.
$ mkdir Desktop/myfolder
Команда mkdir -p /home/MyNewFolder/OldFolder создаст папку MyNewFolder в домашней директории и переместит в эту новую папку OldFolder, которая была создана ранее.
Чтобы создать сразу 33 папки, достаточно написать:
$ mkdir dir{00..33} $ ls dir00 dir04 dir08 dir12 dir16 dir20 dir24 dir28 dir32 dir01 dir05 dir09 dir13 dir17 dir21 dir25 dir29 dir33 dir02 dir06 dir10 dir14 dir18 dir22 dir26 dir30 dir03 dir07 dir11 dir15 dir19 dir23 dir27 dir31
touch — создание файла.
Изначально команда предназначалась для изменения времени последнего открытия файла или папки, но на практике её чаще используют для создания новых файлов.
$ touch /home/Ivan /myfile.txt
cp — копирование файлов и папок.
Для копирования вложенных папок и файлов нужно добавить параметр -r (Recursive).
$ cp myfile.txt /home/Ivan/Desktop
mv — перемещение/переименование файлов и папок.
В Linux переименование — это как бы перемещение файла в ту же самую папку, но уже под другим именем.
$ mv oldname.txt newname.txt
С помощью этой команды можно переименовать сразу несколько файлов.
$ for f in *.html; do mv -- "$f" "${f%.html}.php" done
Код выше поменяет расширение всех файлов в папке с .html на .php.
Здесь используется цикл for, который проходится по всем файлам с расширением .html. Код во второй строке перемещает каждый элемент списка в новое место (= переименовывает), заменяя .html на .php. Фрагмент ${file%.html} удаляет части имени файла .html. Done в третьей строке означает конец цикла for.
rename — переименование файлов.
Более продвинутая, чем mv, команда. Но она требует знания регулярных выражений. С rename превращение .html в .php будет выглядеть так:
$ rename 's/.html/.php/' *.html
Здесь s/ (оператор подстановки) отвечает за поиск строки (.html) и её замену на .php. Квантификатор * означает ноль или более повторений.
rm — удаление файлов и папок.
Чтобы удалить вложенные папки и файлы добавьте параметр -r. Важно: rm удаляет файл или папку без возможности восстановления обычными способами.
rm -rf/ — была когда-то одной из самых опасных команд, потому что удаляла всё и навсегда. Вот её расшифровка:
rm — удалить файлы;
-rf — удалить рекурсивно, то есть пройти по вложенным папкам;
/ — начать с корневой директории.
Поскольку были пользователи, которые не читали мануал и страдали из-за шутников, советовавших чинить свою систему с помощью такой команды, в более поздних версиях Linux её разрушительные возможности ограничили. Ну и да — даже когда она работала как часы, её надо было запускать с правами суперпользователя.
ln — создание жёсткой или символической ссылки на файл.
Символическая ссылка — это примерный аналог ярлыка в Windows. Она просто указывает на файл, а жёсткая — ведёт на физический адрес на диске и фактически создаёт копию файла.
Создание жёсткой ссылки:
$ ln /home/ivan/videos/video.mp4 /home/ivan/Desktop/hard_link_to_video_file
Создание символической ссылки:
$ ln -s /home/ivan/video.mp4 soft_link_to_video_file
find — поиск по файловой системе.
Очень полезная команда. Позволяет не только искать файлы и папки по заданным критериям, но и совершать дополнительные действия с ними.
find ./myfolder -name file.txt
find ./myfolder -name *.txt
find ./myfolder -name somefile.txt -exec rm -i {}
Здесь мы говорим: найди (find) в папке ./myfolder файл с именем (-name) somefile.txt и выполни (-exec) команду удаления (rm) всех файлов {}, спрашивая при этом каждый раз подтверждение (-i).
Опций гораздо больше, см. man.
dd — копирование и преобразование файлов и разделов.
Позволяет копировать и перемещать целые разделы и отдельные файлы.
Нужно указать исходный файл, место, куда копировать и необходимые дополнительные опции.
Часто используется для создания Live USB. Создать образ диска:
$ sudo dd if=/dev/sda of=/tmp/sdadisk.img
wc — статистика по файлу.
Выдаёт количество строк, слов, знаков и байтов.
$ wc ~/Desktop/textfile-1.txt 2 32 312 /home/tam/Desktop/textfile-1.txt
wget — загрузка файлов из Сети.
Позволяет скачивать изображения, документы, веб-страницы.
$ wget https://www.somesite.ru/some.jpg
$ wget ya.ru --2023-03-22 00:42:47-- http://ya.ru/ Resolving ya.ru (ya.ru)... 2a02:6b8::2:242, 77.88.55.242, 5.255.255.242 Connecting to ya.ru (ya.ru)|2a02:6b8::2:242|:80... connected. [...] Length: 1727 (1.7K) [text/html] Saving to: 'index.html' index.html 100%[===================>] 1.69K --.-KB/s in 0s 2023-03-22 00:42:48 (69.8 MB/s) - 'index.html' saved [1727/1727]
Многие действия в системе выполняются с правами суперпользователя, например установка обновлений, программ или их удаление.
sudo — получение прав суперпользователя.
Например, с помощью следующей команды мы обновим пакеты в Fedora Linux:
$ sudo dnf update
sudo su — удобная опция, если нужно выполнить сразу много команд от имени суперпользователя. Если ввести это один раз, далее можно писать нужные команды.
Опытные пользователи советуют избегать этой команды из соображений безопасности.
sudo!! — запуск ранее введённой команды с правами администратора.
sudo gksudo — запуск графических утилит от имени суперпользователя. Формат команды такой: sudo gksudo [название приложения, которое нужно запустить].
Но sudo есть по умолчанию не во всех дистрибутивах. Например, в таких дистрибутивах, как Arch Linux, Gentoo и некоторых других, которые позволяют пользователю настраивать систему почти без ограничений, sudo нужно устанавливать отдельно. Но везде есть su.
chmod — изменение прав доступа к файлу.
Можно дать права на чтение, запись и запуск файла.
chmod опции права /[путь_к_файлу].
Есть три основных вида прав:
- r — чтение;
- w — запись;
- x — выполнение.
И три вида пользователей:
- u — владелец файла;
- g — группа файла;
- o — остальные пользователи.
Есть также цифровой формат записи:
- 0 — никаких прав;
- 1 — только выполнение;
- 2 — только запись;
- 3 — выполнение и запись;
- 4 — только чтение;
- 5 — чтение и выполнение;
- 6 — чтение и запись;
- 7 — чтение, запись и выполнение.
$ chmod o+w *.txt
Эта команда разрешит остальным пользователям (всем, кроме владельца файла) чтение и запись в текстовые файлы.
$ chmod -R 777 /
Эта команда даст всем пользователям право читать, писать и запускать файлы в системе.
chown — изменение владельца файла, папки.
Для выполнения этой команды нужно обладать правами суперпользователя.
Чтобы поменять владельца для вложенных файлов и папок, добавьте параметр -R.
В Linux может быть несколько пользователей с разными правами.
useradd/userdel/usermod — добавление, удаление, изменение пользователя.
useradd userName — добавить пользователя.
passwd userName — задать пароль для пользователя. При наборе пароля в терминале не будут отображаться никакие символы, но система учтёт все нажатые клавиши.
userdel userName — удалить учётную запись.
usermod userName — редактировать учётную запись.
hostname — определение домена.
Выводит адрес DNS вашей машины.
$ hostname
fedora
С опцией -i покажет текущий IP-адрес компьютера.
ip — работа с сетью.
Эта команда заменяет множество других команд, которые раньше использовались для настроек сети, например ifconfig, ipconfig, netstat и прочие.
ip -a — информация о сетевых настройках.
$ ip -a Usage: ip [ OPTIONS ] OBJECT { COMMAND | help } ip [ -force ] -batch filename where OBJECT := { address | addrlabel | amt | fou | help | ila | ioam | l2tp | link | macsec | maddress | monitor | mptcp | mroute | mrule | neighbor | neighbour | netconf | netns | nexthop | ntable | ntbl | route | rule | sr | tap | tcpmetrics | token | tunnel | tuntap | vrf | xfrm } OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -h[uman-readable] | -iec | -j[son] | -p[retty] | -f[amily] { inet | inet6 | mpls | bridge | link } | -4 | -6 | -M | -B | -0 | -l[oops] { maximum-addr-flush-attempts } | -br[ief] | -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] | -rc[vbuf] [size] | -n[etns] name | -N[umeric] | -a[ll] | -c[olor]}
ip address show — выводит сведения о сетевых адресах.
ip route — управление маршрутизацией.
ip -help — узнать все варианты использования.
ping — диагностика сети.
Ping используется для проверки подключения к интернету и тестирования качества связи. Самый простой способ проверить работу сети — ввести ping google.com. Для отмены выполнения команды нажмите Ctrl + C. Также с помощью этой команды можно проверять соединение со своим сервером.
$ ping google.com PING google.com(lb-in-f101.1e100.net (2a00:1450:4010:c1e::65)) 56 data bytes 64 bytes from lb-in-f101.1e100.net (2a00:1450:4010:c1e::65): icmp_seq=1 ttl=108 time=40.9 ms
traceroute — как ping, но лучше.
Выводит не только маршрут сетевых пакетов, но и данные по узлу и время доставки пакетов.
nethogs — информация о трафике.
Полезная утилита, которая помогает определить, какая программа сколько трафика потребляет. Не во всех системах установлена по умолчанию.
zip — архивирование файла.
Упаковывает файлы в zip-архив.
$ zip my-archive.zip /home/Ivan/file-to-archive.txt
unzip — распаковка архива.
Извлекает файлы из архива.
tar — создание резервных копий.
Утилита tar тоже создаёт архивы, но уже с расширением .tar. В отличие от zip, она не сжимает файлы, поэтому её чаще используют для резервного копирования.
Выполняется с параметрами -cf. Просмотреть содержимое .tar можно с помощью опций -tvf. Для распаковки архива .tar используются опции -xvf.
tar -xvf newark.tar
- -c, —create — создать новый архив;
- -t, —list — вывести список содержимого архива;
- -x, —extract — извлечь файлы из архива;
- -v, —verbose — вывести список с деталями;
- -f, —file — файл (архив).
Для этих целей используются редакторы Nano и Vim, которые запускаются прямо в окне терминала.
nano — запуск текстового редактора Nano.
$ nano textfile-1.txt
Скриншот: Skillbox Media
Внизу вы видите подсказки к основным командам редактора. Введя текст, сохраните его, нажав комбинацию клавиш Ctrl + О и выходите с помощью Ctrl + X.
vim — запуск текстового редактора Vim.
Vim намного мощнее и сложнее Nano, зато Vim можно использовать как полноценную IDE для программирования и/или работы с текстами. Для выхода из редактора введите :q.
Скриншот: Skillbox Media
У нас есть полноценный курс по Vim для начинающих.
echo — вывод строки в терминал.
Простая и популярная команда, используется для вывода текста в терминал или файл.
$ echo Hello, World! Hello, World!
С помощью опции -e можно запускать специальные последовательности. Например, добавив n, можно выводить слова на новых строках.
$ echo -e "Hello, nWorld n!" Hello, World !
Можно раскрасить вывод в разные цвета, а добавив *, вывести содержимое папки.
$ echo * dir00 dir01 dir02 dir03 dir04 dir05 dir06 dir07 dir08 dir09 dir10 dir11 dir12 dir13 dir14 dir15 dir16 dir17 dir18 dir19 dir20 dir21 dir22 dir23 dir24 dir25 dir26 dir27 dir28 dir29 dir30 dir31 dir32 dir33 index.html
cat — просмотр содержимого файла.
Команда cat выводит в терминал содержимое файла, который вы укажете в качестве параметра. Вот как она выглядит: cat [путь_к_файлу].
$ cat textfile-1.txt Если нужно посмотреть, куда можно перейти из текущей папки, введите cd + пробел + двойной Tab. Чтобы узнать, какие папки начинаются, например, с буквы D, введите cd + D + двойной Tab.
По этой команде выводится содержимое файла, переданного в параметре.
Можно передать сразу несколько файлов.
Можно объединить содержимое нескольких файлов в новом с помощью символа >.
$ cat textfile-1.txt textfile-2.txt > textfile-3.txt
С помощью опции -n (Number) можно вывести определённое количество строк.
grep — поиск по текстовым файлам.
Мощная команда для поиска внутри файлов. Ищет по слову, строке или регулярному выражению.
Чтобы команда вывела найденное в терминал, перед ней нужно ввести cat.
Например, для поиска слова «кот» в файле cats.txt можно ввести:
$ cat cats.txt | grep кот
head — просмотр начала файла.
Похожа на cat, но по умолчанию показывает только первые 10 строк текста.
Для изменения числа выводимых строк есть параметр -n.
head -n 5 ~/Desktop/myfile.txt покажет первые пять строк файла.
$ head -n 5 ~/Desktop/textfile-1.txt Если нужно посмотреть, куда можно перейти из текущей папки, введите cd + пробел + двойной Tab. Чтобы узнать, какие папки начинаются, например, с буквы D, введите cd + D + двойной Tab.
tail — просмотр конца файла.
Выводит последние строки текста файла.
С помощью опции -c можно вывести определённое количество байт информации из файла.
$ tail -c 100 textfile-3.txt ми Показывает разницу между двумя текстовыми файлами.
Параметр -f позволяет следить за изменениями в файле и выводить их на экран.
more/less — просмотр длинных текстов.
less выводит часть большого текста так, что занимает один экран. С опцией -N показывает номера строк. Ниже — пример работы команды (вчитываться в текст не стоит, он не имеет отношения к самой команде — это просто вывод текстовой информации из случайного текстового файла).
$ less -N textfile-3.txt 1. Если нужно посмотреть, куда можно перейти из текущей папки, введите cd 1 + пробел + двойной Tab. 2. Чтобы узнать, какие папки начинаются, например, с буквы D, введите cd + 2 D + двойной Tab. 3. diff -- разница между файлами. 4. Показывает разницу между двумя текстовыми файлами.
more делает то же самое, что и less, но у неё меньше дополнительных опций. Следующая команда выведет текст, начиная с десятой строки.
$ more +10 newtestfile.txt
Скриншот: Skillbox Media
sort — сортировка строк.
Сортирует строки текста по разным критериям.
Полезные опции
-n (Numeric) — сортировка по числовому значению.
-r (Reverse) — переворачивает вывод.
$ sort text-to-sort.txt computer data GUI line linux mouse skillbox terminal
$ sort -r text-to-sort.txt terminal skillbox mouse linux line GUI data computer
top — отображение процессов.
Эта команда выводит список всех процессов, запущенных в системе.
Альтернативы: atop, xtop или сочетание ps axu | grep [имя_процесса].
$ ps axu | grep firefox tam 531905 1.0 3.0 5597628 498708 ? Sl Mar15 96:44 /usr/lib64/firefox/firefox tam 531917 0.0 0.0 4808 2320 ? Ss Mar15 1:20 /usr/libexec/cgroupify app-gnome-firefox-531905.scope tam 532027 0.0 0.0 253672 11184 ? Sl Mar15 0:00 /usr/lib64/firefox/firefox -contentproc -parentBuildID 20230214102510 -prefsLen 29270 -prefMapSize 240130 -appDir /usr/lib64/firefox/browser {f6b45f8f-ab5a-4190-88dc-cb4e27948d4e} 531905 socket
Ещё вариант: pidof + [имя процесса].
$ pidof firefox 782667 782616 782563 782548 782341 782031 781966 781483 759503 741791 741676 721674 719583 671683 651779 647050 646496 641065 638796 635042 634566 631565 586886 586388 584499 584009 567091 566046 565460 565175 562873 562301 560923 560876 557257 553088 550860 549445 543830 543783 541594 535504 532439 532437 532180 532096 532027 531905
kill, xkill, pkill — принудительное завершение процессов.
Закрыть программу или завершить процесс можно несколькими способами.
С помощью команды kill: kill [ID_процесса].
Чтобы узнать PID (идентификатор процесса), введите команду top.
С помощью команды xkill. После её ввода вместо курсора появится крестик, наведите его на окно программы, которую нужно закрыть.
С помощью команды pkill (завершение процесса по имени).
pkill firefox
killall — завершение всех процессов с указанным именем.
killall firefox
Для установки и удаления приложений и обновлений в Linux используются пакетные менеджеры. В каждом дистрибутиве или семействах дистрибутивов они разные.
В Ubuntu и Debian это APT, в Fedora — DNF, в Arch и Manjaro — Pacman, в Gentoo — Portage, в openSUSE — RPM.
Для установки пакетов нужны права суперпользователя. Примеры команд:
dnf (Fedora).
sudo dnf install [имя_пакета] — установка пакета.
sudo dnf update — обновление сведений о пакетах.
sudo dnf upgrade — обновление пакетов.
sudo dnf remove [имя_пакета] — удаление пакета.
dnf autoremove — автоматическое удаление ненужных файлов с их зависимостями.
Скриншот: Skillbox Media
Узнать, есть ли нужная программа в репозиториях или как она точно называется, можно через поиск. В Fedora это команда dnf search [имя пакета].
$ dnf search firefox Last metadata expiration check: 3:23:53 ago on Tue 21 Mar 2023 22:33:02 MSK. ========================== Name & Summary Matched: firefox =========================== firefox.x86_64 : Mozilla Firefox Web browser firefox-langpacks.x86_64 : Firefox langpacks firefox-pkcs11-loader.x86_64 : Helper script for Firefox that sets up the browser for : authentication with Estonian ID-card firefox-wayland.x86_64 : Firefox Wayland launcher. firefox-x11.x86_64 : Firefox X11 launcher. ============================== Summary Matched: firefox ============================== icecat.x86_64 : GNU version of Firefox browser mozilla-https-everywhere.noarch : HTTPS enforcement extension for Mozilla Firefox mozilla-noscript.noarch : JavaScript white list extension for Mozilla Firefox mozilla-ublock-origin.noarch : An efficient blocker for Firefox profile-cleaner.noarch : Script to vacuum and reindex sqlite databases used by Firefox : and by Chrome textern.x86_64 : Firefox add-on for editing text in your favorite external editor webextension-token-signing.x86_64 : Chrome and Firefox extension for signing with your : eID on the web
Можно также скачать файл и установить его через терминал. Программы, совместимые с дистрибутивами на основе Debian, имеют расширение .deb.
Установить такой файл можно командой dpkg: dpkg -i package.deb.
dpkg —remove package — удаление пакета.
dpkg —purge package — удаление пакета со всеми зависимостями.
Linux можно выключить или перезагрузить из терминала. Это незаменимая опция для тех, кто работает без графического окружения, и полезная, если нужно задать разные условия выключения и перезагрузки.
sudo shutdown — выключение системы (обратите внимание, этой программе нужны права суперпользователя).
Полезные опции команды shutdown:
shutdown +[время в 24-часовом формате].
shutdown 05:10 выключит компьютер через 5 часов 10 минут.
shutdown +[время в минутах].
shutdown +7 выключит компьютер через 7 минут.
shutdown +0 или shutdown now — немедленное выключение компьютера.
Tab — автозавершение.
Чтобы не вводить длинные названия файлов и папок или команд, достаточно написать пару первых букв и нажать Tab, система сама дополнит команду или путь к файлу — но только до того символа, с которого начнётся «разветвление». Звучит сложно, но вот пример: если набрать /home/[username]/D, то автокомплит не сработает, потому что по этому пути есть три папки, которые начинаются на букву D — Downloads, Documents и Desktop.
alias — создание синонимов для команд.
С помощью alias можно переименовывать команды или создавать свои. Это удобно, если команда имеет длинное имя, а вы часто ей пользуетесь.
Синтаксис: alias [длинная_команда короткая_команда].
Чтобы узнать, какие алиасы уже есть в системе, введите alias:
$ alias alias cp='cp -i' alias df='df -h' alias egrep='egrep --colour=auto' alias fgrep='fgrep --colour=auto' alias free='free -m' alias grep='grep --colour=auto' alias ls='ls --color=auto' alias more='less' alias np='nano -w PKGBUILD'
Создать алиас для команды clear можно так:
$ alias c='clear'
unalias [alias name] — удалить alias.
Созданным таким образом алиасы сохраняются только до следующей перезагрузки системы. Чтобы сделать алиас постоянным, нужно прописать его в файле ~/.bashrc.
& & — выполнение сразу нескольких команд.
Команды можно связывать и запускать вместе.
[первая_команда] & & [вторая_команда].
| (pipe) — вывод результата первой команды во вторую.
ps axu | grep [имя_процесса].
Ctrl + Shift + T — открыть новую вкладку в терминале.
Ctrl + Shift + C — копировать текст из терминала, аналог Ctrl + C.
Ctrl + Shift + V — вставить текст в терминал, аналог Ctrl + V.
Ctrl + A, Ctrl + E — перемещение в начало/конец строки в терминале.
Alt + B, Alt + F — перемещение по слову назад/вперёд.
Alt + D — удаление следующего слова.
Ctrl + U — удалить всё до начала.
Ctrl + K — удалить всё до конца.
Ctrl + L — очистить экран, не удаляя текущую команду.
Может потребоваться установка пакетов cowsay и fortune (sudo apt-get install fortunes fortune-mod fortunes-min fortunes-ru).
cowsay — говорящая корова.
cowsay + [любое слово/фраза].
Выведет на экран корову, которая произносит введённое слово.
fortune | cowsay — корова поделится умной мыслью или цитатой.
$ fortune | cowsay _________________________________________ / "Call immediately. Time is running out. | We both need to do something monstrous | | before we die." | | | | -- Message from Ralph Steadman to | Hunter Thompson / ----------------------------------------- ^__^ (oo)_______ (__) )/ ||----w | || ||
cowsay -l — список других животных.
Выведет список других существ, которых можно вызвать в терминале.
fortune | cowsay -f [животное].
Выведет животное, произносящее умную мысль или цитату.
- Обратите внимание: команды и их ключи в терминале Linux чувствительны к регистру — постановка прописной или строчной буквы влияет на их работоспособность.
- Навыки работы с командной строкой помогут легко взаимодействовать практически с любой Unix-подобной операционной системой.
- Использование горячих клавиш позволяет значительно ускорить работу с терминалом — собственно, без них работа будет идти довольно медленно.
Научитесь: Администрирование ОС Linux
Узнать больше