Что случай без CLI и оболочки?

Я могу сказать, что оболочка является функцией CLI, это - интерпретатор командной строки?

Без любой оболочки у нас есть много проблем, но возможно работать с ОС. Например, вместо ls я должен использовать /usr/bin/ls /full/path/to/current/place/

Без CLI это не возможно, потому что у пользователей нет интерфейса для разговора с ядром для того, чтобы делать их работы?

Объясните различие между оболочкой и CLI для ответа на этот вопрос

0
задан 5 October 2016 в 18:45

3 ответа

Интерфейс по сравнению с Shell

Там является большим количеством беспорядка о том, что является Интерфейсом командной строки и что является Shell. Как был упомянут в комментариях, независимо от того, что имеет "интерфейсное" слово в нем, идея или теория. Когда Вы услышите, что слово "взаимодействует через интерфейс", думайте "идея для связи с компьютером". Интерфейс может быть между двумя компьютерами, как кабель Ethernet, но также и между компьютер и пользователь .

Shell - то, что теория помещала для осуществления. CLI говорит, что пользователь взаимодействует с компьютером с помощью текста, и оболочка делает точно это. Графический интерфейс пользователя говорит, что "пользователь взаимодействует через кнопки и значки", и GNOME или Единица обеспечивают это. Оболочка является фактической частью программного обеспечения, некоторый объект, который пользователь может использовать для взаимодействия с компьютером. "Интерфейс" просто излагает идею того, как то взаимодействие должно произойти. В наше время они используются попеременно и "CLI", и "Shell" стал синонимичным.

Назад в день, когда компьютеры использовали рулоны бумаги для распечатывания информации, интерфейс командной строки был единственной идеей. Посмотрите, например, это видео: https://www.youtube.com/watch? v=qv5b1Xowxdk, Уверенный, нет никакой оболочки как удар или ksh, но существует минимальная оболочка, которая читает, пользователь управляет и обрабатывает их.

, Что происходит без CLI и оболочки?

Думают об этом в течение секунды: Почему мы должны окружить? Для взаимодействия с пользователем! Что относительно времен, где нет никакой потребности во взаимодействии с пользователем? Затем нет никакой потребности в оболочке. Яркий пример этого является стиральными машинами, беспроводными принтерами, кофеварками. Те устройства уже выполняют ядро Linux, но нет никакой потребности во взаимодействии с пользователем с помощью текста. Мы должны обнаружить нажатия кнопки и изменения давления и напряжения. Таким образом, нет никакой потребности в интерфейсе оболочки/командной строки. Однако все еще возможно получить его через умные методы разработки/взламывания: https://www.youtube.com/watch? v=h5PRvBpLuJs

Думает о микросхемах микроконтроллера. Я работал с микросхемами PIC18, например. Эти парни просто сидят на их печатной плате и навсегда выполняют код C. Нет никакой реальной потребности считать команды. Но для моего проекта я соединил ту микросхему с Raspberry Pi, и отправлял текстовые символы как A, B, C к нему. Это - взаимодействие с пользователем! Вы могли утверждать, что это - минимальная оболочка для общения с устройством.

Коммуникация без оболочки

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

1
ответ дан 28 September 2019 в 11:15

"Оболочку" в Вашем смысле, я думаю, считают интерфейсом, которым Вы взаимодействуете со своей машиной, ли это быть терминалом, графическим интерфейсом или некоторой прямой ссылкой мозга к машине. Более точно можно было сказать, что "оболочка" является программой (sh, bash, X11, Gnome, KDE, BrainLink 3.2, безотносительно), который взаимодействует через интерфейс с аппаратными средствами, чтобы позволить Вам взаимодействовать со своей машиной.

Между тем, CLI (или Интерфейс командной строки) является типом оболочки, которая позволяет Вам получать доступ к командной строке системы (следовательно интерфейс Word ).

, Поскольку Вы обнаружили, не, все оболочки создаются то же. Некоторая графика предложения (как X11/Unity), в то время как некоторые - только терминальный доступ, как Ваш средний TTY. Даже в этом, эти оболочки могут отличаться из-за программы, выполняющей их. Например, эти /bin/sh оболочка относительно проста и предлагает основной CLI, в то время как /bin/bash предложения далекий [еще 116] возможность. Оба - все еще технически оболочки, как некоторая очень простая программа, которая просто звонит exec() на том, что Вы передаете ее.

Даже без CLI, Ваша система может все еще быть на 100% полезной. Возьмите Windows или macOS, например. Ни один из них действительно не требует CLI (и я уверен, что они удалили бы его полностью, если они могли), но система все еще очень применима.

Иметь это в виду, тем не менее, каждый система имеет командную строку в наличии, но не каждая система имеет интерфейс командной строки, открытый, чтобы Вы использовали. На обороте оболочка (графический или консоль) необходима, чтобы Вы смогли взаимодействовать через интерфейс со своей машиной для запущения произвольных программ. Например, Ваше основанное на Linux Smart TV является технически "оболочкой", поскольку оно может запустить произвольные приложения, но Ваш парковочный счетчик, также работающий, встроил Linux, не имеет такой потребности в публично стоящем (или даже частное направление) оболочка.

1
ответ дан 28 September 2019 в 11:15

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

Простой сценарий, который я использую ежедневно, из Libre Office Calc для запуска сотен команд bash и сохранения результатов в электронной таблице.

0
ответ дан 28 September 2019 в 11:15

Другие вопросы по тегам:

Похожие вопросы: