Итак, в чем преимущество использования терминала? [закрыто]

61

Я только что установил Ubuntu пару дней назад. Насколько я могу судить, терминал является огромной частью любого дистрибутива Linux. Почему мой вопрос в этом вопросе? Когда я смотрю на что-нибудь, команды, установленные в терминале, легко выполняются через графический интерфейс. Итак, каковы преимущества использования терминала?

Изменить: Спасибо за ответы всем. После того, как я немного пошутил, и с помощью ваших ответов я теперь могу понять его использование. Я могу с гордостью сказать, что последние 3 дня я использую его практически для всего, и я надеюсь, что в скором времени вы сможете лучше понять сценарии.

    
задан LurkDog 21.02.2012 в 01:49
источник

16 ответов

79

Терминал в Unix - замечательный, мощный инструмент. При переходе из мира Windows это сложно понять, потому что оболочка Windows (cmd.exe) скорее, как я могу сказать, не хватает. Большинство * nix-оболочек по умолчанию ( bash , zsh и т. Д.) Имеют несколько преимуществ:

  1. Стандартизируется через POSIX и Single Unix Specification, поэтому скрипт, который вы пишете для одного компьютера, скорее всего, будет работать на всех совместимых с POSIX машинах (при условии, что вы ограничиваете себя стандартными командами, из которых есть лоты ). У Microsoft есть привычка включать инструменты в некоторые версии, а не в другие, что очень важно для пакетного программирования или пропустить

  2. Поскольку Unix был создан из терминала, большинство из них настраивается из командной строки. Windows была примерно такой, но они решили отказаться от нее 16-битной подсистемы и DOS. Теперь GUI - это единственный способ изменить некоторые вещи в Windows.

  3. Потому что он настолько гибкий. Команды могут соединяться вместе ( ls | grep filename ), они могут быть захвачены ( gcc program.c > ./standard_out 2> ./standard_error ) и могут быть заменены ( ls /home/'whoami' или ls /home/$(whoami) )

  4. Поскольку утилиты UNIX предназначены для того, чтобы сделать что-то одно, и делать это хорошо. Просто просмотрите awk , grep , sed , wget или множество других. Сам по себе они достигают единственной задачи, но, учитывая # 3 и # 2, они могут быть встроены в мощные выражения.

  5. Из-за возможности автоматизации задач. Скрипты cron и bash позволяют выполнять длительные, сложные и / или повторяющиеся задачи либо полностью, либо автоматически.

  6. Потому что люди склонны к ошибке. Относительно короткие сценарии оболочки можно использовать для последовательного изменения настроек. Проверки безопасности могут быть встроены в скрипты, а не полагаться на то, чтобы пользователи знали, какие команды безопасны для запуска в разных обстоятельствах.

ответ дан Huckle 21.02.2012 в 02:02
36

Существует множество преимуществ использования терминала. Аргументы варьируются от удобства, производительности до ностальгии. Вот некоторые из них:

  1. Есть некоторые вещи, которые вы (скорее мне) просто не можете выполнить с помощью графического интерфейса. Дело не в том, что это не выполнимо, просто потому, что никто не потрудился написать графический интерфейс для этих команд. Например, если я хотел использовать некоторую команду, скажите mdf2iso , чтобы преобразовать целую кучу файлов в папку. Я могу передать вывод с помощью оператора | и сделать это за один такт.

  2. Для многих из нас это так, как должно быть. Имейте в виду, что это мало связано с опытом. Я не специалист по Linux, я просто обычный пользователь, но я предпочитаю использовать командную строку, где это возможно. Это не столько аргумент о том, почему он должен использоваться, сколько о том, почему он используется.

  3. Скрипты - это мощная вещь. Вы можете использовать условия if и циклы for и т. Д. И делать всевозможные вещи, комбинируя вышеприведенную мощность. Нет предела силе сценариев. Вы можете автоматизировать сложные задачи, которые соответствуют вашим требованиям. Для таких вещей часто трудно найти графическое приложение, соответствующее вашим требованиям.

  4. Вы можете выполнять задачи путем удаленного входа в систему, даже при очень низких настройках полосы пропускания.

  5. Помощь, написание учебников и т. д. намного проще, если вы можете указать команды другому человеку. Таким образом, вам не нужно делать скриншоты. Это имеет еще одно преимущество для человека, которому тоже помогают, что приводит нас к следующему пункту.

  6. Использование командной строки обычно дает вам лучшее представление о том, что вы делаете и что происходит.

  7. И, наконец, это просто быстрее. Гораздо быстрее набрать несколько букв и нажать TAB , чем нажимать, хотя и бесконечные параметры меню. Вы можете использовать !mo для вызова последней команды, которую вы запускали, с mo (например, mount) и т. Д.

