我发现这文章讨论了一种快速对 bash 历史记录进行排序并查看最常使用哪些命令的方法:
cut -f1 -d" " .bash_history | sort | uniq -c | sort -nr | head -n 30
它确实让你大开眼界,让你知道哪些任务应该创建别名,哪些任务应该完全使用 cronjob 来处理。
我很想看到 ServerFault 推荐的命令行别名列表,这些别名可以节省你的工作时间。 你有什么?
我敢打赌,我们每天可以为阅读这篇文章的每位用户节省至少 10 分钟的时间。(当然,第一天他们把所有时间都浪费在阅读 ServerFault 上,而不是做他们的工作!)
答案1
我需要处理很多不同的机器,因此我最喜欢的一个方法是给每台需要经常通过 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
以获得输出的某一列,例如df -h | awk '{print $2}'
查找每个磁盘的大小。为了简化此操作,我fawk
在 .bashrc 中创建了一个函数:
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
}
答案2
我通常喜欢输入所有内容,因为我担心我会很快忘记我正在使用的所有命令。我知道我可能错了,但如果我只是把每个命令都粘贴进去,我想我就不会对系统有那么多了解命令行进入我的.bashrc。
请注意,我并不是说我是最伟大的,我了解有关 Linux 的所有知识,远非如此,我只是说我喜欢学习,并且喜欢通过使用来记住我所学到的知识。
这并不是说我不欣赏别名如何节省时间(特别是对于较大的函数,但你必须看看脚本是否更好),但是,就我个人而言,我不喜欢使用它们(至少不是总是)。
话虽如此,Commandlinefu 有一个特殊的标签别名。值得一看。
我也认为这是一个很好的:
alias less='less -FSRX'
如果输出大于屏幕,则只会使用较少的量。
答案3
我一直以来最喜欢的是:
alias server_name='ssh -v -l username ip_address'
这不需要解释,不是吗?:-)
答案4
我必须承认我有几个这样的......
alias sl=ls
尝试纠正我的错别字 :-)
我也有
alias aliases='xterm -e vim ~/.bash_aliases;reload'
alias reload='. ~/.bash_aliases'
因此添加新内容非常简单。