31 июля 2017

Основы работы с терминалом

Каждый, кто хоть раз слышал заветное слово "Linux," знает, что в этой, весьма интересной ОС, все управляется при помощи консоли. Многих, кстати, консоль очень сильно пугает и является чуть ли не основной причиной того, что пользователи даже не осмеливаются посмотреть в сторону Ubuntu, Linux Mint и прочих. На самом ли деле терминал так страшен? Давайте разбираться. 

Командная строка, оболочка, консоль - эти термины используются для обозначения взаимодействия человека-оператора с операционной системой. В операционных системах семейства Linux подобное взаимодействие обеспечивается оболочкой (shell). Наиболее распространенной из них, является оболочка проекта GNU bash (Bourne Again SHell). Bash основывается на оболочке Bourne (sh) созданной Стефеном Борном и включает в себя свойства множества других оболочек - C (csh), Korn (ksh), tc (tcsh).
Команды, являющиеся частью оболочки называются встроенными. Естественно, они могут отличаться для различных оболочек. Кроме того, в качестве команд используются имена исполняемых файлов. В качестве аргументов, командам передаются ключи или опции, состоящие из тире и одного или нескольких символов.
В пределах этой статьи рассмотрим самые важные и необходимые команды  при повседневном использовании. 
И первой я хочу представить команду ls.
Пример использования ls:
Основное предназначение этой команды - это вывод списка файлов и каталогов в текущей директории. Также, команда ls имеет несколько ключей, вот основные из них:
  • -l - список в  широком формате
  • -h cовместно с -l и/или -s  - вывод размеров в удобном для человека виде (например, 1K 234M 2G)
  • -p - добавит индикатор / к каталогам
  • -a - покажет скрытые файлы и каталоги, имя которых начинается на "."

Ключи можно объединять, например вот так:
ls -lhp
Как можно было догадаться,  она выведет широкий список в удобочитаемом формате, при этом каталоги будут помечены знаком "/"
Остальные ключи можно узнать введя в терминале:
ls --help
Кстати, ключ --help имеется практически у каждой команды! А у некоторых, также, имеется его сокращенный вариант -h. И самое главное, большинство команд имеют полное руководство по использованию! Единственный недостаток только в одном - руководства эти на английском языке... Но есть же online переводчики, которые, хоть и частично, но исправят положение! Одно лишь замечу, комбинация клавиш для копирования/вставки в терминале выглядит следующим образом: Ctrl+Shift+C/V, а команда для вывода руководства - man. Пример использования:
man ls
Есть еще одна, незаменимая команда, которую редко вспоминают, но иногда она важна:
pwd
Результатом ее выполнения является строка, содержащая полный путь к текущему  месту расположения.

Итак, "вокруг мы осмотрелись," пора и в путь двигаться!
Для перемещения по каталогам существует команда cd. Может использоваться как с предоставленным параметром, так и без него. В последнем случае она переместит Вас в домашний каталог пользователя (/home/имя_пользователя). А в качестве аргумента команде предоставляется путь к каталогу, в который нам нужно переместиться. Например:
cd /home/имя_пользователя/Downloads/  
или
cd ~/Downloads/
или
cd Downloads/
При этом все команды ведут к одному каталогу Downloads (но в последнем примере только в случае, если на момент выполнения команды мы находимся в домашнем каталоге).
Чтобы переместится на один уровень выше используется в качестве аргумента ".." (две точки не разделенные пробелом), а для перемещения в корень системы "/"
Также эта команда имеет одну хитрость - можно поочередно перемещаться между двумя каталогами следующим способом:
cd -
Более наглядно о команде cd Вы сможете узнать из видео, ссылку на которое я оставлю в конце статьи, или еще более подробно в текстовом режиме, но на английском языке, выполнив команды
cd --help
или
man cd
И мы плавно переходим к следующей немаловажной теме - взаимодействию с файлами и каталогами. Начнем с создания каталогов. Для этого  существует команда mkdir. И я сразу покажу пример, как создать каталог уже содержащий подкаталог(и):
mkdir -p test1/test2/test3/testn
Ключ -p служит для того, чтобы команда mkdir не выдавала ошибку, а сразу создавала поочередно родительские каталоги для каталога testn. Попробуйте выполнить эту команду без ключа -p, и у Вас ничего не получится!

