mirror of
https://github.com/xmengnet/the-art-of-command-line.git
synced 2024-12-24 09:16:29 +08:00
merged and translated latest changes
This commit is contained in:
parent
dfc86414a0
commit
9244963cac
1 changed files with 39 additions and 3 deletions
42
README-ru.md
42
README-ru.md
|
@ -13,6 +13,7 @@
|
|||
- [Отладка системы](#Отладка-системы)
|
||||
- [В одну строчку](#В-одну-строчку)
|
||||
- [Сложно, но полезно](#Сложно-но-полезно)
|
||||
- [Windows only](#windows-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 команды и те, для которых нужно устанавливать сторонние пакеты. Они настолько полезны, что стоят того, чтобы их установили.
|
||||
|
||||
|
@ -183,6 +184,14 @@
|
|||
|
||||
- Чтобы выполнить определённую команду с привилегиями, используйте `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
|
||||
```
|
||||
|
||||
- Как говорит 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
|
||||
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` для работы со сжатыми файлами.
|
||||
|
||||
- `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`, когда что-то ведет себя совсем странно (например, железо или драйвера).
|
||||
|
||||
- Если вы удалили файл и это вопреки ожиданиям не освободило место на диске, как показывает `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`.
|
||||
|
||||
## 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
|
|||
|
||||
## Дисклеймер
|
||||
|
||||
За небольшим исключением, весь код написан так, чтобы другие его смогли прочитать. Кому много дано, с того много и спрашивается. Тот факт, что что-то может быть написано на Баше, вовсе не означает, что оно должно быть на нём написано. ;)
|
||||
За небольшим исключением, весь код написан так, чтобы другие его смогли прочитать. С большой силой приходит большая ответственность. Из того, что вы *способны* что-то сделать в Баше, вовсе не следует, что это нужно делать! ;)
|
||||
|
||||
|
||||
## Лицензия
|
||||
|
|
Loading…
Reference in a new issue