diff --git a/README.md b/README.md index 809ea2c7594306c6199e447203fb469ddde9c819..3a1d142df3d5cc0b354d1f837856f20c7e2cc631 100644 --- a/README.md +++ b/README.md @@ -2,37 +2,37 @@ ## Терминал -В Ubntu придется часто использовать терминал. Его можно вызвать сочетанием клавиш `Ctr+Alt+T`. Важно запомнить, что для большинства команд можно вызвать краткую справку: +В Ubuntu придётся часто использовать терминал. Его можно вызвать сочетанием клавиш `Ctr+Alt+T`. Важно запомнить, что для большинства команд можно вызвать краткую справку: ``` -h ``` -Или если не работает первая: +Или, если не работает первая: ``` --help ``` -Некоторые имеют подробный манул: +Некоторые имеют подробный мануал: ``` man ``` -Сочетания клавиш для операций копировать, вставить, вырезать работают только с зажатым `Shift`, например, `Shift+Ctrl+V`. +Сочетания клавиш для операций "копировать", "вставить", "вырезать" работают только с зажатым `Shift`, например, `Shift+Ctrl+V`. -После запуска терминала мы по-умолчанию находимся в нашем домашнем каталоге. Он обозначается как ~. В терминале тильда в начале пути заменяется на `/home/$USER`. Файл `~/.bashrc` сожержит команды, выполняемые интепретатором баша после запуска (например, при старте терминала). Имена исполняемых фалов, размещенных в каталогах `/usr/bin` или `/usr/local/bin`, доступны как команды. +После запуска терминала мы по умолчанию находимся в нашем домашнем каталоге. Он обозначается как "~" (тильда). В терминале тильда в начале пути заменяется на `/home/$USER`. Файл `~/.bashrc` сожержит команды, выполняемые интерпретатором bash после запуска (например, при старте терминала). Имена исполняемых фалов, размещенных в каталогах `/usr/bin` или `/usr/local/bin`, доступны как команды. -`Ctrl+D` - вставить символ EOF закрыть (закрывает терминал). +`Ctrl+D` - вставить символ EOF (т.н. конец файла; выполнение в терминале приведёт к его закрытию). -Если нужно выполнить одну единственную команду, то можно нажать Alt+F2 и ввести ее в поле. +Если нужно выполнить одну-единственную команду, то можно нажать Alt+F2 и ввести ее в поле. -## suddo +## sudo -sudo - это утилита, позволяющая выполнить команды с правами суперпользователя root. Перед именами команд, которые работают с файловой системой вне домашнего каталога, а так же для остановки root-процессов, нужно писать sudo. sudo используется для консольных приложений, в старых версиях убунту была утилита gksu которая позволяла запускать из под рута графические приложения (показывала окно ввода пароля перед запуском). Из Ubuntu 18.04 убрали ее, вместо нее предлагается использовать что-то типа `gedit admin:///etc/hosts`. +sudo - это утилита, позволяющая выполнить команды с правами суперпользователя -- т.н. root. Перед именами команд, которые работают с файловой системой вне домашнего каталога, а так же для остановки root-процессов, нужно писать sudo. sudo используется для консольных приложений, в старых версиях убунту была утилита gksu которая позволяла запускать из под рута графические приложения (показывала окно ввода пароля перед запуском). Из Ubuntu 18.04 убрали ее, вместо нее предлагается использовать что-то типа `gedit admin:///etc/hosts`. -Если надоело `sudo` вводить можно авторизоваться под рутом: +Если надоело вводить `sudo`, то можно авторизоваться под рутом: ``` sergey@sergey-pc:~$ sudo -i @@ -44,19 +44,19 @@ root@sergey-pc:~# ## PATH -Чтобы использовать в качестве команд исполняемые файлы из других каталогов, нужно добавить их в переменную PATH. В переменной **PATH** хранятся пути, разделенные двоеточиями. Для этого в `~/.bashrc` нужно добавить строку: +Чтобы использовать в качестве команд исполняемые файлы из других каталогов, нужно добавить их в переменную PATH. В переменной **PATH** хранятся пути, разделённые двоеточиями. Для этого в `~/.bashrc` нужно добавить строку: ```bash export PATH="/path/to/executable:$PATH" ``` -Это важно: если мы вводим команду `python`, то интерпретатор bash начинает сканирование списка каталогов в переменной PATH. Поиск продолжается пока не будет найден исполняемый файл в каком-то из каталогов, именно поэтому старое значение PATH добавляется в конец. +Важно: если мы вводим команду `python`, то интерпретатор bash начинает сканирование списка каталогов в переменной PATH. Поиск продолжается пока не будет найден исполняемый файл в каком-то из каталогов. Именно поэтому старое значение PATH добавляется в конец. ## Перенаправление вывода -### Фйловые дескрипторы +### Файловые дескрипторы -Дескриптор файла - это число, которое ассоциируется с открытым файлом (либо с соединением, так как в Linux все файлы). +Дескриптор файла - это число, которое ассоциируется с открытым файлом (либо с соединением, так как в Linux соблюдается принцип "всё есть файл"). | Значение | Описание | | -- | -- | @@ -73,9 +73,9 @@ echo "foo" | somecommand somecommand <<< "foo" # Вывод ошибки в stderr echo "An error has occurred" >&2 -# Игнорирование ошибок. `/dev/null` - как-бы файл в который записываем все, что не хотим видеть в консоли. +# Игнорирование ошибок. `/dev/null` -- как бы файл в который записываем все, что не хотим видеть в консоли. somecommand 2> /dev/null -# А можно их записывать в error log. `>>` запись в режиме добавления +# А можно их записывать в error log. `>>` -- запись в режиме добавления somecommand 2>> /path/to/error.log ``` @@ -108,21 +108,21 @@ $ echo $_ test ``` -## Полезные каманды +## Полезные команды | Команда | Описание | | -- | -- | -| `!!` | Выполнить предыдущюю команду | +| `!!` | Выполнить предыдущую команду | | `cd -` | Перейти в предыдущий каталог | -| `xdg-open ` | Открыть файд в программе по-умолчанию | -| `sudo reboot` | Перезагрузка компьютера | -| `sudo poweroff` | Выключение компьютера | +| `xdg-open ` | Открыть файл в программе по умолчанию | +| `sudo reboot` | Перезагрузка компьютера (если не работает, то между двумя словами надо вставить systemctl) | +| `sudo poweroff` | Выключение компьютера (если не работает, то после sudo надо дописать systemctl shutdown) | | `yes \| ` | Ввод и отправка Y при выполнении команды | | `time ` | Время выполнения команды | | `strace ` | Вывести список системных вызовов, которые совершает команда | | `ldd ` | Список зависимостей команды | | `cal` | Календарь | -| `watch ` | Запуск команды через определенный промежуток времени (2 секунды по-умолчанию) | +| `watch ` | Запуск команды через определенный промежуток времени (2 секунды по умолчанию) | | `loginctl lock-session` | Заблокировать экран | | `loginctl lock-session` | Разблокировать экран | | `type/wicth COMMAND` | Напечатает путь до обработчика команды | @@ -148,7 +148,7 @@ adduser david usermod -g www david ``` -### Сессия пльзователя +### Сессия пользователя | Команда | Описание | | -- | -- | @@ -189,18 +189,17 @@ usermod -g www david | `cat /proc/cpuinfo \| grep name \| uniq` | Модель процессора | | `arch` или `uname -m` | Архитектура процессора | | `nproc` или `cat /proc/cpuinfo \| grep process \| wc -l` | Количество ядер процессора | -| `sudo lshw -C display` | Информация о видеокарте | +| `sudo lshw -C display` | Информация о видеокарте и видеоадаптерах| | `free -m` | Доступная и используемая оперативная память | | `cat /proc/meminfo` | Подробная информация по оперативной и виртуальной памяти | | `sudo dmidecode --type 17` | Тип и размер оперативной памяти | | `sudo fdisk -l \| grep "Disk /dev/sd"` | Список дисков | | `cat /proc/uptime` | Сек., время работы CPU и время простоя в сумме для каждого ядра | -| `sudo lshw -C display` | Информация о видеоадаптерах | | `sudo dmidecode -t baseboard` | Модель материнской платы | | ` sudo smartctl -A /dev/nvme0` | Проверить состояние SSD | | `df -h --total` | Информация об используемом месте на различных носителях | -### Арифметическии операции +### Арифметические операции | Команда | Описание | | -- | -- | @@ -211,27 +210,27 @@ 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` | Остановить все процессы соотв регулярке | -| `exec -a ` | Запуск процесса под именем | -| `pkill -f ` | Остановка процесса с именем | +| `killall -r gunicorn` | Остановить все процессы соотв. регулярке | +| `exec -a ` | Запуск процесса под определённым именем | +| `pkill -f ` | Остановка процесса с определённым именем | -### Файловая сстема +### Файловая система | Команда | Описание | | -- | -- | -| `exec 3>out.txt` | Открыть файл в режиме чтения и записи и получить дескриптор файла | +| `exec 3>out.txt` | Открыть файл в режиме чтения и записи, затем получить дескриптор файла | | `echo "Some line" >&3` | Записать строку в файл, используя дескриптор файла | | `cat <&3` | Прочитать данные из дескриптора | | `3>&-` | Закрыть дескриптор файла | | `> ` | Очистить файл | | `file ` | Тип содержимого файла | -| `sudo -- sh -c "printf '127.0.0.1\tholocaust\n' >> /etc/hosts"` | Добавить строку в файл с рут-привелегиями | +| `sudo -- sh -c "printf '127.0.0.1\tholocaust\n' >> /etc/hosts"` | Добавить строку в файл с привелегиями суперпользователя | | `-b filename` | Block special file | | `-c filename` | Special character file | | `-d directoryname` | Check for directory Existence | @@ -254,14 +253,14 @@ usermod -g www david | `cp ` | копирование файлов/каталогов | | `mv ` | перемещение файлов/каталогов | | `mkdir ` | создание каталогов | -| `nano ` | редактировать файд | +| `nano ` | редактировать файл | | `rm ` | удаление файлов/каталогов | | `rmdir ` | удалить пустой каталог | | `rm -rf ` | Удалить каталог со всем его содержимым | | `rm *.txt` | Удалить все файлы с расширением `.txt` | | `ln -s ` | Создание мягкой ссылки | | `df -h` | Информация о файловой системе | -| `sudo fdisk -l` | Инофрмация о "дисках" | +| `sudo fdisk -l` | Информация о "дисках" | | `tar -xvf ` | Извлечь файлы из архива в текущий каталог | | `tar -xvf -C /path/to/extract` | Извлечь файлы из архива в другой каталог | | `tar -zcvf hydra.tgz --exclude=hydra/.venv hydra` | Заархивировать папку, игнорируя содержимое .venv | @@ -269,7 +268,7 @@ usermod -g www david | `curl -s http://exmaple.org/file.zip \| tar -xvf -` | Скачать файл и разархивировать | | `readlink -f file.ext` | Получить полный путь до файла | | `find . -type f` | Вывести список файлов в директории рекурсивно | -| `umount /dev/sd[XN]` | Размонтировть устройство (например, перед форматированием) | +| `umount /dev/sd[XN]` | Размонтировать устройство (например, перед форматированием) | | `mkfs /dev/sda1` | Отформатировать раздел | | `sudo dd if=/dev/sda of=/dev/sdb conv=notrunc,noerror` | Копировать жесткий диск | | `script_dir=$(dirname $0)` | Текущий каталог для скрипта | @@ -277,7 +276,7 @@ usermod -g www david | `zless`, `zcat`, `zgrep` | Аналоги команд с похожими названиями, но работающие с архивами | | `$ find . -name '*.pdf' \| cpio -pdm ~/Documents/Books` | Копировать файлы с опр. расширением в нужный каталог | | `df -k .` | Размер и свободное место текущего раздела | -| `df -k /dev/mapper/ubuntu--vg-root` | | +| `df -k /dev/mapper/ubuntu--vg-root` | то же, но для директории /dev/mapper/ubuntu--vg-root | | `mount` | Все точки монтирования | | `findmnt --target /tmp` | Покажет раздел на котором находится каталог | | `du -h ` или `du -hcs `| Размер каталога | @@ -288,11 +287,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 +303,7 @@ usermod -g www david Also: **GDebi Package Installer** - программа для установки `.deb` пакетов. -### Сервсы +### Сервисы | Команда | Описание | | -- | -- | @@ -318,7 +317,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) | @@ -347,21 +346,21 @@ wget --mirror \ | `git reset` | Отменить предыдущую операцию | | `git restet ` | отмена добавления файла | | `git commit -m "message"` | Коммитим измения с целью их публикации| -| `git push` | Загружаем измененнные файлы на сервер | +| `git push` | Загружаем изменённые файлы на сервер | | `git checkout ` | Меняем ветку | -| `git checkout -b ` | Создаем новую ветку и переключаемся на нее | -| `git rm -r --cached` | Удалить каталог из отслеживания| +| `git checkout -b ` | Создаём новую ветку и переключаемся на неё | +| `git rm -r --cached` | Удалить каталог из отслеживания | | `git subtree push --prefix ` | Push отдельной папки | | `git log --all --grep=` | Поиск коммита по названию | | `git log -S` | Поиск коммита по содержимому | -| `git log -n 10` | вывести 10 последних коммитов | -| `git stash` | Сохранить и откатить измения (многие действия не возможно сделать без пуша) | -| `git stash apply` | Восcтанавливаем откаченные изменения | +| `git log -n 10` | Вывести 10 последних коммитов | +| `git stash` | Сохранить и откатить изменения (многие действия невозможно сделать без пуша) | +| `git stash apply` | Восcтанавливаем откаченные ранее изменения | | `git show HASH:path/to/file` | посмотреть старую версию файла | ### Git Flow -Git Flow - это обертка над git. +Git Flow -- это обёртка над git. | Команда | Описание | | -- | -- |