Я уверен, что есть тысячи других причин, о которых я не упоминал.

    
ответ дан ste_kwr 21.02.2012 в 02:05
18

В конце концов? Поскольку вы начинаете писать сценарии, и замечательная вещь о сценариях такова:

Вместо того, чтобы изменять способ выполнения действий, вы можете изменить скрипт, который их выполняет.

Вы можете писать сценарии для терминала, и обычно вы не можете использовать графические программы, поэтому люди используют терминал.

Но я чувствую намек на «Почему я должен использовать терминал?» в вашем вопросе. Я не могу ответить на это, потому что вы и я не являемся вами, но этот связанный с вами вопрос может дать вам некоторое представление:

Как / почему люди в конечном итоге используют пользователей командной строки?

Я думаю, вы могли бы определить три этапа: (1) неохотное использование; (2) знание минимума, необходимого для комфорта; (3) найти один нравится сценарии. Можно использовать из терминала на всех трех уровнях; узнайте сами, где ваше любопытство прекращается. Кроме того, очень быстро можно пройти через эти этапы, если вы решите, что хотите изучить сценарии оболочки.

  1. «Мне нужна эта программа, поэтому, я думаю, я буду использовать командную строку».

    Это начинается, как правило, потому что люди находят, что им нужен что-то специалист или сложно, и программа, которую Google / форум / друг рекомендует, чтобы программа оказалась в командной строке. Таким образом, они открывают терминал и введите то, что инструкции говорят им, чтобы напечатать, и вот как они приходят использовать терминал. Примеры таких программ, которые заставляют вас использовать в командной строке:

    • LaTeX / TeX / ConTeXt (разные варианты одной и той же системы) принимает текст файл и превращает его в красивый PDF-документ. Смотрите примеры ; Мне больше нравится «pp» и «LM-Volume-manuscript».
    • rename - прекрасная небольшая программа, которая позволяет вам переименовывать множество файлов в соответствии с к шаблону. Простой пример: rename s/myfile([0-9]+).txt/-myfile.txt/ превращает все файлы с именем «bond007.txt» в «007-bond.txt», независимо от того, что число есть. Возможно, вы хотите переименовать файлы музыкальных альбомов, вы видите.
    • Возможно, вы хотите запустить веб-сайт со своего компьютера, и вы обнаружите, что если вы хотите сказать веб-серверу запустить / остановить / обновить его конфигурации, вы должны выдать команду терминала.

    Обратите внимание, что для многих из этих систем есть графические интерфейсы, но это не относится к делу: вызов командной строки является обычным и традиционным, многие HOWTO предполагают это, и так оно и начинается. Потому что:

  2. «Хорошо, теперь я немного удобнее».

    Как только внутри командной строки люди начинают думать: Не было бы легко если бы я мог просто ..

    • ... изменить каталоги, чтобы заглянуть внутрь другого? ( cd mydir , для 'change directory')
    • ... получите быстрое напоминание о текстовых файлах в этом каталоге? ( ls *.txt , для «списка»)
    • ... переместить / переименовать файл? скопировать файл? удалить файл? ( mv myfile newname , cp myfile mycopy и rm myfile , для 'move', 'copy' и 'remove')
    • ... открыть этот файл для редактирования / просмотра? ( gedit myfile или leafpad или nano или vim или что-то еще.)

    Как только люди узнали эти пять команд, они по существу удобные в командной строке: они могут перемещаться, смотреть и взаимодействовать. Это даже немного мощно: вы можете работать со всеми группами файлов на один раз с такими командами, как mv iceland-*.jpg My_Iceland_Pics/ , и разве это не круто?

    Теперь многие люди счастливо останавливаются здесь. Они знают, как использовать терминал, они будут использовать его, когда им это нужно, и все. Это «терминал полезен». Тем не менее, люди, которые предпочитают терминал, обычно делают это, потому что им нужно / нужно / чувствовать, что они не могут обойтись без впечатляющей силы, предлагаемой сценарием. И это обычно начинается следующим образом:

  3. «Привет, сценарий - это всего лишь несколько команд в файле!»

    Эта реализация может привести к нескольким дальнейшим изменениям, в зависимости от человека. Конечно, многие просто идут «meh»; нет смысла изучать то, что вам не нужно. Во всяком случае, такие вещи могут произойти:

    • Вы начинаете использовать маленькие скрипты, чтобы автоматизировать скучные вещи. Некоторые из вас напишите сами; некоторые вы получаете от кого-то другого; и в конечном итоге, вы начинаете изменять чужие скрипты.
    • Вы обнаружите, что категория огромная , которую вы использовали от руки, потому что это требовало взаимосвязи между собой, может быть автоматизировано используя эти две конструкции:
      • if something_is_true; then step1a; step2; else step1b; fi и
      • for file in list_of_files; do process1 $file; process2 $file; step3; done
    • Столкнувшись с скучной или сложной задачей, вы обнаружите, что лучше писать сценарий для него, чем сделать это вручную. Это даже не для экономии времени или повторное использование, обязательно, но просто потому, что это веселее.
    • Вы часто используете рабочий процесс «use script on source file», потому что он подходит вам, как вы думаете.

