Skip to content

Instantly share code, notes, and snippets.

@ap-Codkelden
Last active January 30, 2021 14:43
Show Gist options
  • Save ap-Codkelden/9e063e52719d1f03c7a99800f8f83791 to your computer and use it in GitHub Desktop.
Save ap-Codkelden/9e063e52719d1f03c7a99800f8f83791 to your computer and use it in GitHub Desktop.

Revisions

  1. ap-Codkelden revised this gist Jan 30, 2021. 1 changed file with 0 additions and 4 deletions.
    4 changes: 0 additions & 4 deletions shell_commands.md
    Original file line number Diff line number Diff line change
    @@ -10,10 +10,6 @@

    **ВАЖЛИВО:** В UNIX-подібних ОС регістр літер розрізняється, тому команда `cd` є, а команди `CD` немає (зазвичай).

    [rino@arch-desktop ~]$

    Останній символ запрошення завичай знак доллара `$`. Якщо ж там не знак доллара, а гратки `#`, це означає, що ти працюєш від імені адміністратора (root user) та маєш адміністративні привілеї. Ніколи не працюй від імені адміністратора, якщо у цьому немає нагальної потреби.

    Під командою ми розуміємо:

    * файл окремої програми у твоїй ОС, які є двійковими виконуваними файлами (те, що у вінді `*.exe`)
  2. ap-Codkelden created this gist Jan 30, 2021.
    73 changes: 73 additions & 0 deletions shell_commands.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,73 @@
    ### Команди, аргументи, опції, параметри

    Коли ти запускаєш термінал, у ньому починає виконуватись оболонка (shell), яка чекає від тебе команд, щоб їх виконати.

    **ВАЖЛИВО:** В оболонці ти бачиш запрошення (shell prompt), наприклад:

    [rino@arch-desktop ~]$

    Останній символ запрошення завичай знак доллара `$`. Якщо ж там не знак доллара, а гратки `#`, це означає, що ти працюєш від імені адміністратора (root user) та маєш адміністративні привілеї. Ніколи не працюй від імені адміністратора, якщо у цьому немає нагальної потреби.

    **ВАЖЛИВО:** В UNIX-подібних ОС регістр літер розрізняється, тому команда `cd` є, а команди `CD` немає (зазвичай).

    [rino@arch-desktop ~]$

    Останній символ запрошення завичай знак доллара `$`. Якщо ж там не знак доллара, а гратки `#`, це означає, що ти працюєш від імені адміністратора (root user) та маєш адміністративні привілеї. Ніколи не працюй від імені адміністратора, якщо у цьому немає нагальної потреби.

    Під командою ми розуміємо:

    * файл окремої програми у твоїй ОС, які є двійковими виконуваними файлами (те, що у вінді `*.exe`)
    * вбудовану команду оболонки, це теж програма, але вона є однією з програм оболонки
    * функцію оболонки, це звичайний скрипт, написаний у текстовому редакторі
    * Псевдонім для якогось з типів команд вище

    Вбудована команда оболонки `type` дозволяє зрозуміти, який саме це тип, але це зараз знати непотрібно. :)

    Команда зазвичай має **аргументи** та **параметри**. Аргументи — це щось, що МОЖЕ бути потрібно команді для роботи. **Опції** — це також аргументи, які змінюють поведінку команди.

    Існують короткий формат запису одних і тих самих опцій (1 літера, наприклад `v` або `l`) та довгий (те саме, але більш human readable — `long` або `verbose`).

    Усі короткі опції МУСЯТЬ містити перед сорбою дефіс `-`:

    command -a -s -f filename

    Довгі опції МУСЯТЬ містити перед сорбою 2 дефіси підряд `--`:

    command -a --some-long-option -f filename

    Зазвичай, опції так і пішуть у документації з дефісами:

    -v, --verbose
    always print headers giving file names

    **Параметр** — це аргумент, який дає певну інформацію команді або якійсь із її опцій. Напр., у `-o file`, `file` — це параметр опції `-o`. Опції та аргументи зазвичай є частиною самої команди, тобто задані у її коді, а параметри — ні, тобто користувач може вказати будь-що.

    **ВАЖЛИВО:** Усі аргументи та параметри МУСЯТЬ бути розділені мінімум одним пробілом, за винятком випадку, коли у неас є короткі опції без аргументів, тоді їх МОЖНА групувати після дефісу:

    command -as -f filename

    тобто `-as` це дві опції, скомбіновані в один аргумент. Довгі та короткі опції НЕ МОЖНА змішувати таким чином.

    Порядок завжди такий: команда, опції (та їх агрументи), аргументи. Зазвичай після аргументів опцій вже бути не повинно (так склалося історично). Опції та аргументи не завжди обов'язкові. Необов'язкові опції та аргументи в описах команд позначаються у квадратних дужках `[ ]`, обов'язкові — без таких дужок. Тобто, коли ти бачиш:

    command [опції] файл

    це означає, що команда `command` має необов'язкові `опції` та один обов'язковий агрумент `файл`.

    **Приклад 1:**

    command -v -o file

    Тут у команди `command` є дві опції `-v` та `-o` , причому опція `-o` має параметр `file`.

    **Приклад 2:**

    ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]

    `-4`, `-6`, `-A`, ... `-y` — необов'язкові короткі аргументи, `-B` — теж необов'язкорвий короткий аргумент з параметром `bind_interface`.

    ### Як отримати довідку

    Майже усі команди мають опцію `-h`, яка дозволяє отримати кортоку довідку. Переважна частина команд МОЖЕ також мати тотожну опцію `--help`.

    Більшість команд МОЖЕ мати також man page (manual page, довідкову сторінку). Переглянути її можна, виконавши команду `man команда`, наприклад `man head` або навіть `man man`.