The Unix Shell: Примітки інструктора

Загальний підсумок

Багато хто ставить під сумнів, чи варто продовжувати вчити термінал. Зрештою, будь-хто, хто хоче перейменувати кілька тисяч файлів даних, може легко зробити це інтерактивно в інтерпретаторі Python, і будь-хто, хто займається серйозним аналізом даних швидше за все, буде виконувати більшу частину своєї роботи в IPython Notebook або в R Studio. Тож навіщо навчатися роботі в терміналі?

Перша відповідь така: “Тому що від цього залежить так багато іншого”. Встановлення програмного забезпечення, налаштування редактора за замовчуванням та керування віддаленими комп’ютерами часто вимагають базового знайомства з командним терміналом та пов’язаними з ним поняттями, такими як стандартний ввід та вивід. Багато інструментів також використовують його термінологію (наприклад, магічні команди %ls та %cd в IPython).

Друга відповідь така: “Тому що це простий спосіб представити деякі фундаментальні ідеї про те, як користуватися комп’ютером”. Коли ми вчимо людей користуватися терміналом Unix, ми вчимо їх, що вони повинні змусити комп’ютер повторювати дії (за допомогою завершення клавішею табуляції, знаком !, за яким йде номер команди, та циклів “for”). замість того, щоб повторювати щось самому. Ми також вчимо їх брати речі, які, як вони виявили, вони роблять часто, і зберігати їх для подальшого використання (за допомогою скриптів терміналу), давати речам розумні назви і писати невелику документацію (наприклад, коментар у верхній частині скрипта терміналу) щоб покращити життя своїх майбутніх поколінь.

Третя відповідь така: “Тому що це дозволяє використовувати багато специфічних інструментів та обчислювальних ресурсів, до яких дослідники не можуть отримати доступ інакше”. Знайомство з терміналом дуже корисне для віддаленого доступу до машин, використання високопродуктивної обчислювальної інфраструктури та запуску нових спеціалізованих інструментів у багатьох дисциплінах. Ми не навчаємо навичкам роботи з високопродуктивними обчислювальними системами або роботі в конкретних галузях, але закладаємо основу для подальшого розвитку цих навичок. Зокрема, розуміння синтаксису команд, прапорів та довідкових систем є корисним для роботи з специфічними інструментами, а розуміння файлової системи (та способів навігації по ній) корисне для віддаленого доступу.

Нарешті, і, можливо, найважливіше, навчання людей терміналу дозволяє нам навчити їх думати про програмування з точки зору композиції функцій. У випадку з терміналом це має форму конвеєрів, а не вкладених викликів функцій, але основна ідея “маленьких шматочків, нещільно з’єднаних між собою” залишається тією ж самою.

Весь цей матеріал можна охопити за три години за умови, що учні, які використовують Windows, не натраплять на такі перешкоди, як:

Підготовка до викладання

Викладацькі нотатки

Windows

Встановлення Bash та доцільного набору команд Unix на Windows завжди пов’язане з деякими клопотами та розчаруваннями. Будь ласка, зверніться до останнього набору інструкцій щодо встановлення для отримання порад, і спробуйте самі, перш ніж викладати у класі. Ми розглянули такі варіанти:

  1. msysGit (також відомий як “Git Bash”),
  2. Cygwin,
  3. використання віртуальної машини, та
  4. підключення учнів до віддаленої Unix-машини (як правило, віртуальної машини в хмарі).

Cygwin був найкращим варіантом до середини 2013 року, але як тільки ми почали викладати Git, msysGit виявився кращим. Настільні віртуальні машини та хмарні віртуальні машини добре підходять для технічно-підкованих учнів і можуть скоротити час на встановлення та налаштування на початку семінару, але:

  1. вони погано працюють на малопотужних машинах,
  2. вони збивають з пантелику новачків (тому що такі прості речі, як копіювання та вставка, працюють по-різному),
  3. учні залишають семінар без робочого середовища на обраній ними операційній системі, та
  4. учні можуть з’явитися, не завантаживши віртуальну машину, або бездротовий зв’язок зникне (або стане перевантаженим) під час уроку.

Що б ви не використовували, будь ласка, протестуйте його власноруч на комп’ютері з Windows до початку семінару: з часу вашого останнього семінару все могло змінитися за вашою спиною. І, будь ласка, також скористайтеся нашим Software Carpentry Windows Installer.