Как создать командный ярлык в оболочках BASH или ZSHRC?


0

Я знаю, как создать aliasили, PATHоднако, они оба используются для навигации по папкам.

Как бы вы создали ярлык для быстрого ввода следующих команд каждый раз?

alog =tail -f /var/log/apache2/error_log

arestart =sudo apachectl restart

Таким образом , ярлык аналогично тому , как gitи svnкоманды работают


Что плохого в создании скрипта bash?
fp

1
В Баш:alias alog='tail -f /var/log/apache2/error_log'
ot--

Bash aliasне только для навигации по папкам, вы можете создавать все, что вы хотите, для чего. Так что не так с alias arestart ='sudo apachectl restart':?
kenorb

1
Вы, ребята, правы, я думал, что aliasтолько для навигации cdвпереди .. Вы хотите опубликовать ответ?
Леон Габан,

Ответы:


1

Это не правда, что aliasиспользуется только для навигации по папкам. Его можно использовать и для других команд (поэтому он и называется alias).

В примере:

alias arestart='sudo apachectl restart'
alias alog='tail -f /var/log/apache2/error_log'

и поместите их в ~/.bashrcили ~/.bash_profile.

Или вы можете захотеть поместить все ваши определения псевдонимов в отдельный файл, например ~/.bash_aliases(смотрите bash-doc / examples в пакете bash-doc). И вы можете включить определение псевдонима в ваш ~/.bashrcследующий:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

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

# Restart apache
# Usage: arestart
arestart() {
  sudo apachectl restart
}

# Show log via tail.
# Usage: alog (file)
alog() {
  tail -f "$1"
}

# Find file
# Usage: ff (file)
ff() {
  find . -name "$1"
}

# Search in command history.
# Usage: hs (string)
hs() {
  history | grep "$1"
}

1
Вы должны процитировать все это $1- в hs() { history | grep "$1"; }противном случае аргумент может быть разделен на слова и расширены имена файлов: например, hs "foo bar"результат grep: bar: No such file or directory (см. Gnu.org/software/bash/manual/bashref.html#Shell-Expansions )
glenn jackman
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.