Я когда-то реализовал аналогичную идею, такую как функция оболочки, которую я называю psg (для «ps | grep»)
psg() {
local -a patterns=()
(( $# == 0 )) && set -- $USER
for arg do
patterns+=( "-e" "[${arg:0:1}]${arg:1}" )
done
ps -ef | grep "${patterns[@]}"
}
Это использует трюк для размещения первого символа шаблон в скобках, поэтому вы получаете
ps -ef | grep "[s]omename"
Это позволяет вам отбросить часть grep -v grep конвейера.
Если вы не передадите какие-либо аргументы, он использует ваши имя пользователя для поиска ваших процессов.
Терминальный эмулятор (часто называемый терминалом) - это «просто окно», да. Он запускает текстовую программу, которая по умолчанию является вашей оболочкой входа (которая является bash в Ubuntu). Когда вы вводите символы в окне, терминал рисует эти символы в окне в дополнение к отправке его на stdin оболочки (или другой программы). Символы, выводимые оболочкой на stdout и stderr, отправляются на терминал, который, в свою очередь, рисует эти символы в окне.
Итак, оболочка и эмулятор терминала являются полностью отдельными программами и могут быть используется без другого.
Я думаю, что этот вопрос был тщательно изучен на сайте Unix и Linux stackexchange: Различия между оболочкой, консолью и терминалом
Да, эмулятор терминала и оболочка - это две разные программы. Как вам известно, один из примеров разницы заключается в том, что запуск терминального окна может запускать разные оболочки в зависимости от того, что вы настроили (bash, tcsh, ksh, ash, even python!).
Еще одно отличие заключается в том, что эмуляторов терминалов больше, чем только по умолчанию: gnome-terminal, несколько разновидностей xterm, консоль (для KDE) и т. д. (см .: http://www.howtogeek.com/howto/ubuntu/set-the- default-terminal-emulator-on-ubuntu-linux /). Любая оболочка может быть запущена в любом из этих эмуляторов терминала без особых трудностей.
Третье отличие состоит в том, что помимо запуска команд оболочки вы также можете запускать определенные интерактивные приложения в своем эмуляторе терминала, и они будут запускаться в том же окне (и все еще полагаться на ту же программу эмулятора терминала для обработки фактической графики), например, текстовый редактор vim, RPG Nethack и другие. Если вы захотите, вы можете настроить профиль в своем эмуляторе терминала, чтобы начать взломать, скажем, автоматически, когда вы открыли новую вкладку; никакая оболочка не задействована, но эмулятор терминала по-прежнему остается одной и той же программой.
Четвертое различие заключается в том, что вы можете выполнять удаленные логины, используя такую программу, как ssh, из окна терминала. В этом случае ваша оболочка (или любая другая программа, которую вы запускаете удаленно) запускается на другом компьютере, а программа ssh соединяет ее с программой эмуляции локального терминала, запущенной на вашем компьютере, которая обрабатывает графику.
Я думаю, что этот вопрос был тщательно изучен на сайте UNIX и Linux stackexchange: Различия между оболочкой, консолью и терминалом
Я думаю, что этот вопрос был тщательно изучен на сайте UNIX и Linux stackexchange: Различия между оболочкой, консолью и терминалом