the-art-of-command-line/README-ua.md
2015-10-28 00:52:40 +02:00

9.7 KiB
Raw Blame History

[ Languages: English, Español, 日本語, 한국어, Português, Русский, Slovenščina, 中文, Українська ]

Мистецтво командного рядка

Вступайте в англомовний чат проекту https://gitter.im/jlevy/the-art-of-command-line

curl -s 'https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README.md' | egrep -o '\w+' | tr -d '`' | cowsay -W50

Використанню командного рядка часто не приділяють достатньої уваги. Про термінал говорять, як про щось містичне. Насправді, ці навики явно (і не явно) збільшує Вашу продуктивність в роботі. Даний документ є підбіркою заміток і порад, які я знайшов для себе корисними, працюючи з командним рядком в Linux. Деякі з них - прості й очевидні, але деякі - досить складні та призначені для вирішення конкретних завдань. Це невелика публікація, але якщо Ви вже все це знаєте, що тут написано, і можете згадати як це все використовувати - Ви знаєте багато!

Ця робота є результатом багатьох авторів і перекладачів. Багато з цього спочатку появилось на Quora, почавши там, схоже, що варто розмістити і на Github, де знаходяться дуже талановиті люди і можуть допомогти. Якщо Ви замітили помилки (у всіх варіантах перекладу), будь ласка залиште опис issue або зробіть Pull requests (Звичайно перевіривши уже існуючі)

Опис

Основне:

  • Дана публікація призначена як для недосвідчених, так і для досвідчених користувачів. Цілі: об'ємість (зібрати всі важливі аспекти використання командного рядка), практичність (надати конкретні приклади для найчастіших задач) та стислість (не варто вдаватись у неочевидні речі, про які можна почитати в інших місцях).
  • Цей документ написаний для користувачів Linux, із єдиним винятком - розділ "MacOS only". Все інше підходить для всі UNIX/MacOS системи (і навіть для Cygwin).
  • Сфокусована на інтерактивному Bash, але багато речей також можуть бути використані в інших Шелах; і в застосовні до Bash-скриптів.
  • Ця інструкція включає в себе стандартні Unix команди і ті, для яких потрібно встановлювати сторонні пакети. Вони настільки корисні, що варті того, щоб їх встановили.

Нотатки:

  • Що б все вміщалось на одній сторінці, вся інформація вставлена прямо тут. Ви досить розумні для того, щоб самостійно вивчити питання більш детально в іншому місці. Використовуйте apt-get/yum/dnf/pacman/pip/brew (залежно від вашої системи управління пакетами) для установки нових програм.
  • На Explainshell можна знайти просте і докладне пояснення того, що таке команди, їх опції, пайпи(pipes(|)) і т.д.

##Основи

  • Вивчіть основи Bash. Просто візьміть і наберіть у командному рядку man bash в терміналі і хоча б перегляньте; він досить просто читається і він не дуже великий. Інші шелли теж можуть бути хороші, але Bash - потужна програма, і Bash завжди під рукою (використання виключно zsh, fish і т.д., які напевно круто виглядають на Вашому лептопі і ні в чому Вас не обмежують, наприклад Ви не зможете використовувати ці можливості Шеллу на вже існуючому сервері).
  • Вивчіть як використовувати хоча б один консольний редактор тексту. Найкраще Vim (vi), адже у нього немає конкурентів, коли вам потрібно швиденько щось підправити (навіть якщо Ви постійно сидите у Emacs чи, якомусь важкому IDE або на модному хіпстерському редакторі.
  • Знайте, як читати документацію через man (man man; man у кутах документа в дужках додає номер, наприклад 1 - для звичайних команд, 5 - для файлів, 8 - для адміністративних команд). Шукайте інформацію через apropos, і пам'ятайте, що деякі команди - не виконувані(executables), а вбудовані команди Bash, і допомогу по них можна отримати через команду help і help -d.
  • Можна перенаправляти введення та виведення через > і < і пайпи |. Пам'ятайте, що > - переписує вихідний файл, а >> додає до нього. Дізнайтеся побільше про stdout і stderr.
  • Дізнайтеся побільше про * (а також ? і [...]), кавички, а також різницю між подвійними " і одинарними ' кавичками.
  • Знайте як працювати із процесами в Bash: &, ctrl-z, ctrl-c, jobs, fg, bg, kill, і т.д.
  • Знайте ssh та основи беспарольної аутентифікації через ssh-agent, ssh-add, і т.д.
  • Основи роботи з файлами: ls і ls -l (зокрема, дізнайтеся, що значить кожен стовпець в ls -l), less, head, tail і tail -f (або навіть краще - less + F), ln і ln -s (дізнайтеся різницю між символьними посиланнями і жорсткими посиланнями, і чому жорсткі посилання краще), chown, chmod, du (для отримання швидкої інформації по використанню диска: du -hk *). Для менеджменту файлової системи, df, mount, fdisk, mkfs, lsblk.
  • Основи роботи з мережею: ip або ifconfig, dig.
  • Добре знайте регулярні вирази і різні опції для grep/egrep. Такі опції як -i, -o, -A, та -B варто знати.
  • Навчіться використовувати системами управління пакетами apt-get, yum, dnf та pacman (залежно від дистрибутива). Знайте як шукати і встановлювати пакети і обов'язково майте встановленим pip для установки командних утиліт, написаних на Python (деякі з тих команд, що ви знайдете нижче, найлегше встановити через pip).

##Щоденне-використання

##Обробка-файлів-та-інформації

##Дебаггінг

##Одним-рядком

##Складно-але-корисно

##Macos-only

##Інші-джерела

##Декламація