Overview

很多时候由于在命令行会经常使用到很长的命令或者进一个很长的目录,可能需要为常用的命令取一个别名。通常有两种别名的方式,一种是不带参数的别名,一种是可以自带参数的别名。
两种方式都是通过修改shell的配置文件实现,该配置目录在home目录下,默认是隐藏文件,在home目录使用ls -a就可以看到。如果使用bsh,则文件名为.bshrc文件,如果使用zsh,则文件名为.zshrc

不带参数的别名

通常使用alias命令来为长命令创建别名。

    alias sw="ssh wangjiawei@120.24.231.154"

shell配置文件中添加上述代码,就可以在命令行使用sw来代替每次ssh登陆时这一长串命令。

    alias cc="cd..;ls"

由于我习惯,每次返回上一级目录的时候,显示上一级目录的文件列表,因此使用了cc来代替每次执行两条命令。

带参数的命令

有时候我们需要别名也可以带参数,比如使用lsof -i tcp:8888可以查看8888端口是否被占用。如果想为这条命令取一个简短的别名port,需要可以使用port 8080来查看8080端口的占用情况。

    # belongs to port
    # usage: "port 8000"
    function port() { lsof -i tcp:$1 }

使用function的方式,可以指定自带参数。

    # all open ports
    # usage: "ports"
    function ports() { lsof -Pni4 | grep LISTEN }

使用function方式也可以起到alias的效果。上述语句使得用户使用命令ports就可以列出来所有被使用的参数,不用自带参数。