Команды оболочки bash в Linux Ubuntu бывают 2 типов: встроенными и внешними. Последние расширяют базовую функциональность Ubuntu.

Основные термины

  • Интерфейс — совокупность программных средств, обеспечивающих взаимодействие пользователя с аппаратной частью компьютера.
  • Консоль — вид интерфейса, который позволяет управлять пользователями, файловой системой, протоколами и другими объектами операционной системы.
  • Эмулятор консоли — специальная программа или совокупность программных средств, позволяющих представить консоль в виде окна операционной системы.
  • Консольное окружение — совокупность консолей Ubuntu.
  • Объекты операционной системы — логические единицы, с которыми осуществляется диалог на программном и пользовательском уровнях (аппаратная и программная части). Объектами операционной системы являются логические диски, каталоги, окна и т. д.
  • Полное имя файла — путь к файлу с указанием логического диска и каталогов, в которых он находится, а также его название.

Активация консоли

После загрузки операционной системы создается 7 виртуальных консолей с текстовым интерфейсом (консольное окружение). Для навигации и их активации используется сочетание клавиш — Ctrl+Alt+F(1-7), где «F(1-7)» — соответствующие номера консолей.

Например, если требуется перейти во вторую консоль, то нужно нажать — Ctrl+Alt+F2. При переходе необходимо учитывать, что седьмая имеет графический интерфейс.

Работа в терминале

Новичкам рекомендуется начинать работу в терминале, который является эмулятором консоли.

Основные команды интерпретатора bash - terminal

В него можно зайти 2 способами:

  1. при помощи сочетания — Ctrl+Alt+T
  2. через контекстное меню — щелкнуть правой кнопкой мыши на пустой области рабочего стола и выбрать пункт «Открыть терминал».

Формат и правила набора

Общие правила

Команду можно копировать и вставить в терминал из браузера или документа. Для ее выполнения нужно указать в начале строки sudo.

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

bash sudo

При наборе команды требуется соблюдать общий формат: file_name_program_or_comand_name -key value («file_name_program_or_comand_name» — имя файла программы или команды, «key» — ключ и «value» — значение).

  • Ключ: параметр, указываемый после имени исполняемого файла или внутренней команды. Используется для указания настроек или действий, которые необходимо выполнить.
  • Значение: число или переменная, используемые при выполнении команды.

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

  1. открыть новый текстовый файл;
  2. указать в первой строке #!/bin/bash;
  3. ввести список команд в столбик, а затем сохранить изменения.

После этого в свойствах файла необходимо активировать флажок «Разрешить выполнение файла как программы» и закрыть окно.

Основные команды интерпретатора bash - модификация-rm

При двойном нажатии левой кнопкой мыши произойдет активация скрипта. Ниже приведен пример пакетного файла, который модифицирует команду rm, удаляющую файлы.

bash код

Вышеописанный bash-скрипт создает папку «~/.archive» и перемещает в нее файлы, указывая в начале имени дату удаления.

Пакетный файл

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

  1. открыть новый текстовый файл;
  2. указать в первой строке #!/bin/bash;
  3. ввести список команд в столбик, а затем сохранить изменения.

После этого в свойствах файла необходимо активировать флажок «Разрешить выполнение файла как программы» и закрыть окно.

При двойном нажатии левой кнопкой мыши произойдет активация скрипта. Пример пакетного файла, который модифицирует команду rm, удаляющую файлы.

Вышеописанный bash-скрипт создает папку «~/.archive» и перемещает в нее файлы, указывая в начале имени дату удаления.

Экономия времени

Терминал Ubuntu поддерживает горячие клавиши, позволяющие экономить время при наборе однотипных команд.

  • Ctrl+P или — прокрутка недавно набранных команд вверх (первая команда при одном нажатии).
  • Ctrl+N или — прокрутка команд вниз, которые недавно набирались (последняя команда при единичном нажатии).
  • Tab — автозаполнение при наборе команды.
  • history — список всех вводимых команд. Для улучшения его читабельности необходимо указывать sudo history | less. Последовательное выполнение команд sudo history -с и sudo history -w позволяет очистить историю терминала.
  • clear — очищает экран терминала, устанавливая курсор в первую строку.

Основные команды bash классифицируются на 10 групп

  1. Файловые — выполнение различных операций с объектами файловой системы, к которым относятся файлы и каталоги.
  2. Архивация — работа с архивами.
  3. Работа с deb-пакетами — установка и удаление приложений, просмотр файловой структуры инсталлятора и информации о пакете.
  4. Менеджер пакетов apt — действия с deb-пакетами на удаленных серверах или других интернет-ресурсах.
  5. Операции с текстом — позволяет выполнять манипуляции с содержимым текстовых файлов.
  6. Пользователь и система — информация о пользователях и сведения о системном окружении.
  7. Работа с правами доступа — изменение доступа к файлам и папкам.
  8. SSH-подключение — использование сетевого защищенного SSH-протокола для безопасного подключения к серверу.
  9. Операции с датой и временем — позволяет узнать текущее время, дату и день недели, а также отображать отдельные временные единицы (например, только дату).
  10. Управление процессами — позволяет просмотреть все запущенные процессы и управлять ими.

