|
@@ -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`
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+### `vim`
|
|
|
+
|
|
|
+**ViM** - (**vi** **i**mproved) - мощный редактор, который построен не на идее
|
|
|
+**редактирования** текста, а на идее **программирования редактирования** текста. Благодаря
|
|
|
+этому вы при редактировании оперируете не отдельными символами, а сущностями, имеющими
|
|
|
+отношение к структуре программного кода (слова, параметры, парные тэги/скобки и так далее)
|
|
|
+
|
|
|
+#### Режимы работы `ViM`;
|
|
|
+
|
|
|
+- Нормальный. Это режим, в котором собственно происходит программирование текста
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+Каждая клавиша на клавиатуре в этом режиме отвечает за то или иное действие: перемещение,
|
|
|
+изменение, удаление, вставку, копирование блока текста и так далее.
|
|
|
+
|
|
|
+Обычная команда для **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 блока).
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+### Права доступа
|
|
|
+- `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`.
|