verification of all fixes after all PRs

This commit is contained in:
Sp Mbt 2015-07-10 01:17:47 +03:00
parent 7508bda543
commit 82a40e740e
2 changed files with 13 additions and 13 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
.idea

View file

@ -31,7 +31,7 @@
- Данная публикация предназначена как для новичков, так и для опытных людей. Цели: *объёмность* (собрать все важные аспекты использования командной строки), *практичность* (давать конкретные примеры для самых частых юзкейсов) и *краткость* (не стоит углубляться в неочевидные вещи, о которых можно почитать в другом месте).
- Этот документ написан для пользователей Linux, с единственным исключением секцией "[MacOS only](#macos-only)". Всё остальное подходит и может быть установлено под все UNIX/MacOS системы (и даже Cygwin).
- Фокусируемся на интерактивном Баше, но многие вещи также могут быть использованы с другими шеллами; и в общем применимы к Баш-скирптингу.
- Фокусируемся на интерактивном Баше, но многие вещи также могут быть использованы с другими шеллами; и в общем применимы к Баш-скриптингу
- Эта инструкция включает в себя стандартные Unix-команды и те, для которых нужно устанавливать сторонние пакеты они настолько полезны, что стоят того, чтобы их установили.
Заметки:
@ -46,11 +46,11 @@
- Выучите хотя бы один консольный редактор текста. Идеально Vim (`vi`), ведь у него нет конкурентов, когда вам нужно быстренько что-то подправить (даже если вы постоянно сидите на Emacs или какой-нибудь тяжёлой IDE, или на модном хипстерском редакторе).
- Знайте, как читать документацию через `man` (для любознательных `man man`; `man` по углам документа в скобках добавляет номер, например 1 для обычных команд, 5 для файлов, конвенций, 8 для администативных команд). Ищите мануалы через `apropos` и помните, что некоторые команды не бинарники, а встроенные команды Баша, и помощь по ним можно получить через `help` и `help -d`.
- Знайте как читать документацию через `man` (для любознательных `man man`; `man` по углам документа в скобках добавляет номер, например 1 для обычных команд, 5 для файлов, конвенций, 8 для административных команд). Ищите мануалы через `apropos` и помните, что некоторые команды не бинарники, а встроенные команды Баша, и помощь по ним можно получить через `help` и `help -d`.
- Узнайте о том, как перенаправлять ввод и вывод через `>` и `<` и пайпы `|`. Помните, что `>` переписывает выходной файл, а `>>` добавляет к нему. Узнайте побольше про stdout и stderr.
- Узнайте побольше про file glob expansion with `*` (и, возможно, `?` и `{`...`}`), кавычки, а также разницу между двойными `"` и одинарными `'` кавычками. (Больше о расширении переменных читайте ниже.)
- Узнайте побольше про раскрытие file glob элементов `*` (а также `?` и `{`...`}`), кавычки, а также разницу между двойными `"` и одинарными `'` кавычками. (Больше о расширении переменных читайте ниже.)
- Будьте знакомы с работой с процессами в Bash: `&`, **ctrl-z**, **ctrl-c**, `jobs`, `fg`, `bg`, `kill`, и т.д.
@ -64,7 +64,6 @@
- Обучитесь использованию системами управления пакетами `apt-get`, `yum`, `dnf` или `pacman` (в зависимости от дистрибутива). Знайте, как искать и устанавливать пакеты и обязательно имейте установленым `pip` для установки командных утилит, написаных на Python (некоторые из тех, что вы найдёте ниже, легче всего установить через `pip`).
## Ежедневное использование
- Используйте **tab** в Баше для автодополнения аргументов к командам и **ctrl-r** для поиска по истории командной строки
@ -73,7 +72,7 @@
- Если Вам нравятся шорткаты Вима, сделайте `set -o vi`.
- Чтобы посмотреть историю, введите `history`. Также, существует множество аббривиатур, например, `!$` последний аргумент, `!!` последняя команда, хотя эти аббривиатуры часто заменяются шорткатами **ctrl-r** и **alt-.**.
- Чтобы посмотреть историю, введите `history`. Также существует множество аббревиатур, например, `!$` последний аргумент, `!!` последняя команда, хотя эти аббревиатуры часто заменяются шорткатами **ctrl-r** и **alt-.**.
- Перейти к последней рабочей директории `cd -`
@ -95,11 +94,11 @@
- Узнайте, какие процессы слушают порты через `netstat -lntp` или `ss -plat` (для TCP; добавьте `-u` для UDP).
- Также `lsof` для того, чтобы посмотреть открытые сокеты и файлы.
- Используйте `lsof` для того, чтобы посмотреть открытые сокеты и файлы.
- Используйте `alias`, чтобы поименовать частоиспользуемые команды. Например, `alias ll='ls -latr'` создаст новое сокращение `ll`.
- В Баш-скритах используйте `set -x`, чтобы отлаживать вывод. Используйте строгие режимы везде, где возможно. Используйте `set -e` для того, чтобы прекращать выполнение при ошибках. Используйте `set -o pipefail`, чтобы строго относиться к ошибкам (это немного более глубокая тема). Для более сложных скриптов выбирайте `trap`.
- В Баш-скриптах используйте `set -x`, чтобы отлаживать вывод. Используйте строгие режимы везде, где возможно. Используйте `set -e` для того, чтобы прекращать выполнение при ошибках. Используйте `set -o pipefail`, чтобы строго относиться к ошибкам (это более глубокая тема). Для более сложных скриптов выбирайте `trap`.
- В Баш-скриптах под-оболочки (subshells) удобный способ группировать команды. Один из самых распространённых примеров временно перейти в другой рабочий каталог:
```bash
@ -117,7 +116,7 @@
- Знайте про *heredoc*-синтаксис в Баше, работает он так: `cat <<EOF ...`.
- В Баше перенаправляйте стандартный вывод, а также предупреждайте стандартные ошибки: `some-command >logfile 2>&1`. Зачастую, для того, чтобы убедиться, что команда не оставит открытым файл, привязав его к открытому терминалу, считается хорошей практикой добавлять `</dev/null`.
- В Баше перенаправляйте стандартный вывод, а также вывод stderr вот так: `some-command >logfile 2>&1`. Зачастую, для того, чтобы убедиться, что команда не оставит открытым файл, привязав его к открытому терминалу, считается хорошей практикой добавлять `</dev/null`.
- Используйте `man ascii` для хорошей ASCII таблицы, с *hex-* и десятичными значениями. Для информации по основным кодировкам полезны: `man unicode`, `man utf-8` и `man latin1`.
@ -223,7 +222,7 @@
## Системный дебаггинг
- Дле веб-дебаггинга используйте `curl` и `curl -I`, или их альтернативу `wget`. Также, есть более современные альтернативы, типа [`httpie`](https://github.com/jakubroztocil/httpie).
- Для веб-дебаггинга используйте `curl` и `curl -I`, или их альтернативу `wget`. Также, есть более современные альтернативы, типа [`httpie`](https://github.com/jakubroztocil/httpie).
- Чтобы получить информацию о диске/CPU/сети, используйте `iostat`, `netstat`, `top` (или лучшую альтернатву `htop`) и особенно `dstat`. Хороший старт для того, чтобы понимать что происходит в системе.
@ -247,7 +246,7 @@
- Не забывайте про `ldd` для проверки системных библиотек.
- Знайте, как прицепиться к работающему процессу (через `gdb`) и получить трассировку стека.
- Знайте, как прицепиться к запущенному процессу (через `gdb`) и получить трассировку стека.
- Используйте `/proc`. Иногда он невероятно полезен для отладки запущенных программ. Примеры: `/proc/cpuinfo`, `/proc/xxx/cwd`, `/proc/xxx/exe`, `/proc/xxx/fd/`, `/proc/xxx/smaps`.
@ -331,7 +330,7 @@
- `nl`: добавить номера строк
- `seq`: вывести числа
- `seq`: вывести последовательность чисел
- `bc`: калькулятор
@ -347,7 +346,7 @@
- `slurm`: визуализация трафика сети
- `dd`: перенос информации между файлами и девайсами
- `dd`: перенос информации между файлами и устройствами
- `file`: узнать тип файла
@ -365,7 +364,7 @@
- `hd`, `hexdump`, `xxd`, `biew`: hex-дамп и редактирование бинарников
- `strings`: найти текст в бинарникх
- `strings`: найти текст в бинарниках
- `tr`: манипуляция с char (символьным типом)