添加 Bash 自定义命令

今天看一个视频教程,看到视频中的老师用 subl . 命令,来用 Sublime Text 打开当前目录,还有用 Chrome index.html 命令,来用 Chrome 打开 index.html,真是酷炫!一开始没查到资料,上 Segmentfault 提问,别人给了个关键词 alias,自行查了下资料,将这酷炫的方法实现了。php

alias 命令

alias 命令简单来讲,就是将一些复杂繁琐的命令,简化成自定义的命令。语法以下:html

  • 查看当前的自定义命令列表
  • 添加一条自定义命令:alias {自定义指令名}='{具体指令}'
  • 删除一条自定义命令:unalias {自定义指令名}

举个例子:
在 Bash 中清屏的命令是 clear,若是我想用 clr 去代替,那么我就写 alias clr='clear'
这时用 alias 能够看到刚才添加的自定义命令 clr='clear'
执行 clr,成功清屏了,意味着命令执行成功。web

输入参数

若是光光是去代替固定的命令,那就没什么意思啦,不过咱们能够引入参数:chrome

  • $@ 表示一个参数,命令中能够添加多个 $@,使用时按顺序输入。

实现 subl、chrome 命令

我使用的是 Windows 系统,Sublime Text 的路径是 G:\Program Files\Sublime Text 2\sublime_text.exeshell

输入命令:alias sulb='"\G\Program Files\Sublime Text 2\sublime_text.exe" $@vim

如今,咱们可使用 sulb . 来打开当前目录了!bash

固然,chrome 命令同理。命令行

实现 web 命令,用以 localhost 打开指定文件(或目录)

因为使用 php 较多,因此常常会使用到 http://localhost/来打开 php 文件。这个时候上面的 chrome 就不能愉快地使用了。code

因为 php 文件夹是固定的,我将全部项目都存放在这个 php 的目录中,路径是 E:\www\,因此若是我要执行 E:\www\hello\index.php 的话,访问地址应该为 http://localhost/hello/index.php
访问地址与实际目录的区别就是 hello 前面那一个字符串,将之替换就好。视频

不过我使用的是另外的一个更简单方法,那就是先获取当前目录名,而后在前面添加 http://localhost 就好。

咱们会用到 $PWD 来获取当前路径,以及用 Shell 的字符串截取指令(相关资料:Linux shell脚本的字符串截取)来得到最后一个 / 以后的字符串。

因而咱们获得这样的一个东西:${PWD##*/}

最后,使用 alias 命令:

alias web='"F:\Program Files\Chrome\Application\chrome.exe" "http://localhost/${PWD##*/}/$@"'

如今来使用 web 命令,就能够打开当前的目录所对应的访问地址了,若是后面添加参数的话,就能够打开指定的文件了~

重启后继续使用的方法

实际上,直接在命令行里使用 alias,仅仅能够应用于当前的会话,为了下次启动时不须要从新再写,咱们应该把它写到 ~/.bashrc 里。
1. 使用 vim 打开 .bashrc

vim ~/.bashrc
  1. 直接在里面添加你须要的 alias 命令,好比 alias hi='echo hi'
  2. 保存,完成~

新技能 get 吧?哈哈

相关文章
相关标签/搜索