aboutsummaryrefslogtreecommitdiff
path: root/content/weblog/2018-11-05_intro-to-linux-and-bash/index.ru.md
diff options
context:
space:
mode:
authorYaroslav <contact@yaroslavps.com>2020-04-12 03:44:50 +0300
committerYaroslav <contact@yaroslavps.com>2020-04-12 03:44:50 +0300
commit65dfb21ce4bfd6c9b3d1628adeee0acfc423b2b5 (patch)
tree07481d37b744709dd16bb7ebbf6f5f310b7c983c /content/weblog/2018-11-05_intro-to-linux-and-bash/index.ru.md
parentae3927e0f12101bb8a788b4564657e1632f7e29d (diff)
downloadyaroslavps.com-65dfb21ce4bfd6c9b3d1628adeee0acfc423b2b5.tar.gz
yaroslavps.com-65dfb21ce4bfd6c9b3d1628adeee0acfc423b2b5.zip
migrated all posts from 2018
Diffstat (limited to 'content/weblog/2018-11-05_intro-to-linux-and-bash/index.ru.md')
-rw-r--r--content/weblog/2018-11-05_intro-to-linux-and-bash/index.ru.md271
1 files changed, 271 insertions, 0 deletions
diff --git a/content/weblog/2018-11-05_intro-to-linux-and-bash/index.ru.md b/content/weblog/2018-11-05_intro-to-linux-and-bash/index.ru.md
new file mode 100644
index 0000000..e9ba17d
--- /dev/null
+++ b/content/weblog/2018-11-05_intro-to-linux-and-bash/index.ru.md
@@ -0,0 +1,271 @@
++++
+title = "Intro to Linux and the Bash command line"
+date = 2018-11-05T23:53:00Z
++++
+
+Недавно я решил познакомить друга с великолепным миром Линукса, и как например,
+человек переезжает в совсем новый город, его нужно познакомить с городом, как
+передвигаться по городу, где все нужные заведения и т.д. В принципе и также
+когда человек переходит на новую ОС, ему нужно привыкнуть к новой среде,
+создавать новые привычки, особенно когда это касается мира линукса. Собственно
+этот туториал я пишу для моего друга и любого другого человека который
+заинтересован Линуксом, но хотят научится использовать его более эффективно,
+т.е. высше уровня рядового пользователя.
+
+<!-- more -->
+
+Скорее всего вам уже известно, но Линукс на самом деле сам по себе не ОС, а ядро
+которое используется совместно с набором комонентов и программ GNU (вставьте
+здесь шутки и мемы про GNU/Linux (или GNU+Linux)), и есть несколько вариантов,
+или точнее - дистрибутивов, так называемого GNU/Linux.
+
+Если только собираетесь установить Линукс и еще не решились какой дистрибутив
+выбрать, здесь маленткий, который может помочь вам выбрать:
+
+* Manjaro - Лично я пользуюсь этим дистрибутивом. У него есть несколько вариации
+ с разными рабочими средами, например KDE или GNOME. Это дистрибутив "rolling
+ release", что означает то, что у него будет более новые пакеты чем у
+ классических дистро, в замен меньшей стабильности системы. Его довольно легко
+ установить и использовать (если выбрать что-то вроде KDE или GNOME).
+* Ubuntu - Самый известный дистрибутив. Является один из самых легких в
+ использовании. Более стабильный чем Manjaro (хоть и не всегда). Если вы просто
+ хотите установить ОС в которой уже все настроена и не хотите выбирать рабочую
+ среду (или вы не знаете что такое рабочая среда), скорее всего этот дистро для
+ вас.
+* Debian - Один из самых стабильных дистро. Его не так легко установить как
+ Ubuntu или Manjaro, но все же не сложно. Собственно Ubuntu разработан на
+ основе Debian'а. Его скорее всего придется настроить под себя (лично меня не
+ нравятся дефолтные настройки GNOME'а), но если вы хотите стабильный,
+ провереный дистрибутив, то он для вас. Один минус для некоторых - поумолчанию
+ не подключены репозитории с "несвободным" софтом, придется подключить самому
+ если нуждаетесь в проприетарном софте.
+* Fedora - По стабильностью и сложности установки/пользования похож на Ubuntu
+ (то есть довольный просто). У него такой же минус как и у Debian - отсуствия
+ "несвобоного" софта в главном репозиторий.
+
+Если при чтения списка вам словосочетание "рабочая среда" оказалась незнакомой,
+то грубо говоря, это набор программ которые предоставляют вам графический
+интерфейс для взаимодейстмия с системой. Как выглядит ОС не так сильно зависит
+от дистро, в основном оно зависит от рабочей среды.
+
+Установили Линукс? Отлично, можем начать.
+
+## Файловая структура
+
+Если вы привыкли работать с Windows, то есть некоторые моменты, то первое что вы
+заметите это то, что файловая структура выглядит немного иначе. Windows, из-за
+наследства MS-DOS, использует буквы для обозначения дисков, томов и файловых
+систем. В Линукс, как и в других Unix-подобных системах (например macOS, BSD)
+это немного иначе.
+
+В Линуксе всё являтся файлом, в том числе и устройства подключенных к вашему
+компьютеру. От клавиатуры до накопителя. Папки (или директории) тоже файлы.
+
+Разные диски или накопители монтируются в определеной папке, и в этой папке
+будут размещатся файлы данного накопителя. Монтировать и демонтировать диски,
+флэшки и тд можно самому, но нечего боятся, если вы установили какой-нибудь из
+самых популярных дистро, то система сделать это для вас автоматический, и
+создаст ярлык в браузере файлов или на рабочем столе.
+
+В Линуксе есть корневая папка
+
+```
+/
+```
+
+Внутри нее все файлы и поддиректории вашей системы.
+
+В Линуксе, у каждого пользователя есть своя "домашняя папка". В вашей домашней
+папки будут размещаться ваши файлы, документы. Домашняя папка пользователя
+"user", например, будет распологатся здесь
+
+```
+/home/user
+```
+
+Но вы можете перейти к этой папке используя символ ~. Например, если в консоле
+вы введете
+
+```sh
+$ cd ~
+```
+
+То это комманда вас переместит в вашую домашнюю папку (например, /home/user).
+
+## Терминал - Bash
+
+Самая полезная программа в линуксе, это скорее всего терминал. Да, рядовой
+пользователь может и без нее жить, но это довольно гибкий и полезный инструмент.
+Очень часто задачу на самом деле проще и быстрее реализовать в текстовой среде
+чем в графической. Очевидно быстрее научится пользоватся графической средой, но
+после того как вы научитесь пользоватся текстовой средой (терминал), вы сможете
+работать более эффективно.
+
+Пример того как может выглядить ваша коммандная строка
+
+```sh
+user@host:~$
+```
+
+Первая часть - пользователь через которого вы зашли в систему. Вторая после
+символа "@" - hostname, или название вашего устройства в сети.
+
+Вслед за ":" - директория в котором вы находитесь в данный момент. В этом случае
+символ "~" указывает что мы находемся в домашнем каталоге нашего пользователя.
+Чтобы посмотреть абсолютный путь, мы можем ввести комманду "pwd".
+
+```sh
+user@host:~$ pwd
+/home/user
+user@host:~$
+```
+
+Символ "$" указывает на то что мы сейчас работаем через обычного пользователя. В
+Линуксе и во всех *nix системах, есть такая вещь как "супер пользователь", или
+root пользователь. У обычных пользователей нет полный доступ к важным файлам
+системы, или к файлам других пользователей. У root, доступ есть на всю систему.
+Когда вы авторизованные через root, символ "$" меняется на "#".
+
+Но о правах и о root пользователе, попозже поговорим.
+
+Чтобы открыть терминал, достаточно зайти в меню программ/приложений и нажать на
+его иконку или названия. Не могу объяснить подробнее где располагается ярлык
+терминала, поскольку оно будет отличатся в зависимо от дистрибутива.
+
+Для того, чтобы начать работать в терминале, необходимо познакомится с основными
+коммандами, начиная с коммандами для навигации.
+
+### Навигация в терминале
+
+Еще один момент, который стоит учесть при работе с Линуксом и *nix системами,
+это то, что реестр учитывается. Если в Windows'е файл README.TXT и readme.txt
+один и то же самый, то в Линуксе и Unix-подобных системах это разные файлы.
+
+Для перемещения по директориям, мы пришем в коммандой строке "cd <путь>". Путь
+может быть относительным или абсолютным.
+
+Относительный путь, это, например, название папки которая находится внутри той
+директории где мы находимся. Или иными словами, путь относительно того где мы
+находимся.
+
+Абсолютный путь, это путь относительно корневой директории (или root на английском).
+
+Например, если мы хотим переместится в каталог "Documents" внутри /home/user/, и
+мы уже в /home/user/, то мы можем просто ввести
+
+```sh
+user@host:~$ cd Documents
+user@host:~/Documents$
+```
+
+А если бы нам надо было перейти на эту же папку с совершено другого каталога, то
+нам бы пришлось ввести
+
+```sh
+user@host:/var$ cd /home/user/Documents
+user@host:~/Documents$
+```
+
+Чтобы перейти на корневого каталога данной директории мы используем две точки
+"..". Например
+
+```sh
+user@host:~/Documents$ cd ..
+user@host:~$
+```
+
+".." означает корневой каталог данной директории. А также есть "." который
+означает данная директория.
+
+Есть еще одна комманда, которая поможет вам при навигации в коммандой строке -
+ls. Это комманда позволяет увидет содержимое данной директорий
+
+```sh
+user@host:~/Documents$ ls
+Books todo.txt picture.png
+```
+
+Она также принимает параметры и аргументы, например, чтобы увидеть скрытые
+файлы, добавьте параметр "-a"
+
+```sh
+user@host:~/Documents$ ls -a
+Books .secret todo.txt picture.png
+```
+
+Скрытые файлы и каталоги в Линуксе начинаются с точкой (например, скрытый
+каталог ".secret").
+
+Также есть параметр "-l" который показывает содержимое в списке с
+допольнительной информация, такой как разрещения (больше о них в следующей
+части), количество файлов в каталоге, владелец файла (пользователь и группа),
+размер, дата создания/модификации, и название самого файла. Например
+
+```sh
+user@host:~/Documents$ ls -l
+drwxr-xr-x 2 user user 4.0K Jul 18 04:20 Books
+-rw-r--r-- 1 user user 350 Jul 18 04:20 todo.txt
+-rw-r--r-- 1 user user 1.2M Jul 18 04:20 picture.png
+```
+
+Также параметры можно совмещать
+
+```sh
+user@host:~/Documents$ ls -al
+drwxr-xr-x 2 user user 4.0K Jul 18 04:20 Books
+drwxr-xr-x 5 user user 4.0K Jul 18 04:20 .secret
+-rw-r--r-- 1 user user 350 Jul 18 04:20 todo.txt
+-rw-r--r-- 1 user user 1.2M Jul 18 04:20 picture.png
+```
+
+Можно смотреть содержимое другого каталога не переходя на него, передавая его
+название/путь в качестве последнего аргумента, например
+
+```sh
+user@host:~/Documents$ ls -l Books
+drwxr-xr-x 12 user user 4.0K Jul 18 04:20 Lessons
+-rw-r--r-- 1 user user 2.3M Jul 18 04:20 Crime and Punishment.pdf
+```
+
+### Шорткаты
+
+Перед тем как завершить первую часть этого туториала, хотелось бы написать про
+несколько "шорткатов" при работе в bash'е.
+
+Первое это перемещение по истории коммандов. Каждый раз когда вы вводите
+комманду в терминале, она сохраняется в истории. Вы можете перемещаться по
+истории комманд терминала используя стрелки вверх и вниз. Чтобы последнюю
+комманду повторить, вы можете один раз нажать на стрелку вверх, а затем можно ее
+дописать или переписать и нажать клавишу ввода. Чтобы повторить более старые
+комманды, вы можете несколько раз нажать на стрелку вверх до нужной комманды, а
+стрелку вниз если пропустили нужную комманду.
+
+Еще есть очень полезная штука в баше - автозполнение. При нажатии на клавишу
+"Таб" баш попытается заполнить для вас комманду.
+
+Например, допустим вы находитесь в корневом каталоге, и вы хотите перейти в путь
+"/home/user/". Вы можете начать печатать "cd h" нажать на "Таб" и у вас
+получится "cd home/" затем дописать букву "u" и снова нажать на клавишу "Таб" и
+в итоге у вас получится "cd home/user/".
+
+Если будут несколько возможных вариантов автодополнения, то при одном нажатии
+ничего не получится. Это значит, что либо нет такого каталога, либо есть
+несколько возможных вариантов для автозаполнение. Во втором случае можно два
+раза подряд нажать на клавишу "Таб" и баш вам покажет все возможные варианты,
+например
+
+```sh
+user@host:~$ cd Do
+Documents/ Downloads/
+user@host:~$ cd Do
+```
+
+В таком случае мы, например, можем допечатать "cd Doc" и снова нажать на "Таб" и
+у нас получится "cd Documents/". Однако, если при двойном нажатие ничего не
+выводится, значит что вариантов для автозаполнения.
+
+В начале может показаться немного не понятно как система автозаполнения
+работает, поэтому следует самому попробовать воспользоватся ей на практике
+самому.
+
+На этом пока все, в следующей части расскажу побольше о работе в терминале.