Консоль Linux [Часть 1]

@Snipers публиковала ссылку на linux journey. Сайт понравился. Решил попробовать что-то перевести оттуда. Этим "что-то" стала "Командная строка".

UPD: Если ставите минус - пишите за что, я хоть и ИИ, но не экстрасенс

1. Оболочка (The shell)

Мир - ваша раковина, хотя на самом деле, ваша раковина - всего лишь оболочка. Что такое оболочка? Оболочка - это программа, которая принимает команды с клавиатуры и отправляет их на выполнение в операционную систему. Если вы когда-то использовали GUI (графический интерфейс пользователя), то наверняка могли заметить такие программы как “Терминал” или “Консоль”, это программы, которые просто запускают командную оболочку для вас. В этом курсе вы сможете узнать о чудесах командной оболочки.

В этом курсе мы будем использовать командную оболочку - bash (Bourne Again shell), которую почти все Linux дистрибутивы по умолчанию в себя включают. Еще существуют такие оболочки как ksh, zsh, tsch, но их рассматривать мы не будем.

Давайте перейдем сразу к делу! В зависимости от дистрибутива командная оболочка может меняться, но большая часть будет придерживаться следующего формата:

username@hostname:current_directory
pete@icebox:/home/pete $

Заметили $ в конце строки? Разные оболочки имеют разные подсказки, в нашем случае $ обозначает обычного пользователя в оболочках Bash, Bourne или Korn, вам не нужно добавлять этот символ при вводе команды, просто имейте в виду.

Давайте начнем с простой команды, echo. Эта команда просто печатает текст на экран.

$ echo Hello World

Упражнения:

Попробуйте выполнить некоторые другие команды и посмотрите, что они выведут:

$ date
$ whoami

2. pwd (Print Working Directory / Вывести рабочую директорию)

Все в Linux - файлы, чем глубже вы будете погружаться в Linux, тем лучше вы это будете понимать, а пока просто имейте это в виду. Кажый файл организован в иерархическое древо директорий. Первая директория в файловой системе удачно названа корневой (root) директорией. Корневая директория содержит множество папок и файлов, которые могут содержать еще более папок и файлов и т.д. Вот пример того, как выглядит древо директорий:

/
|-- bin
|  |-- file1
|  |-- file2
|-- etc
|  |-- file3
|  `-- directory1
|  |-- file4
|  `-- file5
|-- home
|-- var

Расположения этих папок и директорий называются путями. Если у вас есть директория home с директорией pete в ней, которая содержит директорию Movies, то путь будет выглядеть вот так: /home/pete/Movies, довольно просто, не так ли?

Навигация по файловой системе, прямо как и в реальной жизни, очень полезна, если вы знаете где вы находитесь и куда вы идете. Чтобы увидеть где вы находитесь, вы можете использовать команду pwd, это команда означает “print working directory (напечатая рабочую директорию)”, и она покажет в какой директории вы находитесь, обратите внимание, что путь исходит из корневой директории.

$ pwd

Где вы? Где я? Попробуйте выполнить команду!

3. cd (Change Directory / Изменить директорию)

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

Абсолютный путь: Это путь, который начинается с корневой директории. Корень - главный. Корневая директория обычно обозначается слэшем. Каждый раз, когда ваш путь начинается с  /, Это оначает, что путь начинается с корневой директории. Например, /home/pete/Desktop.

Относительный путь: Это путь, который начинается с того места, в котором вы сейчас находитесь. Если бы я был в /home/pete/Documents и хотел бы переместиться в директорию, которая находится в Documents и называется taxes, мне бы не пришлось указывать путь, начиная с корня (/home/pete/Documents/taxes), можно просто ввести taxes/

Теперь вы знаете, как пути работают, но нам нужно что-то, что поможет нам перемещаться туда, куда мы хотим. К счастью, у нас есть cd или “change directory” (изменить директорию) чтобы осуществить это.

$ cd /home/pete/Pictures

Теперь я изменил мою директорию на /home/pete/Pictures.

Сейчас в этой директории у меня имеется директория Hawaii, я могу переместиться туда так:

$ cd Hawaii

Обратили внимание, что я просто написал имя директории? Это потому что она уже находится в /home/pete/Pictures.

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

. (текущая директория). Эта директория, в которой вы находитесь сейчас.

.. (предыдущая директория). Переносит вас в директорию, которая находится на один уровень выше.

~ (домашняя директория). Это директория по умолчанию для вашей “домашней директории”, такая как /home/pete.

- (предыдущая директория). Переносит вас в директорию, в которой вы находились до этого

$ cd .
$ cd ..
$ cd ~
$ cd -

Попробуйте выполнить их

Упражнения:

Запустите команду cd без каких либо флагов, куда она вас перенесет?

Итак, здесь я перевел первые 3 урока, мог бы больше, но у меня устали печатать пальцы, поэтому до встречи в следующих частях! Критикуйте, пишите что не так, исправлюсь

GNU/Linux

1K постов15.5K подписчиков

Добавить пост

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.

Вы смотрите срез комментариев. Показать все
9
Автор поста оценил этот комментарий

Начинать надо было с ls, или хотя бы включить его в первый урок.

Без ls применение cd - задача не для новичка.

Посмотрел в источнике - там ls как раз следующим пунктом. Надо было все-таки включить в этот урок.

