Какие ваши любимые псевдонимы командной строки (bash / sh / tcsh)? Вот несколько моих.
alias lsr='ls -lrt' alias gon='cd $HOME/Notes' alias devdb='mysql -h dev --user=x --password=secret dbname' alias ec='rm *~'; # emacs cleanup alias h='history' alias eb='exec bash'; # Solaris sometimes defaults to sh alias mr='more' alias mroe='more' alias qd='echo export DISPLAY=$DISPLAY' alias ralias='. $HOME/.alias'; # reread aliases alias ,,='cd ../..' alias ..='cd ..' alias c='clear'
function s()
{
screen -t "$@" /usr/bin/ssh "$@"
}
Подключитесь к хосту на новой вкладке экрана с именем устройства в качестве заголовка вкладки.
Мои фавориты, которые пока не упоминались:
alias l='ls'
alias u='cd ..'
alias uu='cd ../..'
alias uuu='cd ../../..'
alias uuuu='cd ../../../..'
Обычно я не фанат псевдонимов, которые просто сокращают текст, но я очень много набираю l, и мне нужна только одна рука.
нет, поскольку я никогда не могу гарантировать, что они будут настроены в КАЖДОЙ системе, в которую я буду входить (как я, root или кто-то еще).
alias ..="cd .."
alias ...="cd ../.."
# mkdir and enter it immediately thereafter
mcd() { mkdir $1 && cd $1; }
# when entering a directory, list the contents.
cd() { builtin cd "$@" && ls; }
Нет, я так часто переключаюсь между системами каждый день, что практически отказался от этого.
alias rm 'mv -f \!* $WASTEBASKET'
alias unrm 'mv $WASTEBASKET/\!* .'
Я знаю, что многие не согласятся, но я лайк сети безопасности. (И, пожалуйста, простите меня за использование tcsh.)
Однако этот несколько похожий должен быть объявлен вне закона:
alias rm 'rm -i'
Я видел людей, которые обучались работе с системами с этим псевдонимом, а затем они набирали rm *
в какой-то другой системе, ожидая получить вопросы о том, какие файлы удалить, а затем они сидят и смотрят, как она делает именно то, что должна делать.
РЕДАКТИРОВАТЬ:
В некоторых комментариях псевдоним перемещения в корзину для мусора сравнивался с флагом «-i», говоря, что они похожи. Но для меня есть важное отличие. С «-i» вы получаете запрос подтверждения каждый раз, когда используете команду, и это становится тем, чего вы ожидаете и на что полагаетесь. С другой стороны, решение для корзины для мусора работает точно так же, как и стандартный rm, до тех пор, пока вы действительно не сделаете ошибку и не удалите файл. Это немного похоже на разницу между тренировочными колесами и запаской в багажнике.
Общее содержимое моего "списка псевдонимов":
Я потратил достаточно времени на исправление unix-машин, с которыми я «обычно» не работаю (один из недостатков того, что я был внутренним администратором unix для компании-разработчика программного обеспечения, вы оказывались на сайтах клиентов, много), что первое Я использую "unalias -a", просто чтобы любой псевдоним, который есть у обычного производственного администратора, случайно не взаимодействовал с неправильным написанием, после этого было бы слишком сложно настроить.
Это тоже вошло в мое обычное использование.
Здесь много псевдонимов, которые не нужны:
alias c='clear'
можно заменить, просто нажав [Ctrl] + [L]
alias mroe='more'
и тому подобное: zsh по умолчанию обеспечивает исправление орфографии, bash - с расширениями
alias something="history | grep $@"
нажатие [Ctrl] + [R] делает то же самое в bash / zsh
back='cd $OLDPWD'
то же самое можно сделать в любой оболочке с
cd -
Для проблемных коллег:
alias ls=rm
Вот некоторые из моих любимых. (Некоторые из них относятся к ZSH.)
alias ls='ls -F --color=auto'
alias l='ls'
alias ll='ls -ahl'
alias ..='cd ..'
alias ...='cd ../..'
alias mv='mv -i'
alias mmv='noglob zmv -W'
alias mcp='mmv -C'
mkcd() {
if [ $1 = "" ]; then
echo "Usage: mkcd <dir>"
else
mkdir -p $1
cd $1
fi
}
# ZSH global aliases for piping
alias -g H="| head"
alias -g T="| tail"
alias -g C="| wc -l"
alias -g L="| less"
alias -g G="| grep"
alias -g S="| sed -e"
alias -g A="| awk"
# Subversion related
alias ss='svn status'
alias sd='svn diff'
alias sc='svn commit'
# Git related
alias gs='git status'
alias gc='git commit'
alias ga='git add'
alias gd='git diff'
alias gb='git branch'
alias gl='git log'
alias gsb='git show-branch'
alias gco='git checkout'
alias gg='git grep'
alias gk='gitk --all'
alias gr='git rebase'
alias gri='git rebase --interactive'
alias gcp='git cherry-pick'
alias grm='git rm'
fortune -s # Add to your profile to brighten your day :)
Это для zsh, но я думаю, вы могли бы достаточно легко перенести их в другую оболочку:
sudo() { [[ $1 == (vi|vim) ]] && shift && sudoedit "$@" || command sudo "$@"; } # sudo vi/vim => sudoedit
wst() { TZ=Australia/Perth date } # get local time no matter what server I'm on
FULLHOST=`hostname -f` 2>/dev/null || FULLHOST=`hostname` # reasonably portable, always gets a DHCP suffix too (if one exists)
SHORTHOST=`echo $FULLHOST | cut -d. -f1-2` # get the first two segments of hostname, which I used in my shell prompt
alias cdd='cd /wherever/my/current/project/is'
alias perg='grep -rni --exclude=\*.svn\*'
alias df='df -kTh'
alias ll="ls -l --group-directories-first"
jldugger@jldugger:~ $ alias alias ls='ls --color=auto' alias youtube-dl='youtube-dl -t
Для поиска чего-либо в старых сценариях Perl:
alias searchperl 'find /place1 /place2 /place3 -name "*.pl" | xargs grep
Отправить мне файл по электронной почте:
alias mailthis 'mail -s mailthis email@email.com < '
p = 'пс auxww | grep -v grep | grep'
alias ls="ls --color=auto -A -h -i -s --group-directories-first -l"
alias screen="screen -U"
alias sscreen="~/Projects/bin/start_screen.sh"
alias gst='git status'
alias gl='git pull'
alias gp='git push'
alias gd='git diff | emacs'
alias gc='git commit -v'
alias gca='git commit -v -a'
alias gb='git branch'
alias gba='git branch -a'
alias dsclean='find . -name .DS_Store -exec rm \{\} \;'
alias l='ls -lh'
alias ls='ls -G'
# Depends on your specific router
alias myip='curl -sn http://192.168.1.1/wancfg.cmd?action=view | grep td | tail -1 | tr -d '\''/<>a-z '\'''
# Start/stop local mysql installation
alias myserver='sudo /usr/local/mysql/support-files/mysql.server'
alias rssh='ssh -l root'
alias sc='./script/console'
alias sr='screen -r'
alias ss='./script/server'
alias sss='screen ./script/server'
alias up='svn up'
alias webshare='python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"'
Еще несколько, чтобы добавить в кучу:
# little bit more readable PATH
alias path='echo -e ${PATH//:/\\n}'
# like others, I find these more efficient than
# typing cd ../../ etc
alias up='cd ..'
alias 2up='cd ../../'
alias 3up='cd ../../../'
alias 4up='cd ../../../../'
# found myself always mistyping this, so...
alias findy='find . -name'
alias targz='tar -xzvf'
alias hg='history | grep '
alias cls='clear'
# handy for the xclip tool
alias xclip='xclip -selection c'
# quick directory listing
alias ldir='ls -d */'
alias mys='mysql -uroot -psecret name-of-frequently-used-DB'
alias trash='mv -t ~/.local/share/Trash/files --backup=t'
alias vb='vim ~/.bashrc'
alias +='pushd .'
alias _='popd'
Это работает на большинстве настольных компьютеров Linux:
alias go='xdg-open'
Открывает документ или папку с зарегистрированным приложением, аналогично команде запуска в Windows.
if [ "$(uname)"="darwin" ]; then
EDITOR=mate
PATH=$PATH:~/.bin
alias sleep_hdd='sudo pmset -a hibernatemode 1'
alias sleep_ram='sudo pmset -a hibernatemode 0'
alias sleep_combined='sudo pmset -a hibernatemode 3'
alias cdproj='cd ~/Projects/Web'
alias e='mate'
alias vboxheadless='VBoxHeadless -startvm '
alias subash='sudo bash'
fi
if [ "$(uname)" = "SunOS" ]; then
alias ls='ls -F'
alias e='vim'
alias subash='pfexec bash'
fi
Я бы сказал, что это мой любимый псевдоним.
псевдоним резюме = 'экран -D -R'
Это оказалось очень удобно после того, как моя рабочая станция Windows автоматически перезагружалась каждые выходные (политика фирмы).
Наверное, мой любимый, так как с ним так легко писать новые псевдонимы:
alias realias='vim ~/.bash_aliases;source ~/.bash_aliases'
Несколько слов, взятых из моего bashrc:
alias grep='grep --color=auto'
alias egrep='grep -E --color=auto'
alias e='$EDITOR'
alias g='git'
alias csort='sort | uniq -c | sort -n' # column sort piped data
alias sl='ls' # fat fingers
Как правило, мой bashrc определяет, какой менеджер пакетов использует система, а затем называю его псевдонимом apt
и yum
, то есть на любой машине, на которой работает мой bashrc, я могу просто сделать:
apt search foo
yum install foo
apt update
Это не идеально, но большинство общих действий одинаковы для yum и aptitude, к тому времени, когда вы пытаетесь сделать что-то более сложное, вы можете просто вспомнить, на какой ОС вы работаете.
Вот мой любимый вариант - найти что-нибудь во всем коде Python в текущем и дочернем каталогах, за исключением тех, которые связаны с подрывной деятельностью:
alias greppy="find . | grep -v [.]svn | grep [.]py$ | xargs grep "
alias viewpw='aespipe -d < ~/.passwd.aes > ~/.passwd.dec && more ~/.passwd.dec && shred -u ~/.passwd.dec'
Как я помню все свои пароли ...
history | awk '{print $2}' | awk 'BEGIN {FS="|"} {print $1}' | sort | uniq -c | sort -nr | head -10
Покажите 10 самых популярных команд в вашей истории.
alias l='ls --color=auto -lsah'
alias ..='cd ..'
Я очень часто скучаю по другим системам
Быстрая арифметика из командной строки. Используйте «x» для умножения, чтобы избежать расширения.
function math
{
echo "scale=2 ; $*" | sed -e "s:x:*:g" | sed -e "s:,::g" | bc
}
$ math 12,537.2 x 4
50148.8