Командная​ ​строка​ ​Ubuntu: ​команды​ ​bash

Каждый пользователь Ubuntu (и любой  операционной системы  Linux) может работать в ней с помощью графического интерфейса. Но существует другой вариант — командная строка Ubuntu. В командную строку вводятся команды bash (от англ. Bourne again shell). Это оболочка, или иначе программный интерпретатор, который читает и затем выполняет команды.

Список ключей для команды ls.

Для повседневной работы, одни из самых используемых ключей для команды ls:

  • -l — вывод подробной информации о содержимом каталога в виде списка;
  • -a (—all) — вывод информации о всех имеющихся объектах явных и скрытых;
  • -A (—allmost-all) — вывод информации о всех имеющихся явных и скрытых объектах (за исключением объектов «.» и «..»);
  • -d (—directory) — вывод информации о директории без вывода его содержимого;
  • -F — к объектам являющимся каталогами добавит в конце символ слеш «/», к объектам являющимися исполняемыми файлами добавляется «*», к объектам являющимися символьными ссылками — «@»;
  • -r (—reverse) — данные ключи меняют сортировку на обратную;
  • -i — отображение номера индексных дескрипторов объектов;
  • -S — сортировка объектов по размеру от большого к меньшему;
  • -Sr — сортировка объектов по размеру от меньшего;
  • -t — сортировка объектов по времени модификации файлов;
  • -R (—recursive) — вывод информации об имеющихся объектах в том числе и объектах во вложенных каталогах.

Способы работы с командой ls и ее ключи, упоминаемые в статье это далеко не весь список. Если вы желаете использовать всю мощь этой на первый взгляд простой команды, то как уже упоминалось ранее, более подробную информацию можно получить при вызове встроенного мануала $ man ls .

Команды консоли Ubuntu

В Ubuntu команды используются для выполнения разных задач. Посмотреть список всех команд и дополнительную информацию вы можете в документации Ubuntu.

Мы рассмотрим основные команды терминала Ubuntu, с которыми сталкивается каждый пользователь:

Читайте также:  3 способа открыть панель управления в Windows 10

Команда ls

Отображает список всех файлов и папок в той директории, в которой вы находитесь.

Команда cd

Переходит в другую указанную директорию или папку.

Команда cp

Копирует файлы и папки в любое место файловой системы.

Команда mv

Перемещает файлы и папки в любое место файловой системы.

Команда rm

Удаляет файлы и папки.

Команда mkdir

Создаёт новую пустую директорию.

Команда cat

Отображает содержимое файла в консоли.

Команда nano и команда vim

Открывают текстовые редакторы nano и vim, в которых можно редактировать файл прямо в консоли.

Информация о сети

Рассмотрим 3 типа IP-адресов, с которыми приходится сталкиваться чаще всего:

  1. Внешний IP-адрес — адрес нашего устройства в глобальной сети.
  2. Локальной IP-адрес — адрес в локальной сети устройств.
  3. Внутренний IP-адрес — используется в основном утилитами для взаимодействия между собой. Всегда 127.0.0.1 или localhost

Разберем способы узнать внешний и локальный IP-адрес.

Как узнать внешний IP-адрес

В большинстве случаев, чтобы узнать свой внешний IP-адрес требуется сторонний сервис, который скажет с какого IP вы отправили ему запрос.

Как правило, эти сервисы представляют из себя обычные веб-страницы, вот их список:

Разницы в этих сайтах особо нет, выберите тот, который именно вам отвечает быстрее всего.

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

Способ 1: wget

Утилита wget позволяет нам скачивать файлы и получать информацию с веб-страниц. Для начала проверим, установлена ли она, введите в терминал wget и если получите в ответ bash: wget: command not found, значит самое время ее установить

sudo apt install wget

Или вместо apt использовать yum, что зависит от вашего дистрибутива:

sudo yum install wget

Итак, утилита wget установлена, теперь попробуем узнать свой внешний IP-адрес. Для этого введем в терминал команду wget с опциями -qO, далее минус -, а затем уже один из сайтов, список которых выше. В целом шаблон команды такой:

wget -qO — адрес_веб_сайта