Итак, создавать каталоги  мы умеем, а как удалять? Надеюсь, все знают про шутку "sudo rm -rf /*" и не станут ее копировать в терминал? Расскажу об этой "чудесной команде по порядку. Чтобы удалить файл, команда rm в типичной ситуации может использоваться вовсе без ключей:
rm test.txt
А вот в случае с каталогом придется использовать ключ -r, а то система выдаст ошибку! Полный список ключей или просто просмотреть инструкцию можно уже знакомыми нам способами:
rm --help
man rm
Усложним задачу, теперь рассмотрим переименование и перемещение файлов/каталогов. Оба действия выполняет одна и та же команда mv. Логика тут проста - по сути мы перемещаем файл/каталог с одного имени в другое! Вот пример типичного переименования:
mv имя1 имя2
Перемещать точно так же просто! Рассмотрим ситуацию, когда файл нужно переместить на уровень выше, а еще попутно его переименовать нужно (да, бывает и такая необходимость):
mv test1 ../test2
И снова с перемещением на уровень вверх помогает аргумент ".."
Рассмотрим самые основные ключи для команды mv:
  • -f - перемещение с заменой файлов в целевом каталоге
  • -i - перемещение с запросом заменить/нет?
  • -u - перемещение с заменой только в том случае, если перемещаемый файл новее (--update)
  • -v - вывод информации о перемещении/замене каждого файла
Также можно перемещать группу файлов:
mv файл1 файл2 файл3 файл4 каталог_назначения/
или все файлы и  каталоги при помощи:
mv * каталог_назначения/
И теперь уже напоследок - копирование файлов и каталогов! Для этой задачи предназначена команда cp - она имеет схожесть одновременно и с mv и rm, потому как при копировании каталогов так же, как и rm нужно указывать ключ -r и как mv имеет те же ключи -i, -f, -u, -v. Поэтому дальше расписывать ее функционал не вижу смысла.

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

  • будьте внимательны с использованием символа "*" при удалении и перемещении файлов!  rm -Rf имя_файла* удалит файлы начинающиеся на "имя_файла", а  rm -Rf имя_файла * - удалит сначала файл имя_файла, а вслед за ним всё остальное! Если вместо команды rm -Rf ~/имя_каталога/* вы зададите rm -Rf ~/имя_каталога /*, у вас возникнут большие проблемы. Сначала удалится каталог ~/имя_каталога, а затем вся файловая система!  Никогда не задавайте команду rm -Rf .*/*, чтобы удалить файлы, начинающиеся с точки - указанному критерию удовлетворяет каталог .., и вы удалите все данные, расположенные выше вашего рабочего каталога!
  • не забывайте о существовании команды "!!" - она повторяет последнюю набранную команду, с одним лишь примечанием - эту команду мы можем выполнить повторно уже от имени суперпользователя, вбив в терминал sudo !!
  • на клавиатуре есть "волшебная клавиша Tab, которая дополняет не до конца введенные команды и имена файлов!
  • в случае возникновения вопросов всегда можно воспользоваться справкой при помощи man или --help
Посмотрите также видео версию этой статьи в двух видео: часть 1 и часть 2. Не забываем ставить палец вверх и подписаться на канал!

Если у Вас остались вопросы - пишем комментарии здесь или под видео!
Ну и для самых обезбашенных... У меня есть помимо рекламы донат (попрошайка, но все же за труды всегда желательно получать оплату...) - понравилась статья или видео, рублем отблагодарить можно по реквизитам:
4731 1856 1256 8045 — UAH
4731 1856 1207 9811 — USD
5106 2110 0615 4145 — RUB (Yandex карта)
4100 1478 4120 103 — Yandex кошелек

Комментариев нет:

Отправить комментарий

Избранная новость

Стала Доступна новая версия Android Auto

Популярная новость