最喜欢的Unix命令行别名?[关闭]


39

您最喜欢的命令行别名(bash / sh / tcsh)是什么?这是我的一些。

别名lsr ='ls -lrt'
别名gon ='cd $ HOME / Notes'
别名devdb ='mysql -h dev --user = x --password = secret dbname'
别名ec ='rm *〜'; #emacs清理
别名h ='history'
别名eb ='exec bash'; #Solaris有时默认为sh
别名mr ='more'
别名mroe ='more'
别名qd ='echo export DISPLAY = $ DISPLAY'
别名ralias ='。$ HOME / .alias'; #重读别名
别名,, ='cd ../ ..'
别名.. ='cd ..'
别名c ='clear'

18
mysql无需在命令行上将密码传递给(服务器上的其他任何人都可以看到!),而是将用户名和密码放在〜/ .my.cnf文件中,只需指定即可-up。MySQL工具将自动获取那些凭据,有关更多信息,请阅读mysql(1)。
亚历克斯·J

+1对于别名.. = 'CD ..'
mosg

为“ mroe” +1。我需要注意常见的拼写错误…
gWaldo

Answers:


12
function s()
{
    screen -t "$@" /usr/bin/ssh "$@"
}

在新的屏幕选项卡中连接到主机,并以设备名称作为选项卡标题。


11

到目前为止尚未提及的我的最爱:

alias l='ls'
alias u='cd ..'
alias uu='cd ../..'
alias uuu='cd ../../..'
alias uuuu='cd ../../../..'

我通常不喜欢别名,只会缩短内容,但是我输入ls的次数非常多,l只需要一只手。


+
1-

1
ls(和cd)只需要一只手...如果键盘映射是Dvorak!就此而言,与“ Enter”相同。
gbarry

8

没有,因为我永远不能保证它们将在我将登录的每个系统(以我自己,root或任何人身份)上进行配置。


1
究竟!像别名ls =“ ls --color = auto这样无害的东西很好,但是更改rm命令等等吗?永远不会
user9474 2009年

7

没有,我每天在系统之间进行如此多的更改,以至于我基本上放弃了。


您没有在各种计算机之间同步主目录吗? xoa.petdance.com/How_to:_Keep_your_home_directory_in_Subversion
安迪·莱斯特

我与一群约5k机器的其他管理员一起维护,这些机器中的大多数在它们的整个生命周期中都没有进行过远程交互式用户会话(所有安装和配置都是自动进行的),有时会出现一个比较棘手的问题,您必须登录。我们考虑过使用用户管理员帐户从共享的NFS分区自动挂载,但是使用它并不值得。
Martin P. Hellwig 2009年

1
...没有admin / root帐户在其路径中包含nfs目录-当NFS异常时,admin / root帐户也是如此。我的一些客户坚持要艰苦学习。
David Mackintosh,2009年

6
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; }

6

我的“别名列表”的总内容为:



我已经花了很多时间来修复我通常无法正常使用的unix机器(作为软件公司的内部unix管理员的缺点之一,您最终会进入客户站点,很多)我要做的是“ unalias -a”,以便普通生产管理员不会碰到任何拼写错误的拼写,在这之后定制起来实在太麻烦了。

这也延续到了我的正常用法中。


6
alias rm 'mv -f \!* $WASTEBASKET'
alias unrm 'mv $WASTEBASKET/\!* .'

我知道很多人会不同意,但是我喜欢安全网。(并且请尝试原谅我使用tcsh。)

不过,应该禁止这种类似的行为:

alias rm 'rm -i'

我见过在使用该别名的系统上进行过培训的人员,然后rm *在其他系统上键入内容,期望得到有关要删除哪些文件的问题,然后他们坐在那儿,观察该文件是否确实应执行的操作。

编辑:

一些评论将“移到垃圾桶”别名与“ -i”标志进行了比较,说它们是相似的。但是对我来说,有一个重要的区别。使用“ -i”,每次使用命令时都会收到确认提示,它成为您期望和依赖的东西。另一方面,废纸ket解决方案的工作原理与标准rm完全相同,直到您确实犯了一个错误并需要取消删除文件为止。这有点像训练轮和行李箱备用轮胎之间的区别。


