自定义命令并实现任意目录使用
很多和我一样的新手朋友会有这样的疑惑,Linux下安装一些工具or软件后就能够使用它的整套命令,它是如何实现的呢?
本篇文章将会带大家一起探究,如何定义一个自己的命令,并让它能在任意目录下被使用。
1)编写一个脚本
我们先确认当前所在目录为/usr/tmp
[root@xxx]# pwd
/usr/tmp
编写一个脚本文件hi.sh
#!/bin/bash
echo "Hello! You call me successful!"
2)修改脚本文件权限
为了能直接使用文件名执行脚本,需要修改文件名将其后缀去除,并修改其文件权限为755
[root@xxx]# mv ./hi.sh ./hi
[root@xxx]# chmod 755 ./hi
[root@xxx]# ll
-rwxr-xr-x 1 root root 50 Aug 5 13:42 hi
此时我们已经可以像输入命令一样,执行该脚本文件了
[root@xxx]# ./hi
Hello! You call me successful!
但是如果我们切换目录,或者我们没有指定脚本所在的路径(例如./
),将无法正确执行该脚本
# 不指定脚本路径
[root@xxx]# pwd
/usr/tmp
[root@xxx]# hi
-bash: hi: command not found
# 切换到其他路径执行
[root@xxx]# cd ..
[root@xxx]# hi
-bash: hi: command not found
3)将脚本所在目录添加到环境变量
为了能在任意路径都能用hi
命令执行我们的脚本文件,将/usr/tmp
路径添加到环境变量中
[root@xxx]# export PATH=/usr/tmp:$PATH
[root@xxx]# echo $PATH
/usr/tmp:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
再次进行测试,成功!
[root@xxx]# pwd
/home
[root@xxx]# hi
Hello! You call me successful!