有用的 bash 别名以及生成最常用命令的列表

有用的 bash 别名以及生成最常用命令的列表

我发现文章讨论了一种快速对 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/configssh 密钥使得机器之间的跳转变得更加容易。

我最喜欢的另一个别名是用于向上移动目录:

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'

因此添加新内容非常简单。

相关内容