раскрыть ветку (24)
4
Автор поста оценил этот комментарий
cp в ls!
Автор поста оценил этот комментарий

У меня изначально была идея сделать всего две части - 9 в первую. Но мои пальцы сказали хватит)

2
Автор поста оценил этот комментарий

Зашел, чтобы написать тоже самое про ls. Ну и все-таки консоль, а не командная строка... А то потом тянется веретеница "папка", вместо каталог, и прочие "А гидэ туд пэйнт?!"...

Ну а так - mc упросит судьбы неосиливших;)


P.S. Если без шуток - mc не панацея. Учитесь бегать по консоли и запускать файлы - cd, .., ./, etc. Освойте chmod. Делов - 10 минут, зато сэкономите массу времени в будущем.

Линукс без консоли - не Линукс. Консоль нужно уметь всем.

раскрыть ветку (21)
Автор поста оценил этот комментарий

Изменил заголовок

P.S. Что за mc? ТС?

раскрыть ветку (20)
4
Автор поста оценил этот комментарий
Midnight commander
раскрыть ветку (3)
Автор поста оценил этот комментарий

А, ясно)

раскрыть ветку (2)
Автор поста оценил этот комментарий

Чувак пишет статью про консоль Linux и не знает что такое mc? Мда...

раскрыть ветку (1)
Автор поста оценил этот комментарий
Я знаю, что такое midnight commander, но не распознал команду/аббревиатуру, т.к. не пользуюсь им
1
Автор поста оценил этот комментарий

https://ru.wikipedia.org/wiki/Midnight_Commander

Midnight Commander (mc, ми́днайт-кома́ндер, «полуночный командир») — один из файловых менеджеров с текстовым интерфейсом типа Norton Commander для UNIX-подобных операционных систем, а также Microsoft Windows и Windows NT, OS/2, Mac OS X (но не Mac OS 9).
Midnight Commander (GNU Midnight Commander) является частью проекта GNU,[1] и все разработчики передали свои права на программу в пользу Free Software Foundation
Возможности:
- Работа с различными архивами и образами файловых систем, как если бы они являлись обычными каталогами.
- Работа с сетевыми файловыми системами Samba, FTP, SFTP.
- Выполнение операций копирования и перемещения файлов в фоновом режиме.
- Встроенный текстовый редактор с подсветкой синтаксиса.
- Текстовый режим, основанный на библиотеках ncurses и S-Lang. Это позволяет программе работать как в консоли, так и в различных эмуляторах терминала и через удалённые соединения, например, по протоколу SSH. Поддерживает мышь.
- Поддержка многоязыкового интерфейса.
- Поддержка кодировки UTF-8 (начиная с 2009 года).
- Настраиваемое пользовательское меню, вызывается по F2. Каждый пункт меню выполняет набор команд оболочки (shell). Команды прописываются в файл ~/.config/mc/.mc.menu (или ~/.config/mc/menu).
- Список каталогов для быстрого доступа, вызывается по Ctrl+\. Настраивается непосредственно в панели быстрого доступа, либо редактированием файла ~/.config/mc/hotlist.
раскрыть ветку (15)
1
Автор поста оценил этот комментарий

Я аббревиатуру не распознал просто)

раскрыть ветку (13)
1
Автор поста оценил этот комментарий

Это больше команда, чем аббревиатура. Уже года три-четыре как каждый дистр знает. Генту сейчас проверить не могу, т.к. с ноута. Но дебиан в курсе:

$ mc
Программа 'mc' на данный момент не установлена. Вы можете установить её, выполнив:
apt-get install mc
раскрыть ветку (12)
1
Автор поста оценил этот комментарий

MC - аббревиатура

mc - команда

Автор поста оценил этот комментарий

Arch выдал, что команда не распознана)

раскрыть ветку (8)
Автор поста оценил этот комментарий
Ну это все сводится к дистросрачам. Философия Arch заключается в том, чтобы держать пользователя поближе к внутренней кухне, при этом сохраняя простоту и изящность. "Будет тем, что вы из него сделаете" - так ведь звучит его дивиз;)
Мои задачи довольно специфичны и с ИТ не связаны. Поэтому моё - это Debian и Gentoo.
раскрыть ветку (7)
2
Автор поста оценил этот комментарий

Зачем все сводить к дистросрачу, когда надо просто установить bash-completions

раскрыть ветку (6)
1
Автор поста оценил этот комментарий

или zsh. ОП - шеллсрач! :D

раскрыть ветку (5)
1
Автор поста оценил этот комментарий

zsh же вроде подтягивает установленные bash-completions

раскрыть ветку (1)
Автор поста оценил этот комментарий
Про zsh написал выше, что рассматривать не будем, из-за того, что bash популярнее
раскрыть ветку (2)
Автор поста оценил этот комментарий

У генты философия полного конструктора, так что ни mc, ни "вы можете установить ее, выполнив" нема по умолчанию.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Спасибо, кэп. Буду знать.

В генте подразумевалось под "знает" - установка emerge, без "компилляй и властвуй".

И таки да - гента тоже знает про мс: emerge app-misc/mc.

Конструктором может выступать и убунта, в расширенном инсталляторе, а вот про source-based - да, гента source-based дистрибутив.

Автор поста оценил этот комментарий

полуночный командир

выходил в поле боя один

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку