Чем являются команды оболочки bash
Перейти к содержимому

Чем являются команды оболочки bash

  • автор:

[в закладки] Bash для начинающих: 21 полезная команда

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

Термины

В ходе освоения работы в командной строке Linux вам может встретиться множество понятий, в которых полезно будет ориентироваться. Некоторые из них, вроде «Linux» и «Unix», или «командная оболочка» и «терминал», иногда путают. Поговорим об этих и о других важных терминах.

Unix — это популярная операционная система, которая была разработана Bell Labs в 1970-х. Её код был закрытым.

Linux — это самая популярная Unix-подобная операционная система. Она в наши дни используется на множестве устройств, в том числе — и на компьютерах.

Терминал (terminal), или эмулятор терминала — это программа, дающая доступ к операционной системе. Одновременно можно открывать несколько окон терминала.

Оболочка (shell) — это программа, которая позволяет отправлять операционной системе команды, написанные на особом языке.

Bash расшифровывается как Bourne Again SHell. Это — самый распространённый язык командной оболочки, используемый для взаимодействия с операционной системой. Кроме того, оболочка Bash по умолчанию используется в macOS.

Интерфейс командной строки (Command Line Interface, CLI) — это способ взаимодействия человека и компьютера, при использовании которого пользователь вводит команды с клавиатуры, а компьютер, выполняя эти команды, выводит, в текстовом виде, сообщения для пользователя. В основном CLI используется для получения свежей информации о неких сущностях, например, о файлах, и для работы с файлами. Интерфейс командной строки следует отличать от графического пользовательского интерфейса (Graphical User Interface, GUI), при работе с которым, в основном, используется мышь. Интерфейс командной строки часто называют просто командной строкой.

Скрипт (script) — это небольшая программа, которая содержит последовательность команд командной оболочки. Скрипты записывают в файлы, использовать их можно многократно. При написании скриптов можно пользоваться переменными, условными конструкциями, циклами, функциями и другими возможностями.

Теперь, когда мы рассмотрели важные термины, хочу отметить, что здесь я буду пользоваться терминами «Bash», «оболочка» и «командная строка» как взаимозаменяемыми, равно как и понятиями «директория» (directory) и «папка» (folder).

Стандартные потоки, которыми мы будем здесь пользоваться — это стандартный ввод (standard input, stdin ), стандартный вывод (standard output, stdout ) и стандартный вывод ошибок (standard error, stderr ).

Если в примерах команд, которые будут приводиться ниже, вы встретите нечто вроде my_whatever — это означает, что данный фрагмент нужно заменить чем-то вашим. Например — именем файла.

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

21 Bash-команда

▍Получение информации

  • man : выводит руководство пользователя (справку) по команде.
  • pwd : выводит сведения о рабочей директории.
  • ls : выводит содержимое директории.
  • ps : позволяет просматривать сведения о работающих процессах.

▍Манипуляции с файловой системой

  • cd : изменение рабочей директории.
  • touch : создание файла.
  • mkdir : создание директории.
  • cp : копирование файла.
  • mv : перемещение или удаление файла.
  • ln : создание ссылки.

▍Перенаправление ввода-вывода и конвейеры

  • < : перенаправление stdin .
  • > : перенаправление stdout .
  • | : перенаправление с помощью конвейера вывода одной команды на вход другой команды.

▍Чтение файлов

  • head : чтение начала файла.
  • tail : чтение конца файла.
  • cat : чтение файла и вывод его содержимого на экран или конкатенация файлов.

▍Удаление файлов, остановка процессов

  • rm : удаление файла.
  • kill : остановка процесса.

▍Поиск

  • grep : поиск информации.
  • ag : продвинутая команда для поиска.

▍Архивация

  • tar : создание архивов и работа с ними.

Подробности о командах

Для начала давайте разберёмся с командами, результаты работы которых выдаются в форме stdout . Обычно эти результаты появляются в окне терминала.

