Linux terminal bash command

Оболочка Bash — шпаргалка для начинающих

В данной шпаргалке затрагиваются следующие темы: введение в оболочку, навигация, основные команды, переменные окружения, коннекторы, конвейеры, перенаправление ввода/вывода, права доступа и комбинации клавиш.

Оболочка Bash: введение

Оболочка, или шелл (shell) — это программа, в нашем случае названная «bash», что является сокращением от Bourne Again Shell. Оболочка принимает ваши команды и передаёт их операционной системе. Для взаимодействия с системой используются терминалы, такие как gnome-terminal, eterm, nxterm и т. п.

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

Команда pwd , сокращение от print working directory, отображает текущее местоположение в структуре каталогов.

Команда cd позволяет перейти в новый каталог.

Синтаксис Объяснение
cd Перемещение в домашний каталог
cd

Перемещение в домашний каталог
cd .. Перемещение на один уровень выше
cd — Перемещение в предыдущий каталог
cd Directory1 Перемещение в каталог Directory1
cd Directory1/Directory2 Перемещение в каталог Directory2 по указанному пути

mkdir

Команда mkdir создаёт новый каталог в текущем каталоге.

Основные команды

Команда man отображает руководства по командам. Например, следующая команда выдаст всю информацию о команде cat :

Команда cat считывает файл, переданный как аргумент, и выводит его содержимое по стандартному каналу вывода. Передача нескольких файлов в виде аргумента приведёт к выводу конкатенированного содержимого всех файлов.

Команда echo выводит свои аргументы по стандартному каналу вывода.

Если вызвать echo без аргументов, будет выведена пустая строка.

Команда head читает первые 10 строк любого переданного текста и выводит их по стандартному каналу. Число выводимых строк можно изменить:

Команда tail работает аналогично команде head , но читает строки с конца:

Также можно просматривать добавляемые к файлу строки в режиме реального времени при помощи флага -f :

Команда less позволяет перемещаться по переданному файлу или куску текста, причём в обоих направлениях.

Подробнее о назначении символа | будет рассказано ниже в разделе команды history .

Обычные сочетания клавиш Описание
G Перемещает в конец файла
g Перемещает в начало файла
:50 Перемещает на 50 строку файла
q Выход из less
/searchterm Поиск строки, совпадающей с ‘searchterm’, ниже текущей строки
/ Перемещает на следующий подходящий результат поиска
?searchterm Поиск строки, совпадающей с ‘searchterm’, выше текущей строки
? Перемещает на следующий подходящий результат поиска
up Перемещает на одну строку выше
down Перемещает на одну строку ниже
pageup Перемещает на одну страницу выше
pagedown Перемещает на одну страницу ниже

Команда true всегда возвращает ноль в качестве выходного статуса для индикации успеха.

false

Команда false всегда возвращает не-ноль в качестве выходного статуса для индикации неудачи.

$? — это переменная, которая содержит выходной статус последней запущенной команды. Под статусом обычно понимается код возврата программы. 0 означает успешное выполнение программы, любое значение большее 0 отражает тот факт, что в процессе выполнения возникли некоторые ошибки. Кстати, именно поэтому в bash истинной (true) считается 0, а все, что не 0 — ложью (false):

Команда grep занимается поиском переданной строки в указанном файле:

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

Обычные флаги Описание
-i Отключение чувствительности к регистру
-r Рекурсивный поиск по директориям
-w Поиск только целых слов
-c Вывод количества найденных элементов
-n Вывод всей строки, содержащей запрос
-v Вывод инвертированного совпадения

Также можно ознакомиться с руководством по regex. У нас на сайте тоже есть руководство по «регуляркам» в Python для новичков.

Команда sed — это потоковый редактор, преобразующий входные текстовые данные. Обычно её используют для замены выражений так: s/regexp/replacement/g . Например, следующий код заменит все слова «Hello» на «Hi»:

Также вы можете ознакомиться с руководством по sed.

history

Команда history выводит историю командной строки. Обычно её используют вместе с командой grep для поиска конкретной команды. Например, следующий код найдёт все команды, содержащие строку g++ :

Здесь также используется символ | — это так называемый конвейер (pipe). Благодаря ему можно перенаправлять вывод одной команды на вход другой — таким образом в примере выше вся история, которая в обычном режиме выводится командой history прямо в вывод терминала, будет перенаправлена в grep в качестве входных данных. Мы не увидим вывода команды history , но увидим вывод команды grep .

Это может быть довольно сложно для понимания без практики, поэтому поэкспериментируйте самостоятельно, например с командами ls , history , ps (описана ниже), перенаправляя их вывод в grep , sed или less , например.

