我发现这篇文章讨论一个快速的方法来sorting你的bash历史,并看看你使用哪个命令最多:
cut -f1 -d" " .bash_history | sort | uniq -c | sort -nr | head -n 30
它真的会打开你的眼睛,你应该为哪些任务创build别名,以及应该完全清除哪些任务。
我很高兴看到推荐的命令行别名的ServerFault列表,节省您的时间在工作 。 你有什么?
在我们之间,我敢打赌,我们可以每天至less保存10分钟以内的每个阅读这篇文章的用户。 (减去第一天,他们浪费所有的时间阅读ServerFault,而不是当然做他们的工作!)
我处理了很多不同的机器,所以我最喜欢的是我需要经常SSH连接的每台机器的别名。
alias claudius="ssh dinomite@claudius"
设置一个好的.ssh/config和ssh密钥以使机器间的跳跃更容易,这也是非常有用的。
另一个我最喜欢的别名是移动目录:
alias ..="cd .." alias ...="cd ../.." alias ....="cd ../../.." alias .....="cd ../../../.."
还有一些针对ls (和拼写错误)的常用变体:
alias ll="ls -l" alias lo="ls -o"alias lh="ls -lh" alias la="ls -la" alias sl="ls" alias l="ls" alias s="ls"
我几乎总是想要egrep :
alias grep="egrep"
从所有部分获取手册页
alias man="man -a"
我经常发现自己通过awk输出pipe道以获得输出的某一列,如在df -h | awk '{print $2}' df -h | awk '{print $2}'来查找每个磁盘的大小。 为了更容易,我在.bashrc中创build了一个函数fawk :
function fawk { first="awk '{print " last="}'" cmd="${first}\$${1}${last}" eval $cmd }
我现在可以运行df -h|fawk 2 ,这样可以节省很多打字的时间。
我使用了很多Perl,需要知道系统上安装的模块的版本:
function perlmodver { perl -M$1 -e 'print "Version " . $ARGV[0]->VERSION . " of " . $ARGV[0] . " is installed.\n"' $1 }
我通常喜欢打字,因为恐怕我会忘记所有关于我使用的命令。 我知道我可能是错的,但是如果我只是把Commandline中的每个命令粘贴到我的.bashrc中,我都不会知道这个系统。
请注意,我不是说我是最伟大的,我知道关于Linux的所有知识,远不止于此,我只是说我喜欢学习,记住我学到的知识。
这并不是说我不明白如何省时的别名(特别是对于较大的function,但是你必须看看脚本是否更好),但是,我个人不喜欢使用它们(至less并不总是)。
这就是说,Commandlinefu有一个别名的特殊标签 。 这是值得的。
我也觉得这是一个很好的例子:
alias less='less -FSRX'
这只会在输出大于屏幕时使用较less。
我所有的时间最喜欢的:
alias server_name='ssh -v -l username ip_address'
它不需要解释,是吗? 🙂
alias lt='ls -lhart'
alias active='grep -v -e "^$" -e"^ *#"'
alias svi='sudo vim'
alias scr='screen -Rd'
我不得不承认我有一些这样的..
alias sl=ls
尝试打击我的错别字:-)
我也有
alias aliases='xterm -e vim ~/.bash_aliases;reload' alias reload='. ~/.bash_aliases'
所以它很好,很容易添加新的。
alias cd..='cd ..'
for host in `awk '{ print $1 }' ~/.hostsILogIntoAllTheTime`; do alias $host='ssx '$host done
input主机名以login到主机。 注意:ssx是一个别名本身:
ssx='ssh -Y'
与共享密钥相结合,这是非常光滑的。
我发现恼人的整个apt-get和apt-cache的东西在debian / * buntu,特别是与sudo前缀,所以我有:
alias apti='sudo apt-get install' alias aptr='sudo apt-get remove' alias apts='apt-cache search'
创build.tar.gz
alias tarc="tar czvf"
提取.tar.gz
alias tarx="tar xzvf"
列表.tar.gz
alias tart="tar tzvf"
另见
我发现这个页面正在寻找一种方法来使用awk向我显示一个csv(tsv实际)文件的第n列。 上面的fawk函数几乎就是我想要的。 我稍微修改,添加一个可选的第二个参数,即文件名,所以我可以像awk一样正常使用它,而不仅仅是通过pipe道。
function fawk { first="awk '{print " last="}' $2" cmd="${first}\$${1}${last}" echo $cmd eval $cmd }
谢谢!
这不是一个别名,但看到别名SSH连接的人可能是有用的。
Openssh软件包有一个名为ssh-argv0的二进制文件,它通过符号链接工作。
所以,如果你做这样的事情:
sudo ln -s /usr/bin/ssh-argv0 /usr/local/bin/[email protected]
在$ PATH中有/ usr / local / bin,现在可以以用户“user”的身份连接到ssh.server.com,在shell提示符下编写它:
$ [email protected]
斯蒂芬斯+1回答。 唯一一个他没有覆盖的,我也使用的是别名我需要定期访问的各种点文件,如:
alias dotz='vi ~/.zshrc'
再加上一个即时添加别名function:
function add-alias { echo "alias $1=\047$2\047" >> ~/.zshrc }