Linux узнать загрузочный диск
У меня есть Linux Centos (5.0) машина с 2 дисками. Я сменил кабель SATA на один из дисков, когда понял, что в зависимости от того, какой слот SATA я использую, ОС запускается с sda или sdb.
Проблема в том, что у меня есть ежедневные резервные копии от sda до sdb (просто копии), если случайно кто-то поменяет кабель SATA, я испорчу и перезапишу новые данные старыми данными.
Единственное, что я знаю, это то, что текущий загрузочный диск - хороший. Как я могу точно знать, какой диск является текущим загрузочным диском (sda или sdb)?
Дополнительная информация: У меня нет физического доступа к машине.
Во-первых, используйте дисковые UUID, как сказал @grawity.
Если вы хотите узнать UUID всего, что выглядит как блочное устройство для Linux, используйте команду blkid . Я думаю, что вы можете сделать что-то вроде blkid /dev/sda чтобы узнать UUID sda .
Другое, что вы можете сделать, это использовать символические ссылки в /dev/disk/by-id которые создаются для каждого диска на основе шины, к которой он подключен, а также сообщаемой модели и серийного номера.
Технически, Linux не знает и не заботится об устройстве, с которого он был загружен, потому что
- это задача загрузчика - которая выполняется до запуска ядра - загружать ядро в память.
- все, что не входит в ядро, необходимое для загрузки, находится в initramfs (initrd), например, драйверы, ранние утилиты пользовательского пространства - загрузка это тоже работа загрузчика.
Теперь, после загрузки Linux, загрузочные скрипты или любой другой механизм, работающий под ядром, пытается смонтировать корневую файловую систему, чтобы у вас были другие функции, кроме ядра, а также подкачки и т.д. В основном все вещи в вашем /etc/fstab . Это то, что вас действительно волнует, и этот файл будет содержать необходимую информацию. Вы можете использовать UUID в /etc/fstab (и я полагаю, что большинство дистрибутивов уже используют их), поэтому с помощью пары grep и cut вы можете получить UUID отсюда, что вам нужно.
Пример (это, вероятно, можно сделать лучше): cat /etc/fstab | grep "/ " | cut -f 1 -d " "
И вы можете использовать вывод этого для blkid чтобы найти UUID вашей корневой файловой системы или любого другого раздела.
Всем привет! Меня зовут Саша, и я больше шести лет занимаюсь тестированием бэкенда (сервисы Linux и API). Мысль о статье у меня появилась после очередной просьбы знакомого тестировщика подсказать ему, что можно почитать по командам Linux перед собеседованием. Обычно от кандидата на позицию QA инженера требуют знание основных команд (если, конечно, подразумевается работа с Linux), но как понять, про какие команды стоит почитать во время подготовки к собеседованию, если опыта работы с Linux мало или вовсе нет?
Поэтому, хоть про это уже и много раз написано, я всё же решился написать ещё одну статью «Linux для новичков» и перечислить здесь базовые команды, которые нужно знать перед любым собеседованием в отдел (или компанию), где используют Linux. Я подумал, какие команды и утилиты и с какими параметрами я использую чаще всего, собрал фидбек от коллег, и скомпоновал это всё в одну статью. Статья условно делится на 3 части: сначала краткая информация об основах ввода-вывода в терминале Linux, затем обзор самых базовых команд, а в третьей части описывается решение типовых задач в Linux.
У каждой команды есть много опций, здесь все они перечислены не будут. Всегда можно ввести `man ` или ` --help`, чтобы узнать о команде подробнее.
Если какая-то команда выполняется слишком долго, её можно завершить, нажав в консоли Ctrl+C (процессу посылается сигнал SIGINT).
Если мы выведем содержимое файла man_signal, то мы увидим, что оно идентично тому, что было бы при простом запуске команды `man signal`.
Операция перенаправления `2>&1` означает перенаправление stderr туда же, куда направлен stdout.
Еще один удобный инструмент для работы с вводом-выводом (а точнее, это удобное средство межпроцессного взаимодействия) — pipe (или конвейер). Конвейеры часто используются для связи нескольких команд: stdout команды перенаправляется в stdin следующей, и так по цепочке:
Вывести текущую (рабочую) директорию.
Вывести текущую дату и время системы.
Данная команда показывает, кто залогинен в системе. Помимо этого также на экран выводится uptime и LA (load average).
Вывести содержимое директории. Если не передать путь, то выведется содержимое текущей директории.
Лично я часто использую опции -l (long listing format — вывод в колонку с дополнительной информацией о файлах), -t (сортировка по времени изменения файла/директории) и -r (обратная сортировка — в сочетании с -t наиболее «свежие» файлы будут внизу):
Есть 2 специальных имени директории: "." и "..". Первое означает текущую директорию, второе — родительскую директорию. Их бывает удобно использовать в различных командах, в частности, ls:
Также есть полезная опция для вывода скрытых файлов (начинаются на ".") — -a:
И еще можно использовать опцию -h — вывод в human readable формате (обратите внимание на размеры файлов):
Изменить текущую директорию.
Если не передавать имя директории в качестве аргумента, будет использоваться переменная окружения $HOME, то есть домашняя директория. Также может быть удобно использовать `~` — специальный символ, означающий $HOME:
Информация о памяти
Чтобы понять, сколько оперативной памяти занято или свободно, можно воспользоваться командой free.
19. Информация о USB
Кроме PCI устройств есть еще внешние USB, это принтеры, Bluetooth адаптер, мышка, клавиатура. Это тоже важная информация о компьютере Ubuntu.
Или более подробная информация:
2. Интерактивный режим
Большинство операций fdisk по разметке дисков выполняются в интерактивном режиме. Чтобы запустить fdisk в интерактивном режиме передайте утилите блочное устройство которое надо разметить. В моём примере, это /dev/nvme0n1:
sudo fdisk /dev/nvme0n1
Вам не обязательно возвращаться к этой статье, когда вы захотите снова поработать с программой, посмотреть доступные команды можно выполнив команду m:
Выводы
На этом сайте уже есть статьи подробно расписывающие многие из приведенных здесь команд. Информацию о тех командах, которые не описаны, вы можете получить, выполнив в терминале команду man. Если я упустил какие-либо важные команды и параметры, напишите в комментариях!
mkdir
Иногда нужно создать определенную структуру директорий: например, директорию в директории, которой не существует. Чтобы не вводить несколько раз подряд mkdir, можно использовать опцию -p — она позволяет создать все недостающие директории в иерархии. Также с этой опцией mkdir не вернет ошибку, если директория существует.
Опция -r позволяет рекурсивно удалять директории со всем их содержимым, опция -f позволяет игнорировать ошибки при удалении (например, о несуществующем файле). Эти опции позволяют, грубо говоря, гарантированно удалить всю иерархию файлов и директорий (если на это есть права у пользователя), поэтому, их нужно использовать с осторожностью (классический пример-шутка — "rm -rf /", при определенных обстоятельствах удалит вам если не всю систему, то очень много важных для её работоспособности файлов).
Копировать файл или директорию.
У этой команды также есть опции -r и -f, их можно использовать, чтобы гарантированно скопировать иерархию директорий и папок в другое место.
Переместить или переименовать файл или директорию.
Вывести содержимое файла (или файлов).
Также стоит обратить внимание на команды head (вывести n первых строк или байт файла) и tail (о ней — далее).
Вывести n последних строк или байт файла.
Очень полезной является опция -f — она позволяет выводить новые данные в файле в реальном времени.
Иногда текстовый файл слишком большой, и неудобно выводить его командой cat. Тогда можно открыть его с помощью команды less: файл будет выводиться по частям, доступна навигация по этим частям, поиск и прочий простой функционал.
Также может оказаться удобным вариант использования less с конвейером (pipe):
Вывести список процессов.
Я сам обычно использую BSD опции "aux" — вывести все процессы в системе (так как процессов может быть много, я вывел только первые 5 из них, использовав конвейер (pipe) и команду head):
Многие также используют BSD опции "axjf", что позволяет вывести дерево процессов (здесь я убрал часть вывода для демонстрации):
У этой команды много различных опций, так что при активном использовании рекомендую ознакомиться с документацией. Для большинства же случаев хватит просто знать "ps aux".
Послать сигнал процессу. По умолчанию посылается сигнал SIGTERM, который завершает процесс.
Так как процесс может иметь обработчики сигналов, kill не всегда приводит к ожидаемому результату — моментальному завершению процесса. Чтобы «убить» процесс наверняка, нужно послать процессу сигнал SIGKILL. Однако это может привести к потере данных (например, если процесс перед завершением должен сохранить какую-то информацию на диск), так что нужно пользоваться такой командой осторожно. Номер сигнала SIGKILL — 9, поэтому короткий вариант команды выглядит так:
Помимо упомянутых SIGTERM и SIGKILL существует еще множество различных сигналов, их список можно легко найти в интернете. И не забывайте, что сигналы SIGKILL и SIGSTOP не могут быть перехвачены или проигнорированы.
Послать хосту ICMP пакет ECHO_REQUEST.
По умолчанию ping работает, пока его не завершить вручную. Поэтому может быть полезна опция -c — количество пакетов, после отправки которых ping завершится самостоятельно. Ещё одна опция, которую я иногда использую — -i, интервал между посылками пакетов.
OpenSSH SSH клиент, позволяет подключаться к удаленному хосту.
Есть много нюансов в использовании SSH, также этот клиент обладает большим количеством возможностей, поэтому при желании (или необходимости) можно почитать про это более подробно.
Копировать файлы между хостами (для этого используется ssh).
Оцените статью:
Об авторе
10 комментариев
Спасибо за статью. Как раз вовремя. В начале недели мне нужно будет работать с сервером на Ubuntu. Применю в практике.
Смотреть установленные пакеты
Универсальной команды нет, потому что всё зависит от дистрибутива Linux и используемого пакетного менеджера. Скорее всего вам поможет одна из следующих команд:
31. Информация о DNS серверах
Адреса DNS серверов, с которыми работает система находятся в файле /etc/resolv.conf:
Если вы используете systemd, то там системные DNS настраиваются через сервис systemd-resolve, поэтому чтобы посмотреть текущий DNS сервер надо выполнить:
Изменить владельца файла
Изменить владельца файла или директории можно с помощью команды chown:
В параметр этой команде нужно отдать нового владельца и группу (опционально), разделенных двоеточием. Также при изменении владельца директории может быть полезна опция -R — тогда владельцы изменятся и у всего содержимого директории.
16. SCSI устройства
Отобразить параметры SCSI устройств подключенных к системе:
Возможно, утилиту надо будет установить командой:
sudo apt install lsscsi
23. Информация об аудио устройствах
Посмотреть информацию про звуковую карту можно в той же lspci, потому что она подключена по этой шине:
lspci | grep -i audio
2. Серийный номер и производитель
Если у вас ноутбук, то может быть получена такая информация, как производитель, серийный номер, и другая информация о железе Ubuntu, закодированная в dmi:
sudo dmidecode -s system-serial-number
sudo dmidecode -s system-manufacturer
sudo dmidecode -s system-product-name
Для персональных компьютеров эта информация будет не заполнена. Всю доступную информацию смотрите командой:
9. Применение изменений
Все изменения, которые вы сейчас вносили, ещё не записаны на диск. Для их записи надо выполнить команду w:
После записи изменений программа завершится.
Дамп сетевого трафика
Для перехвата сетевого трафика в 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 в процессе тестирования сервисов? Также делитесь своим топом команд в комментариях :)
Linux отображает подключённые жёсткие диски иначе, чем Windows. В операционной системе от Microsoft мы привыкли к тому, что у нас есть диск C, D, E, и нам не нужно задумываться о реальных именах разделов и жёстких дисков. Все диски размещены в проводнике и очень просто доступны.
В Linux такой возможности нет, как и нет такой абстракции. Диски и разделы именуются как есть, и вы будете иметь дело именно с этими именами. В этой статье мы разберём, как посмотреть список дисков Linux.
6. Тип раздела
Кроме обычных разделов для пользовательских файлов существуют и другие типы разделов, например раздел EFI, BIOS boot, Windows Recovery, Linux swap, этот тип влияет на назначение раздела, например, раздел EFI не будет использоваться пока для него не будет выбран правильный тип. Чтобы изменить тип раздела используйте команду t:
Для вывода всех доступных типов и их номеров используйте команду L:
Для выхода из списка разделов нажмите q, а затем просто наберите номер нужного типа:
18. Информация о PCI устройствах
PCI устройства - это все устройства, подключенные к материнской плате компьютера по шине PCIe, это видеокарта, сетевая карта, беспроводный адаптер, и так далее. По сути, посмотреть железо Ubuntu можно просмотрев PCI устройства. Для этого выполните:
Чтобы вывести устройства в виде дерева выполните:
Можно искать определённое устройство, например, видеокарту:
lspci | grep -i 'VGA'
Максимально подробная информация:
9. Версия ядра
Ядро - это самый важный компонент системы. Информация о системе Ubuntu, а именно версии ядра доступна с помощью команды uname. Для вывода только версии выполните:
А для вывода всей доступной информации:
25. Время работы системы
Команда uptime показывает когда был запущен компьютер:
Информации о системе Linux
35. Информация о группах
Чтобы посмотреть все группы, созданные в системе выполните:
Для просмотра групп текущего пользователя выполните:
1. Имя хоста
Самый простой способ узнать имя хоста своей машины, это команда hostname:
Или можно просто посмотреть содержимое файла /etc/hostname:
Более подробную информацию можно узнать с помощью команды hostnamectl из systemd:
Подробнее про имя хоста здесь.
33. Информация о сервисах
Смотрим все запущенные сервисы в systemd:
systemctl list-units --type service --state running
Проверяем запущен ли сервис, например docker:
sudo systemctl status docker
Проверяем загружается ли сервис автоматически, например apache2:
sudo systemctl is-enabled apache2
telnet
Клиент для протокола TELNET. Используется для коммуникации с другим хостом.
Если нужно использовать протокол TLS (напомню, что SSL давно устарел), то telnet для этих целей не подойдёт. Зато подойдёт клиент openssl:
39. Информация о брандмаузере
Чтобы посмотреть все правила в брандмауэре iptables выполните:
sudo iptables -L -n -v
Если вы используете брандмауэр ufw, то можно посмотреть настроенные правила в нём:
sudo ufw status numbered
28. Просмотр лога ядра
Очень полезная информация о компьютере Ubuntu, информация об ошибках и проблемах находится в логе ядра:
sudo less /var/log/dmesg
20. Информация о беспроводных сетевых адаптерах
Модель и производителя сетевого адаптера можно посмотреть через lscpi, но более подробную информацию о настройках и поддерживаемых функциях там не узнать, для этого есть свои команды. Просмотр беспроводного сетевого интерфейса и его конфигурации:
Более подробные параметры сетевого интерфейса можно посмотреть командой:
Если вы уже подключены к сети, то с помощью программы wavemon можно посмотреть качество соединения, мощность передатчика, а также другие параметры подключения. Но сначала её надо установить:
sudo apt install wavemon
27. Текущий уровень запуска
Всего в Systemd пять уровней запуска:
- runlevel0.target, poweroff.target - выключение;
- runlevel1.target, rescue.target - однопользовательский текстовый режим;
- runlevel2.target, runlevel4.target - не используются;
- runlevel3.target, multi-user.target - многопользовательский текстовый режим;
- runlevel5.target, graphical.target - графический многопользовательский режим;
- runlevel6.target, reboot.target - перезагрузка.
Посмотреть текущий уровень запуска можно командой:
А уровень запуска по умолчанию:
sudo systemctl get-default
Узнать IP адрес по имени хоста
С этим поможет одна из следующих команд:
rsync
Также для синхронизации директорий между хостами можно использовать rsync (-a — archive mode, позволяет скопировать полностью всё содержимое директории «как есть», -v — вывод на консоль дополнительной информации):
Вывести на экран строку текста.
Здесь заслуживают внимания опции -n — не дополнять строку переносом строки в конце, и -e — включить интерпретацию экранирования с помощью "\".
Также с помощью этой команды можно выводить значения переменных. Например, в Linux exit code последней завершенной команды хранится в специальной переменной $?, и таким образом можно узнать, какая именно ошибка произошла в последнем запущенном приложении:
Выводы
В этой статье мы рассмотрели как пользоваться fdisk в Linux, как создавать разделы с помощью этой утилиты, а также как выбрать тип диска. Несмотря на все возможности утилиты намного удобнее пользоваться gparted или же cfdisk если надо разметить диск в терминале. Последнюю мы разберем в одной из следующих статей.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
3. Производитель и модель материнской платы
Узнать модель материнской платы можно множеством способов, но самый простой - использовать ту же утилиту dmidecode:
sudo dmidecode -t 2
36. Информация о паролях
Чтобы посмотреть информацию о пароле пользователя выполните команду change. Например:
chage -l имя_пользователя
37. Информация о процессах
Проще всего посмотреть всё запущенные процессы с помощью команды:
Но более удобно использовать утилиту top или htop. Обе надо установить.
34. Информация о пользователях
38. Установленные пакеты
Смотрим список всех установленных пакетов:
Смотрим все необходимые исполняемому файлу библиотеки:
Какому пакету принадлежит файл:
dpkg -S /путь/к/файлу
Как посмотреть список дисков в Linux
В Linux все отображается в файловом виде, в том числе и устройства. Все подключённые к операционной системе Linux устройства размещаются в каталоге /dev/ здесь вы найдете микрофоны, камеры, жёсткие диски, флешки, одним словом, все внешние и внутренние устройства.
Жёсткие диски имеют особенные названия. В зависимости от интерфейса, через который подключён жёсткий диск, название может начинаться на:
- sd - устройство, подключённое по SCSI;
- hd - устройство ATA;
- vd - виртуальное устройство;
- mmcblk - обозначаются флешки, подключённые через картридер;
В наше время большинство блочных устройств Linux подключаются через интерфейс SCSI. Сюда входят жёсткие диски, USB-флешки, даже ATA-диски теперь тоже подключаются к SCSI через специальный переходник. Поэтому в большинстве случаев вы будете иметь дело именно с дисками sd.
Третья буква в имени диска означает его порядковый номер в системе. Используется алфавитная система. Например sda - первый диск, sdb - второй диск, sdc - третий и так далее. Дальше следует цифра - это номер раздела на диске - sda1, sda2.
Самый простой способ увидеть все подключённые диски - это посмотреть содержимое каталога /dev/ и отфильтровать устройства sd:
Как видите, в моей системе сейчас есть только один диск и два раздела. Дальше мы можем посмотреть, куда примонтирован каждый из разделов:
Здесь, кроме дисков, будут отображаться различные специальные файловые системы: procfs, sysfs, tmpfs, cgroup и так далее. Однако все эти команды не помогут нам получить доступ к информации о дисках. Поэтому нам понадобится кое-что другое. Посмотреть подключённые диски с выводом информации о размере и свободном пространстве можно с помощью утилиты df:
Здесь отображается уже подробная информация. Но вы можете узнать ещё больше с помощью команды lsblk:
В этом случае список примонтированных дисков Linux включает ещё и информацию о точке монтирования, типе раздела (диск, раздел, привод) и его мажорном и минорном номере, по которым можно понять, что это за устройство. Если вам нужна информация о размере, то лучше использовать fdisk:
Это все утилиты, которыми вы можете воспользоваться, чтобы просмотреть список дисков Linux. Но есть ещё и графические утилиты.
5. Статистика использования процессора
Посмотреть загруженность процессора можно с помощью утилиты mpstat. Для её установки выполните:
sudo apt install mpstat
А затем для запуска:
Здесь информация выводится в процентах. Но более приятно наблюдать за загрузкой процессора в реальном времени с помощью htop:
Узнать какой была загрузка системы за последнее время можно открыв файл /proc/loadavg. Здесь доступны три значения загрузки - за одну, пять и пятнадцать минут:
Оцените статью:
Об авторе
3 комментария
Можно ли одной командой очистить диск полностью и, если можно, какой?
Банальное удаление: rm -rf
или форматирование: sudo mke2fs -t ext4 -L DATA /dev/sdb1
Если требуется действительно удалить данные с диска (забить диск нулями или случайными данными), а не просто удалить указатели на эти данные в файловой системе, то проще всего использовать nwipe
Собрать всю доступную информацию о системе и железе Ubuntu может понадобиться если у вас появился новый компьютер или ноутбук, и вам интересно, какое там точно оборудование. Также это может понадобиться если нужно заменить какой-либо компонент, например, жесткий диск. Ну или даже просто так. Ещё информация о железе Ubuntu может понадобиться если вы собираетесь настраивать Wifi, Bluetooth, веб-камеру или устанавливать драйвера для видеокарты.
В этой статье я перечислю команды, с помощью которых может быть получена информация об операционной системе Ubuntu. Все команды были проверены в Ubuntu 20.04, но они должны работать в любом современном дистрибутиве, таком как Debian, Fedora, OpenSUSE и т д.
10. Параметры запуска ядра
Чтобы узнать с какими параметрами было запущено ядро достаточно посмотреть содержимое файла /proc/cmdline. Там находится имя файла образа ядра, а затем его параметры запуска:
Информация о задачах и различной статистике по системе
Для этого используется команда top. Она способна вывести разную информацию: например, топ процессов по использованию оперативной памяти или топ процессов по использованию процессорного времени. Также она выводит информацию о памяти, CPU, uptime и LA (load average).
Эта утилита обладает богатым функционалом, так что если вам надо часто ей пользоваться, лучше ознакомиться с её документацией.
Вывести содержимое бинарного файла
Это можно сделать с помощью утилиты hexdump. Ниже приведены примеры её использования.
С помощью этой утилиты можно вывести данные и в других форматах, однако наиболее часто могут пригодиться именно такие варианты её использования.
22. Информация об видеокарте NVIDIA
Если установлены проприетарные драйвера, информацию о видеокарте можно посмотреть командой:
Здесь будет представлена более подробная информация о видеокарте, чем в обычном выводе lspci.
Посмотреть список дисков в GUI
Во-первых, если к компьютеру подключено несколько дисков, то вы сможете их увидеть на левой панели файлового менеджера Nautilus или Dolphin. Там будет отображаться список подключенных устройств Linux, их метки и размер:
В Gnome есть программа Disks, которая позволяет настраивать поведение дисков, она же может отображать список подключенных устройств к системе. Вы можете найти её в главном меню:
Утилита отображает всю доступную информацию о дисках и разделах на них, вы можете даже посмотреть информацию о состоянии smart. Список дисков находится на панели слева, а справа разделы на этом диске:
Ещё одна утилита, которую вы можете использовать, чтобы посмотреть список жёстких дисков Linux - это Gparted. Это редактор разделов для Linux, но вы можете посмотреть подключнёные диски и структуру каждого из них. Раскрывающийся список вы найдёте в верхнем правом углу:
А в основной части окна программы отображается список разделов.
Посмотреть, сколько места занимает дерево директорий
Один из вариантов использования команды du:
Можно менять значение параметра -d, чтобы получать более подробную информацию о дереве директорий. Также можно использовать команду в комбинации с sort:
Опция -h у команды sort позволяет сортировать размеры, записанные в human readable формате (например, 1K, 2G), опция -r позволяет отсортировать данные в обратном порядке.
4. Создание таблицы разделов
Давайте создадим новую таблицу разделов GPT. Для этого используйте команду g. Для таблицы разделов MBR нам бы понадобилась команда o.
Изменить права доступа файла
Эта задача решается с помощью команды chmod. В качестве примера приведу установку прав «владельцу разрешено чтение, запись и исполнение, группе разрешено чтение и запись, всем остальным — ничего»:
Первая 7 (это 0b111 в битовом представлении) в параметре означает «все права для владельца», вторая 6 (это 0b110 в битовом представлении) — «чтение и запись», ну и 0 — это ничего для остальных. Битовая маска состоит из трёх битов: самый младший («правый») бит отвечает за исполнение, следующий за ним («средний») — за запись, и самый старший («левый») — за чтение.
Также можно выставлять права с помощью специальных символов (мнемонический синтаксис). Например, в следующем примере сначала убираются права на исполнение для текущего пользователя, а затем возвращаются обратно:
У этой команды есть много вариантов использования, поэтому советую прочитать про неё подробнее (особенно про мнемонический синтаксис, например, здесь).
17. Статистика ввода-вывода
Самая простая команда, позволяющая узнать статистику ввода/вывода - iostat:
Утилита отображает среднюю нагрузку на процессор, а также ввод и вывод на диски. При запуске можно указать интервал обновления:
Куда удобнее смотреть статистику ввода-вывода с помощью утилиты iotop. Но её сначала надо установить:
sudo apt install iotop
32. Информация о соктетах и портах
Все прослушиваемые порты:
Или только сетевые:
Смотрим открытые в системе файлы:
Или открытые файлы в определённой папке:
sudo lsof | grep /bin/
Информация о системе
Получить данную информацию можно с помощью команды uname.
Чтобы понять, в каком формате производится вывод, можно обратиться к help'у данной команды:
7. Информация о подкачке
Посмотреть подключен ли swap раздел и какого он размера можно командами:
Команда free тоже выводит информацию о swap, в том числе сколько памяти из этого раздела использовано, а сколько свободно:
Ещё можно посмотреть содержимое файла /proc/swaps или выполнить команду vmstat.
Выводы
В этой статье мы разобрали несколько способов посмотреть список примонтированных дисков Linux. Каждый из них может понадобиться в различных ситуациях. Если у вас остались вопросы, спрашивайте в комментариях!
В Linux существует множество способов разметки диска, создания на нём разделов и просмотра уже существующих. Это утилиты parted и cfdisk в терминале и графическая утилита gparted. Однако сегодня мы поговорим про самую простую утилиту для разметки диска в терминале - fdisk.
Именно она используется чаще всего, если надо посмотреть как диски и разделы доступны на компьютере. Далее рассмотрим основные опции утилиты, её синтаксис, а также примеры использования.
3. Просмотр таблицы разделов
Чтобы посмотреть текущий тип таблицы разделов, а также доступные разделы на диске используйте команду p:
В данном примере на диске уже есть несколько разделов, а таблица разделов используется MBR (dos).
29. Загруженные модули ядра
Все загруженные модули вместе с зависимостями:
Информация о конкретном модуле, например mac80211:
sudo modinfo mac80211
30. Информация о сети
Список сетевых интерфейсов можно узнать в директории /sys/class/net:
Посмотреть локальный IP адрес, MAC адрес и другую информацию о сетевых интерфейсах можно с помощью команды ip:
Или старый вариант:
sudo ifconfig -a
Посмотреть только информацию об интерфейсе enp24s0:
sudo ip addr show enp24s0
Посмотреть таблицу маршрутизации:
Посмотреть сетевые мосты:
sudo brctl show
Посмотреть внешний IP адрес можно командой:
Посмотреть открытые порты
Для этого используют утилиту netstat. Например, чтобы посмотреть все слушающие TCP и UDP порты с отображением PID'а процесса, слушающего порт, и с числовым представлением порта, нужно использовать ее со следующими опциями:
12. Информация о жестких дисках
Смотрим подключенные жесткие диски и разделы на них:
fdisk -l | grep '^/dev'
Смотрим разделы на определенном диске:
Узнаем метку диска:
sudo e2label /dev/sda1
Посмотреть список подключённых жестких дисков вместе с UUID можно с помощью команды:
21. Информация об видеокарте
Чтобы узнать какая видеокарта у вас используется выполните:
lspci | grep -i vga
lspci -vvnn | grep VGA
sudo lshw -class display
Чтобы посмотреть доступные расширения экрана выполните команду xrandr без параметров:
Посмотреть параметры видеодрайвера можно командой glxinfo. Но прежде её надо установить:
sudo apt install mesa-utils
13. Блочные устройства
Список всех подключённых или созданных в системе блочных устройств можно вывести командой:
11. Архитектура системы
Для просмотра архитектуры, для которой была скомпилирована ваша система используйте команду:
Кроме того, можно использовать такие команды:
uname -m
getconf LONG_BIT
Вывести колонку из вывода
При этом надо иметь ввиду, что awk обладает гораздо более богатым функционалом, так что при необходимости работы с текстом в командной строке стоит почитать об этой команде подробнее.
15. Примонтированные диски
Посмотреть все примонитрованные файловые системы можно выполнив:
mount | grep /dev/
Информация о файловых системах (свободное место на дисках)
Команда df позволяет посмотреть, сколько места свободно и занято на примонтированных файловых системах.
Опция -T указывает, что нужно выводить тип файловой системы.
8. Загрузочный раздел
При загрузке компьютера с диска, на котором используется таблица разделов MBR, BIOS ищет раздел, отмеченный как загрузочный и начинает искать загрузчик именно на нём. Чтобы сделать раздел загрузочным если он ещё не загрузочный или наоборот сделать его не загрузочным используйте команду a:
Загрузочность отмечается звездочкой в выводе команды p. В таблице разделов GPT для записи загрузчика используется раздел с типом BIOS boot, а флага загрузочности здесь уже нет.
Сетевая информация
Можно использовать ifconfig:
А можно и ip:
При этом, если, например, вас интересует только IPv4, то можно добавить опцию -4:
5. Создание разделов
Чтобы создать раздел используйте команду n. Команда спросит какой номер раздела надо присвоить этому разделу, затем спросит сектор начала раздела, эти значения можно оставить по умолчанию, так как утилита предлагает минимальные доступные. Далее надо указать размер раздела. Это можно сделать тремя способами:
- указать количество секторов раздела;
- указать последний сектор раздела;
- указать размер раздела в килобайтах, мегабайтах или гигабайтах, обозначения стандартные K,M,G.
Давайте создадим три раздела разными способами:
Первый раздел создадим с помощью обычных единиц измерения. Перед ними надо ставить плюс, так как это место, которое добавляется к первому сектору раздела.
Во втором способе укажем размер раздела в секторах. Для получения раздела размером 1 гигабайт нам понадобится примерно 2 000 000 секторов. По умолчанию размер сектора 512 байт, поэтому 2 000 000 * 512 получится примерно 1024 000 000 байт:
И в третьем способе с помощью калькулятора добавим к первому сектору раздела те же два миллиона:
На этом создание разделов fdisk завершено. А вот форматирование разделов в fdisk невозможно, для этого придется воспользоваться утилитой mkfs.
Опции и синтаксис fdisk
Синтаксис утилиты ничем не отличается от других команд Linux:
$ fdisk опции устройство
Ей надо передать опции, согласно действия, которое вы хотите выполнить, а также раздел диска или устройство к которому эти действия надо применить. Давайте теперь рассмотрим опции fdisk:
- -B, --protect-boot - не стирать первые 512 байт диска чтобы не повредить загрузочную запись;
- -L, --color - настройка цветного вывода, возможные значения auto, never или always;
- -l, --list - вывести все разделы на выбранных устройствах или если устройств не задано, то на всех устройствах;
- -o, --output - указывает какие поля данных надо показывать в выводе программы, доступные поля рассмотрим ниже;
- -u, --units - настраивает формат вывода размера разделов, доступные значения: cylinders, sectors, по умолчанию используется sectors;
- -w, --wipe - режим стирания файловой системы или RAID с диска, возможные значения auto, never или always по умолчанию используется auto;
- -W, --wipe-partition - режим стирания файловой системы или RAID из только что созданного раздела. Возможные значения аналогичны предыдущей опции;
- -h, --help - показать справку по утилите;
- -v, --version - опция выводит версию утилиты.
Опции используются для настройки работы утилиты, мы рассмотрели только самые главные, которые могут вам пригодится, теперь перейдём к командам:
- a - включение или выключения флага boot для раздела;
- d - удалить раздел;
- F - показать свободное место;
- l - вывести список известных типов разделов;
- n - создать новый раздел;
- p - вывести таблицу разделов;
- t - изменение типа раздела;
- i - вывести информацию о разделе;
- I и O - записать или загрузить разметку в файл сценария sfdisk;
- w - записать новую таблицу разделов на диск;
- q - выйти без сохранения;
- g - создать пустую таблицу разделов GPT;
- o - создать пустую таблицу разделов MBR.
Теперь вы знаете основные опции и команды fdisk, давайте рассмотрим использование программы.
Искать текст в файлах
Один из популярных способов использования команды grep — использование её в конвейере (pipe):
Опция -v позволяет сделать эффект grep'а обратным — будут выводиться только строки, не содержащие паттерн, переданный в grep.
4. Информация о процессоре
Самый простой способ посмотреть информацию о процессоре, это открыть файл /proc/cpuinfo. Там выводится название модели, семейство, архитектура, его текущая частота, количество ядер, потоков, доступные расширения и другие параметры:
Искать файлы
Найти файл по части имени в дереве каталогов можно с помощью команды find:
Также доступны другие опции и фильтры поиска. Например, так можно найти файлы в папке test, созданные более 5 дней назад:
26. История выключений и перезагрузок
История выключений компьютера:
6. Использование памяти
Посмотреть статистику использования памяти в системе можно открыв файл /proc/meminfo:
Если не нужна такая подробная информация, можно получить информацию о памяти в linux командой free. Для отображения данных в удобном формате используйте опцию -h:
Аналогично, утилита htop тоже показывает сколько оперативной памяти доступно, а сколько занято в более удобном виде.
«Найти и заменить» в файле, в файлах в директории
Данная операция выполняется с помощью утилиты sed (без флага g в конце заменится только первое вхождение «old-text» в строке):
Можно использовать её для нескольких файлов сразу:
Примеры использования команды fdisk
1. Список дисков и разделов
Чтобы посмотреть список доступных вам дисков и разделов на них используйте опцию -l:
Утилита покажет все блочные устройства. На снимке есть /dev/sda, это обычный жесткий диск и /dev/nvme0n1 - это M.2 накопитель, а также там есть есть несколько /dev/loop* устройств, созданных ядром, которые лучше не трогать.
24. Состояние батареи
На ноутбуке нам может понадобиться посмотреть состояние батареи:
upower -i /org/freedesktop/UPower/devices/battery_BAT0
8. Версия дистрибутива
Команда покажет версию и название дистрибутива, а также некоторую дополнительную информацию, это важная информация об операционной системе linux:
7. Удаление раздела
Чтобы удалить раздел выполните команду d, а затем введите его номер:
Вот так просто выполняется удаление.
14. Свободное пространство на диске
Информация о системе Ubuntu включает информацию о дисках. Отобразить использованное пространство всех дисков можно командой:
Опция -h используется чтобы программа выводила данные в удобном для чтения формате. Отобразить размер файлов в домашней папке:
Читайте также: