Основы Bash

08f882db9829

После запуска появится окно со строкой приглашения в левом верхнем углу. Если курсор в ней мигает, это означает, что оболочка готова к приему команд. Попробуйте ввести команду, набрав ls и нажав Enter. На экране должен появиться список файлов и каталогов в домашнем каталоге, а затем снова появится строка приглашения.
ls — название команды оболочки, а по сути — программы, которая выводит список файлов в текущем каталоге (по умолчанию, в вашем домашнем). Набрав имя команды, и нажав Enter, вы велите оболочке выполнить ее.
Работу программы можно изменить, передав ей параметры, часто указываемые как x — то есть дефис, за которым следует буква. Например, наберите ls l, и команда выведет более подробную информацию.
У других команд есть позиционные аргументы, которые указывают, как должна работать программа; часто они обязательны. Например, команда cp, которая копирует файлы, принимает два позиционных аргумента: имя копируемого файла и имя и местоположение копии: cp hello.txt world.txt. Эта команда скопирует файл hello.txt в текущем каталоге (по умолчанию, ваш домашний каталог) в файл world.txt. Если файла world.txt не существует, он будет создан, а если он есть, то будет перезаписан, так что с этим надо поаккуратнее!
Когда вы пользуетесь оболочкой, она всегда отслеживает текущий каталог, где вы в данный момент находитесь. Как упоминалось в основном тексте, при первом запуске оболочки она по умолчанию делает текущим каталогом домашний.
Эта на первый взгляд незначительная деталь на самом деле очень важна. Новичкам: если вы не указали абсолютный путь, то все пути к файлам и каталогам интерпретируются как относительные по отношению к текущему рабочему каталогу. Если запустить команду из неверного каталога, можно получить неожиданные результаты, а то и удалить важный файл.
Другая причина, по которой это важно, в том, что некоторые операции, такие как размонтирование каталога, завершатся неудачно, если в этом каталоге есть активная оболочка. Это не проблема, если вы работаете в оболочке, выполняя команды, но если вы запустили скрипт, который переходит в каталог, который позже вы пытаетесь размонтировать, скрипт может выдать ошибку — и вы не будете понимать, почему.
Текущий каталог всегда можно определить, запустив команду pwd — сокращение от “present working directory (текущий рабочий каталог)”.
Если надо перейти в другой каталог, можно воспользоваться командой cd. Например, команда cd / переместит вас в корневой каталог, который находится на самом верху иерархии файловой системы, а cd /usr/bin — в подкаталог bin каталога user, который, в свою очередь, является подкаталогом корневого каталога.
Пути могут быть и относительными: если вы в своем домашнем каталоге и хотите перейти в свой подкаталог Documents, наберите cd Documents — оболочка найдет каталог Documents в текущем каталоге и переместит вас туда.
Наконец, с помощью путей также указываются файлы, необходимые для работы команд. Например, чтобы скопировать файл hello.txt в world.txt, но файл world.txt находится в каталоге Documents, а hello.txt — в каталоге test, можно скомандовать cp test/hello.txt /home/jon/Documents/world.txt Вы также увидите, что можно комбинировать и сопоставлять относительные и абсолютные пути.