В данной статья я расскажу вам про 10ть команд Linux с помощью которых можно собрать информацию о системе и оборудовании.
1. Как просмотреть информацию о системе linux
Что бы определить системное имя выполните команду
Что бы узнать имя компьютера в сети его hostname
monitor .com
Что бы узнать версию ядра
#1 SMP Tue Aug 6 07:04:06 CEST 2013
Что бы узнать релиз ядра
2.6.32 — 23 — pve
Что бы определить разрядность ОС
Всю эту информацию можно получить одной командой
Linux monitor .com 2.6.32 — 23 — pve #1 SMP Tue Aug 6 07:04:06 CEST 2013 i686 i686 i386 GNU/Linux
2. Как просмотреть информацию об оборудовании Linux
Что бы узнать информацию об cpu, disks, memory, usb controllers можно воспользоваться командой lshw
Если её нет в системе то необходимо предварительно установить, она есть в репозитории rpmforge
yum install lshw
Выполнить команду и в результате получите подобную информацию
description : Computer
width : 64 bits
capabilities : vsyscall64 vsyscall32
description : Motherboard
physical id : 0
*- generic UNCLAIMED
physical id : 123
description : System memory
physical id : 0
size : 1GiB
vendor : Intel Corp .
physical id : 1
version : 6.10.9
serial : 0003 — 06A9 — 0000 — 0000 — 0000 — 0000
size : 3300MHz
width : 64 bits
Как узнать имя компьютера (hostname) в Linux (на примере Astra Linux)
capabilities : fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp x86 — 64 constant_tsc . . . . . . . . . . . . . . .
Можно сократить и упорядочить вывод с помощью опции
lshw — short
H / W path Device Class Description
system Computer
/ 0 bus Motherboard
/ 0 / 123 generic
/ 0 / 0 memory 1GiB System memory
/ 0 / 1 / 1.1 processor Logical CPU
/ 0 / 1 / 1.2 processor Logical CPU
/ 0 / 1 / 1.3 processor Logical CPU
/ 0 / 1 / 1.4 processor Logical CPU
/ 0 / 1 / 1.5 processor Logical CPU
/ 0 / 1 / 1.6 processor Logical CPU
/ 0 / 1 / 1.7 processor Logical CPU
/ 0 / 1 / 1.8 processor Logical CPU
/ 0 / 1 / 1.9 processor Logical CPU
/ 0 / 1 / 1.a processor Logical CPU
/ 0 / 1 / 1.b processor Logical CPU
/ 0 / 1 / 1.c processor Logical CPU
/ 0 / 1 / 1.d processor Logical CPU
/ 0 / 1 / 1.e processor Logical CPU
/ 0 / 1 / 1.f processor Logical CPU
/ 0 / 1 / 1.10 processor Logical CPU
Также есть возможность вывода информации в html файл
lshw — html > lshw .html
3. Как получить информацию о CPU
Что бы получить информацию о CPU можно воспользоваться командами
cat / proc / cpuinfo
Результат команды будет следующим
processor : 0
vendor_id : GenuineIntel
cpu family : 6
stepping : 9
cpu MHz : 3292.582
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
initial apicid : 0
fpu_exception : yes
cpuid level : 13
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
Как узнать любой Wi-Fi пароль?!#лайфхаки #советы #обучение #вайфай #рек #bobbygrant690
bogomips : 6585.16
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical , 48 bits virtual
power management :
4. Как получить информацию об устройствах Linux
Что бы получить инфо о блочных устройствах таких как жесткие диски, флэшки и т.п. используйте команду lsblk
Пример вывода команды
Источник: system-admins.ru
Предисловие
Всем привет! Меня зовут Саша, и я больше шести лет занимаюсь тестированием бэкенда (сервисы Linux и API). Мысль о статье у меня появилась после очередной просьбы знакомого тестировщика подсказать ему, что можно почитать по командам Linux перед собеседованием. Обычно от кандидата на позицию QA инженера требуют знание основных команд (если, конечно, подразумевается работа с Linux), но как понять, про какие команды стоит почитать во время подготовки к собеседованию, если опыта работы с Linux мало или вовсе нет?
Поэтому, хоть про это уже и много раз написано, я всё же решился написать ещё одну статью «Linux для новичков» и перечислить здесь базовые команды, которые нужно знать перед любым собеседованием в отдел (или компанию), где используют Linux. Я подумал, какие команды и утилиты и с какими параметрами я использую чаще всего, собрал фидбек от коллег, и скомпоновал это всё в одну статью. Статья условно делится на 3 части: сначала краткая информация об основах ввода-вывода в терминале Linux, затем обзор самых базовых команд, а в третьей части описывается решение типовых задач в Linux.
У каждой команды есть много опций, здесь все они перечислены не будут. Всегда можно ввести `man ` или ` —help`, чтобы узнать о команде подробнее.
Если какая-то команда выполняется слишком долго, её можно завершить, нажав в консоли Ctrl+C (процессу посылается сигнал SIGINT).
Немного о выводе команд
Когда запускается процесс в Linux, создаётся 3 стандартных потока данных для этого процесса: stdin, stdout и stderr. Они имеют номер 0, 1 и 2 соответственно. Но нас сейчас интересуют stdout и, в меньшей степени, stderr. Из названий несложно догадаться, что stdout используется для вывода данных, а stderr — для вывода сообщений об ошибках. По умолчанию при запуске команды в Linux stdout и stderr выводят всю информацию на консоль, однако, если вывод команды большой, может быть удобно перенаправить его в файл. Это можно сделать, например, так:
Если мы выведем содержимое файла man_signal, то мы увидим, что оно идентично тому, что было бы при простом запуске команды `man signal`.
Операция перенаправления `>` по умолчанию использует stdout. Можно указать о перенаправлении stdout явно: `1>`. Аналогично можно указать о перенаправлении stderr: `2>`. Можно эти операции скомбинировать и таким образом разделить обычный вывод команды и вывод сообщений об ошибках:
Перенаправить и stdout, и stderr в один файл можно следующим образом:
Операция перенаправления `2>.» и «..». Первое означает текущую директорию, второе — родительскую директорию. Их бывает удобно использовать в различных командах, в частности, ls:
Также есть полезная опция для вывода скрытых файлов (начинаются на «.») — -a:
И еще можно использовать опцию -h — вывод в human readable формате (обратите внимание на размеры файлов):
cd
Изменить текущую директорию.
Если не передавать имя директории в качестве аргумента, будет использоваться переменная окружения $HOME, то есть домашняя директория. Также может быть удобно использовать `~` — специальный символ, означающий $HOME:
mkdir
Иногда нужно создать определенную структуру директорий: например, директорию в директории, которой не существует. Чтобы не вводить несколько раз подряд mkdir, можно использовать опцию -p — она позволяет создать все недостающие директории в иерархии. Также с этой опцией mkdir не вернет ошибку, если директория существует.
rm
Опция -r позволяет рекурсивно удалять директории со всем их содержимым, опция -f позволяет игнорировать ошибки при удалении (например, о несуществующем файле). Эти опции позволяют, грубо говоря, гарантированно удалить всю иерархию файлов и директорий (если на это есть права у пользователя), поэтому, их нужно использовать с осторожностью (классический пример-шутка — «rm -rf /», при определенных обстоятельствах удалит вам если не всю систему, то очень много важных для её работоспособности файлов).
cp
Копировать файл или директорию.
У этой команды также есть опции -r и -f, их можно использовать, чтобы гарантированно скопировать иерархию директорий и папок в другое место.
mv
Переместить или переименовать файл или директорию.
cat
Вывести содержимое файла (или файлов).
Также стоит обратить внимание на команды head (вывести n первых строк или байт файла) и tail (о ней — далее).
tail
Вывести n последних строк или байт файла.
Очень полезной является опция -f — она позволяет выводить новые данные в файле в реальном времени.
less
Иногда текстовый файл слишком большой, и неудобно выводить его командой cat. Тогда можно открыть его с помощью команды less: файл будет выводиться по частям, доступна навигация по этим частям, поиск и прочий простой функционал.
Также может оказаться удобным вариант использования less с конвейером (pipe):
ps
Вывести список процессов.
Я сам обычно использую BSD опции «aux» — вывести все процессы в системе (так как процессов может быть много, я вывел только первые 5 из них, использовав конвейер (pipe) и команду head):
Многие также используют BSD опции «axjf», что позволяет вывести дерево процессов (здесь я убрал часть вывода для демонстрации):
У этой команды много различных опций, так что при активном использовании рекомендую ознакомиться с документацией. Для большинства же случаев хватит просто знать «ps aux».
kill
Послать сигнал процессу. По умолчанию посылается сигнал SIGTERM, который завершает процесс.
Так как процесс может иметь обработчики сигналов, kill не всегда приводит к ожидаемому результату — моментальному завершению процесса. Чтобы «убить» процесс наверняка, нужно послать процессу сигнал SIGKILL. Однако это может привести к потере данных (например, если процесс перед завершением должен сохранить какую-то информацию на диск), так что нужно пользоваться такой командой осторожно. Номер сигнала SIGKILL — 9, поэтому короткий вариант команды выглядит так:
Помимо упомянутых SIGTERM и SIGKILL существует еще множество различных сигналов, их список можно легко найти в интернете. И не забывайте, что сигналы SIGKILL и SIGSTOP не могут быть перехвачены или проигнорированы.
ping
Послать хосту ICMP пакет ECHO_REQUEST.
По умолчанию ping работает, пока его не завершить вручную. Поэтому может быть полезна опция -c — количество пакетов, после отправки которых ping завершится самостоятельно. Ещё одна опция, которую я иногда использую — -i, интервал между посылками пакетов.
ssh
OpenSSH SSH клиент, позволяет подключаться к удаленному хосту.
Есть много нюансов в использовании SSH, также этот клиент обладает большим количеством возможностей, поэтому при желании (или необходимости) можно почитать про это более подробно.
scp
Копировать файлы между хостами (для этого используется ssh).
rsync
Также для синхронизации директорий между хостами можно использовать rsync (-a — archive mode, позволяет скопировать полностью всё содержимое директории «как есть», -v — вывод на консоль дополнительной информации):
echo
Вывести на экран строку текста.
Здесь заслуживают внимания опции -n — не дополнять строку переносом строки в конце, и -e — включить интерпретацию экранирования с помощью «».
Также с помощью этой команды можно выводить значения переменных. Например, в Linux exit code последней завершенной команды хранится в специальной переменной $?, и таким образом можно узнать, какая именно ошибка произошла в последнем запущенном приложении:
telnet
Клиент для протокола TELNET. Используется для коммуникации с другим хостом.
Если нужно использовать протокол TLS (напомню, что SSL давно устарел), то telnet для этих целей не подойдёт. Зато подойдёт клиент openssl:
Пример использования openssl с выводом ответа на GET запрос
Решение типовых задач в Linux
Изменить владельца файла
Изменить владельца файла или директории можно с помощью команды chown:
В параметр этой команде нужно отдать нового владельца и группу (опционально), разделенных двоеточием. Также при изменении владельца директории может быть полезна опция -R — тогда владельцы изменятся и у всего содержимого директории.
Изменить права доступа файла
Эта задача решается с помощью команды chmod. В качестве примера приведу установку прав «владельцу разрешено чтение, запись и исполнение, группе разрешено чтение и запись, всем остальным — ничего»:
Первая 7 (это 0b111 в битовом представлении) в параметре означает «все права для владельца», вторая 6 (это 0b110 в битовом представлении) — «чтение и запись», ну и 0 — это ничего для остальных. Битовая маска состоит из трёх битов: самый младший («правый») бит отвечает за исполнение, следующий за ним («средний») — за запись, и самый старший («левый») — за чтение.
Также можно выставлять права с помощью специальных символов (мнемонический синтаксис). Например, в следующем примере сначала убираются права на исполнение для текущего пользователя, а затем возвращаются обратно:
У этой команды есть много вариантов использования, поэтому советую прочитать про неё подробнее (особенно про мнемонический синтаксис, например, здесь).
Вывести содержимое бинарного файла
Это можно сделать с помощью утилиты hexdump. Ниже приведены примеры её использования.
С помощью этой утилиты можно вывести данные и в других форматах, однако наиболее часто могут пригодиться именно такие варианты её использования.
Искать файлы
Найти файл по части имени в дереве каталогов можно с помощью команды find:
Также доступны другие опции и фильтры поиска. Например, так можно найти файлы в папке test, созданные более 5 дней назад:
Искать текст в файлах
Справиться с этой задачей поможет команда grep. У неё есть множество вариантов использования, здесь в качестве примера указан самый простой.
Один из популярных способов использования команды grep — использование её в конвейере (pipe):
Опция -v позволяет сделать эффект grep’а обратным — будут выводиться только строки, не содержащие паттерн, переданный в grep.
Смотреть установленные пакеты
Универсальной команды нет, потому что всё зависит от дистрибутива Linux и используемого пакетного менеджера. Скорее всего вам поможет одна из следующих команд:
yum list installed apt list —installed zypper se —installed-only pacman -Qqe dpkg -l rpm -qa
Посмотреть, сколько места занимает дерево директорий
Один из вариантов использования команды du:
Можно менять значение параметра -d, чтобы получать более подробную информацию о дереве директорий. Также можно использовать команду в комбинации с sort:
Опция -h у команды sort позволяет сортировать размеры, записанные в human readable формате (например, 1K, 2G), опция -r позволяет отсортировать данные в обратном порядке.
«Найти и заменить» в файле, в файлах в директории
Данная операция выполняется с помощью утилиты sed (без флага g в конце заменится только первое вхождение «old-text» в строке):
sed -i ‘s/old-text/new-text/g’ input.txt
Можно использовать её для нескольких файлов сразу:
Вывести колонку из вывода
Справиться с этой задачей поможет awk. В данном примере выводится вторая колонка вывода команды `ps ux`:
При этом надо иметь ввиду, что awk обладает гораздо более богатым функционалом, так что при необходимости работы с текстом в командной строке стоит почитать об этой команде подробнее.
Узнать IP адрес по имени хоста
С этим поможет одна из следующих команд:
Сетевая информация
Можно использовать ifconfig:
А можно и ip:
При этом, если, например, вас интересует только IPv4, то можно добавить опцию -4:
Посмотреть открытые порты
Для этого используют утилиту netstat. Например, чтобы посмотреть все слушающие TCP и UDP порты с отображением PID’а процесса, слушающего порт, и с числовым представлением порта, нужно использовать ее со следующими опциями:
Информация о системе
Получить данную информацию можно с помощью команды uname.
Чтобы понять, в каком формате производится вывод, можно обратиться к help’у данной команды:
Информация о памяти
Чтобы понять, сколько оперативной памяти занято или свободно, можно воспользоваться командой free.
Информация о файловых системах (свободное место на дисках)
Команда df позволяет посмотреть, сколько места свободно и занято на примонтированных файловых системах.
Опция -T указывает, что нужно выводить тип файловой системы.
Информация о задачах и различной статистике по системе
Для этого используется команда top. Она способна вывести разную информацию: например, топ процессов по использованию оперативной памяти или топ процессов по использованию процессорного времени. Также она выводит информацию о памяти, CPU, uptime и LA (load average).
Эта утилита обладает богатым функционалом, так что если вам надо часто ей пользоваться, лучше ознакомиться с её документацией.
Дамп сетевого трафика
Для перехвата сетевого трафика в Linux используется утилита tcpdump. Чтобы сдампить трафик на порте 12345, можно воспользоваться следующей командой:
Опция -A говорит о том, что мы ходим видеть вывод в ASCII (поэтому это хорошо для текстовых протоколов), -i any указывает, что нас не интересует сетевой интерфейс, port — трафик какого порта дампить. Вместо port можно использовать host, либо комбинацию host и port (host A and port X). И еще полезной может оказаться опция -n — не конвертировать адреса в хостнеймы в выводе.
Что если трафик бинарный? Тогда нам поможет опция -X — выводить данные в hex и ASCII:
При этом надо учитывать, что в обоих вариантах использования будут выводиться IP пакеты, поэтому в начале каждого из них будут бинарные заголовки IP и TCP. Вот пример вывода для запроса «123» посланного в сервер, слушающий порт 12345:
Вместо вывода
Конечно, в Linux есть еще много интересных вещей, о которых можно прочитать на Хабре, StackOverflow и других сайтах (в качестве примера приведу The Art of a Command Line, которая есть и в переводе). Системные администраторы и DevOps используют гораздо больше команд и утилит для конфигурации серверов, но даже тестировщикам может не хватить перечисленных команд. Может потребоваться проверить корректность какого-то хитрого таймаута клиента к серверу или работа сервера при отсутствии свободного места на диске. Я уже не говорю про, например, Docker, который сейчас активно используется многими компаниями. Было бы интересно в рамках продолжения этой справочной статьи разобрать несколько примеров использования различных консольных утилит Linux в процессе тестирования сервисов? Также делитесь своим топом команд в комментариях 🙂
Источник: habr.com
Как узнать версию Linux, характеристики ПК, информацию о железе
Всех приветствую!
В тему: «В гостях, конечно, хорошо, но дома лучше. «.
Когда работаешь за своим ПК — обычно всё о нем знаешь (и железки, и ПО (и все царапины на корпусе )). Но при знакомстве с «неизвестной машиной» — порой, требуется узнать о ней больше: характеристики, версию дистрибутива и ядра Linux.
В принципе, сделать это несложно: 1-2 команды (если не брать отдельные исключительные случаи. ).
Собственно, ниже я и собираюсь привести пару способов, которые «расскажут» нам о текущей ОС (отмечу, что приведенные команды универсальны и работают в разных дистрибутивах).
Примечание : я исхожу из того, что ОС у вас запущена и вы можете вызвать терминал (Ctrl+Alt+T или Win+T). Если какая-то команда ниже у вас не сработает — попробуйте следующую.
Несколько вариантов узнать информацию о текущей ОС Linux
Вариант 1: вкладка «About»
В большинстве дистрибутивах Linux (особенно для начинающих) узнать информацию о системе можно вообще без всяких команд: достаточно открыть параметры системы и перейти во вкладку «About» .
POP!_OS — скрин из панели управления, вкладка About
Кстати, обратите внимание, что через вкладку «About» можно узнать не только о ОС, но и о железках на ПК: процессор, ОЗУ, видеокарта и пр.
Elementary OS — вкладка About
Информация о ОС
Вариант 2
Команда lsb_release -a выведет название дистрибутива, его ID, номер версии (релиза), и кодовое название. Как правило, работает в большинстве дистрибутивах!
- Distributor ID: Pop
- Description: Pop!_OS 20.10
- Release: 20.10
- Codename: groovy
Вариант 3
Команда hostnamectl позволяет вывести на экран базовые сведения о текущей версии ОС (обратите внимание на строчку «Operating System» ).
hostnamectl (Elementary OS)
Пример (в тексте из Linux Mint):
Вариант 4
Этот вариант помимо ОС, расскажет о многих железках на ПК. Наиболее информативный способ!
Попробуйте в терминале ввести команду inxi -F и нажать Enter.
Если появиться ошибка — тогда введите sudo apt install inxi и нажмите Enter. Когда установка пакета будет завершена — снова используйте команду inxi -F .
Пример (Linux Mint):
Вариант 5
В одном из файлов (/etc/os-release) ОС есть информация о дистрибутиве. Для его просмотра достаточно в терминале использовать команду cat /etc/os-release .
Есть еще один файл с информацией о системе (/etc/issue) — он используется при приглашении войти в систему. Для вывода информации из него — используйте cat /etc/issue .
Информация о ядре доступна в файле: /proc/version (команда cat /proc/version ).
Пример (Linux Mint):
Вариант 6
Чтобы узнать версию ядра Linux (и доп. сведения о архитекторе), можно воспользоваться утилитой uname, парочка команд в помощь:
uname -r
uname -a
Пример (Linux Mint):
На сим пока всё, успехов!
Источник: ocomp.info