- 16 команд для проверки аппаратной части компьютера в Linux
- Информация о комплектации компьютера
- 1. lscpu
- 2. lshw – список аппаратных устройств
- 3. hwinfo – информация об аппаратуре компьютера
- 4. lspci – список устройств PCI
- 5. lsscsi — список устройств scsi
- 6. lsusb – подробный список шин и устройств usb
- 7. Inxi
- 8. lsblk — список блочных устройств
- 9. df – дисковое пространство файловых систем
- 10. Pydf – команда df, написанная на языке Python
- 11. fdisk
- 12. mount
- 13. free – проверка оперативной памяти
- 14. dmidecode
- 15. Файлы /proc
- 16. hdparm
- Заключение
- unixforum.org
- как получить название терминала (tty)
- как получить название терминала
- Re: как получить название терминала
- Re: как получить название терминала
- Re: как получить название терминала
- Re: как получить название терминала
- Re: как получить название терминала
- Re: как получить название терминала
- Re: как получить название терминала
- Re: как получить название терминала
- Re: как получить название терминала
- Re: как получить название терминала
- Как проверить, какой терминал я использую?
- TL; DR
- Шелл против Терминала
- Получение информации о оболочке
- Получение информации о терминале
- Базовые команды Linux для тестировщиков и не только
- Немного о выводе команд
- Базовые команды Linux
- mkdir
- rsync
- telnet
- Решение типовых задач в Linux
- Изменить владельца файла
- Изменить права доступа файла
- Вывести содержимое бинарного файла
- Искать файлы
- Искать текст в файлах
- Смотреть установленные пакеты
- Посмотреть, сколько места занимает дерево директорий
- «Найти и заменить» в файле, в файлах в директории
- Вывести колонку из вывода
- Узнать IP адрес по имени хоста
- Сетевая информация
- Посмотреть открытые порты
- Информация о системе
- Информация о памяти
- Информация о файловых системах (свободное место на дисках)
- Информация о задачах и различной статистике по системе
- Дамп сетевого трафика
16 команд для проверки аппаратной части компьютера в Linux
Информация о комплектации компьютера
Точно также, как для всего прочего, в вашей системе Linux есть много команд для получения информацию об аппаратной части вашего компьютера. Некоторые команды сообщают информацию только о конкретных компонентах оборудования, например, процессоре или памяти, а другие — выдают информацию сразу о нескольких устройствах.
В данной статье кратко рассказывается о нескольких наиболее часто используемых командах, предназначенных для получения информации и особенностях настройки различных периферийных устройств и компонентах компьютера. Среди рассматриваемых — команды lscpu, hwinfo, lshw, dmidecode, lspci и другие.
1. lscpu
Команда lscpu выдает информацию о процессоре и его составляющих. В ней нет каких-либо дополнительных параметров или функциональных возможностей.
2. lshw – список аппаратных устройств
Утилита общего назначения, которая сообщает подробную и краткую информацию о нескольких различных аппаратных устройствах, таких как процессор, память, диск, контроллеры usb, сетевые адаптеры и т.д. Команда lscpu извлекает информацию из различных файлов /proc.
Если вы хотите больше узнать о команде lshw, то обратите внимание на пост Получаем интфомацию в Linux об аппаратных частях компьютера с помощью команды lshw .
3. hwinfo – информация об аппаратуре компьютера
Утилита hwinfo является еще одной универсальной утилитой зондирования аппаратуры, которая может сообщить подробную и краткую информацию о многих различных аппаратных компонентах, причем может сообщить больше, чем утилита lshw.
4. lspci – список устройств PCI
Команда lspci выдает список всех шин PCI, а также подробную информация об устройствах, которые к ним подключены. Под эту категорию подпадают следующие устройства — адаптер vga, графическая карта, сетевой адаптер, порты usb, контроллеры sata и т.д.
Отфильтруйте информацию о конкретном устройстве с помощью команды grep.
5. lsscsi — список устройств scsi
Выдается список устройств scsi/sata, например, жестких дисков и оптических приводов.
6. lsusb – подробный список шин и устройств usb
Эта команда показывает информацию о контроллерах usb и подробные сведения о подключенных к ним устройствах. По умолчанию выдается краткая информация. Для того, чтобы о каждом порте usb получить подробную информацию, используйте параметр «-v».
В системе, информация о которой приведена выше, один порт usb используется для подключения мыши.
7. Inxi
Inxi является мега скриптом bash, состоящим из 10000 строк кода, с помощью которого из разных источников и команд системы будет получена подробная информация об аппаратном обеспечении и будет создан отчет в виде, позволяющим его читать пользователям, которые не являются техническими специалистами.
8. lsblk — список блочных устройств
Перечисляется информация о всех блочных устройствах, которыми являются разделы жестких дисков и других устройств хранения данных, например, оптических приводов и флэш-накопителей
9. df – дисковое пространство файловых систем
Отчеты о различных разделах, об их точках монтирования и о том, сколько в каждом разделе есть свободного места.
10. Pydf – команда df, написанная на языке Python
Улучшенный вариант команды df , написанной на языке python, который выдает информацию в цвете, что выглядит лучше, чем информация, выдаваемая командой df
11. fdisk
Fdisk является утилитой, предназначенной для изменения разделов жестких дисков, и ей также можно пользоваться для получения информации о списке имеющихся разделов.
12. mount
Команда mount используется для монтирования/демонтирования, а также для просмотра смонтированных файловых систем.
Опять же, используйте команду grep для отфильтровывания информации только о тех файловых системах, которые вам интересны
13. free – проверка оперативной памяти
С помощью команды free проверьте объем используемой, свободной и общий объема оперативной памяти, имеющейся в системе.
14. dmidecode
Команда dmidecode отличается от всех других команд. Она извлекает информацию об оборудовании, читая для этого данные из структур данных SMBOIS (которые также называются таблицами DMI).
Подробности смотрите на странице man.
15. Файлы /proc
Во многих виртуальных файлах каталога /proc содержится информация об аппаратном обеспечении и о конфигурациях. Ниже приведены некоторые из них.
Информация о процессоре/памяти
Информация о Linux/ядре
16. hdparm
Команда hdparm получает информацию об устройствах sata, например, жестких дисков.
Заключение
В каждой из команд используется чуть-чуть иной способ извлечения информации, и вам для, чтобы получить определенную информацию об оборудовании, возможно, потребуется попробовать более одной команды. Но все они есть в большинстве дистрибутивов Linux и их легко можно установить из репозиториев, используемых по умолчанию.
Для тех, кто не хочет запоминать и вводить команды, на рабочем столе есть графические инструментальные средства. Hardinfo и I-nex — некоторые из популярных инструментальных средств, с помощью которых можно получить подробную информацию о большом количестве различных аппаратных компонентов.
Источник
unixforum.org
Форум для пользователей UNIX-подобных систем
- Темы без ответов
- Активные темы
- Поиск
- Статус форума
как получить название терминала (tty)
как получить название терминала
Сообщение SashaAl » 12.04.2006 14:06
Re: как получить название терминала
Сообщение madskull » 12.04.2006 14:29
Re: как получить название терминала
Сообщение serzh-z » 12.04.2006 16:12
Re: как получить название терминала
Сообщение madskull » 12.04.2006 16:55
Re: как получить название терминала
Сообщение SashaAl » 13.04.2006 11:31
Просмотрел . может невнимательно смотрел, но так и не высмотрел где выдрать наназвание текущей консоли . даже кое-че перепробовал, но .
Re: как получить название терминала
Сообщение serzh-z » 13.04.2006 11:44
\l для bash, или уже упомянутая команда tty
Re: как получить название терминала
Сообщение SashaAl » 13.04.2006 12:05
Результат вывода такого скрипта
Re: как получить название терминала
Сообщение elide » 13.04.2006 12:34
Re: как получить название терминала
Сообщение serzh-z » 13.04.2006 12:44
В указанном топике мы именно это и обсуждали, там же и есть догадки и предложения как узнать самую первую консоль (НЕ псевдо терминал, а именно консоль), с которой юзер работает!
Re: как получить название терминала
Сообщение SashaAl » 14.04.2006 12:43
Re: как получить название терминала
Сообщение SashaAl » 26.04.2006 16:35
вот что показывает комманда:
$ w -h
user1 tty1 — 09:51 6:55 2.92s 0.02s -bash
user2 tty6 — 17Apr06 9days 0.10s 0.00s /bin/sh /usr/X1
user2 pts/1 — 17Apr06 9days 0.00s 3.77s kdeinit: kded
user2 pts/2 — 15:32 0.00s 0.02s 0.00s w -h
как из этого выдрать только первые три параметра:
user1 tty1 —
или для user2
user2 pts/2 —
Источник
Как проверить, какой терминал я использую?
У меня есть Ubuntu на моей машине, и я использую замечательный оконный менеджер. Как проверить, какой терминал у меня запущен? Есть ли команда для этого?
TL; DR
- найти текущее использование оболочки ls -l /proc/$$/exe
- чтобы найти работающий терминал, используйте xprop _NET_WM_PID WM_CLASS . Значение pid позже может быть передано в ps -p
Технически, для эмулятора терминала вам даже не нужна команда, как указано в комментариях :
что ты имеешь в виду под этим? Нажмите Справка -> О том, что это? — JoKeR
Шелл против Терминала
Первое, что нам нужно уточнить, это то, что именно спрашивают — выяснить, работает ли оболочка или работает терминал. Часто эти два термина взаимозаменяемы, но в целом это разные вещи. Оболочка — это интерпретатор командной строки, в частности, интерактивная оболочка — это текстовое поле для приглашения и ввода текста, в котором вы вводите команды. Оболочки также могут быть неинтерактивными, например, скрипт запускает неинтерактивную оболочку или bash -c ‘echo hello world’ также запускает неинтерактивную оболочку.
Напротив, терминал — это интерфейс к оболочке (хотя это может быть и другое приложение). Первоначально терминал относился к реальному оборудованию, но в настоящее время это в основном программное обеспечение. То, что вы видите, когда нажимаете Ctrl + Alt + t или щелкаете по значку терминала в графическом интерфейсе, это запускает эмулятор терминала, окно, которое имитирует поведение оборудования, и в этом окне вы можете видеть, как работает оболочка. Ctrl + Alt + F2 (или любая из 6 функциональных клавиш) откроет виртуальную консоль, иначе tty . Я рекомендую прочитать Почему виртуальный терминал «виртуальный», и что / почему / где «настоящий» терминал? для получения дополнительной информации о специфике.
Получение информации о оболочке
Каждому пользователю назначена оболочка по умолчанию /etc/passwd для его имени пользователя. Предполагая, что вы используете конфигурацию по умолчанию и еще не вызывали другую оболочку в качестве команды, достаточно сделать:
Но, конечно, это показывает только значение по умолчанию . Предположим, мы делаем следующее:
Мы изначально были в bash , но начали интерактивный сеанс /bin/dash , POSIX Ubuntu или системной оболочки . Переменная $SHELL не изменится, потому что это не ее цель — она показывает значение по умолчанию, а не текущее значение. Нам нужно подойти к этому с другой точки зрения — с точки зрения процесса, о чем я уже говорил. Использую ли я bash или sh?
Здесь мы используем преимущества /proc/ файловой системы. Имя процесса и параметры командной строки отображаются в /proc/
/comm . Все, что нам нужно, это предоставить PID оболочки, что и $$ делает. В приведенном выше примере я добавляю это отдельно, но ничто не мешает нам делать только
Вариация на тему также может быть
Другой способ, которым мы могли бы подойти к этому, — проверить, где /proc/
/exe . Этот файл является символической ссылкой, указывающей на исполняемый файл. Таким образом, мы можем сделать
Любой из двух подходов работает в 99% случаев. Конечно, есть способы, которыми они могут быть подорваны. Например, символическая не будет указывать в любом месте , если исполняемый файл был удален сразу после запуска оболочки (и в этом случае вы , вероятно, возникнут проблемы системы, так как удаление /bin/sh , /bin/dash или даже /bin/bash не рекомендуется — ведь много сценариев полагаться на них особенно системного уровня). Имя команды для shell обычно задается как самый первый аргумент в execve() syscall. Это описано в разделе Как bash знает, как он вызывается? , так что если у вас есть приложение, которое запускает оболочку через него execve() , оно может дать ему любое имя. Но это нестандартные и нестандартные вещи, которых следует избегать ради последовательности и безопасности.
Получение информации о терминале
Мы можем начать с переменных среды. Многие терминалы, по-видимому, маскируют себя как xterm -совместимые, о чем сообщает echo $TERM или echo $COLORTERM . Но тогда переменные среды не очень надежный инструмент. Они могут быть установлены и не установлены. Мы можем сделать то же самое снова с PID, за исключением того, что на этот раз мы рассмотрим родительский PID. Как вы, возможно, помните, терминал является интерфейсом оболочки и часто запускает саму оболочку. Поэтому мы можем выяснить, какой процесс является родительским процессом нашей оболочки:
Давайте попробуем с другим терминальным приложением sakura :
Оттуда мы уже можем видеть, что это начало этой оболочки gnome-terminal . Этот метод, конечно, работает, если вы работаете с интерактивной оболочкой. Если мы пытаемся выяснить родителя bash -c ‘. ‘ или оболочку, запущенную ssh , например, через PID, то вполне может быть, что нетерминальное приложение и, возможно, вообще не GUI.
Поэтому, если мы хотим конкретно работать с терминалом с графическим интерфейсом, мы можем запустить его xprop , щелкнуть по нужному окну, grep его pid и узнать, как называется этот pid, соответствующий процессу. Или другими словами:
Кроме того, согласно спецификациям , оконные менеджеры должны установить WM_CLASS свойство. Таким образом, мы можем получить это и от xprop :
Конечно, это также имеет свой 1% недостатков: настройка WM_CLASS свойств зависит от того, как это делает оконный менеджер, и PID не гарантирует точности окна (см. Какой процесс создал это окно X11? ), Что может включать в себя сложную отладку. И это не недостатки самих методов, а сервера X11. Однако большинство стабильных и хорошо известных оконных менеджеров (таких как openbox, Metacity, blackbox) и большинство приложений хорошо себя ведут, поэтому не стоит ожидать проблем с чем-то вроде Gnome Terminal или Terminator.
Но когда дело доходит до эмуляторов терминала с графическим интерфейсом, нам даже не нужно искать команду. Мы можем просто использовать About диалог самого окна. Исключением из этого правила является xterm .
Источник
Базовые команды Linux для тестировщиков и не только
Всем привет! Меня зовут Саша, и я больше шести лет занимаюсь тестированием бэкенда (сервисы 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>&1` означает перенаправление stderr туда же, куда направлен stdout.
Еще один удобный инструмент для работы с вводом-выводом (а точнее, это удобное средство межпроцессного взаимодействия) — pipe (или конвейер). Конвейеры часто используются для связи нескольких команд: stdout команды перенаправляется в stdin следующей, и так по цепочке:
Базовые команды Linux
Вывести текущую (рабочую) директорию.
Вывести текущую дату и время системы.
Данная команда показывает, кто залогинен в системе. Помимо этого также на экран выводится uptime и LA (load average).
Вывести содержимое директории. Если не передать путь, то выведется содержимое текущей директории.
Лично я часто использую опции -l (long listing format — вывод в колонку с дополнительной информацией о файлах), -t (сортировка по времени изменения файла/директории) и -r (обратная сортировка — в сочетании с -t наиболее «свежие» файлы будут внизу):
Есть 2 специальных имени директории: «.» и «..«. Первое означает текущую директорию, второе — родительскую директорию. Их бывает удобно использовать в различных командах, в частности, ls:
Также есть полезная опция для вывода скрытых файлов (начинаются на «.«) — -a:
И еще можно использовать опцию -h — вывод в human readable формате (обратите внимание на размеры файлов):
Изменить текущую директорию.
Если не передавать имя директории в качестве аргумента, будет использоваться переменная окружения $HOME, то есть домашняя директория. Также может быть удобно использовать `
` — специальный символ, означающий $HOME:
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).
rsync
Также для синхронизации директорий между хостами можно использовать rsync (-a — archive mode, позволяет скопировать полностью всё содержимое директории «как есть», -v — вывод на консоль дополнительной информации):
Вывести на экран строку текста.
Здесь заслуживают внимания опции -n — не дополнять строку переносом строки в конце, и -e — включить интерпретацию экранирования с помощью «\».
Также с помощью этой команды можно выводить значения переменных. Например, в Linux exit code последней завершенной команды хранится в специальной переменной $?, и таким образом можно узнать, какая именно ошибка произошла в последнем запущенном приложении:
telnet
Клиент для протокола TELNET. Используется для коммуникации с другим хостом.
Если нужно использовать протокол TLS (напомню, что SSL давно устарел), то telnet для этих целей не подойдёт. Зато подойдёт клиент openssl:
Решение типовых задач в Linux
Изменить владельца файла
Изменить владельца файла или директории можно с помощью команды chown:
В параметр этой команде нужно отдать нового владельца и группу (опционально), разделенных двоеточием. Также при изменении владельца директории может быть полезна опция -R — тогда владельцы изменятся и у всего содержимого директории.
Изменить права доступа файла
Эта задача решается с помощью команды chmod. В качестве примера приведу установку прав «владельцу разрешено чтение, запись и исполнение, группе разрешено чтение и запись, всем остальным — ничего»:
Первая 7 (это 0b111 в битовом представлении) в параметре означает «все права для владельца», вторая 6 (это 0b110 в битовом представлении) — «чтение и запись», ну и 0 — это ничего для остальных. Битовая маска состоит из трёх битов: самый младший («правый») бит отвечает за исполнение, следующий за ним («средний») — за запись, и самый старший («левый») — за чтение.
Также можно выставлять права с помощью специальных символов (мнемонический синтаксис). Например, в следующем примере сначала убираются права на исполнение для текущего пользователя, а затем возвращаются обратно:
У этой команды есть много вариантов использования, поэтому советую прочитать про неё подробнее (особенно про мнемонический синтаксис, например, здесь).
Вывести содержимое бинарного файла
Это можно сделать с помощью утилиты hexdump. Ниже приведены примеры её использования.
С помощью этой утилиты можно вывести данные и в других форматах, однако наиболее часто могут пригодиться именно такие варианты её использования.
Искать файлы
Найти файл по части имени в дереве каталогов можно с помощью команды find:
Также доступны другие опции и фильтры поиска. Например, так можно найти файлы в папке test, созданные более 5 дней назад:
Искать текст в файлах
Справиться с этой задачей поможет команда grep. У неё есть множество вариантов использования, здесь в качестве примера указан самый простой.
Один из популярных способов использования команды grep — использование её в конвейере (pipe):
Опция -v позволяет сделать эффект grep‘а обратным — будут выводиться только строки, не содержащие паттерн, переданный в grep.
Смотреть установленные пакеты
Универсальной команды нет, потому что всё зависит от дистрибутива Linux и используемого пакетного менеджера. Скорее всего вам поможет одна из следующих команд:
Посмотреть, сколько места занимает дерево директорий
Один из вариантов использования команды du:
Можно менять значение параметра -d, чтобы получать более подробную информацию о дереве директорий. Также можно использовать команду в комбинации с sort:
Опция -h у команды sort позволяет сортировать размеры, записанные в human readable формате (например, 1K, 2G), опция -r позволяет отсортировать данные в обратном порядке.
«Найти и заменить» в файле, в файлах в директории
Данная операция выполняется с помощью утилиты sed (без флага g в конце заменится только первое вхождение «old-text» в строке):
Можно использовать её для нескольких файлов сразу:
Вывести колонку из вывода
Справиться с этой задачей поможет awk. В данном примере выводится вторая колонка вывода команды `ps ux`:
При этом надо иметь ввиду, что awk обладает гораздо более богатым функционалом, так что при необходимости работы с текстом в командной строке стоит почитать об этой команде подробнее.
Узнать IP адрес по имени хоста
С этим поможет одна из следующих команд:
Сетевая информация
Можно использовать ifconfig:
При этом, если, например, вас интересует только 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:
Источник