Например внешний IP-адрес можно узнать вот так:

wget -qO —

Или вот так:

wget -qO —

Читайте также:  Unix / Linux — Основы файловой системы

И так с любым сайтом из этого списка. Вот так это выглядит в терминале:

$ wget -qO — $ wget -qO — Способ 2: curl (проще)

Второй способ — использовать curl. Сама по себе утилита более универсальна, чем wget и заслуживает не одну отдельную статью, но в данном примере мы разберем как с ее помощью узнать свой внешний IP-адрес.

Для начала также проверим, установлена ли она, введите в терминал curl и если получите в ответ bash: curl: command not found, значит самое время ее установить

sudo apt install curl

Или вместо apt использовать yum, что зависит от вашего дистрибутива:

sudo yum install curl

Итак, утилита curl установлена, теперь попробуем узнать свой внешний IP-адрес. C «курлом» это намного проще, нужно лишь ввести curl и один из сайтов, список которых выше. В целом шаблон команды такой:

curl адрес_веб_сайта

Пробуем:

curl

И с другим сайтом:

curl

Вид из терминала:

$ curl $ curl Как узнать локальный IP-адрес

Локальный IP-адрес узнается при помощи разных утилит, мы рассмотрим наиболее популярный и актуальный инструмент для этих задач на сегодня — инструмент ip. Чтобы увидеть все сетевые интерфейсы, достаточно ввести:

ip addr show

В примере используется Debian 9 и вывод там такой:

$ ip addr show 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:16:3e:3d:a0:09 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet brd scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::216:3eff:fe3d:a009/64 scope link valid_lft forever preferred_lft forever

В выводе отображается очень много информации, в которой легко запутаться. Мы видим 2 интерфейса, один lo (внутренний 127.0.0.1) и проводной eth0, с локальным IP-адресом Как вы уже возможно поняли, сам IP-адрес отображается после inet.

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

  • lo — внутренний интерфейс, всегда 127.0.0.1 или localhost
  • eth — проводной интерфейс
  • wlan — Wi-Fi-интерфейс
  • ppp — Point-to-Point Protocol, часто используется для VPN
Читайте также:  Топ-10 самых популярных дистрибутивов Linux

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Команды для работы с процессами

ps — вывести список процессов. ps axu — посмотреть все процессы. ps axu | grep win — отобразить все процессы, где встречаются символы «win».

kill — убить программу, после команды указывается номер программы (идентификатор процесса — PID), который можно узнать с помощью команды ps. Пример: kill 1234.

killall команда — завершает все процессы, запущенные с помощью указанной команды.

bg — продолжить работу программы в фоновом режиме, например после комбинации клавиш Ctrl+Z. После команды может быть указан PID:

bg 1234.fg — продолжить выполнение программы в обычном режиме, также может быть указан PID.

Потоки ввода-вывода терминала и переадресация

В терминале Linux работа осуществляется через три потока ввода-вывода: вход (stdin), выход (stdout) и ошибка (stderr).

Данные потоки представлены файловыми дескрипторами. Их также принято считать идентификаторами: 0 для stdin, 1 для stdout, 2 для stderr.

Использование угловых скобок применяется для перенаправления (переадресации) команд и файлов в них и из них:

  • > для отправления в поток;
  • < для получения из потока;
  • >> для добавления в поток;
  • << для непосредственного присоединения потока (используется в «heredoc»);
  • <<< используется в «herestring» (на сегодняшний день не особо распространенная команда);
  • & используется для записи в поток, например &1 для записи в stdout.

Анатомия командной строки переадресации с использованием потоков

Дополнительные примеры переадресации приведены ниже:

  • чтобы отправить stdout и stderr в один и тот же файл (короткий вариант bash v4+) pip install rtv > 2>&1 ac -pd &> ;
  • чтобы пропустить и stdout, и stderr: wget _line_ &> /dev/null /dev/null — это «нулевой» файл для удаления потоков. А ещё это паблик со смешными мемами для ITшников (ВК и Телеграм);
  • чтение из stdin в качестве вывода команды: diff <(ls dirA) <(ls dirB);
  • добавить stdout в файл журнала sudo yum -y update >> yum_