有用的的Bash别名(alias)及函数(functions)

Tags: linux bash shell alias

作为一个命令行的冒险家,你可能发现自己一遍又一遍重复着同样的冗长的命令。如果你总是ssh到同一台机器,如果你总是把相同的命令连接在一起,或者如果您经常使用相同的标志运行一个程序,你可能想挽救你的生命,因为你在浪费时间不停的重复同样的动作。 

解决这个问题的一种解决方案是使用alias。正如你知道的,alias可以让shell记住一个特殊的命令,并给它一个新的名字:alias。然而,alias很方便但也有限制,因为它只是shell命令的快捷方式,不传递或控制命令参数。不过,在bash中您可以创建自己的函数,它可以有长的和复杂的代码,并且也接受任意数量的参数。 

当然,像做汤一样,你分享你很好的配方。因此,这里是一些最有用的bash alias和函数的列表。需要注意的是"最有用"是松散的定义,当然alias的实用性取决于你每天如何使用sshell。 

在您开始使用别名之前,这里有一个方便的技巧:如果你的alias和普通的命令有相同的名称,你可以选择启动原来的命令,而忽略alias。

\command

例如,第一个alias替换下面的ls命令。如果你想使用普通的ls命令而不是alias,可以这样调用:

\ls

生产力

这些alias是非常简单的而且很短。但如果你每时每刻都积累一点点的话,一年下来会积累非常多的基本组件。

alias ls="ls --color=auto"

简单却至关重要的alias,使ls命令输出文件、文件夹的颜色。

alias ll = "ls --color -al"

以列表的方式显示目录结构并高亮文件、文件夹的颜色。

alias grep='grep --color=auto'

同样的,给grep的输出结果配上颜色

mcd() { mkdir -p "$1"; cd "$1";}

嗯,这是我最喜欢的。建立一个目录然后cd进去:mcd [name]。

cls() { cd "$1"; ls;}

跟前面一个一样,cd到目录中然后显示目录的内容: cls [name]。

backup() { cp "$1"{,.bak};}

创建文件备份的简单方法:backup [file]将在同一目录下创建[file].bak。

md5check() { md5sum "$1" | grep "$2";}

因为我讨厌手工比较文件的MD5SUM,这个函数计算MD5SUM后使用grep进行比较:md5check [file] [key]。

15412389280_8be57841ae_o.jpg

alias makescript="fc -rnl | head -1 >"

根据最后执行的命令创建一个脚本,makescript [script.sh]

alias genpasswd="strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo"

快速产生强口令的方法。


15574321206_dd365f0f0e.jpg

alias c="clear"

没有比这更简单的清空终端的方法了。

alias histg="history | grep"

可快速查找命令行历史

alias ..='cd ..'

现在返回上级菜单不需要再键入cd了

alias ...='cd ../..'

和上面一样,这次是向上返回两级目录。

extract() { 
    if [ -f $1 ] ; then 
      case $1 in 
        *.tar.bz2)   tar xjf $1     ;; 
        *.tar.gz)    tar xzf $1     ;; 
        *.bz2)       bunzip2 $1     ;; 
        *.rar)       unrar e $1     ;; 
        *.gz)        gunzip $1      ;; 
        *.tar)       tar xf $1      ;; 
        *.tbz2)      tar xjf $1     ;; 
        *.tgz)       tar xzf $1     ;; 
        *.zip)       unzip $1       ;; 
        *.Z)         uncompress $1  ;; 
        *.7z)        7z x $1        ;; 
        *)     echo "'$1' cannot be extracted via extract()" ;; 
         esac 
     else 
         echo "'$1' is not a valid file" 
     fi 
}

虽然很长但是也很有用,可以提取任何类型的压缩档案: extract [archive file]

本文链接:http://www.4byte.cn/learning/120057/you-yong-de-de-bash-bie-ming-alias-ji-han-shu-functions.html