mirror of
https://github.com/xmengnet/the-art-of-command-line.git
synced 2024-12-24 10:36:30 +08:00
for every day usage part 1
This commit is contained in:
parent
6c92d100d4
commit
8c292ed00d
1 changed files with 36 additions and 0 deletions
36
README-ua.md
36
README-ua.md
|
@ -59,6 +59,42 @@
|
|||
|
||||
##Щоденне-використання
|
||||
|
||||
- Використовуйте клавішу таб в Bash для автодоповнення аргументів до командам та **ctrl-r** для пошуку по історії командного рядка.
|
||||
- Використовуйте **ctrl-w** в Bash для того, щоб видалити останнє слово в команді; **ctrl-u** для того, щоб видалити команду повністю. Використовуйте **alt-b** і **alt-f** для того, щоб переміщатись між словами у команді, **ctrl-k** для того, щоб перейти в кінця рядка, **ctrl-l** для того, щоб очистити екран. Гляньте на `man readline` щоб дізнатися про всі шорткати Bash. Їх багато! Наприклад, **alt-.** переміщається між попередніми аргументам команди, а **alt-*** максимально розширює аргументи.
|
||||
- Якщо Вам подобаються шорткати vim, виконайте `set -o vi` (`set -o emacs` що б повернути налаштування).
|
||||
- Для редагування довгих команд після налаштування вашого консольного редактора (наприклад `export EDITOR=vim`), **ctrl-x** **ctrl-e** відкриє поточну команду в редакторі для багаторядкового редагування команди. Або у vi стилі, **escape-v**.
|
||||
- Для того, щоб переглянути історію, введіть `history`. Також існує безліч абревіатур, наприклад `! $` - Останній аргумент, `!!` - остання команда, хоча ці абревіатури часто заміняються шорткати **ctrl-r** та **alt-.**.
|
||||
- Для того, щоб стрибнути до останньої робочої директорії, використовуйте `cd -`
|
||||
- Якщо Ви написали команду наполовину і раптом передумали, натисніть **alt-#** для того, щоб додати `#` на початок команди, та відправте команду як коментар. Потім ви зможете повернутися до неї через історію команд.
|
||||
- Використовуйти `xargs` (або` parallel`). Це дуже корисно. Зверніть увагу, що Ви можете контролювати кількість команд на кожен рядок (`-L`) також паралельність (`-P`). Якщо Ви не впевнені, що робите щось правильно, почніть з `xargs echo`. Також `-I{}` - корисно. Приклади:
|
||||
```bash
|
||||
find . -name '*.py' | xargs grep some_function
|
||||
cat hosts | xargs -I{} ssh root@{} hostname
|
||||
```
|
||||
- `pstree -p` - допоможе побачити дерево процесів.
|
||||
- Використовуйте `pgrep` і `pkill` для того, щоб знаходити або слати сигнали до процесів по імені (`-f` корисна опція).
|
||||
- Знайте різні сигнали, які можна слати процесам. Наприклад, щоб призупинити процес, використовуйте `kill -STOP [pid]`. Для повного списку подивіться `man 7 signal`.
|
||||
- Використовуйте `nohup` або` disown`, якщо ви хочете запустити фоновий процес що б він постійн виконувався у фоні.
|
||||
- Дізнайтеся, які процеси слухають порти через `netstat -lntp` або `ss -plat` (для TCP; додайте `-u` для UDP).
|
||||
- Зверніть увагу на `lsof` щоб подивитися відкриті сокети і файли.
|
||||
- Команда `uptime` or `w` показує як довго працює система.
|
||||
- Використовуйте `alias`, щоб створити скорочення для часто використовуємих команд. Наприклад, `alias ll='ls -latr'` створить нове скорочення(alias) `ll`.
|
||||
- У Bash скриптах використовуйте `set -x` (або `set -v`) щоб дебажити вивід. Використовуйте строгий(strict) режим скрізь, де це можливо. Використовуйте `set -e` для того, щоб припиняти виконання при помилках (не нульовий вихідний код). Використовуйте `set -u` що б визначити невстановленні змінні. Використовуйте `set -o pipefail` щоб при помилках невикористовувати пайпи(вертикальна риска). Для більш складних скриптів також використовуйте `trap` на EXIT or ERR.
|
||||
Корисний звичка почати використовувати настипний скрипт, який допоможе виявити і перервати на загальних помилоках і вивести повідомлення:
|
||||
```bash
|
||||
set -euo pipefail
|
||||
trap "echo 'error: Script failed: see failed command above'" ERR
|
||||
```
|
||||
- У Bash-скриптах підоболочки(subshells) - зручний спосіб групувати команди. Один із найпоширеніших прикладів - тимчасово пересунутися в іншу робочу директорію:
|
||||
```bash
|
||||
# Do something in current dir
|
||||
(cd / some / other / dir && other-command)
|
||||
# Continue in original dir
|
||||
```
|
||||
- У Bash багато типів простору змінних. Перевірити, чи існує змінна - `${name:? Error message}`. Наприклад, якщо Bash-скрипту потрібен всього один аргумент, просто напишіть `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`.
|
||||
- Фігурні скобки, використовуючи `{`...`}` може зменшити необхідність повторно вводити той самий текст і автоматизувати. Це корисно в такому прикладі як `mv foo.{txt,pdf} some-dir` (який пересуває обидва файла), `cp somefile{,.bak}` (який розширюється у `cp somefile somefile.bak`) або `mkdir -p test-{a,b,c}/subtest-{1,2,3}` (яка розширює всі можливі комбінації і створює дерево деректорій).
|
||||
|
||||
|
||||
##Обробка-файлів-та-інформації
|
||||
|
||||
##Дебаггінг
|
||||
|
|
Loading…
Reference in a new issue