▍Получение информации

man command_name : вывод руководства по команде, то есть — справочной информации.

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

ls : вывод содержимого директории. Эта команда тоже используется весьма часто.

ls -a : вывод скрытых файлов. Здесь применён флаг -a команды ls . Использование флагов помогает настраивать поведение команд.

ls -l : вывод подробной информации о файлах.

Обратите внимание на то, что флаги можно комбинировать. Например — так: ls -al .

ps : просмотр выполняющихся процессов.

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

▍Манипуляции с файловой системой

cd my_directory : изменение рабочей директории на my_directory . Для того чтобы перейти на один уровень выше в дереве каталогов используйте в качестве my_directory относительный путь ../ .

touch my_file : создание файла my_file по заданному пути.

mkdir my_directory : создание папки my_directory по заданному пути.

mv my_file target_directory : перемещение файла my_file в папку target_directory . При указании целевой директории нужно использовать абсолютный путь к ней (а не конструкцию вроде ../ ).

Команду mv , кроме того, можно использовать для переименования файлов или папок. Например, выглядеть это может так:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory : создание копии файла my_source_file и помещение её в папку target_directory .

ln -s my_source_file my_target_file : создание символической ссылки my_target_file на файл my_source_file . Если изменить ссылку, то изменится и исходный файл.

Если файл my_source_file будет удалён, то my_target_file останется. Флаг -s команды ln позволяет создавать ссылки и для директорий.

Теперь поговорим о перенаправлении ввода-вывода и конвейерах.

▍Перенаправление ввода-вывода и конвейеры

my_command < my_file : заменяет дескриптор файла стандартного ввода ( stdin ) на файл my_file . Это может оказаться полезным в том случае, если команда ожидает ввода неких данных с клавиатуры, а эти данные заранее сохранены в файле.

my_command > my_file : перенаправляет результаты работы команды, то есть то, что обычно попадает в stdout и выводится на экран, в файл my_file . Если файл my_file не существует — он создаётся. Если файл существует — он перезаписывается.

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

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

Теперь взглянем на конвейерную обработку данных.

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

first_command | second_command : символ конвейера, | , используется для того чтобы отправить результаты работы одной команды другой команде. То, что команда, находящаяся в левой части описываемой конструкции, отправляет в stdout , попадает в stdin команды, которая находится справа от символа конвейера.

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

С помощью символа конвейера можно объединять в цепочку несколько команд. Выглядит это так:

Конвейер из нескольких команд можно сравнить с трубопроводом

Обратите внимание на то, что когда команда, находящаяся слева от символа | , выводит что-то в stdout , то, что она вывела, немедленно становится доступным в виде stdin второй команде. То есть оказывается, что, используя конвейер, мы имеем дело с параллельным выполнением команд. Иногда это может привести к неожиданным результатам. Подробности об этом можно почитать здесь.

Теперь поговорим о чтении данных из файлов и о выводе их на экран.

▍Чтение файлов

head my_file : считывает строки из начала файла и выводит их на экран. Читать можно не только содержимое файлов, но и то, что команды выводят в stdin , используя эту команду в качестве элемента конвейера.

tail my_file : считывает строки из конца файла. Эту команду тоже можно использовать в конвейере.

Head (голова) находится спереди, а tail (хвост) — сзади

Если вы работаете с данными, используя библиотеку pandas, тогда команды head и tail должны быть вам знакомы. Если это не так — взгляните на вышеприведённый рисунок, и вы без труда их запомните.

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

Команда cat либо выводит содержимое файла на экран, либо конкатенирует несколько файлов. Это зависит от того, сколько файлов передано этой команде при вызове.

Команда cat

cat my_one_file.txt : когда этой команде передают один файл — она выводит его в stdout .

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

cat my_file1.txt my_file2.txt : получив на вход несколько файлов эта команда конкатенирует их содержимое и выведет то, что получилось в stdout .