Файловые команды

  • Навигация по директориям.
  1. Навигация по файловой системе осуществляется при помощи команды cd. Для перехода в домашнюю директорию нужно указать параметр «~», не прописывая ключи.
  2. Чтобы перейти в каталог, необходимо указать его путь. Например, для перехода из домашней директории в папку «music», находящейся в загрузках, требуется выполнить команду: sudo cd загрузки/music.
  3. Если требуется перейти на 2 директории выше, то следует набрать в терминале: cd /../... Для перехода в предыдущую папку необходимо ввести: cd –.
  4. При неверном указании пути в терминале появится предупреждение «слишком много аргументов». В этом случае необходимо проверить правильность пути к файлу или проверить ключи.
  • Получение пути текущего каталога. Для получения информации о текущем положении пользователя в файловой системе используется команда pwd.
  • Создание папки в текущем каталоге — mkdir name_folder1 name_folder2 («name_folder1» и «name_folder2» — имена каталогов, которые требуется создать).
  • Создание нового файла touch file_name («file_name» — имя нового файла).
  • Перемещениеmv file_name_or_folder_name path_to_move («file_name_or_folder_name» — имя файла или папки, «path_to_move» — путь, куда нужно переместить объект).
  • Переименованиеmv file_name_or_folder_name, new_file_name_or_folder_name («file_name_or_folder_name» — имя файла или папки, «new_file_name_or_folder_name» — новое имя). По синтаксису команды похожи, но вместо пути указывается новое имя. Переименовывать можно папки и файлы.
  • Копированиеcp file_name_or_folder_name, path_to_copy («file_name_or_folder_name» — имя файла или папки, «path_to_copy» — путь, куда нужно скопировать объект)
  • Удалениеrm file_name и rm -rf folder_name («file_name» и «folder_name» — имена файла и папки соответственно).
  • Поиск файлов — команда find.

          Примеры:

  1. Поиск по заданным параметрам производится с помощью команды следующего вида: find folder_name key key_options file_operation file_name» и «folder_name» — имена файла и директории соответственно, «key» — имя ключа; «key_options» — параметры ключа). Операции над найденными файлами производятся с помощью команды: file_operation.
  2. Например, так осуществляется поиск в директории «dir1» всех файлов, имена которых начинаются на «myfile»: find /tmp/1/dir1 -name ‘myfile*’.
  3. А так — поиск в директории «dir1» всех txt-файлов, имена которых начинаются на «myf» и содержат три любых символа: find /tmp/1/dir1 -name ‘myf???.txt’.
  • Просмотр содержимого файлаcat file_name («file_name» — полное имя файла). Если данных в файле много, то команда cat применяется с параметром more для постраничного вывода. Пример: cat file_name | more.
  • Вывод содержимого каталогаls folder_name («folder_name» — имя каталога).

bash ключи - ls
Команда применяется с ключами для удобного отображения информации:

  • a — все файлы и директории;
  • s — размеры файлов в байтах;
  • h — показывает размеры файлов и директорий в КБ, МБ;
  • l — имя пользователя и права доступа).

Ключи можно комбинировать между собой.

Работа с архивами

При помощи команды-архиватора tar можно создавать, разархивировать и просматривать любой tar-архив.

  1. Создание нового архива tar – cf arhive_name file_name arhive_name» — имя архива, в котором требуется указать расширение tar и «file_name» — имя файла или указание группы файлов). Например, если выполнить команду: tar – cf myarch.tar *.txt, то в архив «myarch.tar» будут добавлены все txt-файлы.
  2. Распаковкаtar – xvf arhive_name path_to_extract arhive_name» — имя архива и «path_to_extract» — путь для распаковки файлов).
  3. Просмотр содержимого архиваtar – tf arhive_name arhive_name» — имя архива).

Работа с deb-пакетами

Deb-пакеты используются для инсталляции программного обеспечения, т. е. являются установочными файлами в Ubuntu.

bash dpkg

  1. Установка или обновлениеdpkg -i package_name.deb package_name.deb» — имя deb-файла).
  2. Удалениеdpkg -r package_name package_name.deb» — имя deb-файла).
  3. Показать все пакеты dpkg –l.

Менеджер пакетов APT

Менеджер APT — специальное программное обеспечение для установки, модификации или удаления программ. Он компилирует deb-пакеты с репозиториев для конкретной конфигурации операционной системы.

  1. Установка и обновлениеapt-get install package_name package_name» — имя приложения).
  2. Получение обновленных списков пакетов — apt-get update.
  3. Обновление пакетов, установленных на Ubuntu — apt-get upgrade.
  4. Удалениеapt-get remove package_name package_name» — имя приложения).
  5. Проверка целостности пакетов и зависимостей  — apt-get check.