Вы не можете испытать все или даже любые из этих вещей.Тем не менее, чем больше применимо к вам, тем лучше терминал будет для вас . Вы сами узнаете, как сильно вы его используете. Получайте удовольствие!

Post scriptum. При программировании script -> run -> result и input -> process -> output рабочих процессов чрезвычайно распространены, а терминал эффектно подходит для этих рабочих процессов. Добавьте к этому факт, что оболочка действительно представляет собой не что иное, как другой язык программирования, и вы поймете, почему существует такое огромное совпадение между пользователями командной строки и программистами.     

ответ дан Esteis 21.02.2012 в 19:06
15

Еще один момент для добавления: Прикольно использовать командную строку! ;)

( Ссылка )

    
ответ дан red_trumpet 21.02.2012 в 02:11
12

Я просто отвечал на аналогичный вопрос, подобный этому на днях. Оказалось, что этот человек никогда не использовал сочетания клавиш, чтобы что-либо сделать, поэтому оказалось, что это долгая дискуссия. Надеюсь, вы знакомы с этими ... это сделает мои замечания более понятными.

Рассмотрим использование текстового процессора. Если вы сохраните файл, вы можете использовать сочетание клавиш, например ctrl-s. Кто-то может сказать: «Я предпочитаю использовать это меню. Это не спасает меня много времени, чтобы использовать ярлык. И если вам нужно сохранить новый файл, вам нужно перейти через файловую систему в каталог, а затем ввести имя в любом случае. " Таким образом, этот возражающий является правильным, что каждая комбинация клавиш сама по себе не экономит значительное количество времени. Истинная экономия заключается в объединении ярлыков вместе, например. выберите все, вырежьте, вставьте. Даже разработчики текстовых процессоров поняли это и сделали более удобным доступ к файловой структуре с помощью клавиатуры, например. возможность доступа к последним папкам / местоположениям с помощью клавиш табуляции и стрелок.

Конечно, для выбора фрагментов текста требуется мышь часто ... поэтому программисты и люди, которые делают много редактирования, предпочитают использовать текстовый редактор, который поддерживает полное использование клавиатуры, поэтому вам никогда не придется использовать мышь. Мало того, что мышь медленная , но подвержена ошибкам - особенно легко выбрать или удалить неправильный текст.

Теперь, что это связано с командной строкой? Преимуществом командной строки является то, что она позволяет избежать медленной, подверженной ошибкам мыши. Вместо этого вы печатаете, и вы делаете это из одного места; вам не нужно искать другое меню или щелкнуть там, а затем здесь. По той же причине людям нравится использовать быстрые клавиши для веб-браузера (чтобы открыть новые вкладки / окна, использовать Gmail и т. Д.); им придется набирать URL (или электронную почту или что-то еще) в любом случае ... зачем отвлекать руку от ключей?