Если результат конкатенации файлов нужно сохранить в виде нового файла, можно воспользоваться оператором > :

Теперь поговорим о том, как удалять файлы и останавливать процессы.

▍Удаление файлов, остановка процессов

rm my_file : удаляет файл my_file .

rm -r my_folder : удаляет папку my_folder и все содержащиеся в ней файлы и папки. Флаг -r указывает на то, что команда будет работать в рекурсивном режиме.

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

kill 012345 : останавливает указанный выполняющийся процесс, давая ему время на корректное завершение работы.

kill -9 012345 : принудительно завершает указанный запущенный процесс. Флаг вида -s SIGKILL означает то же самое, что и флаг -9 .

▍Поиск

Для поиска данных можно использовать разные команды. В частности — grep , ag и ack . Начнём наше знакомство с этими командами с grep . Это — проверенная временем, надёжная команда, которая, правда, медленнее других и не так, как они, удобна в использовании.

Команда grep

grep my_regex my_file : выполняет поиск my_regex в my_file . При обнаружении совпадений возвращается, для каждого из них, вся строка. По умолчанию my_regex воспринимается как регулярное выражение.

grep -i my_regex my_file : поиск выполняется без учёта регистра символов.

grep -v my_regex my_file : возвращает все строки, в которых не содержится my_regex . Флаг -v означает инверсию, он напоминает оператор NOT , имеющийся во многих языках программирования.

grep -c my_regex my_file : возвращает сведения о количестве совпадений с искомым шаблоном, найденных в файле.

grep -R my_regex my_folder : выполняет рекурсивный поиск во всех файлах, находящихся в заданной папке и в папках, вложенных в неё.

Теперь поговорим о команде ag . Она появилась позже grep , она быстрее, работать с ней удобнее.

ag my_regex my_file : возвращает сведения о номерах строк, и сами строки, в которых найдены совпадения с my_regex .

ag -i my_regex my_file : поиск выполняется без учёта регистра символов.

Команда ag автоматически обрабатывает файл .gitignore и исключает из вывода то, что найдено в папках или файлах, перечисленных в этом файле. Это очень удобно.

ag my_regex my_file — skip-vcs-ignores : содержимое файлов систем автоматического контроля версий (наподобие .gitignore ) при поиске не учитывается.

Кроме того, для того чтобы указать команде ag на то, какие пути к файлам нужно исключить из поиска, можно создать файл .agignore .

В начале этого раздела мы упомянули о команде ack . Команды ack и ag очень похожи, можно сказать, что они взаимозаменяемы на 99%. Однако команда ag работает быстрее, поэтому я описал именно её.

Теперь поговорим о работе с архивами.

▍Архивация

tar my_source_directory : объединяет файлы из папки my_source_directory в один файл tarball. Такие файлы удобно использовать для того, чтобы передавать кому-нибудь большие наборы файлов.

Команда tar

Tarball-файлы, создаваемые этой командой, представляют собой файлы с расширением .tar (Tape ARchive). То, что в названии команды и в расширении имён файлов, создаваемых ей, скрыто слово «tape» (лента), говорит о том, как давно существует эта команда.

tar -cf my_file.tar my_source_directory : создаёт tarball-файл с именем my_file.tar с содержимым папки my_source_directory . Флаг -c расшифровывается как «create» (создание), а флаг -f как «file» (файл).

Для извлечения файлов, находящихся в .tar -файле, используется команда tar c флагами -x («extract», извлечение) и -f («file», файл).

tar -xf my_file.tar : извлекает файлы из my_file.tar в текущую рабочую директорию.

Теперь поговорим о том, как сжимать и распаковывать .tar -файлы.

