命令行工具 alias 既有用又相对简单。它的目的是通过为单行命令创建一个自定义名称来简化它。很有可能你已经有一些别名,即使你从未使用过这个工具。在 Bash 中,可以使用简单的文本编辑器创建别名,并将其存储在你的 $HOME/.bashrc 文件中。 如果你想看看已经设置了哪些别名,查看一下那个文件,或者直接在命令行输入 alias 并按下 Enter/Return 键。
这里有一些简单的别名,其中一些在我安装 Fedora 时已经在文件中了
alias cp='cp -v'
alias rm='rm -v'
alias mv='mv -v'
alias ls='ls --color'
alias ll='ls -l --color'
alias lh='ll -h'
上面的前三个别名确保每当我使用 cp、rm 或 mv 时,我都会得到详细的输出。其他的则稍微修改了 ls 命令的输出。
所有六个例子也展示了如何编写别名:首先是 alias 命令,然后是你给别名的名称,然后是等号,最后是用单引号括起来的完整命令。你可以使用现有的别名名称,也可以创建一个唯一的别名。
这些显然很简单,但让我们看看我设置的一些更复杂的别名。
打开 Emacs 文件
alias emacs='emacs %f --no-splash --maximize -fg "white" -bg "dark slate gray" -cr "yellow"'
我经常使用 Emacs,上面的命令确保了它的大小和外观是我喜欢的样子。请注意 %f,它是我在 emacs 命令后键入的文件名的占位符。 如果我想在 Emacs 中创建一个新文件,我只需键入一个不存在的文件名即可。
使用温度转换脚本
alias temp='/home/gregp/perl/tempconv.pl'
这是我创建的别名,用于去年我写过的温度转换 Perl 脚本。 虽然没有显示,但你必须在 temp 之后加上一个数字才能使脚本工作。
追踪人员
alias census2file='pg_dump -vt census gregp > census.out'
alias fromfile='psql -e gregp < census.out'
当我还在行医时,我曾经使用 PostgreSQL 跟踪我的医院病人名单和个人就诊情况,这样我就可以根据需要对信息进行切片和切块。我同时使用了笔记本电脑和台式机,为了在两个系统上保持这些信息的最新状态,我创建了上面的两个别名。
使用第一个别名,我可以将一个系统中的 "census" 表的内容转储出来,然后使用第二个别名在另一个系统上用 psql 导入它。 每当我将 Fedora 升级到更新版本时,我也会使用这些别名。
一起运行多个命令
有时你可能希望使用一个别名来运行多个命令。你可以使用 alias 工具来做到这一点,就像你在命令行上一样。
例如,我下载并编译了一个命令行工具 weather,它运行得很好,尽管我花了一段时间才找到我想要的天气站的精确名称,而且它也只能从它所在的目录中运行。
alias weather='cd /home/gregp/Downloads/weather-2.3;./weather "Louisville East CCD";cd /home/gregp'
在上面的例子中,三个命令用分号分隔(就像它们在命令行上一样)。 该别名将我带到正确的目录,运行 weather 命令,然后返回 /home。
alias forecast='cd /home/gregp/Downloads/weather-2.3;./weather -f -n "Louisville East CCD";cd /home/gregp'
获取天气预报需要设置一些开关,而这个 forecast 别名让我不必反复查找它们。
更新软件
最后,这是我迄今为止创建的最复杂的别名。
alias cmake15x='cmake . -DCMAKE_INSTALL_PREFIX:PATH=/home/gregp/scribus15x -DWANT_DEBUG=1 -DWANT_HUNSPELL=1 -DWANT_GRAPHICSMAGICK=1'
我写这个是因为我一直在使用最新版本的 Scribus 并进行编译。 记住 svn up 从存储库更新 Scribus 很容易,但是然后我必须使用许多设置运行 cmake。 使用这个脚本,我只需键入 cmake15x,这比记住所有步骤容易多了。
命令行工具 alias 节省了我大量的时间和击键,尤其是对于经常使用或复杂的命令。 但是,我建议记下如何使用更复杂的命令,尤其是在需要不仅仅是命令的情况下。
9 条评论