Но самое главное, так же, как сочетания клавиш являются самыми мощными, когда вы начинаете использовать их вместе (а не только один или два), вы можете объединять команды вместе, чтобы делать более мощные вещи, которые либо будут выполняться навсегда через GUI, либо вы даже не представляли, что делать вообще. Например, из командной строки вы можете указать свой веб-браузер, я хочу постоянно обновлять эту веб-страницу каждые 30 секунд, искать определенный текст и, когда это произойдет, отправить мне и группе контактов электронное письмо с сообщением о том, что текст появился на веб-странице. В качестве другого примера вы можете рассказать о своем компьютере, я хочу просмотреть ВСЕ письма, которые я когда-либо писал, искать ссылку на эту конкретную книгу, составить список дат, о которых я упоминал, и кому, заказать список в соответствии с частоту и поместить ее в это письмо, которое я печатаю сейчас.     

ответ дан Chan-Ho Suh 21.02.2012 в 02:07
11

CLI быстро используется, когда вы точно знаете, что вы хотите сделать и как это сделать. Это может быть намного эффективнее, чем использование gui. Кроме того, если вы хотите подключиться удаленно к вашему компьютеру, CLI намного проще по медленной ссылке. Если вам комфортно с CLI, вы также можете использовать скрипты.

Если вы google cli vs gui, вы получите тонны хитов, например:

Ссылка

Ваш вопрос не совсем специфичен для Ubuntu, linux или даже для ПК - вы получаете дебаты по этому вопросу из любой системы, которая поддерживает gui и cli, например. настройка маршрутизаторов Cisco.

    
ответ дан Amir 21.02.2012 в 02:01
10

В ответах есть ряд хороших моментов, но у меня есть еще одна дополнительная мысль. Иногда после установки или обновления приложение GUI не запускается и оставляет вас без сообщений об ошибках. В этих случаях очень полезно открыть окно терминала и запустить ap из командной строки. На терминале почти всегда больше информации, чем представлено при запуске из графического интерфейса.

    
ответ дан fragos 21.02.2012 в 10:21
8

Мой любимый меньше набирать . Как я могу это слышать? Ну, я вхожу в систему, обратный поиск или стрелку вверх) для команды, которую я набрал на прошлой неделе, и нажмите возврат каретки. Альтернативой является гораздо больше щелчков мыши (и пытается запомнить).

Мой второй фаворит облегчает ответ на вопросы о переполнении стека; Никаких скриншотов не требуется, просто текст.     

ответ дан ctrl-alt-delor 21.02.2012 в 15:39
5

Как насчет того, когда вам нужно что-то сделать как «root»? Вход в систему через GUI с правами root - плохая идея (и я даже не думаю, что Ubuntu позволит вам сделать это по умолчанию).

Также учтите, что GUI Linux (X11) - это просто работающая программа, как и все остальное. Если X11 должен упасть, вы будете рады, что знаете свою командную строку.

    
ответ дан Aaron 21.02.2012 в 02:05
5

Я просто хочу добавить пример, который я нахожу очень полезным, из инструкций по добавлению PPA для VirtualBox. Когда вы добавляете PPA, вы также должны зарегистрировать открытый ключ, поэтому GUI-метод:

  • загрузите ключ с помощью Firefox (или другого браузера).
  • открыть Synaptic (или другой APT gui)
  • поиск нужного пункта меню
  • найдите загруженный файл
  • наконец подтвердите

Объяснение этого в руководстве пользователя может быть дорогостоящим! Вместо этого это можно сделать с помощью одного & amp; простая командная строка:

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
    
ответ дан Pisu 21.02.2012 в 22:28
3

Командная строка работает очень хорошо, как в Windows, - помните, что текстовое поле msdos с черным фоном?

Он предоставляет пользователю возможность выдавать команды непосредственно на компьютер без утечки ресурсов компьютера, которые приносит пользовательский интерфейс. Это также способ выдачи мощных команд для выполнения действий, которые не могут быть выполнены с помощью графического интерфейса.

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

Добро пожаловать в Ubuntu и попросите Ubuntu. Это отличное место!

    
ответ дан Vic 21.02.2012 в 02:13
3

Для новичков терминал - это трудная задача, но если вы начнете изучать, как его использовать, становится легче. Как только вы чувствуете себя комфортно с ним, это дает вам чувство уверенности в том, что вы можете справляться с ситуациями, когда они ошибаются.