tar -cfz my_file.tar.gz my_source_directory : здесь, с использованием флага -z («zip», алгоритм сжатия) указано, что для сжатия файлов должен использоваться алгоритм gzip (GNU zip). Сжатие файлов позволяет экономить дисковое пространство при хранении таких файлов. Если же файлы планируется, например, передавать другим пользователям, это способствует более быстрой загрузке таких файлов.

Распаковать файл .tar.gz можно, добавив флаг -z к команде извлечения содержимого .tar -файлов, которую мы рассматривали выше. Выглядит это так:

tar -xfz my_file.tar.gz
Надо отметить, что у команды tar есть ещё множество полезных флагов.

Bash-псевдонимы

Bash-псевдонимы (их ещё называют алиасами или сокращениями) предназначены для создания сокращённых наименований команд или их последовательностей, использование которых вместо обычных команд ускоряет работу. Если у вас, предположим, имеется псевдоним bu , за которым скрывается команда python setup.py sdist bdist_wheel , то для вызова данной команды достаточно воспользоваться этим псевдонимом.

Для создания подобного псевдонима достаточно добавить следующую команду в файл

Если в вашей системе нет файла

/.bash_profile , то вы можете создать его самостоятельно, воспользовавшись командой touch . После создания псевдонима перезапустите терминал, после чего вы сможете этим псевдонимом пользоваться. В данном случае ввод двух символов заменяет ввод более чем трёх десятков символов команды, которая предназначена для сборки Python-пакетов.

/.bash_profile можно добавлять псевдонимы для любых часто используемых команд.

▍Итоги

В этом материале мы рассмотрели 21 популярную команду Bash и поговорили о создании псевдонимов для команд. Если вам эта тема интересна — вот цикл публикаций, посвящённый Bash. Здесь можно найти pdf-версию этих публикаций. Кроме того, если вы хотите освоить Bash, помните о том, что тут, как и при изучении любой другой программной системы, важна практика.

Уважаемые читатели! Какие команды, которые полезно знать начинающим, вы добавили бы к тем, которые были рассмотрены в этой статье?

Синтаксис Bash для начинающих. Интерпретатор Bash

Linux_Deep_30.9-5020-170bb4.png

В этой статье мы рассмотрим, что такое интерпретатор Bash. Выполним введение в оболочку Bash, изучим синтаксис интерпретатора и его основные команды.

Bash — популярный командный интерпретатор, используемый в юниксоподобных системах, например, в GNU/Linux. Это программа, которую называют оболочка либо шелл (shell), а само название «bash» является сокращением от «Bourne Again Shell». Интерпретатор Bash принимает ваши команды, передавая их операционной системе. Чтобы осуществлялось взаимодействие с ОС, применяются терминалы (gnome-terminal, nxterm и прочие).

Навигация

В ОС «Линукс» каталоги и файлы имеют иерархическую организацию, т. е. существует начальный каталог, который называется корневым. В этом каталоге содержатся подкаталоги и файлы, в свою очередь содержащие свои подкаталоги и файлы.

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

Даёт возможность перейти в новый каталог.

1-20219-90b95c.jpg

mkdir

Служит для создания нового каталога в текущем каталоге.

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

Команда интерпретатора Bash man

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

Команда интерпретатора Bash cat

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

Команда интерпретатора Bash echo

Осуществляет вывод своих аргументов по стандартному каналу вывода.

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

Команда интерпретатора Bash head

Читает лишь первые десять строк любого переданного текста, выводя их по стандартному каналу. Можно изменить количество выводимых строк:

Команда интерпретатора Bash tail

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

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

Команда интерпретатора Bash less

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

Кстати, о символе | мы расскажем ниже в блоке про команду интерпретатора Bash history .

2-20219-24da11.jpg

Команды интерпретатора Bash true и false

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

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

Команда интерпретатора Bash grep

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

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

3-20219-7a81b0.jpg

Команда интерпретатора Bash sed

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

Команда интерпретатора Bash history

