Начало работы с доступом к оболочке, путям и командам BASH

В нашем последнем уроке мы представили BASH и рассказали о его полезности в биомедицинских исследованиях. В этом руководстве мы рассмотрим доступ к оболочке, путям и закончим некоторыми полезными командами BASH.

Использование BASH

После того, как вы установили BASH на свой компьютер, следующим шагом будет доступ к оболочке через терминал, программу, используемую для доступа к оболочке. Если вы работаете в Windows, откройте установленный Git Bash. Если у вас Chromebook, следуйте инструкциям ChromeOS для настройки терминала. Наконец, если вы используете macOS, перейдите в приложения и найдите Терминал. Нажмите на значок терминала, чтобы открыть приложение. Обратитесь к изображению ниже для изображения значка терминала.

* Обратите внимание, что терминал MacOS технически использует оболочку zsh. Эта оболочка основана на BASH, поэтому команды по большей части работают одинаково *

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

Компоненты оболочки

Давайте разберем некоторые компоненты оболочки с картинки выше.

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

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

Первая часть приглашения оболочки содержит имя пользователя и машину. Каждая машина имеет несколько пользователей, поэтому синтаксис в приглашении ‹username›@‹machine name› используется для определения того, какая учетная запись пользователя зарегистрирована на какой машине. Этот синтаксис станет более важным, когда мы будем говорить о туннелировании удаленных машин позже в этом уроке.

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

  1. Символ ~ обозначает каталог пользователя HOME. У каждого пользователя есть свой ДОМАШНИЙ каталог, который служит личным пространством для пользователя на компьютере. Символ ~ служит сокращением для доступа к этому каталогу.
  2. Символ / указывает на корневой каталог компьютера. Корневой каталог — это самый верхний каталог в файловой системе компьютера. Думайте о корневом каталоге как о корневом коме растения. От корневого кома отходит ствол, а от ствола отходят ветки (другие справочники).

Пути

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

На этой картинке мы видим типичную файловую систему на компьютере. На этом компьютере два пользователя: user1 и user2. На изображении показаны три каталога, связанные с учетной записью user1, в то время как другие подкаталоги, в том числе в папке Library, Applications и user2, для простоты опущены.

Чтобы перейти из корневого каталога на рабочий стол пользователя 1, нам нужно пройти по следующим папкам: корень (/) -> Пользователи -> пользователь 1 -> Рабочий стол. При написании команд BASH мы прописываем путь от корневого каталога до рабочего стола пользователя user1 следующим образом.

/Users/user1/Desktop

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

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

В нашем примере скажем, что мы были в папке «Рабочий стол» пользователя 1 и хотели попасть в папку «Документы» пользователя 2 (не изображена на изображении выше, но подразумевается, что она там). Для этого мы вернемся в папку user1, затем в папку Users, затем в папку user2 и, наконец, в папку Documents. Давайте посмотрим, как будет выглядеть путь.

./../../user2/Document

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

Команды BASH

Теперь, когда у нас есть общее представление о путях и о том, как получить доступ к оболочке BASH, давайте начнем изучать некоторые основные команды. Я настоятельно рекомендую Основы Bash от Parul Pandey для начинающих для более глубокого изучения команд BASH!

Изменить каталог

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

# Change directory to the Desktop directory. 
#   Desktop must be a subdirectory of the current directory for this #   to work
cd ./Desktop

# Go to the users home directory 
cd ~
# or alternatively 
cd 
# Go to the root directory 
cd /

Основной синтаксис команды смены каталога — cd <your path to directory>. Пути могут быть как относительными, так и абсолютными. Если путь не указан, cd изменит каталог на ДОМАШНИЙ каталог пользователя.

Список

Следующая команда, о которой мы поговорим, это команда ls. Эта команда указывает компьютеру вывести список содержимого каталога. Базовый синтаксис ls — ls <your path to directory>, и если путь не указан, ls отобразит содержимое текущего каталога. Если иное не указано с помощью флага, команда ls не будет отображать содержимое подкаталогов папки. На следующем изображении показано несколько вариантов использования команды ls.

Как видите, команда ls принимает в качестве входных данных как относительные, так и абсолютные пути. Без использования флагов и аргументов, передаваемых в команду BASH для настройки поведения команды, ls выводит только имена видимых файлов и папок. Есть определенные файлы и папки, которые по умолчанию скрыты в файловой системе. ls может отображать эти файлы с помощью флага -a, как показано ниже. Другие популярные флаги включают флаг -l, -R и -s. Вы можете прочитать о том, что делает каждый из этих флагов, посетив man страницы руководства по команде ls либо с помощью команды man ls, либо посетив справочную страницу онлайн.

Объединить

Команда cat — еще одна популярная команда, так как она может распечатать содержимое файла на экране, не открывая файл. Основной синтаксис команды catcat <your path to file>. Взгляните на следующий скриншот для примера этой команды в действии.

Эхо

Команда echo используется для вывода чего-либо на экран. Хотя поначалу ее полезность может быть неочевидной, в нашем следующем уроке, где мы поговорим о сценариях Bash, мы обнаружим, что команда echo весьма полезна. Основной синтаксис команды echoecho <What you want to be printed>. Обратитесь к следующему снимку экрана.

Протокол защищенной оболочки

Команда ssh позволяет пользователям создавать туннель от одной машины к другой. Как мы говорили в нашем предыдущем уроке, одним из преимуществ изучения команд BASH является возможность использовать ресурсы, которые не являются локальными для вашей машины. Команда ssh позволяет пользователям использовать эти ресурсы, безопасно создавая туннель к удаленному компьютеру. Основной синтаксис использования команды sshssh <your username>@<your remote machine name>. Часто после использования этой команды вам будет предложено ввести пароль. Обязательно поговорите со своими сетевыми администраторами, чтобы убедиться, что у вас есть учетная запись на удаленном компьютере, прежде чем пытаться получить к нему доступ!

Копирование и безопасное копирование

cp и scp копируют файлы из одного места на компьютере в другое и файлы с одного компьютера на другой соответственно. Синтаксис обеих команд копирования — (s)cp <path to file you want to copy> <location where you want to copy it to>. Взгляните на следующий скриншот для примера команды cp в действии.

Справочные страницы

Последняя команда, которую мы рассмотрим в этом руководстве, — это команда man. Мы уже вкратце говорили об этой команде во время обсуждения команды ls. Важность этой команды заключается в том, что она предоставляет документацию для каждой из доступных команд. В документации описано, что делает команда, какой ввод требуется и какие дополнительные флаги доступны для использования. Хотя man можно использовать в качестве команды, рекомендуется использовать man <command> в Google вместо того, чтобы вводить его в терминал, поскольку страницы документации часто намного красивее, чем вывод, предоставляемый командой.

Заключение

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