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

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

Простые примеры

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

$ curl

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

И да, это вовсе не скрипт, это просто команда, но, чтобы превратить команду в скрипт, достаточно поместить ее в текстовый файл и первой строкой добавить так называемый шебанг, то есть символы #!, за которыми следует имя командного интерпретатора:

#!/bin/bash curl

Далее скрипт сохраняем в каталог ~/bin и назначаем права на исполнение:

$ chmod +x ~/bin/

Теперь его можно вызывать из командной строки командой

Простые примеры

Идем дальше.

#!/bin/sh curl -4

Этот скрипт позволяет получить сводку погоды на четыре дня. Принцип тут такой же, как в случае с

Сводка погоды в консолиДругие статьи в выпуске: Xakep #212. Секреты даркнета

  • Содержание выпуска
  • Подписка на «Хакер»

#!/bin/sh dig +short txt $

А так можно получить краткое описание чего-либо в Википедии, причем с помощью DNS-запроса вместо обращения к веб-серверу. Кстати, веб-сервер через командную строку тоже очень легко создать:

#!/bin/sh while ( nc -l 80 < > : ) ; do : ; done

Данный скрипт основан на утилите netcat (nc), которую называют швейцарским армейским ножом для сетевых операций. Скрипт запускает цикл, выполняющий команду nc, которая слушает 80-й порт и в ответ на запрос отдает , отправляя переданный запрос в никуда (символ означает noop, то есть пустую операцию).

С помощью простых скриптов и команд можно запросто слушать интернет-радио:

#!/bin/sh mpv —volume=50 -playlist ~/_

Естественно, плей-лист в формате M3U необходимо заранее скачать с сайта радиостанции. Кстати, если запустить MPlayer с аргументом —input-ipc-server=/tmp/mpvsocket, им можно будет управлять, записывая команды в файл. Например, настроить громкость:

Читайте также:  Как настроить в Ubuntu Wi-Fi, если он не работает или не подключается

echo ‘volume +10’ | socat — /tmp/mpvsocket

Создай два скрипта: один для запуска, другой для остановки радио (со строкой killall mpv), повесь их на рабочий стол и настрой горячие клавиши DE на управление воспроизведением. Вуаля, у тебя готов плеер для интернет-радио, запустить который можно, просто кликнув по иконке на рабочем столе. И он почти не будет расходовать память или занимать трей.

Но отвлечемся от сетевых операций и вернемся к локальным делам.

Простые примеры

#!/bin/sh tar -czf «../${PWD##*/}» .