Выводит историю командной строки. Часто используется совместно с grep при поиске конкретной команды. В коде ниже будут найдены все команды, которые содержат строку g++:

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

Команда интерпретатора Bash export

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

Команда интерпретатора Bash ps

Выводит данные о запущенных процессах.

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

Команда интерпретатора Bash awk

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

Команда интерпретатора Bash wget

Закачивает файлы из интернета, помещая их в текущий каталог.

Команда интерпретатора Bash nc

Утилита для отладки сети. Вот руководство.

Команда интерпретатора Bash ping

Служит для тестирования сетевого подключения.

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

Статья написана специально для курса по Linux на основании материалов Bash-Cheatsheet.

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

Bash — это командная оболочка или по-другому — интерпретатор команд, который используется по умолчанию в большинстве дистрибутивов Linux. Оболочка Bash обладает огромным количеством возможностей. Это больше чем интерпретатор, в умелых руках Bash может превратиться в полноценный язык программирования.

Основная задача оболочки — выполнять команды, но кроме утилит, расположенных в файловой системе, Bash имеет свой набор команд, многими из которых вы пользуетесь каждый день сами этого не понимая. Эти команды Bash находятся не на диске, а встроены в саму оболочку. В этой статье мы рассмотрим основные команды bash в linux, которые могут быть полезны в некоторых ситуациях.

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

В этой статье не будет очень длинны вступлений и мы сразу перейдем к делу. Все элементы списка расположены в случайном порядке. После рассмотрения всех их, вы будете лучше понимать работу в Bash.

1. source

Эта команда позволяет прочитать и выполнить все команды из указанного файла в текущей командной оболочке. Это значит, что все заданные в нем переменные окружения будут видны во всех скриптах или командах, которые вы будете выполнять. Напомню, что если вы запускаете обычный скрипт и объявляете в нем переменную, то она будет доступна только ему потому что для скриптов создается отдельный экземпляр оболочки. Он наследует переменные родителя, но не наоборот. Эта команда часто применяется для обновления окружения после chroot:

2. alias

Команда alias позволяет создавать псевдонимы для других команд. Например, вы можете настроить так, чтобы когда вы вводите update, выполнялась команда sudo apt update && sudo apt upgrade. Если вызвать команду без параметров, то она выведет список уже заданных псевдонимов. Смотрите подробнее о том как создавать алиасы Linux в отдельной статье.

3. bind

С помощью этой команды вы можете связать нажатие клавиши с определенной командной или функцией. Например, настроим, чтобы при нажатии F12 в окне терминала выполнялась команда pwd:

Команда cd используется очень часто при работе с папками в терминале. Она позволяет сменить текущую папку на произвольную. Можно использовать чтобы не набирать длинные пути, также она необходима при компиляции. По умолчанию, текущая папка — домашняя:

5. declare

Встроенная команда bash — declare позволяет объявлять переменные. Опция -a позволяет вывести все уже существующие переменные окружения. В отличии от обычного объявления вы можете задать различные параметры, например, сделать переменную только для чтения с помощью опции -r. Также можно объявлять функции.

6. dirs

Команда dirs отображает историю смены текущей папки. Каждая предыдущая папка отображается с новой строки. С помощью опции -n можно указать, сколько последних элементов выводить.

7. echo

Это одна из самых простых, но в то же время очень полезных команд. Она выводит указанную строку на экран. Часто используется в различных скриптах или для отправки значений в конфигурационные файлы. Подробнее про команду echo смотрите в отдельной статье.

echo «Это строка»

8. enable

Команда enable позволяет включать или отключать встроенные команды bash. Для включения встроенной команды достаточно передать ее в параметрах. Если вы хотите отключить команду, используйте опцию -n, после этого вместо встроенной команды, будет выполняться утилита из файловой системы.

9. exit

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

10. export

Еще одна команда для объявления переменных. Все объявленные с помощью нее переменные экспортируются во внешнее окружение среды и будут доступны всем скриптам и программам. С помощью опции -p вы можете посмотреть экспортированные на данный момент переменные.

