Команда Pipe, Grep и Sort в Linux / Unix с примерами

Терминал и текстовые команды — главный способ управления операционной системой Linux. Особенно, если речь идет о сервере – на него редко ставят графический интерфейс, и вся работа выполняется исключительно через командную строку. Поэтому любому администратору важно знать хотя бы с десяток ключевых команд для терминала Линукс, нужных для навигации в системе и базового управления файлами. В этом материале мы их как раз разберем.

Команды Linux для навигации в терминале

  1. &&. Строго говоря, это не команда. Если вы хотите выполнить сразу несколько команд, поставьте между ними двойной амперсанд вот так: первая_команда && вторая_команда. Терминал выполнит команды по порядку. Вы можете ввести столько команд, сколько захотите.
  2. alias. Присваивает созданные вами названия длинным командам, которые вы не можете запомнить. Введите alias длинная_команда короткая_команда.
  3. cd. Изменяет текущую терминальную папку. Когда вы запускаете терминал, он использует вашу домашнюю папку. Введите cd адрес_папки, и терминал будет работать с файлами, которые там находятся.
  4. clear. Очищает окно терминала от всех сообщений.
  5. history. Отображает все недавно введённые вами команды. Кроме того, вы можете переключаться между недавними командами с помощью клавиш «Вверх» и «Вниз». Если вы не хотите, чтобы введённая вами команда была записана, поставьте перед ней пробел так: ваша_команда.
  6. man. Отображает руководство по программам и командам Linux. Введите man имя_пакетаили man ваша_команда.
  7. whatis. Отображает краткое описание какой-либо программы. Введите команду и название программы whatis имя_пакета.
Команды Linux для навигации в терминале

Общие команды Linux

Здесь собраны Linux-команды, которым не нашлось место в других разделах.

# uname -a # Показывается версия ядра Linux; # lsb_release -a # На экран выводится информация о версии ОС и основанных на ней дистрибутивах; # clear # Очищается экран терминала; # cat /etc/SuSE-release # На экран выводится информация о версии ОС SuSE; # man hier # Описывается иерархия файловой системы (для чего необходима каждая директория в Linux); # wall Привет # На терминалы других пользователей отправляется сообщение «Привет»; # date # Отображается текущая дата и время; # cal -3 # Отображается в удобной форме предыдущий, текущий и следующий месяц; # uptime # Отображается текущее время и работа системы без выключения и перезагрузки; # hostname # Выводится сетевое имя компьютера; # whois # Показывается информация о домене ; # export http_proxy=:port # Меняется переменная окружения http_proxy для использования интернета посредством proxy-сервера; # wget —convert-links -r # Сайт копируется целиком, конвертируются ссылки для автономной работы. Копирование производится на глубину 5-ти уровней; # wget _ # Файл _ скачивается в текущую папку; # pppconfig # Команда нужна для создания и настройки соединения Dial-Up при выходе в интернет по модему; # pppoeconf # Команда для создания и настройки выхода в сеть через ADSL-модем; # !! # Обеспечивается выполнение последней команды; # history | tail -50 # Отображаются последние 50 набранных команд; # exit # Сеанс текущего пользователя завершается; # passwd # Пароль текущего пользователя меняется; # shutdown -h now # Для выхода из Linux; # poweroff # Для выхода из Linux; # reboot # Система перезагружается; # last reboot # Выводится статистика перезагрузок; # winecfg # Для настройки Wine — неэмулятора WinAPI; # host # Для отображения IP-адреса введённого сайта.

Читайте также:  Запасливый пингвин. Программы для резервного копирования в Linux

Команды для управления пользователями

Linux — многопользовательская система. Ей одновременно могут управлять несколько людей. Поэтому здесь достаточно сложная система добавления и редактирования учетных записей.

  • useradd — создает новую учетную запись. Например, мы хотим добавить пользователя с именем Timeweb. Для этого вводим: useradd Timeweb. Но свежесозданному аккаунту нужен не только логин, но и пароль. С помощью опций можно задать дополнительные характеристики новому пользователю.
  • passwd — задает пароль для учетной записи, работает вкупе с предыдущей командой. То есть сразу после создания аккаунта, пишем: passwd Timeweb (в вашем случае может быть любой другой пользователь). После этого система попросит придумать и указать пароль для новой учетной записи. По ходу набора пароля в терминале не будут отображаться даже звездочки, но он все равно учитывает каждую нажатую клавишу. Продолжайте набирать пароль вслепую.
  • userdel — удаляет выбранную учетную запись. Синтаксис простейший:

userdel имя учетной записи, которую нужно стереть

Оператор OR (||)

Оператор OR (||) очень похож на оператор «else» в программировании. Вышеуказанный оператор позволяет вам выполнять вторую команду только в случае сбоя при выполнении первой команды, то есть состояние выхода первой команды равно «1» — программа выполнена НЕ успешно».

Например, я хочу выполнить «apt-get update» из учетной записи без полномочий root, и если первая команда не будет выполнена, тогда будет выполнена вторая команда «links ».

sudo apt update || links

В приведенной выше команде, поскольку пользователю не было разрешено обновить систему, это означает, что состояние выхода первой команды равно «1» и, следовательно, выполняется последняя команда «links ».

Что, если первая команда выполнена успешно, со статусом выхода ««? Очевидно! Вторая команда не будет выполнена.

mkdir test || links

Здесь пользователь создает папку «test» в своем домашнем каталоге, где ему это разрешено. Команда выполнена успешно, что дает статус выхода ««, и, следовательно, последняя часть команды не выполняется.

КОМАНДЫ LINUX ОКРУЖЕНИЯ ПОЛЬЗОВАТЕЛЯ

29. SU / SUDO

Su и sudo — это два способа выполнить одну и ту же задачу: запустить программу от имени другого пользователя. В зависимости от вашего дистрибутива вы, наверное, используете одну или другую. Но работают обе. Разница в том, что su переключает вас на другого пользователя, а sudo только выполняет команду от его имени. Поэтому использование sudo будет наиболее безопасным вариантом работы.

30. DATE

В отличие от time, делает именно то, чего вы от неё и ожидаете: выводит дату и время в стандартный вывод. Его можно форматировать в зависимости от ваших потребностей: вывести год, месяц, день, установить 12-ти или 24-ти часовой формат, получить наносекунды или номер недели. Например, date +»%j %V», выведет день в году и номер недели в формате ISO.

Читайте также:  Как сделать ПДФ файл пошаговая инструкция

31. ALIAS

Команда создаёт синонимы для других команд Linux. То есть вы можете делать новые команды или группы команд, а также переименовывать существующие. Это очень удобно для сокращения длинных команд, которые вы часто используете, или создания более понятных имен для команд, которые вы используете нечасто и не можете запомнить.

32. UNAME

Выводит некую основную информацию о системе. Без параметров она не покажет ничего полезного, кроме строчки Linux, но, если задать параметр -a (All), можно получить информацию о ядре, имени хоста и узнать архитектуру процессора.

33. UPTIME

Сообщает вам время работы системы. Не очень существенная информация, но может быть полезна для случайных вычислений или просто ради интереса, чтобы узнать, как давно был перезагружен сервер.

34. SLEEP

Вам, наверное, интересно как же её можно использовать. Даже не учитывая Bash-скриптинг, у неё есть свои преимущества. Например, если вы хотите выключить компьютер через определенный промежуток времени или использовать в качестве импровизированной тревоги.

Резюме:

  • Трубы ‘|’ отправить вывод одной команды как ввод другой команды.
  • Фильтр принимает входные данные от одной команды, выполняет некоторую обработку и выдает выходные данные.
  • Команду grep можно использовать для поиска строк и значений в текстовом документе.
  • Канал через grep должен быть одним из наиболее распространенных применений
  • Команда sort сортирует содержимое файла по алфавиту
  • Команды less, pg и more используются для разделения длинного файла на читаемые биты

Интересные записи:

  • Как отвязать номер от страницы Вконтакте
  • Как узнать с кем переписывается человек в вк
  • Как ускорить Андроид
  • Как стать хакером
  • Что такое кибератака
  • Как заработать хакеру
  • Как взломать страницу вконтакте

Убить процесс с помощью команды killall в Linux

Две предыдущие команды используются, чтобы убить только один конкретный процесс. Но, если мы хотим убить процесс вместе со всеми его дочерними процессами мы можем использовать команду killall :

