Eshell - это интерпретатор команд, похожий на обычную оболочку, но он не запускает bash или любую другую оболочку.Как и bash, он имеет несколько типов команд: в то время как bash имеет псевдонимы, функции и возвращается к $ PATH, eshell имеет псевдонимы, функции lisp, функции eshell и возвращается к $ PATH.
Итак, дляНапример, вы можете запустить:
~ $ find-file foo.txt
и функция lisp find-file
будет выполняться неинтерактивно (в отличие от Mx ), то есть все необходимые аргументы должныПередача. Это один из способов сказать emacs, что нужно редактировать файл из eshell.Вероятно, он быстрее запускается Cx Cf , поскольку по умолчанию используется каталог, в котором находится eshell.
При запуске:
~ $ ls
фактически запускает функцию eshell/ls
, которая будет получать список каталогов без вызова /bin/ls
.Есть похожие встроенные объекты;если вы запустите Ch f eshell / , вы можете получить их список.
Одним из основных моментов встроенных функций eshell является соответствие команд другим существующим функциям emacs.,Например, grep
войдет в буфер *grep*
, чтобы вы могли быстро перейти к результатам.
Он также имеет псевдонимы, которые несколько похожи на псевдонимы bash, но действуют немного как функции вкак они обрабатывают аргументы.Например, в bash вы можете сказать
alias ll='ls -l'
, в то время как в eshell вы скажете
alias ll ls -l '$*'
, и оба этих значения означаюттоже самое.$*
в основном означает «развернуть все аргументы», и его необходимо процитировать.Вы можете запустить alias
, чтобы увидеть все псевдонимы, которые вы создали.