Я только что установил Ubuntu пару дней назад. Насколько я могу судить, терминал является огромной частью любого дистрибутива Linux. Мой вопрос на данный момент, почему? Когда я смотрю что-нибудь об этом, команды, помещенные в терминал, легко выполняются через графический интерфейс. Итак, каковы преимущества использования терминала?
Редактировать: Спасибо за ответы всех. Немного покопавшись и с помощью ваших ответов, теперь я могу понять его использование. Я с гордостью могу сказать, что в течение последних 3 дней я использовал его практически для всего, и я надеюсь, что скоро смогу лучше понять сценарии.
command-line
LurkDog
источник
источник
Ответы:
Терминал в Unix - замечательный, мощный инструмент. При переходе из мира Windows это трудно оценить, поскольку оболочка Windows (cmd.exe), как мне приятно сказать, отсутствует. Большинство * NIX по умолчанию оболочка (
bash
,zsh
и т.д.) имеет ряд преимуществ:Он стандартизирован через POSIX и спецификацию Single Unix, поэтому сценарий, который вы пишете для одного компьютера, скорее всего, будет работать на всех POSIX-совместимых компьютерах (при условии, что вы ограничиваетесь стандартными командами, которых много ). Microsoft имеет привычку включать инструменты в некоторых версиях, а не в других, делая пакетное программирование очень популярным
Поскольку Unix был собран из терминала, большинство всего настраивается из командной строки. До некоторой степени Windows была такой, но они решили отказаться от 16-битной подсистемы и DOS. Теперь графический интерфейс - это единственный способ изменить некоторые вещи в Windows.
Потому что это так гибко. Команды могут быть переданы вместе (
ls | grep filename
), они могут быть захвачены (gcc program.c > ./standard_out 2> ./standard_error
), и могут быть заменены (ls /home/`whoami`
илиls /home/$(whoami)
)Потому что утилиты UNIX предназначены для одной цели, и делают это хорошо. Просто посмотрите на
awk
,grep
,sed
,wget
или множество других. Сами по себе они выполняют одну задачу, но, учитывая № 3 и № 2, они могут быть встроены в мощные выражения.Из-за способности автоматизировать задачи.
cron
Сценарии bash позволяют упростить или полностью автоматизировать длинные, сложные и / или повторяющиеся задачи.Потому что люди подвержены ошибкам. Относительно короткие сценарии оболочки могут использоваться для последовательного изменения настроек. Проверки безопасности могут быть встроены в сценарии, а не полагаться на то, что пользователи знают, какие команды безопасно выполнять в различных обстоятельствах.
источник
ls /home/$(whoami)
сейчас :-)cron
, он встретит тебя у двери с ним, когда ты вернешься с работы ...Есть множество преимуществ использования терминала. Аргументы варьируются от удобства, производительности до ностальгии. Вот некоторые :
Есть некоторые вещи, которые вы (скорее я) просто не можете выполнить с помощью графического интерфейса. Это не потому, что это не выполнимо, это просто потому, что никто не удосужился написать GUI для этих команд. Например, если я хотел использовать какую-то команду, скажем,
mdf2iso
чтобы конвертировать целую кучу файлов в папку. Я могу передать вывод с помощью|
оператора и сделать это за один ход.Для многих из нас это просто так, как должно быть. Имейте в виду, что это имеет мало общего с опытом. Я не эксперт по Linux, я просто обычный пользователь, но я предпочитаю использовать командную строку везде, где это возможно. Это не столько аргумент о том, почему его следует использовать, сколько о том, почему он используется.
Скрипты - мощная вещь. Вы можете использовать условия,
if
циклы иfor
т. Д. И делать все что угодно, комбинируя силу выше. Там нет предела мощности сценариев. Вы можете автоматизировать сложные задачи, которые соответствуют вашим требованиям. Для таких вещей часто бывает трудно найти приложение с графическим интерфейсом, которое соответствует вашим требованиям.Вы можете выполнять задачи с помощью удаленного входа, даже при очень низкой пропускной способности.
Помощь, написание учебников и т. Д. Намного проще, если вы можете указать команды другому человеку. Таким образом, вам не нужно делать скриншоты. Это имеет еще одно преимущество для человека, которому также помогают, что подводит нас к следующему пункту.
Использование командной строки обычно дает вам лучшее понимание того, что вы делаете и что происходит.
И, наконец, это просто быстрее. Гораздо быстрее набрать несколько букв и нажать, TABчем нажимать бесконечные пункты меню. Вы можете использовать,
!mo
чтобы вызвать последнюю команду, с которой вы началиmo
(например, mount) и так далее.Я уверен, что есть тысяча других причин, которые я не упомянул.
источник
В итоге? Потому что вы начинаете писать сценарии, и замечательная вещь в сценарии заключается в следующем:
Вместо того, чтобы изменять то, как вы делаете вещи, вы можете изменить скрипт, который их выполняет.
Вы можете писать скрипты для терминала, а вы обычно не можете для графических программ, поэтому люди используют терминал.
Но я чувствую намек на «Почему я должен использовать терминал?» в вашем вопросе. Я не могу ответить на это для вас, вы - это вы, а я - не вы, но этот связанный вопрос может дать вам некоторое представление:
Как / почему люди заканчивают тем, что используют пользователи командной строки?
Я думаю, что вы могли бы выделить три этапа: (1) неохотное использование; (2) знание минимума, необходимого для комфорта; (3) находить, кто любит писать сценарии. Можно использовать терминал на всех трех уровнях; Узнайте, где останавливается ваше любопытство. Кроме того, можно действительно очень быстро пройти через эти этапы, если просто решит, что хочет изучить сценарии оболочки.
«Мне нужна эта программа, поэтому я думаю, что буду использовать командную строку».
Обычно это начинается потому, что люди находят, что им нужен какой-то специалист или хитрость, а программа, которую Google / форум / друг рекомендует для программы, оказывается командной строкой. Таким образом, они открывают терминал и вводят то, что в инструкциях им сказано, и вот как они приходят, чтобы использовать терминал. Примеры таких программ, которые заставляют вас использовать командную строку:
rename
прекрасная маленькая программа, которая позволяет вам переименовывать тонны файлов в соответствии с шаблоном. Простой пример:rename s/myfile([0-9]+).txt/$1-myfile.txt/
превращает все файлы с именем «bond007.txt» в «007-bond.txt», независимо от того, какое это число. Возможно, вы хотите переименовать некоторые файлы музыкальных альбомов.Обратите внимание, что для многих из этих систем существуют графические интерфейсы, но это не относится к делу: вызов командной строки является обычным и традиционным, многие HOWTO предполагают это, и именно так все и начинается. Потому что:
«Хорошо, теперь мне немного комфортнее».
Оказавшись внутри командной строки, люди начинают думать: не было бы легко, если бы я мог просто ..
cd mydir
для «изменения каталога»)ls *.txt
для «списка»)mv myfile newname
,,cp myfile mycopy
иrm myfile
, для «переместить», «скопировать» и «удалить»)gedit myfile
илиleafpad
, илиnano
, илиvim
, или как угодно.)После того, как люди выучили эти пять команд, им стало удобно в командной строке: они могут двигаться, смотреть и взаимодействовать. Это даже немного мощно: вы можете работать с целыми группами файлов одновременно такими командами
mv iceland-*.jpg My_Iceland_Pics/
, и разве это не круто?Сейчас многие люди с удовольствием останавливаются здесь. Они знают, как использовать терминал, они будут использовать его, когда им это нужно, и это все. Это уровень «терминал полезен». Люди, которые предпочитают терминал, однако, обычно делают это, потому что им нужно / хочется / чувствую, что они не могут обойтись без впечатляющей силы, которую предлагает сценарий. И это обычно начинается так:
«Эй, скрипт - это всего лишь несколько команд в файле!»
Эта реализация может привести к нескольким дальнейшим изменениям, в зависимости от человека. Многие, конечно, просто говорят: «Мех». нет смысла изучать то, что вам не нужно. Во всяком случае, такие вещи могут произойти:
if something_is_true; then step1a; step2; else step1b; fi
, а такжеfor file in list_of_files; do process1 $file; process2 $file; step3; done
Вы можете не испытывать все или даже любые из этих вещей. Однако чем больше к вам относится, тем лучше будет терминал для вас . Вы сами узнаете, сколько вы в конечном итоге используете его. Веселиться!
Пост скриптум. В программировании
script -> run -> result
иinput -> process -> output
рабочие процессы чрезвычайно распространены, и терминал прекрасно подходит для этих рабочих процессов. Добавьте к этому тот факт, что оболочка на самом деле является не чем иным, как другим языком программирования, и вы поймете, почему существует такое огромное совпадение между пользователями командной строки и программистами.источник
Еще один момент, который нужно добавить: это весело использовать командную строку! ;)
( http://vladdolezal.com/blog/2008/the-real-reason-we-use-linux/ )
источник
Я просто отвечал на подобный вопрос, как этот на днях. Оказалось, что этот человек никогда не использовал сочетания клавиш для каких-либо действий, поэтому это было долгое обсуждение. Я надеюсь, что вы немного знакомы с ними ... это сделало бы мои пункты более понятными.
Подумайте об использовании текстового процессора. Если вы сохраняете файл, вы можете использовать сочетание клавиш, например ctrl-s. Кто-то может сказать: «Я предпочитаю использовать меню. Это не экономит мне много времени, чтобы использовать ярлык. И если вам нужно сохранить новый файл, вы должны перейти через файловую систему в каталог, а затем набрать имя в любом случае. " Таким образом, этот возражающий является правильным, что каждое сочетание клавиш само по себе не экономит значительное количество времени. Истинная экономия заключается в объединении сочетаний клавиш, например, выбрать все, вырезать, вставить. Даже производители текстовых процессоров осознали это и сделали более удобным доступ к файловой структуре с помощью клавиатуры, например, возможность доступа к последним папкам / местоположениям с помощью клавиш со стрелками и клавишами.
Конечно, для выделения фрагментов текста часто требуется мышь ... именно поэтому программисты и люди, которые много редактируют, предпочитают использовать текстовый редактор, который поддерживает полноценное использование клавиатуры, поэтому вам никогда не придется использовать мышь. Мало того, что мышь медленная , но она подвержена ошибкам - особенно легко выбрать или удалить неправильный текст.
Какое отношение это имеет к командной строке? Преимущество командной строки в том, что она избегает использования медленной, подверженной ошибкам мыши. Вместо этого вы печатаете и делаете это из одного места; Вам не нужно искать другое меню или кликать туда-сюда. По этой же причине людям нравится использовать сочетания клавиш веб-браузера (чтобы открывать новые вкладки / окна, использовать Gmail и т. Д.); в любом случае им придется ввести URL (или адрес электронной почты, или что-то еще) ... зачем убирать руку от ключей?
Но самое главное, так же как сочетания клавиш являются наиболее мощными, когда вы начинаете использовать их все вместе (а не только одну или две), вы можете объединять команды в команды, чтобы делать более мощные вещи, которые либо будут проходить вечно через графический интерфейс, либо вы не сможете даже не представляю, что делаю вообще. Например, из командной строки вы можете сообщить своему веб-браузеру, что я хочу постоянно обновлять эту веб-страницу каждые 30 секунд, искать определенный текст, и когда это произойдет, отправьте мне и группе контактов электронное письмо, сообщающее, что текст появился на веб-странице. В качестве другого примера вы можете сказать своему компьютеру: я хочу просмотреть ВСЕ письма, которые я когда-либо писал, найти ссылку на эту конкретную книгу, составить список дат, о которых я упомянул, и кому, упорядочить список согласно частоту, и поместите это в это письмо, которое я сейчас печатаю.
источник
screen
консоль, я редко использую мышь, если она больше не предназначена для навигации по сайту. (Никто не мог лучше упомянуть рысь ...)Интерфейс командной строки быстро использовать, когда вы точно знаете, что вы хотите сделать и как это сделать. Это может быть намного эффективнее, чем использование графического интерфейса. Кроме того, если вы хотите удаленно подключиться к вашей машине, CLI намного проще на медленном канале. Если вы знакомы с CLI, вы также можете воспользоваться сценариями.
Если вы гуглите кли против графического интерфейса, вы получите тонны хитов, например:
http://www.computerhope.com/issues/ch000619.htm
Ваш вопрос не является специфическим для Ubuntu, Linux или даже ПК - вы обсуждаете эту тему в любой системе, поддерживающей графический интерфейс, например, при настройке маршрутизаторов Cisco.
источник
В ответах есть несколько хороших замечаний, но у меня есть еще одно замечание. Иногда после установки или обновления приложение с графическим интерфейсом не запускается и оставляет без сообщений об ошибках. В этих случаях может быть очень полезно открыть окно терминала и запустить ap из командной строки. На терминале почти всегда больше информации, чем представлено при запуске из графического интерфейса.
источник
Мой любимый - меньше печатать . Как это может быть, я слышу, вы спрашиваете. Что ж, я вхожу в систему, веду обратный поиск или стрелку вверх) для команды, которую я набрал на прошлой неделе, и нажал кнопку возврата каретки. Альтернатива гораздо больше щелчков мышью (и пытается запомнить).
Мой второй фаворит - это легче отвечать на вопросы о переполнении стека; Снимки экрана не нужны, только текст.
источник
Как насчет того, когда вам нужно сделать что-то от имени пользователя root? Вход в систему через графический интерфейс пользователя root является плохой идеей (и я даже не думаю, что Ubuntu позволит вам сделать это по умолчанию).
Также учтите, что Linux GUI (X11) - это просто запущенная программа, как и все остальное. Если X11 потерпит крах, вы будете рады, что знаете свою командную строку.
источник
Я просто хочу поделиться с примером, который я считаю очень полезным, из инструкции по добавлению PPA для VirtualBox. Когда вы добавляете PPA, вы также должны зарегистрировать открытый ключ, поэтому метод GUI:
Объяснение этого в руководстве пользователя может быть дорогим! Вместо этого это можно сделать с помощью одной простой командной строки:
источник
Командная строка работает довольно хорошо, как в Windows - помните, что текстовое поле ввода msdos с черным фоном?
Это дает пользователю возможность подавать команды непосредственно на компьютер без потери ресурсов компьютера, которые дает графический интерфейс. Это также способ выдачи мощных команд, чтобы делать то, что не может быть сделано через графический интерфейс.
Я не отказываюсь от полезности способа работы с графическим интерфейсом, но в руках опытного оператора способ командной строки может быть чрезвычайно быстрым и эффективным. В руках настоящего волшебника командная строка творит чудеса. Я едва поцарапал поверхность возможностей, каждый день узнавал что-то новое. Я никогда не буду волшебником - слишком старым - но я бы хотел быть средним оператором однажды ...
Добро пожаловать в Ubuntu и спросить Ubuntu. Это отличное место!
источник
Для новичка использование терминала - рутина, но если вы начнете изучать, как им пользоваться, станет легче. Как только вы чувствуете себя комфортно с ним, это дает вам чувство уверенности, что вы можете справиться с вещами, когда они идут не так, как надо.
Например, когда программа с графическим интерфейсом отказывается запускаться, и вы не имеете ни малейшего представления о том, что не так, вы можете запустить команду в терминале и часто видеть причину проблемы в выходных данных терминала. Затем вы можете скопировать часть этого в поиск и найти ответ, если это необходимо.
Вы можете ввести команду с помощью «--help» и получить список параметров командной строки, которые могут быть полезны для некоторых особых случаев.
Если что-то идет не так и графический интерфейс вообще не запускается, вы часто можете открыть виртуальный терминал или, возможно, просто командную строку при загрузке, и исправить проблему, отредактировав файл конфигурации или запустив программу командной строки.
источник
Проще говоря, у вас есть более ста клавиш, которые могут управлять / разговаривать / заказывать компьютер, а не одна мышь с двумя или тремя кнопками. Чем больше у вас элементов управления, тем быстрее вы можете быть.
Для тех, кто не знает, печатать, экранная клавиатура может выглядеть отлично. Как бы быстро вы не использовали мышь, вы не можете печатать быстрее, чем с помощью клавиатуры.
Если вы используете мышь / Windows, это как компьютер, который контролирует вас и диктует, что вы можете сделать. Когда вы привыкнете к миру командной строки, вы почувствуете, что вся система находится под вашим контролем в ожидании вашего заказа. Вы должны испытать это, чтобы понять разницу.
источник
Я даже не вижу смысла проверять ответ, лол. Так или иначе. Терминал похож на ваш CMD на Windows. В те дни, до появления GUI, люди программировали и работали в режиме DOS, в значительной степени, в терминале. GUI сделан, чтобы сделать задачу проще и проще, но иногда использование GUI на самом деле требует больше работы.
Например, как разработчик, если я просто хочу скомпилировать программу на C ++, мне не нужно использовать сложную IDE. IDE - это графический интерфейс, который имеет много дополнительных функций, которые не предлагает простой текстовый редактор. Поэтому вместо загрузки действительно огромной IDE для простой задачи я могу написать следующее, и она выполнит мою программу на C ++, чей исполняемый файл называется
main
.Если вы используете язык интерпретатора, такой как Python, вы можете войти в интерактивную оболочку Python. Да. Есть интерактивные оболочки, которые обернуты в хороший графический интерфейс, но он медленнее и глючит (о, подумайте о IDLE ...)
Иногда, когда графический интерфейс не работает, вы можете попытаться использовать терминал, чтобы открыть его. Иногда, некоторые программы в Linux не предлагают хорошего графического интерфейса, или очень трудно найти, где находится программа запуска GUI, вы просто идете в терминал и набираете, например:
Это откроет homework.pdf для вас.
В других ситуациях графический интерфейс не предлагает достаточно силы и магии для выполнения вашей задачи. Некоторые функции поиска очень просты, и вы не можете применить глубинный поиск или сложный шаблон поиска. Но через терминал можно выдать команду с очень сложным и длинным шаблоном.
Графический интерфейс хорош, но иногда с помощью команд вы тоже можете упростить ситуацию. Иногда у вас просто нет выбора: вы должны использовать команды через терминалы.
источник
Я хотел бы добавить побочный момент, который, кажется, не упоминается, даже если это не настоящее преимущество.
Подумайте о том, что графический интерфейс похож на «панель», которая дает доступ к функциям, которые есть в реальной программе . Многие программы, особенно в ранних версиях, не имеют графического интерфейса, и вы можете запускать их только из терминала. И, как отмечали другие, даже приложения, которые имеют графический интерфейс, иногда не имеют интерфейсов для всех функций; для этих функций вы должны использовать терминал.
источник
Все хорошо описали преимущества, я просто хотел бы добавить, что помимо прозрачности вы можете увидеть все перечисленные зависимости, их скорость. После выхода Synaptic из Ubuntu, центр программного обеспечения слишком запаздывает, особенно на медленных машинах, здесь установка с терминала происходит намного быстрее.
источник