From 48a9b5213aef29cf3f3848b07d7beea31124a010 Mon Sep 17 00:00:00 2001 From: spmbt Date: Thu, 9 Jul 2015 15:22:38 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BC=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20=D0=B4?= =?UTF-8?q?=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B8=204=20=D0=B8?= =?UTF-8?q?=20=D0=BF=D0=B0=D1=80=D0=B0=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BE?= =?UTF-8?q?=D0=BA=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D1=87=D0=BD=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B2=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README-ru.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README-ru.md b/README-ru.md index 8e3c9ad..7715337 100644 --- a/README-ru.md +++ b/README-ru.md @@ -110,7 +110,7 @@ - В Баше много типов пространств имён. Проверить, существует ли переменная – `${name:?error message}`. Например, если Баш-скрипту нужен всего один аргумент, просто напишите `input_file=${1:?usage: $0 input_file}`. Арифметическая область видимости: `i=$(( (i + 1) % 5 ))`. Последовательности: `{1..10}`. Обрезка строк: `${var%suffix}` и `${var#prefix}`. Например, если `var=foo.pdf`, тогда `echo ${var%.pdf}.txt` выведет `foo.txt`. -- Вывод любой команды можно сохранить в файл по `<(some command)`. Например, сравнение локального файла `/etc/hosts с удаленным: +- Вывод любой команды можно сохранить в файлоподобный контекст по `<(some command)`. Например, сравнение локального файла `/etc/hosts с удаленным: ```sh diff /etc/hosts <(ssh somehost cat /etc/hosts) ``` @@ -138,12 +138,12 @@ - Некоторые другие настройки SSH могут сильно повлиять на безопасность и должны меняться осторожно, например, для конкретной подсети или конкретной машины или в домашних сетях: `StrictHostKeyChecking=no`, `ForwardAgent=yes` -- Чтобы получить разрешения файла в восьмеричном виде, что полезно для конфигурации систем, но нельзя получить из `ls`, можно использовать что-то типа: +- Чтобы получить разрешения файла в восьмиричном виде, что полезно для конфигурации систем, но нельзя получить из `ls`, можно использовать что-то типа: ```sh stat -c '%A %a %n' /etc/timezone ``` -- Для интерактивного выделения результатов других команд используйте [`percol`](https://github.com/mooz/percol) or [`fzf`](https://github.com/junegunn/fzf). +- Для интерактивного выделения результатов других команд используйте [`percol`](https://github.com/mooz/percol) или [`fzf`](https://github.com/junegunn/fzf). - Для работы с файлами, список которых дала другая команда (например, Git), используйте `fpp` ([PathPicker](https://github.com/facebook/PathPicker)). @@ -177,7 +177,7 @@ - Знайте о `wc`: для подсчета переводов строк (`-l`), для символов – (`-m`), для слов – words (`-w`), для байтового подсчета – (`-c`). -- Знайте про `tee`, для копирования в файл из stdin и stdout, что-то типа `ls -al | tee file.txt`. +- Знайте про `tee` для копирования в файл из stdin и stdout, что-то типа `ls -al | tee file.txt`. - Не забывайте, что Ваша локаль влияет на многие команды, включая порядки сортировки, сравнение и производительность. Многие дистрибутивы Linux автоматически выставляют `LANG` или любую другую переменную, подходящую для Вашего региона. Из-за этого результаты функций сортировки могут работать непредсказуемо. Процедуры `i18n` могут сильно снизить производительность сортировок. Можно полностью этого избежать, за редкими исключениями, сортируя традиционно побайтово, для этого – `export LC_ALL=C`. @@ -201,11 +201,11 @@ - Знайте флаги `sort`а. Для чисел используйте `-n`, для работы с человекочитаемыми числами используйте `-h` (например `du -h`). Знайте, как работают ключи (`-t` и `-k`). В частности, не забывайте, что вам нужно писать `-k1,1`, чтобы отсортировать только первое поле; `-k1` означает сортировку, учитывающую всю строку. Может быть полезной *стабильная сортировка* (`sort -s`). Например, для сортировки самого важного по второму полю, а второстепенного – по первому: sort -k1,1 | sort -s -k2,2`. -- Если вам когда-нибудь придётся написать код таба в терминале, например, для сортировки по табу с флагом -t, используйте сокращение **ctrl-v** **[Tab]** или напишите `$'\t'`. Последнее лучше, потому что его можно скопировать. +- Если вам когда-нибудь придётся написать код символа табуляции в терминале, например, для сортировки по табуляциям с флагом -t, используйте сокращение **ctrl-v** **[Tab]** или напишите `$'\t'`. Последнее лучше, потому что его можно скопировать. - Стандартные инструменты для патчинга исходников – это `diff` и `patch`. Также, посмотрите на `diffstat` для просмотра статистики диффа. `diff -r` работает по всей директории. Используйте `diff -r tree1 tree2 | diffstat` для полной сводки изменений. -- Для бинарников используйте `hd` для простых hex-дампом и `bvi` для двоичного изменения бинарников. +- Для бинарников используйте `hd` для простых hex-дампов и `bvi` для двоичного изменения бинарников. - `strings` (в связке с `grep` или чем-то похожим) помогает найти строки в бинарниках. @@ -225,19 +225,19 @@ - Дле веб-дебаггинга используйте `curl` и `curl -I`, или их альтернативу `wget`. Также, есть более современные альтернативы, типа [`httpie`](https://github.com/jakubroztocil/httpie). -- Чтобы получить информацию о диске/CPU/сети используйте `iostat`, `netstat`, `top` (или лучшую альтернатву `htop`) и особенно `dstat`. Хороший старт для того, чтобы понимать что происходит в системе. +- Чтобы получить информацию о диске/CPU/сети, используйте `iostat`, `netstat`, `top` (или лучшую альтернатву `htop`) и особенно `dstat`. Хороший старт для того, чтобы понимать что происходит в системе. - Для более детальной информации используйте [`glances`](https://github.com/nicolargo/glances). Эта программа показывает сразу несколько разных статистик в одном окне терминала. Полезно, когда следите за сразу несколькими системами. - Для того, чтобы следить за памятью, научитесь понимать `free` и `vmstat`. В частности, не забывайте, что кешированые значения ("cached" value) – это память, которую держит ядро, и эти значения являются частью `free`. -- Дебаггинг Джавы – совсем другая рыбка, но некоторые манипуляции над виртуальной машиной Оракла или любой другой позволит вам делать `kill -3 ` и трассировать сводки стека и кучи (включая детали работы сборщика мусора, которые бывают очень полезными), и их можно дампнуть в stderr или логи. +- Отладка Джавы – совсем другая рыбка, но некоторые манипуляции над Oracle VirtualBox или любой другой позволит вам делать `kill -3 ` и трассировать сводки стека и кучи (включая детали работы сборщика мусора, которые бывают очень полезными), и их можно дампнуть в stderr или логи. - Используйте `mtr` для лучшей трассировки, чтобы находить проблемы сети. - Для того, чтобы узнать почему диск полностью забит, используйте `ncdu`, это экономит время по сравнению с тем же `du -sh *`. -- Для того, чтобы узнать какой сокет или процесс использует интернет, используйте `iftop` или `nethogs`. +- Xтобы узнать какой сокет или процесс использует интернет, используйте `iftop` или `nethogs`. - `ab`, которая поставляется вместе с Апачем, полезна для быстрой и нетщательной проверки производительности веб-сервера. Для более серьезного лоад-тестинга используйте `siege`. @@ -251,9 +251,9 @@ - Используйте `/proc`. Иногда он невероятно полезен для отладки запущенных программ. Примеры: `/proc/cpuinfo`, `/proc/xxx/cwd`, `/proc/xxx/exe`, `/proc/xxx/fd/`, `/proc/xxx/smaps`. -- Когда дебажите что-то, что сломалось в прошлом, используйте `sar` – бывает очень полезно. Показывает историю CPU, памяти, сети и т.д. +- Когда отлаживаете что-то, что сломалось в прошлом, используйте `sar` – бывает очень полезно. Показывает историю CPU, памяти, сети и т.д. -- Для анализа более глубоких систем и производительности посмотрите на `stap` ([SystemTap](https://sourceware.org/systemtap/wiki)), [`perf`](http://en.wikipedia.org/wiki/Perf_(Linux)) и [`sysdig`](https://github.com/draios/sysdig). +- Для более глубокого анализа систем и производительности посмотрите на `stap` ([SystemTap](https://sourceware.org/systemtap/wiki)), [`perf`](http://en.wikipedia.org/wiki/Perf_(Linux)) и [`sysdig`](https://github.com/draios/sysdig). - Узнайте, какая у вас операционка, через `uname` или `uname -a` (основная Unix-информация/информация о ядре) или `lsb_release -a` (информация о дистрибутиве).