Killall mysql

В этом примере мы убьем процесс MySQL и все его дочерние процессы.

Они являются наиболее распространенными примерами убийства процесса в Linux.

Как бы там ни было, но некоторые приложения в Linux иногда зависают. При этом бывают ситуации, когда приложение вообще не отзывается, либо работает так медленно, что корректно завершить его работу не представляется возможным. Чтобы оперативно выйти из получившейся ситуации можно «убить» данный процесс. Для этог используеются команды kill и killall . Сейчас мы разберемся как использоваться эти команды, находить PID процесса и посылать сигнал SIGKILL.

Чтобы избежать путацины, договоримся под процессом понимать запущенную в систему программу. Например, если у вас запушено несколько окон браузера Mozilla Firefox — это значит, что запущено три процесса.

Читайте также:  iPhone не обновляется до iOS 13: что делать?

Поиск по истории команд. Команда history

history — поиск по истории команд — предназначена для вывода истории команд, поиска по ним и быстрого запуска предыдущих команд.

Если мы выполним history, то на экран будет выведен список последних введенных вами команд:

Каждая команда пронумерована. Чтобы вызвать какую-нибудь команду из списка достаточно выполнить в командной строке: !номер. Например выполним команду под номером 139:

Можно указать номер с минусом. Например, выполнив !-2 мы выполним пред-предыдущую команду. Выполнив, !-1 мы выполним предыдущую команду, это эквивалентно команде !!, описанной выше.

Для поиска по истории можно воспользоваться утилитой grep:

У команды history есть еще несколько дополнительных возможностей. Почитать руководство по history можно, выполнив man history.

Разное

tmuxtmux attach

Терминальный мультиплексор, или терминальный оконный менеджер.

Позволяет открыть несколько терминальных сессий на одном экране. При разрыве SSH-подключения, запущенные программы не завершаются.

Первая команда создает новый сеанс. Вторая выполняет подключение к сеансу, запущенному ранее.

Требуется установка порта tmux.

Комбинации клавиш: Ctrl+b — переход в режим управления Tmux, все команды, указанные ниже, вызываются с данным префиксом. c — создать новое окно. n, p, l — переход к следующему, предыдущему или предыдущему активному окну. 0 … 9 — переход к окну с заданным номером. w — выбор окна в меню. & — закрыть окно. ", % — разбивка окна на две панели, вертикальная или горизонтальная. o — переход к следующей панели. стрелки — переход панели расположенной сверху, снизу, слева, справа. пробел, Alt+1 … 5 — переключение схемы расположения панелей. Ctrl+o, Alt+o — ротация панелей по часовой и против часовой стрелки. z — развернуть или свернуть текущую панель. d — выход с сохранением сессии. ? — отобразить все клавиатурные комбинации.

man tmux Linux для всех: Терминальный оконный менеджер Tmux

bsdconfigsysinstall

Интерактивная настройка системы: управление пользователями, разметка диска, параметры консоли, сетевые параметры и другие настройки.

man bsdconfig man sysinstall

sysrc -asysrc параметрsysrc параметр=значение

Получение и изменение параметров в -a — отобразить все измененные параметры.

Команда доступна начиная с FreeBSD 9.2.

man sysrc

service -eservice startservice stopservice restart

Запуск и остановка служб. -e — отобразить все включенные службы в порядке их запуска.

man service

bc

Калькулятор.

Переменные калькулятора:

scale=7 — число знаков после запятой.

ibase=16 — задает шестнадцатеричную систему для ввода. Шестнадцатеричные значения вводятся заглавными буквами.

obase=10 — задает систему счисления для вывода. Если для ввода была задана шестнадцатеричная система счисления, то в качестве значения задаем «A» для выбора десятичной системы, или «10» — для шестнадцатеричной.

man bc

echo $((0x3ffe))

Быстрая конвертация шестнадцатеричного числа в десятичное средствами bash.

7z b

Тест производительности процессора. Дополнительная фишка известного архиватора.

Требуется установка порта p7zip.

man 7z

script файл команда

Сохранить копию вывода команды в файл, включая ввод пользователя.

man script

команда1 | tee файл | команда2

Дублировать вывод команды 1 в файл и передать на ввод команды 2.

man tee