Ivan Asmer %!s(int64=6) %!d(string=hai) anos
pai
achega
55a03680da
Modificáronse 1 ficheiros con 95 adicións e 1 borrados
  1. 95 1
      01OS.md

+ 95 - 1
01OS.md

@@ -280,9 +280,103 @@ cat /etc/resolv.conf # conCAT /etc/resolv.conf
 ls -la *php # показать все файлы php в директории
 ```
 
-При этом команда `ls`  получит в качестве параметров **все файлы в папке, которые оканчиваются на *php***.
+При этом команда `ls`  получит в качестве параметров **все файлы в папке, которые оканчиваются на php**.
 
 ## Редактирование. `vim` и `nano`.
+
+Все мы в той или иной степени знакомы с редакторами текста. Однако в мире **UNIX** редакторы изначально
+более мощные и гибкие, ориентированные на работу с кодом или конфигурационными файлами.
+
+### `nano`
+
+**nano** - блокнот под **CLI**. имеет простой и понятный интерфейс, внизу есть подсказочки, все как
+вы ожидали в обычном простом редакторе. Символ `^` значит кнопку `CTRL`
+
+![nano](http://shots.asmer.org.ua/2018_06_15__18_26_36.png)
+
+### `vim`
+
+**ViM** - (**vi** **i**mproved) - мощный редактор, который построен не на идее
+**редактирования** текста, а на идее **программирования редактирования** текста. Благодаря 
+этому вы при редактировании оперируете не отдельными символами, а сущностями, имеющими
+отношение к структуре программного кода (слова, параметры, парные тэги/скобки и так далее)
+
+#### Режимы работы `ViM`;
+
+- Нормальный. Это режим, в котором собственно происходит программирование текста
+
+![vim cheat sheet](vi-vim-cheat-sheet.gif)
+
+Каждая клавиша на клавиатуре в этом режиме отвечает за то или иное действие: перемещение,
+изменение, удаление, вставку, копирование блока текста и так далее.
+
+Обычная команда для **ViM** состоит из:
+
+```
+<количество повторов><операция><перемещение>
+```
+Например:
+- 50 **CTRL-A** - добавить 50 к первому числу в строке справа от курсора
+- 5w - 5 слов вперед
+- 5dw - удалить 5 слов вперед
+- w - переместится на слово вперед
+- % - прыгаем по парным скобкам
+- c% - поменять текст в парных скобках
+
+- Режим ввода. Включается по `i`, `c`, `s` или `a`. Обычный ввод текста. выход по Esc
+- Режим выделение текста. Включается по `v`.
+
+##### Выход
+- `Esc:q!` - выйти не сохраняясь
+- `Esc:wqa` - выйти, сохранив все файлы
+- `ZZ` - выход с сохранением.
+
 ## Абсолютные и относительные пути, `~` и проч.
+
+Пути бывают абсолютные и относительные, а так же относительно домашней папки. Для этого используется следующий синтаксис:
+- `/etc/` - Путь, **начинающийся со слеша** - абсолютный
+- `tmp` - Путь без слеша означает путь относительно текущей папки. Иногда надо поставить `./` перед именем папки или файла (`./tmp`)
+- `~/` - домашняя папка. Обычно `/home/username`.
+- `~username` - домашняя папка пользователя.
+- `..`, `../` - папка уровнем выше
+- `./` - текущая папка.
+
 ## Права доступа. Группы, пользователи. `chmod`, `chown`
+
+Каждый файл или папка в **UNIX** ОС имеют права доступа, которые побиты на 3 восьмеричных цифры (3 бита x 3 блока).
+
+![права доступа в ls -la](http://shots.asmer.org.ua/2018_06_15__18_44_13.png)
+
+### Права доступа
+- `r` - read
+- `w` - write
+- `x` - eXecute/доступ к папке
+
+Каждый из этих трех прав доступа назначаются:
+- Владельцу
+- Группе
+- Остальным.
+
+Для задания владельца используется команда `chown` (**CH**ange **OWN**er):
+```sh
+chown username filename # меняем владельца
+chown -R username:groupname ~/newFolder # меняем владельца и группу для папки ~/newFolder рекурсивно
+```
+
+Для задания прав доступа используется команда `chmod`
+
+```sh
+chmod 700 filename # полный доступ для владельца, ноль доступа группе и остальным
+chmod -R a+x ~/newFolder # добавить всем доступ на запуск всем (владельцу, группе, и остальным) рекурсивно
+```
+
 ## Hard & symlinks. 
+
+В файловой системе есть ссылки двух типов - текстовые файлы с путем к другим файлам. Это симлинки. 
+А так же есть копии файловых записей, которые ссылаются на контент файлов. Это хардлинки
+
+Первые работают в разных файловых системах, однако если файл, на который сделана ссылка удалится - ссылка станет битая
+Вторые работают только в одной файловой системе, однако все ссылки на контент файла **равноправны** и файловая система
+ведет подсчет этих ссылок, освобождая место только после удаления **последней** ссылки.
+
+для работы с этими ссылками используется команда `ln`.