最近学校课业的要求,要开始逐渐熟悉掌握Linux系统。本人使用的是MacOS系统,MacOS上的Terminal与Linux上的Terminal有许多共通之处,所以利用自己的Laptop熟悉、培养使用Terminal的习惯。
体会到CL(Command Line, 命令行)的便利后,想利用Terminal直接启动Chrome浏览器并进行搜索。
因为平台的不同,可能结果可能会存在差异。
将代码复制到你使用的Shell对应的配置文件中,例如bash的.bashrc, zsh的.zshrc文件 打开Terminal,输入:
google 你想要的内容本行代码是最核心的代码,这意味着如果你直接在Terminal中输入此行命令,也可以被shell执行,不过要注意的是$1要被实际的内容替换掉($1是function的变量,后文会解释function)。 例如,搜索Manchester,如下:
open -a 'Google Chrome' https://www.google.com/search\?q\="Manchester"open同样是一个命令,作用是打开文件或者文件夹或者URL。-a是open命令的参数,意思是使用哪个App打开此文件。如果不指App,会使用对应的默认程序打开,如MacOS上会用Safari浏览器打开此地址。
URL要注意字符的转义。此处URL为谷歌搜索的URL,当然也可以替换成其他搜索的对应URL格式。
单词“alias”的中文是“别名”,此命令可以把你在CL中输入命令用“代号”来表示。这样我们每次输入“代号”,CL就会执行你输入代号对应的命令。因此可它可以被用来来记录一些经常使用但是比较长或复杂的命令。
alias google="open -a 'Google Chrome' https://www.google.com/search\?q\="Manchester""这里我们用“代号”“google”来表示等号后边的命令。 在Terminal中输入如下,就可以搜索Manchester了。
google⚠️注意等号“=”前后没有空格。
尽管alias可以执行命令,但因为alias命令执行的时候不可以接受参数,function的优点是可以接受参数,方便自定义搜索内容,所以这里我们使用了function。
function google(){ open -a 'Google Chrome' https://www.google.com/search\?q\="$1"; }$1表示传入的第一个参数,同理可以用$2、$3表示第二、第三个参数等等。因为Shell是根据空格来间隔参数的,上行代码的弊端是当你的搜索内容中有空格时,无法获取全部的搜索内容。例如,当输入时:
google Where is the University of Manchester?所以我们使用$*合并参数到一起,改写下这个function,这样就有了最开始的function。
function google(){ open -a 'Google Chrome' https://www.google.com/search\?q\="$*"; }