Это один из моих любимых скриптов. Он создает архив текущего каталога. Особого внимания здесь заслуживает конструкция ${PWD##*/}, которая берет полный путь до текущего каталога (переменная $PWD) и удаляет из него первую часть вплоть до последнего слеша, оставляя, таким образом, только имя самого каталога. Далее к нему добавляется расширение Более подробно о таких конструкциях ты можешь прочитать в man bash.

#!/bin/sh while true; do inotifywait -r -e MODIFY КАТАЛОГ && ТВОЯ_КОМАНДА done

А это уже скрипт, который запускает команду в ответ на изменение файлов в каталоге. Ее можно использовать для множества разных целей, например для автоматического включения плеера при сохранении MP3-файла. Или просто выводить уведомление на десктоп, используя в качестве команды notify-send:

notify-send «Файл изменен»

Мало букафф? Читайте есчо !

Лечим 403-ю Forb >Январь 23, 2017 г.

В данном случае от «404 ошибки — файл не найден» нас отделяет целая пропасть. Файл найден, но сервер его не спешит отдавать пользователю, т.к. считает, что у пользователя не достаточно на это прав. Если сервер предотвратил несанкционированный доступ .

Диагностика varnish, полезные команды

Занимался пару дней перетряхиванием конфигурации varnish на веб-сервере, решил запротоколировать некоторые моменты, если вдруг понадобится на будущее. .

Иногда возникает ситуация, когда необходимо замерить время выполнения команды или скрипта в ОС Linux. Проще всего это сделать, воспользовавшись командой time, при вызове скрипта/команды.

Читайте также:  Как установить принтер на компьютер с OS Windows 7?

Объявление переменных

Bash позволяет объявлять переменные нескольких типов, самые важные: local (Для переменных используемых только внутри функций) readonly (Переменные попытка переназначения которых вызывает ошибку)

## Если DEFAULT_VAL уже объявлена, то использовать ее значение, иначе использовать ‘-7’ readonly DEFAULT_VAL=${DEFAULT_VAL:-7} myfunc() { # Использование локальной переменной со значением глобальной local some_var=${DEFAULT_VAL} … }

Есть возможность сделать переменную типа readonly из уже объявленной:

x=5 x=6 readonly x x=7 # failure

Стремитесь к тому что бы все ваши переменные были либо local, либо readonly, это улучшит читаемость и снизит количество ошибок.

Вход в командную строку

Используя Ubuntu в качестве операционной системы, вы можете перейти к командной строке двумя путями, а именно через консоль или через терминал. Если вы хотите зайти в командную строку через терминал, то для этого необходимо нажать Ctrl+Alt+F(1-6) – в зависимости от выбранного номера (F1, F2…) вы попадаете в первую, вторую или другую по счету виртуальную консоль (они независимы и запускаются во время загрузки Ubuntu), каждая из которых имеет интерфейс командной строки. Если вы нажмете Ctrl+Alt+F7, то перейдете в седьмую виртуальную консоль, которая имеет графический интерфейс.

Что касается терминала, то это графическая программа, которая эмулирует консоль. Вы можете найти ее в меню, выбрав «Приложения», затем «Стандартные», а затем «Терминал», либо нажав сочетание клавиш Ctrl+Alt+T. Вы сможете выполнять команды, продолжая находиться в графическом интерфейсе. Также возможен вариант, когда вам необходимо подключиться к серверу, на котором установлена Ubuntu. В этом случае вам нужно воспользоваться специальной программой (например, puTTy): наберите нужный ip-адрес, а затем введите имя пользователя и пароль.

Примечание. При вводе пароля в командную строку он не высвечивается – вам нужно просто набрать пароль и нажать Enter. Если пароль введен правильно, вы сможете продолжить работу в командной строке.

Как работать с Bash

Рассмотрим, как пользоваться Bash на примере подключения к веб-серверу (где находятся файлы сайта) с установленным дистрибутивом Linux через протокол SSH с нуля.

Читайте также:  Linux как установить драйвер сетевой карты

Для этого можно воспользоваться любым предпочитаемым способом. В данном случае рассматривается веб-сервер с Ubuntu, хотя в других дистрибутивах принцип остается тем же.

1. После успешного ввода логина и пароля программа Терминал Linux в автоматическом режиме запустит Bash. Собственно, пользователь уже подключится к системе и увидит приглашение на ввод команд.

2. Приглашение отображается относительно стандартно и имеет следующий вид:

<имя пользователя>@<имя компьютера>:<текущий каталог><знак>.

В примере:

  • размытием закрыто имя пользователя;
  • «vPro» – название компьютера;
  • графема тильда (~) в Линуксе обозначает домашнюю папку пользователя в сокращенном виде (/home/user). Она в Bash по умолчанию является текущей
  • знак доллара ($) указывает, что пользователь не имеет прав администратора. Работая как администратор, вместо знака доллара отображается знак решетки (#).

3. Когда приглашение выполнено, терминал автоматически поставит пробел и будет находиться в ожидании ввода команд. На предложенном изображении была нажата кнопка «Enter». В следующей строчке введена команда «cd» перейти в существующий каталог «/opt». Еще ниже отображается результат вывода – рабочей папкой стала «/opt» и это показано в приглашении.

Как работать с Bash

4. Командная строка Linux позволит запускать любое установленное в системе приложение. Как правило, каталоги со списком исполняемых программ расположены в папках «/bin, /usr/bin». Проверяемые каталоги интерпретатор сохраняет в переменной «$PATH». Просмотреть их список можно командой:

echo $PATH

5. Далее можно воспользоваться командой «ls» и добавить к ней один из каталогов, найденных в «$PATH», чтобы увидеть список доступных программ. Например:

6. Если приложение консольное, Bash произведет его запуск в терминале. Ниже показан пример запуска редактора Nano.

7. Bash также позволяет осуществлять запуск приложений в фоновом режиме. Для запуска в фоне, после ввода названия программы в конце следует добавить знак амперсанда (&).

Здесь строка «[2] 23258» – это номер и PID процесса. При этом nano находится в фоновом режиме. Вернуться к нему можно командой «fg» (добавив номер задачи, если их запущено несколько) или «jobs».

Поскольку в фоне может работать достаточно много команд, проверить номер требуемой можно командой «bg». Она отобразит список активных задач.