diff --git a/README.md b/README.md index 809ea2c7594306c6199e447203fb469ddde9c819..ab40ecfc6d11cd3e3aacbfed63a4f77f99722ba0 100644 --- a/README.md +++ b/README.md @@ -2,19 +2,19 @@ ## Терминал -В Ubntu придется часто использовать терминал. Его можно вызвать сочетанием клавиш `Ctr+Alt+T`. Важно запомнить, что для большинства команд можно вызвать краткую справку: +В Ubuntu придется часто использовать терминал. Его можно вызвать сочетанием клавиш `Ctr+Alt+T`. Важно запомнить, что для большинства команд можно вызвать краткую справку: ``` -h ``` -Или если не работает первая: +Или, если не работает первая: ``` --help ``` -Некоторые имеют подробный манул: +Некоторые имеют подробный мануал: ``` man @@ -22,17 +22,17 @@ man Сочетания клавиш для операций копировать, вставить, вырезать работают только с зажатым `Shift`, например, `Shift+Ctrl+V`. -После запуска терминала мы по-умолчанию находимся в нашем домашнем каталоге. Он обозначается как ~. В терминале тильда в начале пути заменяется на `/home/$USER`. Файл `~/.bashrc` сожержит команды, выполняемые интепретатором баша после запуска (например, при старте терминала). Имена исполняемых фалов, размещенных в каталогах `/usr/bin` или `/usr/local/bin`, доступны как команды. +После запуска терминала мы по-умолчанию находимся в нашем домашнем каталоге. Он обозначается как ~. В терминале тильда в начале пути заменяется на `/home/$USER`. Файл `~/.bashrc` сожержит команды, выполняемые интепретатором баша после запуска (например, при старте терминала). Имена исполняемых файлов, размещенных в каталогах `/usr/bin` или `/usr/local/bin`, доступны как команды. `Ctrl+D` - вставить символ EOF закрыть (закрывает терминал). Если нужно выполнить одну единственную команду, то можно нажать Alt+F2 и ввести ее в поле. -## suddo +## sudo sudo - это утилита, позволяющая выполнить команды с правами суперпользователя root. Перед именами команд, которые работают с файловой системой вне домашнего каталога, а так же для остановки root-процессов, нужно писать sudo. sudo используется для консольных приложений, в старых версиях убунту была утилита gksu которая позволяла запускать из под рута графические приложения (показывала окно ввода пароля перед запуском). Из Ubuntu 18.04 убрали ее, вместо нее предлагается использовать что-то типа `gedit admin:///etc/hosts`. -Если надоело `sudo` вводить можно авторизоваться под рутом: +Если надоело `sudo` вводить - можно авторизоваться под рутом: ``` sergey@sergey-pc:~$ sudo -i @@ -50,11 +50,11 @@ root@sergey-pc:~# export PATH="/path/to/executable:$PATH" ``` -Это важно: если мы вводим команду `python`, то интерпретатор bash начинает сканирование списка каталогов в переменной PATH. Поиск продолжается пока не будет найден исполняемый файл в каком-то из каталогов, именно поэтому старое значение PATH добавляется в конец. +Это важно: если мы вводим команду `python`, то интерпретатор bash начинает сканирование списка каталогов в переменной PATH. Поиск продолжается, пока не будет найден исполняемый файл в каком-то из каталогов, именно поэтому старое значение PATH добавляется в конец. ## Перенаправление вывода -### Фйловые дескрипторы +### Файловые дескрипторы Дескриптор файла - это число, которое ассоциируется с открытым файлом (либо с соединением, так как в Linux все файлы). @@ -73,13 +73,13 @@ echo "foo" | somecommand somecommand <<< "foo" # Вывод ошибки в stderr echo "An error has occurred" >&2 -# Игнорирование ошибок. `/dev/null` - как-бы файл в который записываем все, что не хотим видеть в консоли. +# Игнорирование ошибок. `/dev/null` - как бы файл, в который записываем все, что не хотим видеть в консоли. somecommand 2> /dev/null # А можно их записывать в error log. `>>` запись в режиме добавления somecommand 2>> /path/to/error.log ``` -### Ссcылки +### Сcылки * [I/O Redirection](https://www.tldp.org/LDP/abs/html/io-redirection.html) @@ -94,7 +94,7 @@ somecommand 2>> /path/to/error.log | `$_` | Последний аргумент предыдущей команды | | `$USER` | Текущий пользователь | | `$HOME` | Домашний каталог | -| `$PWD` | Рабочий каталог (для скрипта тот же что и для сессии терминала) аналог вызова `pwd` | +| `$PWD` | Рабочий каталог (для скрипта тот же, что и для сессии терминала) аналог вызова `pwd` | | `$RANDOM` | Случайное число | ### Примеры @@ -108,13 +108,13 @@ $ echo $_ test ``` -## Полезные каманды +## Полезные команды | Команда | Описание | | -- | -- | | `!!` | Выполнить предыдущюю команду | | `cd -` | Перейти в предыдущий каталог | -| `xdg-open ` | Открыть файд в программе по-умолчанию | +| `xdg-open ` | Открыть файл в программе по-умолчанию | | `sudo reboot` | Перезагрузка компьютера | | `sudo poweroff` | Выключение компьютера | | `yes \| ` | Ввод и отправка Y при выполнении команды | @@ -172,9 +172,9 @@ usermod -g www david | `${var%%SubStr*}` | will drop part of string from first occur of `SubStr` to the end | | `echo ${first_string/Suzi/$second_string}` | Замена подстроки в строке | | `${str^^}` | Перевод строки в верхний регистр в Bash 4.0 | -| `echo $str \| tr a-z A-Z` | Тоже в более ранних версиях | +| `echo $str \| tr a-z A-Z` | То же в более ранних версиях | | `echo "${str,,}"` | Перевод строки в нижний регистр в Bash 4.0 | -| `echo $str \| tr '[:upper:]' '[:lower:]'` | Тоже в более ранних версиях | +| `echo $str \| tr '[:upper:]' '[:lower:]'` | То же в более ранних версиях | | `base64 <<< "Привет, мир!"` | Закодировать строку в base64 | | `echo \| base64 --decode` | Обратная операция | | `dd if=/dev/urandom \| hexdump -C \| less` | Просмотр данных в HEX | @@ -200,7 +200,7 @@ usermod -g www david | ` sudo smartctl -A /dev/nvme0` | Проверить состояние SSD | | `df -h --total` | Информация об используемом месте на различных носителях | -### Арифметическии операции +### Арифметические операции | Команда | Описание | | -- | -- | @@ -211,17 +211,17 @@ usermod -g www david | Команда | Описание | | -- | -- | | `top` | Мониторинг процессов | -| `top -p PID` | Следим за расходом рксурсов одним процессом | +| `top -p PID` | Следим за расходом ресурсов одним процессом | | `pstree` | Дерево процессов | | `ps aux` | Список всех процессов | | `ps aux \| grep python` | Список всех процессов python | | `kill ` | Остановить процесс по идентификатору | | `killall firefox` | Остановить все процессы с именем firefox | -| `killall -r gunicorn` | Остановить все процессы соотв регулярке | +| `killall -r gunicorn` | Остановить все процессы соотв? регулярке | | `exec -a ` | Запуск процесса под именем | | `pkill -f ` | Остановка процесса с именем | -### Файловая сстема +### Файловая система | Команда | Описание | | -- | -- | @@ -254,7 +254,7 @@ usermod -g www david | `cp ` | копирование файлов/каталогов | | `mv ` | перемещение файлов/каталогов | | `mkdir ` | создание каталогов | -| `nano ` | редактировать файд | +| `nano ` | редактировать файл | | `rm ` | удаление файлов/каталогов | | `rmdir ` | удалить пустой каталог | | `rm -rf ` | Удалить каталог со всем его содержимым | @@ -288,11 +288,11 @@ usermod -g www david | -- | -- | | `sudo apt-get update` | Обновить список пакетов | | `sudo apt-get upgrade` | Обновить все пакеты | -| `sudo apt-get install -y` | Установить пакет без подтверждления | +| `sudo apt-get install -y` | Установить пакет без подтверждения | | `sudo apt-get remove ` | Удалить пакет | | `sudo apt-get autoremove` | Удалить неиспользуемые пакеты | -| `sudo apt-get clean` | Удалить загруженне архивы | -| `apt list --installed` | Список установленныхпакетов | +| `sudo apt-get clean` | Удалить загруженые архивы | +| `apt list --installed` | Список установленных пакетов | | `sudo dpkg -i <.deb package>` | Установить либо обновить deb-пакет | | `sudo apt-get install -f` | При ошибке предудыщей выполните эту и повторите | | `sudo dpkg -p ` | Удалить deb-пакет с сохранением конфигураций | @@ -304,7 +304,7 @@ usermod -g www david Also: **GDebi Package Installer** - программа для установки `.deb` пакетов. -### Сервсы +### Сервисы | Команда | Описание | | -- | -- | @@ -318,7 +318,7 @@ Also: **GDebi Package Installer** - программа для установки | -- | -- | | `netstat -lt` | Список всех серверов, запущенных на хосте | | `printf 'GET / HTTP/1.0\r\nHost: google.com\r\n\r\n' \| nc google.com 80` | Отправить сырой TCP-запрос | -| `curl -d -H "Content-Type: application/json" -X POST `| Отправить JSON-апрос через POST | +| `curl -d -H "Content-Type: application/json" -X POST `| Отправить JSON-запрос через POST | | `exec {дескриптор-файла}<>/dev/{протокол}/{адрес-узла}/{номер-порта}` | Открыть TCP/UDP соединение (дескриптор - целое число больше 2) | | `wget url -O - \| sh` | Выполнить удаленный скрипт | | `ssh -D 1080 -N user@server` | Создать socks-туннель (localhost:1080) | @@ -356,7 +356,7 @@ wget --mirror \ | `git log -S` | Поиск коммита по содержимому | | `git log -n 10` | вывести 10 последних коммитов | | `git stash` | Сохранить и откатить измения (многие действия не возможно сделать без пуша) | -| `git stash apply` | Восcтанавливаем откаченные изменения | +| `git stash apply` | Восcтанавливаем откаченые изменения | | `git show HASH:path/to/file` | посмотреть старую версию файла | ### Git Flow @@ -369,3 +369,5 @@ Git Flow - это обертка над git. | `git flow feature start DEV-97` | Начать новую фичу | | `git checkout develop && git pull origin` | Если предыдущая команда возвращает ошибку: `Branches 'develop' and 'origin/develop' have diverged...` | | `git flow feature publish` | Опубликовать фичу (перед этим нужно добавить изменения и сделать коммит) | + +