bash с нуля обучение
Основы BASH. Часть 1
Введение
break выход из цикла for, while или until
continue выполнение следующей итерации цикла for, while или until
echo вывод аргументов, разделенных пробелами, на стандартное устройство вывода
exit выход из оболочки
export отмечает аргументы как переменные для передачи в дочерние процессы в среде
hash запоминает полные имена путей команд, указанных в качестве аргументов, чтобы не искать их при следующем обращении
kill посылает сигнал завершения процессу
pwd выводит текущий рабочий каталог
read читает строку из ввода оболочки и использует ее для присвоения значений указанным переменным.\
return заставляет функцию оболочки выйти с указанным значением
shift перемещает позиционные параметры налево
test вычисляет условное выражение
times выводит имя пользователя и системное время, использованное оболочкой и ее потомками
trap указывает команды, которые должны выполняться при получении оболочкой сигнала
unset вызывает уничтожение переменных оболочки
wait ждет выхода из дочернего процесса и сообщает выходное состояние.
И конечно же кроме встроенных команд мы будем использовать целую кучу внешних, отдельных команд-программ, с которыми мы познакомимся уже в процессе
Что необходимо знать с самого начала
1. Любой bash-скрипт должен начинаться со строки:
#!/bin/bash
в этой строке после #! указывается путь к bash-интерпретатору, поэтому если он у вас установлен в другом месте(где, вы можете узнать набрав whereis bash) поменяйте её на ваш путь.
2. Коментарии начинаются с символа # (кроме первой строки).
3. В bash переменные не имеют типа(о них речь пойдет ниже)
Переменные и параметры скрипта
Приведу как пример небольшой пример, который мы разберем:
Результат выполнения скрипта:
После того как мы познакомились как использовать переменные и передавать скрипту параметры, время познакомиться с зарезервированными переменными:
Условия
Условные операторы, думаю, знакомы практически каждому, кто хоть раз пытался на чем-то писать программы. В bash условия пишутся след. образом (как обычно на примере):
#!/bin/bash
source=$1 #в переменную source засовываем первый параметр скрипта
dest=$2 #в переменную dest засовываем второй параметр скрипта
Условия. Множественный выбор
esac #окончание оператора case.
Результат работы:
ite@ite-desktop:
UPD: Исправил некоторые ошибки
UPD: Обновил часть про условия if-then-else
Основы Bash-скриптинга для непрограммистов
Статья рассчитана на тех, кто не имеет или имеет мало опыта работы с командной строкой Unix/Linux, но желает научиться с ней эффективно взаимодействовать и разрабатывать скрипты для выполнения своих задач. Приведенные примеры справедливы для выполнения в командной оболочке bash операционной системы Ubuntu/Debian, но могут быть использованы и в других оболочках и ОС с учетом их специфики.
1. Командные оболочки
Существует множество дистрибутивов(форков) операционных систем(ОС) семейства Linux, наиболее известные среди них: Ubuntu, Debian, CentOS, Red Hat, Fedora, SuSE, FreeBSD, Mint.
Здесь есть большая схема со всеми форками Linux.
В каждой ОС существуют различные командные оболочки (shell), их назначение одинаково (администрирование, автоматизация, вычисления, мониторинг и т.д.), как и большинство основных команд, но реализация может отличаться. В таблице ниже приведено сравнение, в котором видно, что некоторые возможности поддерживаются не всеми оболочками.
Feature
Bourne
Korn
Bash
Редактор командной строки
Расширенные шаблоны файлов
Автозавершение имени файла
Стеки директорий (pushd and popd)
Исправление ошибок в командах
Формат приглашения командной строки
Список доступных командных оболочек можно получить командой
2. Настройка тестовой среды
Если у вас уже есть виртуальная/реальная машина с установленным Linux, или вы знаете, как её настроить, то можно пропустить информацию из спойлера ниже. Если есть доступ по ssh к какому-либо серверу, то Вы также можете использовать его shell для тренировок. Используйте имеющийся доступ с осторожностью, не тренируйтесь на продуктовых(промышленных) серверах и других критичных окружениях. Если вы не хотите развертывать виртуальную машину(ВМ), то для тестов можно воспользоваться онлайн-терминалами, но нужно знать и учитывать их особенности и ограничения. Примеры онлайн-терминалов:
https://cocalc.com/app?anonymous=terminal
https://www.tutorialspoint.com/execute_bash_online.php
https://rextester.com/l/bash_online_compiler
Развертывание виртуальной машины
VirtualBox – ПО для виртуализации, позволяющее запускать одну ОС «внутри» другой. Разумеется, существуют и другие способы развертывания ВМ, здесь мы рассмотрим лишь один из них. В данном случае, предполагается, что у вас ПК под управлением Windows или Mac. Для начала нужно скачать VirtualBox отсюда и установить его.
Также нужно скачать образ ВМ с установленной ОС Ubuntu отсюда. Качайте самую новую версию, убедитесь, что скачиваемый образ имеет формат VirtualBox (VDI).
Создадим виртуальную машину. Сначала создаем на локальном диске папку для размещения в ней ВМ и их файлов (у меня C:\vmachines). Распакуем скачанный образ диска ВМ в созданную папку:
В открывшемся окне указываем имя ВМ (тип и версия в большинстве случаев подтягиваются автоматически, если это понятно из имени), а также созданную нами папку. Объем оперативной памяти устанавливается автоматически, 1Гб достаточно для выполнения тестов. Выбираем «Использовать существующий виртуальный жесткий диск», нажимаем значок выбора образа жесткого диска, в открывшемся окне нажимаем «Добавить», выбираем распакованный ранее файл образом ВМ и нажимаем «Открыть»:
И нажимаем «Создать»:
Выбираем в списке созданную ВМ и нажимаем «Запустить»:
После запуска ВМ появится окно для входа в ОС:
Выбираем учетную запись osboxes.org и вводим пароль osboxes.org. После входа в систему нажимаем Ctrl+Alt+T, у нас откроется окно терминала, в котором можно выполнять тесты:
Создадим тестового пользователя.
На данном этапе уже можно использовать тестовую среду, выполняя команды в терминале (Ctrl+Alt+T). Дополнительно можно настроить подключение по ssh клиентом (например, PuTTY), мы рассмотрим это отдельно.
3. Первые команды
Итак, мы подключились к терминалу и находимся в shell. Давайте сориентируемся в пространстве. Чтобы узнать имя машины(сервера), на которой мы находимся, введем hostname и нажмем Enter:
Имя пользователя, под которым мы подключены, как правило отображается в приглашении командной строки (test@osboxes:
Команда cat выводит содержимое файла (часть строк в приведенном выводе пропущена и заменена на …). Из файла видим, что для пользователя test указана оболочка /bin/dash. Изменить оболочку текущего пользователя, которая будет загружаться по умолчанию, можно следующей командой(chsh – сокращенное от change shell):
Теперь давайте проверим, в каком каталоге мы находимся, для этого выполним команду pwd :
Для команды ls с параметрами может быть задан синоним (alias), что упрощает её ввод. Список уже заданных синонимов можно получить командой alias :
Алиасы задаются в файле
) означает домашнюю директорию пользователя. В нашем случае /home/test. Также можно задать их в файле
/.bashrc. Здесь нужно сказать пару слов об этих файлах.
При запуске bash в качестве оболочки, сначала выполняется файлы (в случае их наличия), в которых могут быть заданы различные настройки профиля и выполнены различные действия в процессе входа до появления командной строки: сначала выполняется файл /etc/profile, далее bash последовательно ищет и выполняет первый из найденных файлов в следующем порядке:
/.profile. Из указанных файлов могут вызываться и другие.
Так, например, из файла
./profile вызывается файл
Некоторые внутренние команды bash дублированы в виде исполняемых файлов. Это сделано, чтобы скрипты можно было корректно выполнять в оболочках, в которых не реализованы эти команды. Например, существует исполняемый файл /usr/bin/echo, который реализует функционал внутренней команды echo. Команда help echo выведет справку по внутренней команде, а команда /usr/bin/echo –help выведет справку для соответствующего исполняемого файла. Вывод справки для этих команд отличается, но в целом они реализуют идентичный функционал.
Таким образом, если в оболочке не реализована внутренняя команда echo, скрипт, содержащий вызов echo, сможет успешно выполниться, т.к. для обработки вызова будет использован исполняемый файл /usr/bin/echo. Для поиска выполненных ранее команд можно использовать клавиши «Вверх» и «Вниз», команды из истории можно редактировать и повторно выполнять. В конце статьи приведен список полезных команд.
Если данный материал интересен, то в продолжении статьи я расскажу про скрипты и их параметры, права доступа к файлам, операторы условного выполнения, выбора и циклы, функции и планировщик заданий.
Bash-скрипты: начало
Сегодня поговорим о bash-скриптах. Это — сценарии командной строки, написанные для оболочки bash. Существуют и другие оболочки, например — zsh, tcsh, ksh, но мы сосредоточимся на bash. Этот материал предназначен для всех желающих, единственное условие — умение работать в командной строке Linux.
Сценарии командной строки — это наборы тех же самых команд, которые можно вводить с клавиатуры, собранные в файлы и объединённые некоей общей целью. При этом результаты работы команд могут представлять либо самостоятельную ценность, либо служить входными данными для других команд. Сценарии — это мощный способ автоматизации часто выполняемых действий.
Итак, если говорить о командной строке, она позволяет выполнить несколько команд за один раз, введя их через точку с запятой:
На самом деле, если вы опробовали это в своём терминале, ваш первый bash-скрипт, в котором задействованы две команды, уже написан. Работает он так. Сначала команда pwd выводит на экран сведения о текущей рабочей директории, потом команда whoami показывает данные о пользователе, под которым вы вошли в систему.
Используя подобный подход, вы можете совмещать сколько угодно команд в одной строке, ограничение — лишь в максимальном количестве аргументов, которое можно передать программе. Определить это ограничение можно с помощью такой команды:
Командная строка — отличный инструмент, но команды в неё приходится вводить каждый раз, когда в них возникает необходимость. Что если записать набор команд в файл и просто вызывать этот файл для их выполнения? Собственно говоря, тот файл, о котором мы говорим, и называется сценарием командной строки.
Как устроены bash-скрипты
Команды оболочки отделяются знаком перевода строки, комментарии выделяют знаком решётки. Вот как это выглядит:
Тут, так же, как и в командной строке, можно записывать команды в одной строке, разделяя точкой с запятой. Однако, если писать команды на разных строках, файл легче читать. В любом случае оболочка их обработает.
Установка разрешений для файла сценария
Попытка запуска файла сценария с неправильно настроенными разрешениями
Сделаем файл исполняемым:
Теперь попытаемся его выполнить:
После настройки разрешений всё работает как надо.
Успешный запуск bash-скрипта
Вывод сообщений
Вот что получится после запуска обновлённого скрипта.
Вывод сообщений из скрипта
Использование переменных
Переменные позволяют хранить в файле сценария информацию, например — результаты работы команд для использования их другими командами.
Нет ничего плохого в исполнении отдельных команд без хранения результатов их работы, но возможности такого подхода весьма ограничены.
Существуют два типа переменных, которые можно использовать в bash-скриптах:
Переменные среды
Иногда в командах оболочки нужно работать с некими системными данными. Вот, например, как вывести домашнюю директорию текущего пользователя:
Использование переменной среды в сценарии
А что если надо вывести на экран значок доллара? Попробуем так:
В подобной ситуации поможет использование управляющего символа, обратной косой черты, перед знаком доллара:
Теперь сценарий выведет именно то, что ожидается.
Использование управляющей последовательности для вывода знака доллара
Пользовательские переменные
В дополнение к переменным среды, bash-скрипты позволяют задавать и использовать в сценарии собственные переменные. Подобные переменные хранят значение до тех пор, пока не завершится выполнение сценария.
Как и в случае с системными переменными, к пользовательским переменным можно обращаться, используя знак доллара:
Вот что получится после запуска такого сценария.
Пользовательские переменные в сценарии
Подстановка команд
Одна из самых полезных возможностей bash-скриптов — это возможность извлекать информацию из вывода команд и назначать её переменным, что позволяет использовать эту информацию где угодно в файле сценария.
Сделать это можно двумя способами.
При втором подходе то же самое записывают так:
А скрипт, в итоге, может выглядеть так:
Скрипт, сохраняющий результаты работы команды в переменной
Математические операции
Математические операции в сценарии
Управляющая конструкция if-then
А вот рабочий пример:
В данном случае, если выполнение команды pwd завершится успешно, в консоль будет выведен текст «it works».
Вот что получается после запуска этого скрипта.
В этом примере, если пользователь найден, скрипт выведет соответствующее сообщение. А если найти пользователя не удалось? В данном случае скрипт просто завершит выполнение, ничего нам не сообщив. Хотелось бы, чтобы он сказал нам и об этом, поэтому усовершенствуем код.
Управляющая конструкция if-then-else
Напишем такой скрипт:
Запуск скрипта с конструкцией if-then-else
Ну что же, продолжаем двигаться дальше и зададимся вопросом о более сложных условиях. Что если надо проверить не одно условие, а несколько? Например, если нужный пользователь найден, надо вывести одно сообщение, если выполняется ещё какое-то условие — ещё одно сообщение, и так далее. В подобной ситуации нам помогут вложенные условия. Выглядит это так:
Сравнение чисел
В скриптах можно сравнивать числовые значения. Ниже приведён список соответствующих команд.
В качестве примера опробуем один из операторов сравнения. Обратите внимание на то, что выражение заключено в квадратные скобки.
Вот что выведет эта команда.
Сравнение чисел в скриптах
Значение переменной val1 больше чем 5, в итоге выполняется ветвь then оператора сравнения и в консоль выводится соответствующее сообщение.
Сравнение строк
В сценариях можно сравнивать и строковые значения. Операторы сравнения выглядят довольно просто, однако у операций сравнения строк есть определённые особенности, которых мы коснёмся ниже. Вот список операторов.
Вот пример сравнения строк в сценарии:
В результате выполнения скрипта получим следующее.
Сравнение строк в скриптах
Вот одна особенность сравнения строк, о которой стоит упомянуть. А именно, операторы «>» и « » как команду перенаправления вывода.
Вот как работа с этими операторами выглядит в коде:
Вот результаты работы скрипта.
Сравнение строк, выведенное предупреждение
Обратите внимание на то, что скрипт, хотя и выполняется, выдаёт предупреждение:
Теперь всё работает как надо.
Она отсортирует строки из файла так:
Если его запустить, окажется, что всё наоборот — строчная буква теперь больше прописной.
Команда sort и сравнение строк в файле сценария
В командах сравнения прописные буквы меньше строчных. Сравнение строк здесь выполняется путём сравнения ASCII-кодов символов, порядок сортировки, таким образом, зависит от кодов символов.
Проверки файлов
Пожалуй, нижеприведённые команды используются в bash-скриптах чаще всего. Они позволяют проверять различные условия, касающиеся файлов. Вот список этих команд.
Эти команды, как впрочем, и многие другие рассмотренные сегодня, несложно запомнить. Их имена, являясь сокращениями от различных слов, прямо указывают на выполняемые ими проверки.
Опробуем одну из команд на практике:
Этот скрипт, для существующей директории, выведет её содержимое.
Вывод содержимого директории
Полагаем, с остальными командами вы сможете поэкспериментировать самостоятельно, все они применяются по тому же принципу.
Итоги
Сегодня мы рассказали о том, как приступить к написанию bash-скриптов и рассмотрели некоторые базовые вещи. На самом деле, тема bash-программирования огромна. Эта статья является переводом первой части большой серии из 11 материалов. Если вы хотите продолжения прямо сейчас — вот список оригиналов этих материалов. Для удобства сюда включён и тот, перевод которого вы только что прочли.
Уважаемые читатели! Просим гуру bash-программирования рассказать о том, как они добрались до вершин мастерства, поделиться секретами, а от тех, кто только что написал свой первый скрипт, ждём впечатлений.
Быстрое изучение Bash: 30 легких команд для новичков
Список из 30 легких команд, с которыми вы быстро освоите Bash и не будете бояться терминала Linux. Идеально для новичков.
Если вы здесь, вероятно, вы столкнулись с проблемой изучения Bash команд. Давайте это исправим 🙂
Первые команды – учимся ходить
При работе в файловой системе пользователь находится в каталоге, который называется текущим или рабочим. Команда pwd выводит рабочий каталог пользователя:
С ls вы сможете вывести содержимое каталога (файлы и дочерние директории):
Перейти в другой каталог поможет cd :
используется для перемещения домой, в /home/$USER :
Три bash команды для управления
Иногда вам потребуется запускать эти команды одну за другой. Тогда на помощь приходит оператор ; :
Скорая помощь для тех, кто забыл
Программы и команды Linux сопровождаются справочным руководством. Введите man перед командой, чтобы вызвать руководство. Выход из man – клавиша q:
Быстрый просмотр и редактирование файлов
Используйте cat с одним или несколькими файлами: так можно быстро посмотреть содержание.
nano – минималистичный текстовый редактор командной строки. Редактор подходит начинающим и тем, кто не любит разнообразия. На начальных этапах он покроет все ваши требования.
Создаем и удаляем файлы/директории
touch нужен для изменения временных меток файлов и для создания пустого файла. Можно создать новый файл в nano :
Затем править файл и сохранить:
Или использовать touch :
mkdir создает новые каталоги:
WARNING: файл невозможно восстановить!
Команда rmdir удаляет только директории:
Перемещаемся, копируем, ссылаемся
mv перемещает и переименовывает файл. Для переименования введите новое имя файла:
Bash: история команд
В Bash доступна функция автоматического завершения команды по кнопке tab. Введите начальную часть команды и нажмите tab, чтобы терминал предложил полную строку.
Иногда нужно нажимать tab несколько раз:
Bash хранит историю ранее введенных команд. Чтобы выполнить поиск нажмите Ctrl + r:
Нажимаем Ctrl + r:
Вводим «mobi» и находим последнюю команду с этой строкой:
Деревья каталогов, использование диска и процессы
По умолчанию mkdir создает только один каталог. Это означает, что, например, если каталога a/b не существует, то a/b/c не может быть создан с помощью mkdir :
df показывает, сколько места занимают файлы на дисках.
ps показывает запущенные процессы пользователей:
Вот вам и основы Bash. Но давайте копнем чуть глубже.
Другие полезные команды bash
logout выполняет выход пользователя из сеанса оболочки:
exit выходит из консоли:
Используйте * при поиске файлов. Обратите внимание на разницу между следующими командами:
Используйте * много раз в одной команде с символами и без:
Ну все! Теперь вы точно застрахованы от случаев, когда bash команда не найдена. А как вы начинали работать с bash? Поделитесь своим списком команд bash для начинающих 😉
Основы BASH для новичков
Часто новички настолько привыкли работать с графическим интерфейсом GUI, что склонны игнорировать возможности интерфейса командной строки (CLI). Мышь очень удобна, когда нужно скопировать в папку около ста тысяч файлов, но что, если переименовать все эти тысячи файлов или разделить их по расширениям? Так как графические интерфейсы не программируемы, то переименование или разделение их с помощью командной строки заняло бы целую вечность, однако, мы могли бы быстро добиться этого за несколько строк кода.
Unix shell является довольно мощным инструментом для разработчиков всех видов. Эта статья призвана дать краткое введение в самые основы, начиная с операционной системы UNIX.
Большинство современных операционных систем, за исключением WINDOWS, построены на базе UNIX. Среди них много дистрибутивов Linux, macOS, iOS, Android и др. Достаточно одного взгляда на схему развития операционных систем, основанных на UNIX, чтобы подчеркнуть важность UNIX, и именно по этой причине она стала широко использоваться на производстве. На самом деле, бэк-энд многих вычислительных систем, включая такие промышленные гиганты, как Facebook и Google, в значительной степени используют UNIX.
Shell
Shell. Какие бывают
UNIX-система обычно предлагает различные типы оболочек shell. Некоторые из них наиболее распространены:
Однако в этой статье мы ограничимся оболочкой Bash. Тем не менее, вам рекомендуется прочитать и попробовать другие оболочки, особенно zsh, так как уже в версии MacOS под названием Catalina zsh заменил оболочку bash. Так что будет хорошей идеей познакомиться с ним сейчас.
Terminal
У Mac и Linux есть соответствующие версии терминала. Windows также имеет встроенную командную оболочку, но она основана на командной строке MS-DOS, а не на UNIX. Так что давайте посмотрим, как мы можем установить шелл и программу терминала в операционной системе Windows, которая работает так же, как и в системах Mac и Linux.
Установка терминала в WINDOWS
Изучение терминала
Если вам не нужна вся эта информация, вы можете использовать PS1 для настройки командной строки.
Приступим
Чтобы немного развлечься, давайте начнем с нескольких простых команд:
Основные команды Bash
Рабочая директория
pwd выводит содержимое рабочей директории и указывает на текущую рабочую директорию, то есть на директорию, которую оболочка просматривает в данный момент. Это также место по умолчанию, где команды оболочки будут искать файлы данных.
Директория похожа на папку, но в shell мы будем придерживаться наименования директория (каталог). Файловая иерархия UNIX имеет древовидную структуру. Чтобы добраться до определенной папки или файла, нам нужно пройти по определенным путям внутри этой древовидной структуры. Пути разделяют каждый узел вышеуказанной структуры с помощью символа слэш( / ).
Навигация по директориям
Для навигации и организации файлов используются команды ls и cd.
ls обозначает список и показывает содержимое директории. ls обычно начинает с просмотра нашего домашнего каталога. Это означает, что если мы вызовем команду ls самостоятельно, то он всегда выведет содержимое текущего каталога, которым в моем случае является /Users/parul.
Параметры команды
Параметры и опции включают некоторые специальные функции при использовании команды ls.
всегда будет показывать содержимое домашнего каталога.
Немного о масках файлов
cd, дословно, означает Change Directory (Изменить директорию) и изменяет активную директорию на указанный путь. После того, как мы используем cd в нужную директорию, можно воспользоваться командой ls, чтобы увидеть содержимое ее содержимое. Давайте посмотрим, как можно использовать эту команду:
Организация файлов
Существуют определенные команды, которые позволяют нам перемещать, удалять, создавать и копировать файлы из самой оболочки.
mkdir
mkdir означает Make directory и используется для создания новой директории или папки.
mv означает Move и перемещает один или несколько файлов или каталогов из одного места в другое. Нам нужно указать, что мы хотим переместить, т.е. источник и куда мы хотим переместить их, т.е. место назначения.
touch
Команда touch используется для создания новых пустых файлов. Она также используется для изменения временных меток на существующих файлах и каталогах. Вот как мы можем создать файл под названием foo.txt в папке Demo.
rmdir
rmdir означает «удалить каталог» и используется для удаления пустых каталогов из файловой системы. Давайте удалим папку PythonFiles, которую мы создали некоторое время назад.
Обратите внимание, что ../ обозначает родительский каталог.
Просмотр файлов
Это еще один нюанс использования оболочки shell, который очень полезен. Существуют команды, которые помогают нам просматривать содержимое файла, чтобы мы могли ими манипулировать.
Команда cat читает файл и выводит его содержимое. Она может читать любое количество файлов, как следует из ее наименования. В нашей папке Demo есть несколько текстовых файлов, давайте используем cat, чтобы просмотреть их содержимое.
Чтобы просмотреть более одного файла, укажите оба имени файлов после команды cat:
Команда cat отображает содержимое файла на экране. Это нормально, когда содержимого мало, но это становится проблемой, когда файл большой. Как видно из примера ниже, команда выводит все на терминал с очень высокой скоростью, и мы не можем разобраться во всем содержимом файла. К счастью, есть команда под названием «Меньше», которая позволяет нам просматривать содержимое по одному экрану за раз.
Существуют определенные варианты с меньшим количеством используемых опций:
Пробел: перейти к следующему экрану
b: перейти к предыдущему экрану
/: для поиска конкретного слова
q: выйти
Команда man отображает страницы мануалов, которые являются руководством пользователя, встроенным по умолчанию во многие Linux и большинство Unix операционных систем.
man bash : Чтобы отобразить всю инструкцию bash
Каналы и фильтры
Когда команда посылает свой выход в канал, принимающей стороной для этого выхода является другая команда, а не файл. На рисунке ниже показано, как команда wc подсчитывает содержимое файла, отображенного командой cat.
Фильтры
Теперь давайте посмотрим на некоторые часто используемые команды фильтров. Мы будем работать с файлом под названием babynames.txt, который содержит около 1000 имен детей, и с файлом fruits.txt, который содержит имена нескольких фруктов.
Но получился большой список, и мы не можем разобраться во всех этих данных, только что выведенных в терминале. Давайте посмотрим, как мы можем использовать оператор pipe, чтобы разобраться в этом.
Команда cat сначала читает содержимое файла fruits.txt, а затем сортирует его.
Каналы очень удобны для выполнения некоторых сложных задач, так как несколько команд могут быть объединены в один канал вывода.
Что изучить еще по теме?
Инструменты командной строки могут быть отличным дополнением к основному набору инструментов. Первоначально терминал может напугать новичков, но как только они его освоят, его реальные достоинства и преимущества могут быть реализованы. Данная статья призвана заставить начинающего пользователя начать изучение терминала только поверхностно. В сети доступно множество полезных ресурсов, позволяющих детально изучить и узнать об оболочке. Вот некоторые из рекомендуемых ресурсов (на английском):