ubuntu下更改应用调用名称(ack-grep为例
ubuntu下安装了个ack-grep来替换系统自带的grep。但调用时总是需要在终端中输入完整的ack-grep -[options]才行,需要搜很多次的时候输入起来有点麻烦。故想把它的调用名字改成ack -[options],这样搜索时调用起来更方便。
需要改下系统中调用ack-grep时用的名称。
先看下ack-grep可执行文件的位置:
test@test-Vostro-3268:~$ which ack-grep
/usr/bin/ack-grep
得知在/usr/bin里
如果需要替换掉系统默认的应用名称“ack-grep”,就需要在系统环境变量PATH里的值“/usr/bin”之前的某个目录里放应用ack-grep的软链接。
查看系统环境变量:
test@test-Vostro-3268:~$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
由此可见,/usr/local/sbin在/usr/bin之前,可将软链接放到此目录里。
创建符号链之前,先确认想要存放软链接的目标目录里没有重名的可执行文件或软链接
查看下:
test@test-Vostro-3268:~$ cd /usr/local/sbin/
test@test-Vostro-3268:/usr/local/sbin$ ls -l ack
ls: 无法访问ack: 没有那个文件或目录
test@test-Vostro-3268:/usr/bin$ ls
wpa_cli wpa_passphrase wpa_supplicant
目录里没有ack
创建软链接
test@test-Vostro-3268:~$ sudo ln -s /usr/bin/ack-grep /usr/local/sbin/ack
[sudo] password for test:
调用ack测试是否成功
test@test-Vostro-3268:~$ ack
Usage: ack-grep [OPTION]... PATTERN [FILE]
Search for PATTERN in each source file in the tree from cwd on down.
If [FILES] is specified, then only those files/directories are checked.
ack-grep may also search STDIN, but only if no FILE are specified, or if
one of FILES is "-".
Default switches may be specified in ACK_OPTIONS environment variable or
an .ackrc file. If you want no dependency on the environment, turn it
off with --noenv.
Example: ack-grep -i select
Searching:
-i, --ignore-case Ignore case distinctions in PATTERN
... ... ... ...
This is version 1.92 of ack-grep.
可用ack来调用ack-grep
进到目录里,发现软链接已存在,修改成功
test@test-Vostro-3268:/usr/local/sbin$ ls -l ack
lrwxrwxrwx 1 root root 17 2月 19 10:35 ack -> /usr/bin/ack-grep