11. bg

Команда bg позволяет посмотреть команды, которые выполняются в фоне. Если вы нажмете сочетание клавиш Ctrl+Z, то утилита будет свернута в фоновый режим. Этой командой вы можете посмотреть все такие процессы для данной оболочки.

12. fg

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

13. history

Команда history linux позволяет посмотреть историю команд, которые вы выполняли ранее. Здесь сохраняется более 1000 последних команд, вы можете все их увидеть, выполнять по них поиск и так далее. Вы можете задать нужное количество записей просто передав нужное значение.

14. kill

Команда kill может быть системной утилитой или командой оболочки. Она позволяет отправить указанному процессу сигнал. Например, SIGKILL, SIGTERM и другие. С помощью нее вы можете завершить процесс по его PID или идентификатору Bash.

15. let

Команда let выполняет функцию калькулятора, ей нужно передать математическое выражение, которое она подсчитает. Можно передать несколько таких выражений.

16. popd

Это еще одна команда, которая используется для навигации по каталогах. Команда удаляет последнюю директорию из стека каталогов. Таким образом, вы перемещаетесь в ранее выбранную текущую папку с помощью cd, на уровень выше. Команде можно передать в параметрах сколько папок нужно удалить. Для этого добавьте плюс, а затем цифру.

17. printf

Эта команда похожа на echo по своему назначению похожа на echo. Она позволяет вывести в терминал строку, но перед выводом вы можете настроить ее форматирование. Синтаксис форматирования очень похож на тот, что используется в популярных языках программирования, таких как Си или PHP. Например, с помощью этой команды bash вы можете подставить значения переменных в произвольные места строки:

printf «Var: %s\n» «$VAR»

18. pushd

Команда pushd выполняет действие, обратное до popd и по назначению аналогична cd. Она устанавливает указанную папку на верхушку стека директорий, тем самым меняет текущую рабочую директорию на указанную вами.

19. pwd

Позволяет отобразить текущую рабочую папку:

20. read

С помощью команды read, вы можете прочитать строку из стандартного ввода или файла в переменную. Есть подобные ей команды оболочки bash, которые позволяют считывать строку в массив. Команде можно передать файл для считывания, а также несколько переменных:

21. suspend

Позволяет приостановить выполнение оболочки пока не будет отправлен сигнал SIGCONT. Можно также приостановить выполнение одного из процессов, выполняющихся в фоне.

22. umask

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

23. time

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

24. wait

Наш список команд bash завершает wait. Она позволяет ожидать пока указанный процесс завершит свое выполнение. Вы можете использовать PID или идентификатор Bash для выбора нужного процесса.

Выводы

В этой статье мы рассмотрели основные команды Bash, которые вы можете применять для управления терминалом Linux. Наверное, вы и не догадывались, что многие из часто используемых программ на самом деле встроенные команды bash. Если у вас остались вопросы, спрашивайте в комментариях!

Похожие записи

Оцените статью

alt=»Creative Commons License» width=»» />
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

3 комментария к “Основные команды Bash”

Ctrl+Z не сворачивает в фон а приостанавливает процесс.
bg не показывает процессы в фоне, а переводит в фоновый режим приостановленные процессы.
А вот уже jobs выводит список фоновых задач текущей оболочки.

Добрый день ! Может ли кто-нибудь помочь разобраться с bash ?
Есть стартовый скрипт сервиса, всё замечательно, но нужно сделать когда вводишь ps aux вывод таким, чтобы было не просто название запущеного сервиса, а ещё был вывод из какой директории он запущен. Может ли мне кто помочь с этим ?

Автор, ты вообще читаешь комменты? 3 года назад тебе показали на серьезные ошибки, и ты до сих пор не исправил статью.

Шпаргалка по основным командам Bash

