Коли вивчити версію командного рядка інструмента програмування? [зачинено]


12

Практично кожен інструмент програмування має версію командного рядка; багато з яких також мають версію gui. Щоб вивчити різні команди та різні параметри / перемикачі версії командного рядка, потрібно багато часу та запам'ятовування.

Тож у мене є кілька питань (які не обов'язково є взаємовиключними):

1) Коли ви будете турбувати навчання / запам'ятовування команд у версії інструмента, що також входить у версію gui?

2) За допомогою яких інструментів я повинен вивчити версію командного рядка? .... компілятори? система управління версіями? тощо, тощо


Якщо інструмент, який ви використовуєте, надає інтерфейс командного рядка, але не має для нього гідної документації, я б з обережністю ставлюся до використання такого інструменту. Якщо так, то RTFM. Це не так складно, і якщо ви дістанетесь до цього моменту, тоді задайте питання на StackOverflow.com Якщо вам потрібно розібратися, як зробити щось з командного рядка, я вірю, що ви можете. Якщо ви не впевнені, чи потрібно щось розібратися, то, напевно, цього не робите. Життя наповнене цікавими речами поза роботою, коли б тільки було достатньо часу ...
Робота

Відповіді:


21

Я бачу дві причини, чому ви повинні вивчити параметри командного рядка програми:

  1. Коли вам потрібно якось автоматизувати програму - будуйте сценарії, пакетну обробку тощо.

  2. Коли вам потрібно оптимізувати поведінку програми - зменшіть слід пам'яті тощо.

Щодо того, яким інструментам слід навчитися - добре, що повністю залежить від того, що ти хочеш зробити далі.


1
Ви завжди хочете мати можливість

1
@ Thorbjørn - це не те, що я сказав? Або мені не було зрозуміло?
ChrisF

3
Так. Я щойно підкреслив частину автоматизації - не розуміючи, що передня частина викличе біль пізніше, намагаючись адаптувати існуючі методології до чогось сценарію.

9

Уже багато хороших відповідей. Я додаю ще одну додаткову точку зору.

Ви замінюєте GUI інструментами командного рядка, коли хочете вивести людину з рівняння / процесу. Деякі причини та / або переваги для цього:

  • Ви позбудетесь людської помилки (при повторенні команди)
  • Відмінно підходить для всіх типів автоматизації, наприклад, для розгортання, побудови або запуску тестів з рандомізованими входами.
  • Ви станете дійсно користувачем енергії . Це дає вам можливість піднятися по сходах метапрограмування. Вам не потрібно робити будь-яку дію (натисніть на GUI) самостійно, ви можете легко її скриптувати!
  • Ви можете з'єднати інструменти разом (думайте, труби Unix).
  • Змушуйте комп’ютери робити роботу - ви не масштабуєте, комп’ютери роблять!

Коли це робити? Коли ти виявиш, що повторюєшся.

Звичайно, для GUI є місце і час. Але якщо ви дійсно хочете використати силу комп’ютерів і переглядати хвилю Закону Мура, вам потрібно навчитися розробляти сценарії своїх завдань.

Редагувати : додатковий бонус. Ви повинні носити цю футболку :)


7

Шахти:

1) Щоб стати більш продуктивним . Для мене швидше робити речі в оболонці, ніж просто клацати. Я говорю про використання інструменту, а не про налаштування служби / інструменту / тощо, тому що іноді швидше мати майстра та просто натиснути на нього Next Next Next, хоча ці майстри також існують у версіях командного рядка :)

2) Використовувати версію командного рядка у своїх програмах. Наприклад, припустимо, ви хочете перетворити PDF у текстовий файл . Якщо ви використовуєте версію GUI, це добре. Але якщо він також надає інтерфейс командного рядка, де ви можете зробити щось на кшталт:, ./pdf2text input.pdf output.txtтоді, якщо вам потрібно розробити додаток, який читає текст з PDF, ви можете легко ним користуватися, не використовуючи жодних API-програм або виконуючи певні зміни. .

3) Дізнатися загальні речі програми. Наприклад, якщо у вас інстальовано різницю в Windows, а для неї можна порівняти два файли. Це ідеально. Але що робити, якщо вам потрібно використовувати його в Linux ? Ви можете знайти той самий інтерфейс для Linux, але що робити, якщо його не існує? Вам доведеться знову навчитися користуватися ним на Linux, встановити новий фронт-енд і звикнути до роботи з ним. Якби ви навчилися використовувати версію командного рядка, вона б вам не потрібна;)

Близько 3) ... у деяких людей багато проблем, звикаючи працювати з Git на Windows. Вони кажуть, що в Windows немає хороших передумов, але якщо ви просто навчитеся командному рядку, у вас проблем не виникне. Це працює так само. Звичайно, проблема полягає в тому, що іноді народи бояться командного рядка ;)

Я пропоную вам вивчити версії командного рядка:

  • Компілятори, як gcc
  • Налагоджувачі, такі як gdb
  • Git ;)
  • та багато інструментів у GNU / Linux, з якими ви можете працювати в Windows, наприклад, egrep , awk , find , ...

Yeahhhh +1 для git: D Хоча diff - це єдиний приклад, для якого я б не використовував реальну команду; Я віддаю перевагу vimdiff (хоча я думаю, технічно це термінал теж так, що завгодно)
альтернатива

@mathepic Ви праві, але vimdiffце також інструмент командного рядка, чи не так?
Оскар Медерос

У той же час його ncurses (я думаю, не впевнений), тому я роблю невелику відмінність.
альтернатива

так, але я також приймаю їх як інструменти командного рядка :)
Оскар Медерос

@mathepic: Відповідь на вашу стурбованість:gvimdiff
Lie Ryan

3

Чому потрібно зафіксувати синтаксис параметра в пам'яті? Ось чому manіснує і --help( /?якщо ви перебуваєте на землі winblowz).

Я вважаю, що я можу знайти варіанти майже нічого, що не пізніше хвилини. Мета - запам'ятати, що виконують команди , щоб ви знали, що шукати!


1

Прагматично це зводиться до того, відсутній у інструменті gui функція, чи швидше це в командному рядку.

Побічна перевага використання командного рядка полягає в тому, що ви будете більше шансів прочитати документацію і з’ясувати, що відбувається насправді. Тим більше, що стосується вашого прикладу управління версіями, виконання цього командного рядка навчить вас зовсім небагато.


1
  • Компілятор: знадобиться для автоматизованих збірок
  • Зробити або створити систему: автоматизована побудова помилок уловлювання
  • Контроль версій: Я думаю, що так, але це найменш важливо з трьох. Але тоді я можу виконувати інші операції командного рядка, наприклад, проглядати повідомлення про зміни.

Але вам не потрібно запам'ятовувати параметри компілятора чи make; як тільки вони створені для проекту, вам не доведеться їх часто змінювати.


1

Переваги використання інструменту командного рядка, я вважаю, значно переважають переваги використання графічного інтерфейсу. Багато разів втрачають функції GUI, однак, було б справедливо сказати, що це завжди так (тобто дивіться на cmake в Windows - немає ніяких причин використовувати командний рядок поза звичайними обставинами).

Що стосується запам'ятовування, то немає особливої ​​необхідності пам’ятати, що команда програми встановлюється під час першого використання. Просто закладайте закладку в посібник (якщо ви використовуєте онлайн-посібник, інакше використовуйте "man" на * nix), а якщо вам потрібна певна функціональність (яку ви не запам'ятали), просто зверніться до посібника. Запам'ятовування цих речей повинно відбуватися природним шляхом. Наприклад, я запускаю "tar" та "gzip" з командного рядка дуже часто, але мені доведеться посилатися на посібник для виконання завдань, які я зазвичай не виконую.

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

З повагою,
Денніс М.



0

Коротка відповідь: Найкращий час для зміни (тобто використання командного рядка) - ЗАРАЗ . Справжні чоловіки використовують клавіатуру. Справжні чоловіки НЕ клацають. Період.

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

Ось настійно рекомендована стаття / есе " Чому Windows викликає тупість " за адресою http://www.over-yonder.net/~fullermd/rants/winstupid/1


3
Жартуючи чи ні, справжні лайно чоловіків не збираються вигравати жодних призів, хоча я на 100% погоджуюся, що використання CLI настільки продуктивніше, мачо-шум просто німий.
окудо

0

Я не впевнений , що ви повинні коли - або намагатися запам'ятовувати перемикачі на інструмент командного рядка. Якщо ви створюєте сценарій оболонки або що-небудь, щоб автоматизувати якесь завдання, то краще подивіться на все, що складено - витрачайте зараз тридцять секунд, щоб уникнути больових годин, щоб з'ясувати, що пішло не так пізніше. Якщо ви використовуєте один і той же інструмент командного рядка знову і знову, можливо, вам слід зробити сценарій оболонки ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.