merged and translated latest changes

This commit is contained in:
mkwardakov 2016-02-18 22:18:37 +03:00
parent dfc86414a0
commit 9244963cac

View file

@ -13,6 +13,7 @@
- [Отладка системы](#Отладка-системы) - [Отладка системы](#Отладка-системы)
- [В одну строчку](#В-одну-строчку) - [В одну строчку](#В-одну-строчку)
- [Сложно, но полезно](#Сложно-но-полезно) - [Сложно, но полезно](#Сложно-но-полезно)
- [Windows only](#windows-only)
- [OS X only](#os-x-only) - [OS X only](#os-x-only)
- [Больше информации по теме](#Больше-информации-по-теме) - [Больше информации по теме](#Больше-информации-по-теме)
- [Дисклеймер](#Дисклеймер) - [Дисклеймер](#Дисклеймер)
@ -35,7 +36,7 @@
Основное: Основное:
- Данная публикация предназначена как для новичков, так и для опытных людей. Цели: *объемность* (собрать все важные аспекты использования командной строки), *практичность* (давать конкретные примеры для самых частых юзкейсов) и *краткость* (не стоит углубляться в неочевидные вещи, о которых можно почитать в другом месте). - Данная публикация предназначена как для новичков, так и для опытных людей. Цели: *объемность* (собрать все важные аспекты использования командной строки), *практичность* (давать конкретные примеры для самых частых юзкейсов) и *краткость* (не стоит углубляться в неочевидные вещи, о которых можно почитать в другом месте).
- Этот документ написан для пользователей Linux, с единственным исключеним секцией "[OS X only](#os-x-only)". Все остальное подходит и может быть установлено под все UNIX/OS X системы (и даже Cygwin). - Этот документ написан для пользователей Linux, за исключеним секций "[OS X only](#os-x-only)" и "[Windows only](#windows-only)". Все остальное подходит и может быть установлено под все UNIX/OS X системы (и даже Cygwin).
- Фокусируемся на интерактивном Баше, но многие вещи также могут быть использованы с другими шеллами; и в общем применимы к Баш-скриптингу. - Фокусируемся на интерактивном Баше, но многие вещи также могут быть использованы с другими шеллами; и в общем применимы к Баш-скриптингу.
- Эта инструкция включает в себя стандартные Unix команды и те, для которых нужно устанавливать сторонние пакеты. Они настолько полезны, что стоят того, чтобы их установили. - Эта инструкция включает в себя стандартные Unix команды и те, для которых нужно устанавливать сторонние пакеты. Они настолько полезны, что стоят того, чтобы их установили.
@ -183,6 +184,14 @@
- Чтобы выполнить определённую команду с привилегиями, используйте `sudo` (для рута) и `sudo -u` (для другого пользователя). Используйте `su` или `sudo bash`, чтобы запустить шелл от имени этого пользователя. Используйте `su -`, чтобы эмулировать свежий логин от рута или другого пользователя. - Чтобы выполнить определённую команду с привилегиями, используйте `sudo` (для рута) и `sudo -u` (для другого пользователя). Используйте `su` или `sudo bash`, чтобы запустить шелл от имени этого пользователя. Используйте `su -`, чтобы эмулировать свежий логин от рута или другого пользователя.
- Знайте про [ограничение 128Кб](https://wiki.debian.org/CommonErrorMessages/ArgumentListTooLong) в командной строке. Ошибка "Argument list too long" часто бывает, когда маска по имени включает большое количество файлов. (В таких случаях помогают варианты с `find` или `xargs`.)
- В качестве простого калькулятора (и, конечно, вообще для работы с Python) используйте интерпретатор `python`. Например,
```
>>> 2+3
5
```
## Обработка файлов и информации ## Обработка файлов и информации
@ -233,7 +242,7 @@
rename 's/\.bak$//' *.bak rename 's/\.bak$//' *.bak
``` ```
- Как говорит man, `rsync` на деле - быстрая, с множеством возможностей, утилита для копирования файлов. Но она хороша не только для синхронизацией между машинами, но и локально. Он также является [самым быстрым способом](https://web.archive.org/web/20130929001850/http://linuxnote.net/jianingy/en/linux/a-fast-way-to-remove-huge-number-of-files.html) удалить большое количество файлов: - Как говорит man, `rsync` на деле - быстрая, с множеством возможностей, утилита для копирования файлов. Но она хороша не только для синхронизацией между машинами, но и локально. Если есть доступ, `rsync` в отличие от `scp` позволяет возобновить процесс копирования, не начиная заново. Он также является [самым быстрым способом](https://web.archive.org/web/20130929001850/http://linuxnote.net/jianingy/en/linux/a-fast-way-to-remove-huge-number-of-files.html) удалить большое количество файлов:
```sh ```sh
mkdir empty && rsync -r --delete empty/ some-dir && rmdir some-dir mkdir empty && rsync -r --delete empty/ some-dir && rmdir some-dir
``` ```
@ -263,6 +272,13 @@ mkdir empty && rsync -r --delete empty/ some-dir && rmdir some-dir
- Используйте `zless`, `zmore`, `zcat`, и `zgrep` для работы со сжатыми файлами. - Используйте `zless`, `zmore`, `zcat`, и `zgrep` для работы со сжатыми файлами.
- `chattr` устанавливает атрибуты файлов, которые также являются низкоуровневой альтернативой правам доступа. Например, от случайного удаления файла защитит атрибут неизменяемости: `sudo chattr +i /critical/directory/or/file`
- Используйте `getfacl` и `setfacl` для сохранения и восстановления файловых прав доступа. Например:
```sh
getfacl -R /some/path > permissions.txt
setfacl --restore=permissions.txt
```
## Отладка системы ## Отладка системы
@ -304,6 +320,9 @@ mkdir empty && rsync -r --delete empty/ some-dir && rmdir some-dir
- Используйте `dmesg`, когда что-то ведет себя совсем странно (например, железо или драйвера). - Используйте `dmesg`, когда что-то ведет себя совсем странно (например, железо или драйвера).
- Если вы удалили файл и это вопреки ожиданиям не освободило место на диске, как показывает `du`, проверьте, использует ли файл какой-нибудь процесс:
`lsof | grep deleted | grep "filename-of-my-big-file"`
## В одну строчку ## В одну строчку
@ -519,6 +538,23 @@ mkdir empty && rsync -r --delete empty/ some-dir && rmdir some-dir
- Чтобы получить информацию о версии OS X используйте `sw_vers`. - Чтобы получить информацию о версии OS X используйте `sw_vers`.
## Windows only
- Используйте силу Unix shell в Microsoft Windows, установив [Cygwin](https://cygwin.com/). Большая часть описанных в этом документе возможностей заработает сразу.
- Установите еще Unix программ с помощью встроенного в Cygwin менеджера пакетов.
- Используйте `mintty` в качестве терминала.
- Работайте с буфером обмена Windows с помощью `/dev/clipboard`.
- Запустите `cygstart`, чтобы открыть файл в приложении по умолчанию.
- Работайте с реестром Windows с помощью `regtool`.
- Имейте в виду, что виндовый диск `C:\` доступен в Cygwin по пути `/cygdrive/c`, и cygwin''ский `/` является папкой `C:\cygwin` в Windows. Конвертируйте файловые пути в виндовые и обратно с помощью `cygpath`. Это самый полезный скрипт, который запускает программы Windows.
- Вы можете запускать и автоматизировать большинство задач по администрированию Windows из командной строк, освоив `wmic`.
## Больше информации по теме ## Больше информации по теме
@ -531,7 +567,7 @@ mkdir empty && rsync -r --delete empty/ some-dir && rmdir some-dir
## Дисклеймер ## Дисклеймер
За небольшим исключением, весь код написан так, чтобы другие его смогли прочитать. Кому много дано, с того много и спрашивается. Тот факт, что что-то может быть написано на Баше, вовсе не означает, что оно должно быть на нём написано. ;) За небольшим исключением, весь код написан так, чтобы другие его смогли прочитать. С большой силой приходит большая ответственность. Из того, что вы *способны* что-то сделать в Баше, вовсе не следует, что это нужно делать! ;)
## Лицензия ## Лицензия