Например, когда программа gui отказывается запускать, и вы не знаете, что не так, вы можете запустить команду в терминале и часто видеть причину проблемы на выходе терминала. Затем вы можете скопировать некоторые из них в поиск и найти ответ, если это необходимо.

Вы можете ввести команду с «--help» и получить список параметров командной строки, которые могут быть полезны для некоторых особых случаев.

Если что-то пойдет не так, и графический интерфейс вообще не запустится, вы можете часто открывать виртуальный терминал или, возможно, только командную строку при загрузке, и исправлять проблему, редактируя файл конфигурации или запуская программу командной строки .     

ответ дан Marty Fried 21.02.2012 в 23:48
2

Проще говоря, у вас более ста клавиш, которые могут управлять / говорить / заказывать компьютер, а не одну мышь с двумя или тремя кнопками. Чем больше у вас контроль, тем быстрее вы можете быть.

Для тех, кто не знает ввода, экранная клавиатура может выглядеть великолепно. Однако быстрее вы можете использовать мышь, вы не можете вводить быстрее, чем использовать клавиатуру.

Если вы используете мышь / окна, это похоже на компьютер, контролирующий вас и диктующий, что вы можете сделать. Когда вы привыкнете к миру командной строки, вы можете почувствовать, что вся система под вашим контролем ждет вашего заказа. Вы должны испытать это, чтобы понять разницу.

    
ответ дан balki 24.02.2012 в 18:35
1

Я даже не вижу смысла проверять ответ lol. Так или иначе. Терминал похож на ваш CMD на Windows. Еще во времена, когда появился графический интерфейс, люди программируют и работают в режиме DOS, довольно простое Терминал. GUI создан, чтобы сделать задачу проще и проще, но иногда использование GUI на самом деле требует больше работы.

Например, как разработчик, если я просто хочу скомпилировать C ++-программу, мне не нужно использовать сложную среду IDE. IDE - это интерфейс графического интерфейса, который имеет множество дополнительных функций, которые простой текстовый редактор не предлагает. Поэтому вместо загрузки действительно большой IDE для простой задачи я могу просто написать следующее, и он выполнит мою программу на C ++, исполняемый файл которой называется main .

g++ -o main main.cpp
chmod 777 main
./main

Если вы используете язык интерпретатора, такой как Python, вы можете ввести интерактивную оболочку Python. Да. Есть интерактивные оболочки, которые завернуты в красивый графический интерфейс, но он медленнее и глючит (о, думаю, IDLE ...)

Иногда, когда графический интерфейс прерывается, вы можете попробовать использовать Terminal для его открытия. Иногда некоторые программные продукты в Linux не предлагают хороший графический интерфейс или очень сложно найти, где находится GUI-пусковая установка, вы просто переходите к терминалу и печатаете, например:

xpdf homework.pdf

Это откроет вам домашнюю домашнюю страницу .pdf.

В других ситуациях графический интерфейс не обеспечивает достаточную мощность и магию для выполнения вашей задачи. Некоторые функции поиска очень просты, и вы не можете применять поиск глубин или сложный шаблон поиска. Но через терминал команда может выдаваться с действительно сложным и длинным шаблоном.

Графический интерфейс приятный, но иногда с помощью команд вы можете сделать вещи проще. Иногда у вас просто нет выбора: вы должны использовать команды через терминалы.     

ответ дан CppLearner 21.02.2012 в 22:38
1

Я бы добавил боковую точку, которая, кажется, не упоминается, даже если это не истинное преимущество.

Подумайте о том, что GUI похож на «панель», которая дает доступ к функциям, которые имеет настоящая программа . Многие программы, особенно если в ранней версии, не имеют графического интерфейса, и вы можете запускать их только с терминала. И, как указывали другие, даже приложения, имеющие графический интерфейс, иногда не имеют интерфейсов для всех функций; для этих функций вы должны использовать терминал.

    
ответ дан clabacchio 23.02.2012 в 12:19
0

Все хорошо описали преимущества, я бы просто хотел добавить, что помимо прозрачности, где вы видите все перечисленные зависимости, его скорость. После кончины синаптики из Ubuntu, программный центр просто слишком отсталый, особенно на медленных машинах, здесь установка с терминала происходит быстрее.

    
ответ дан Arup Roy Chowdhury 21.02.2012 в 15:44