export

Команда export устанавливает переменные окружения для передачи дочерним процессам. Например, так можно передать переменную name со значением student :

Команда ps выводит информацию о запущенных процессах.

Выводится четыре элемента:

  • ID процесса (PID),
  • тип терминала (TTY),
  • время работы процесса (TIME),
  • имя команды, запустившей процесс (CMD).

Команда awk находит и заменяет текст в файлах по заданному шаблону: awk ‘pattern ‘ test.txt

Команда wget скачивает файлы из Сети и помещает их в текущий каталог.

Команда nc — это утилита для отладки сети. Также можно ознакомиться с руководством по nc.

Команда ping тестирует сетевое подключение.

Статистика в конце показывает количество подключений, совершённых до завершения команды, и время их выполнения.

Git — это популярная система контроля версий. Также можно ознакомиться с руководством по git и нашими материалами.

Переменные окружения

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

Переменная PATH содержит список каталогов, в которых система ищет исполняемые файлы.

11–13 октября, Онлайн, Беcплатно

Переменная HOME содержит путь к домашнему каталогу текущего пользователя.

Коннекторы

Коннекторы позволяют запускать несколько команд одновременно.

Коннектор Описание
&& Первая команда исполняется всегда, вторая — только в случае успешного завершения первой
|| Первая команда исполняется всегда, вторая — только в случае неудачного завершения первой
; Команды исполняются всегда

Конвейеры

Конвейеры, или пайпы, позволяют соединять входные и выходные каналы различных команд. В следующем примере вывод команды ls будет передан в head , и в результате будет напечатано лишь 10 первых элементов.

Перенаправление ввода/вывода

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

Для стандартного перенаправления вывода используются символы > и >> .

Например, этот код передаст вывод ls в файл, а не на экран:

Если файл не существует, он создаётся, а если существует, то перезаписывается. Во избежание перезаписи стоит использовать команду >> — она дописывает данные в конец файла.

Перенаправление ввода

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

Команда sort выводит содержимое файла на экран, поскольку мы не перенаправили выход. Это можно сделать так:

Продвинутое перенаправление

Добавление & к > приводит к перенаправлению как стандартного потока выхода, так и потока ошибок. Например, файл test.cpp выведет строку stdout в cout и строку stderr в cerr .

Если вы хотите вывести конкретный файловый дескриптор, вы можете приписать его номер к > .

Имя Дескриптор Описание
stdin 0 Стандартный поток ввода
stdout 1 Стандартный поток вывода
stderr 2 Стандартный поток вывода ошибок

Например, для перенаправления stderr в test.txt нужно сделать следующее:

Права доступа

Команда ls -l выводит много информации о правах доступа к каждому файлу:

Вывод в примере Описание / возможные выводы
Тип файла:
— файл
d каталог
rw- Права доступа владельца файла
rw- Права доступа членов группы-владельца файла
r– Права доступа прочих пользователей
user Имя владельца файла
group Имя группы-владельца файла

chmod

Команда chmod изменяет права доступа файла. Вот типичные сочетания флагов для изменения прав конкретных пользователей:

Буква Пользователь
u Владелец
g Член группы
o Прочие пользователи
a Все пользователи

Вы можете вызвать chmod с описанием действий над конкретным файлом. Символ — обозначает удаление прав, символ + — добавление. Следующий пример сделает файл доступным для чтения и записи владельцу и группе:

Кроме того, chmod можно использовать с восьмеричными числами, где 1 — это наличие прав, а 0 — отсутствие:

Следующая команда сработает так же, как и предыдущая:

Сочетания клавиш

Сочетание Описание
CTRL-A Перемещение курсора в начало строки
CTRL-E Перемещение курсора в конец строки
CTRL-R Поиск по истории
CTRL-W Вырезать последнее слово
CTRL-U Вырезать всё до курсора
CTRL-K Вырезать всё после курсора
CTRL-Y Вернуть последнюю вырезанную строку
CTRL-_ Отмена
CTRL-L Очистка экрана терминала

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

Перейти к регистрации

Источник

Основные команды интерпретатора bash для начинающих

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вышеописанный 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» — имя каталога).


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

  • 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.

  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 применяется для изменения прав доступа к файлам или каталогам. Она позволяет разрешить или запретить его, а также ограничить, используя параметры только для чтения.

  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 , то можно получить полную информацию о ключах программы.

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

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

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

Начни экономить на хостинге сейчас — 14 дней бесплатно!

Источник

Читайте также:  Как скрыть панель внизу windows 10
Оцените статью