bash等效项需要一个函数:del(){path = readlink -f "$1"mkdir -p $ WASTE $ path mv $ path $ WASTE $ path}它并不完美(因为它使用文件名创建了一个新的dir),但是可以正常工作。(把换行符留给读者练习!)
gbjbaanb

+1:我用的tcsh太:-)

+1:您原谅使用tcsh;)
bedwyr

6
公平地说,期望确认提示而不得到提示与期望它进入废纸and一样糟糕,而且这种情况不会发生。没什么不同,真的。
丹·乌迪

@丹:我也这么认为。别名实际上不应该被称为rm,而wb代表废纸ket或类似名称。
user9474

4

这些用于zsh,但是我想您可以轻松地将它们移植到另一个shell:

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

对不起,很抱歉,sudo vim和sudoedit有什么区别?sudo edit = sudo $ EDITOR吗?
olle

sudoedit在您的帐户(而不是root)下运行您的编辑器。这意味着您可以访问自己的〜/ .vimrc等。
亚历克斯J

1
+1更改sudo vi <somefile>sudoedit <somefile!+更多,如果我能
凯文中号

4

这是我的一些最爱。(一些是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 :)


4

这里有很多别名不是必需的:

别名c ='clear'

只需按[Ctrl] + [L]即可替换

别名mroe ='more'

类似:zsh默认提供拼写校正,bash带有扩展名

别名something =“ history | grep $ @”

按[Ctrl] + [R]在bash / zsh中执行相同的操作

back ='cd $ OLDPWD'

在每个shell中都可以这样做

光盘-




2
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'


2

在旧的perl脚本中搜索某些内容:

alias searchperl 'find /place1 /place2 /place3 -name "*.pl" | xargs grep

用电子邮件发送给我自己一个文件:

alias mailthis 'mail -s mailthis email@email.com < '

1
alias l='ls --color=auto -lsah'
alias ..='cd ..'

我在其他系统上经常想念它


1
history | awk '{print $2}' | awk 'BEGIN {FS="|"} {print $1}' | sort | uniq -c | sort -nr | head -10

显示历史记录中最常用的10个命令。


较短的版本,无需awk:历史记录| 切-f 5 -d''| 排序| uniq -c | 排序-n | 尾巴
Marcin

1
alias viewpw='aespipe -d < ~/.passwd.aes > ~/.passwd.dec && more ~/.passwd.dec && shred -u ~/.passwd.dec'

我如何记住我所有的密码...


1

这是我的最爱,可以在当前目录和子目录的所有Python代码中查找某些内容,但不包括与Subversion相关的内容:

alias greppy="find . | grep -v [.]svn | grep [.]py$ | xargs grep "


1

从我的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找出系统使用的软件包管理器,然后将其别名为aptand yum,这意味着在运行bashrc的任何计算机上,我都可以做:

apt search foo
yum install foo
apt update

它不是完美的,但是在yum和aptitude之间大多数常见的动作是相同的,当您尝试做更复杂的事情时,您仅可以记住所使用的操作系统。


1

可能是我的最爱,因为它使编写新别名变得如此容易:

alias realias='vim ~/.bash_aliases;source ~/.bash_aliases'

1

我会说这是我最喜欢的别名。

别名resume ='screen -D -R'

在我的Windows工作站每个周末自动重新启动后,事实证明这非常方便(Firm的政策)。


1
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

vboxheadless应该已经在您的$ PATH中:uname; 这vboxheadless达尔文的/ usr / bin中/ vboxheadless
欧莱

1

这适用于大多数linux桌面:

alias go='xdg-open'

与注册的应用程序一起打开文档或文件夹,类似于Windows上的启动命令。


1
将其更改为xdg-open,它应可在任何符合XDG的桌面环境中工作。
朱利诺2009年

1

还有更多补充:

# 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'

在这样的脚本中存储密码可能会很危险,除非您将密码设置为600。执行后,密码也会进入历史文件,这也很危险。
Marcin

1
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()"'

1

从命令行进行快速算术。使用“ x”进行乘法运算以避免扩展。

function math
{       
    echo "scale=2 ; $*" | sed -e "s:x:*:g" | sed -e "s:,::g" | bc
}


$ math 12,537.2 x 4
50148.8

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.