Операции с текстом

Для работы с текстовыми файлами применяется специальная команда sed и sort.

Некоторые возможности sed

  • Замена одной строки на другую — sed ‘s/stringa1/stringa2/g’ myfile.txt.
  • Удаление пустых строкsed ‘/^$/d’ myfile.txt.
  • Удаление пустых строк и комментариевsed ‘/ *#/d; /^$/d’ myfile.txt.
  • Преобразование символов нижнего регистра в верхнийecho ‘esempio’ | tr ‘[:lower:]’ ‘[:upper:]’.

Сортировка

  • Сортировка содержимого 2 файлов выполняется при помощи команды: sort file_name_1 file_name_2 («file_name_1» и «file_name_2» — имя первого и второго файла соответственно).
  • Сортировка содержимого 2 файлов и запись результата в log-файл: sort filetxt file2.txt >> log.

Пользователь и система

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

  1. whoami — информация о текущем авторизованном пользователе. Если указать команду sudo whoami, то можно получить данные об администраторе, указав его пароль.
  2. who — сведения о всех пользователя текущей операционной системы. Команда позволяет также узнать IP-адрес, с которого заходил пользователь.
  3. uname — данные об операционной системе.
  4. hostnameсетевое имя машины.

Перенаправление вывода информации

Стандартным средством вывода информации о результатах команды, выполненной в терминале, является экран дисплея. Однако можно использовать альтернативный метод, воспользовавшись символами «>» (содержимое файла перезаписывается) или «>>» (добавление информации к существующей).

Терминал позволяет выполнять несколько команд в одну строку. Например, нужно записать все имена txt-файлов в log: find Temp/music -name ‘acords*.txt’ >> log. Log-файл будет создан в текущей директории.

Работа с правами доступа

Команда chmod применяется для изменения прав доступа к файлам или каталогам. Она позволяет разрешить или запретить его, а также ограничить, используя параметры только для чтения.

bash права

  1. ls -lh — просмотр полномочий файлов и каталогов текущей директории.
  2. Добавление полномочий для директории — chmod 777 folder_name («folder_name» — имя каталога, для которого устанавливаются права доступа).
  3. Удаление полномочий для директории (только чтение) — chmod 400 folder_name («folder_name» — имя каталога).
  4. Назначение пользователя владельцем папкиchow user_name folder_name («user_name» — имя пользователя, «folder_name» — имя каталога).
  5. Удаление прав пользователя на папку — chow -R user_name folder_name («user_name» — имя пользователя, «folder_name» — имя каталога).

Список прав доступа

  • 400 — только чтение.
  • 644 — чтение и редактирование всеми пользователями.
  • 660 — право на чтение и редактирование владельцем и группой.
  • 666 — все пользователи могут читать и редактировать.
  • 700 — запуск, редактирование и чтение только владельцем.
  • 744 — пользователи могут только читать, а владелец читать, редактировать и запускать приложение.
  • 755 — любой пользователь может читать и запускать на выполнение, а владелец получает полный доступ.
  • 777 — все пользователи могут читать, редактировать и запускать приложение (полные права доступа).
  • 1555 — право на удаление файла или папки имеет только владелец, а все остальные могут только читать и запускать на выполнение.

SSH-подключение

SSH позволяет безопасно передавать данные в незащищенной среде по шифрованному каналу. Он применяется для удаленного подключения к серверу и запуска приложений.

  1. Подключение к серверу, используя логин и пароль пользователя, имеющего на него права — sudo ssh user_name@IP_server («user_name» — имя пользователя, «IP-server» — IP или доменное имя сервера). После ввода команды требуется указать пароль для доступа к машине.
  2. Выполнение первой команды, но с использованием номера портаsudo ssh user_name@IP_server -p:22 («user_name» — имя пользователя, «IP-server» — IP или доменное имя сервера, 22 — номер порта).
  3. Добавление ключа для авторизации без ввода пароляsudo ssh-copy-id user_name@IP_server («user_name» — имя пользователя, «IP-server» — IP или доменное имя сервера).

Работа с датой и временем

  • Дата, время и день недели выводится при помощи специальной утилиты date. Если ввести ее без параметров, то она выводит на экран текущую дату, время и день недели.
  • Если выполнить команду sudo date –help или sudo man date, то можно получить полную информацию о ключах программы.

bash - dateman

Управление процессами

Процесс — программа, которая выполняется в текущий момент.

dash - top процессы

  • Для мониторинга процессов используется специальная утилита top. Она отображает полную информацию о программе, нагрузку на центральный процессор, оперативную память, дисковое пространство и сеть.
  • Для вывода процессов текущего пользователя применяется утилита ps.
  • Команда kill служит для остановки запущенной программы. Однако ее использовать не рекомендуется во избежание потери данных.