Неважно кто вы, разработчик ПО, специалист по данным, менеджер ИТ-инфраструктуры или просто любитель компьютеров — вам нужно знать, как пользоваться терминалом в Linux и macOS. Но сложность в том, что необходимо запомнить слишком много команд. И если у вас нет чудо-памяти, время от времени приходится искать в Интернете ту или иную команду.

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

Основные

Помощь

Забыли аргументы для cp ? Какая опция у команды mkdir ? Вот вам подсказка:

Конвейер

Зачастую с его помощью перенаправляют вывод одной команды на ввод другой или приписывают команду к файлу:

Фильтрация вывода

Бывает, что команда выводится слишком долго. В этом случае вы либо разделите страницу с помощью команды more или less , либо выведите строки, которые содержат специальное слово или предложение с grep :

Очистка экрана

Слишком много текста в терминале? Просто напишите clear и продолжайте работать.

Система

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

С этими командами вы с легкостью получите все подробности о компьютере:

Работам с процессами

Следующие команды предоставляют общие сведения о всех процессах, происходящих в системе. В macOS и некоторых дистрибутивах Linux htop не установлен, поэтому перед использованием нужно установить его с помощью стандартного менеджера пакетов (для macOS — Homebrew):

Смена пользователей

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

Копирование и вставка в буфер обмена

Вы можете скопировать и вставить текст из/в терминал, выделив их и нажав Ctrl + C или Ctrl + V. Но иногда хочется напрямую получить доступ к буферу обмена. И как вы видите ниже, это не так уж и просто, что на Linux, что на macOS.

Переменные и путь

Можно двумя способами определить переменные внутри оболочки: в реальном времени, написав в терминале соответствующую команду, или же определить их в файле .bashrc в домашний каталог, где они будут храниться вечно.

Ещё один интересный инструмент — alias (псевдоним), сокращение для длинных команд. Посмотрим, как он строится:

Для тех, кто не знает, путь (Path) – это каталоги, в которых ОС ищет файлы для исполнения. С его помощью можно запустить файл, написав лишь название, даже не нужно знать его расположение. Кроме того, в путь можно добавить папку, а также найти каталог, где находится исполняемый файл, с помощью команд:

Файлы и каталоги

Смена текущего каталога

Для перехода между каталогами файловой системы вам лишь нужно знать, как применять команду cd .

Содержимое каталога

Чтобы вывести в каталоге файлы, папки, а также их свойства, не обойтись без команды ls .

Скачать файл из Интернета

Самый простой способ скачать файл с веб-серверов — это команда wget .

Создать каталог

Если вы хотите создать папку, используйте команду mkdir .

Копирование, перемещение и удаление

Как правило, функции копирования, перемещения и удаления выполняют через файловый менеджер, но можно делать это и через терминал.

Права доступа и владельцы

Права доступа и владельца файла или каталога можно изменить с помощью команды chmod и chown .

Поиск файлов

Забыли где файл contacts.json ? Хотите вывести все PDF файлы, находящиеся в папке? С помощью команды find вы можете сделать это и многое другое.

Вычисление контрольной суммы SHA256 файла

При скачивании любой программы из Интернета, рекомендуется проверить контрольную сумму SHA, чтобы убедиться, всё ли верно скачалось. И сделать это гораздо легче через терминал:

Сжатие и распаковка TAR/ZIP файлов

Неважно, что у вас TAR или ZIP файл, вы можете распаковать его через терминал или же создать из существующих папок:

Свободное место на диске

Хотите узнать доступное место на жестком диске? Или на внешнем? Или в текущем каталоге? В этих вопросах помогает команда df .

Просмотр содержимого файла

Через терминал можно не только просматривать содержимое текстового файла, но и проводить анализы, например сортировать и менять порядок строк по содержанию, подсчитывать количество строк, слов, символов, и выделить столбцы, если это табличный файл. Рассмотрим их в действии:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *