Linux上增加自定義腳本的展現(xiàn)量
前言
在一臺Linux機(jī)器上寫好一個腳本以后,希望這個腳本讓這臺機(jī)器上其他用戶使用,但是不可能會讓別人記住這個腳本的路徑,這個時(shí)候該怎么辦呢?
原理
在回答上面的問題之前,我們首先思考下面這個問題:為什么我們用的很多指令都不需要絕對路徑的文件名呢?
我以最常用的ls指令為例子。首先要查看指令的執(zhí)行文件位置:which ls。輸出的內(nèi)容為:/bin/ls。
為什么ls指令就不需要以絕對路徑名就能調(diào)用呢?
這是因?yàn)榄h(huán)境變量PATH指定了默認(rèn)的檢索路徑。那么要怎么去查看環(huán)境變量呢?
1. 輸出內(nèi)置變量PATH:echo $PATH
2. 查看所有變量:env
但是有時(shí)候我們使用ll也能調(diào)用帶有參數(shù)的ls指令,但是使用which ll卻找不到執(zhí)行文件。這是使用了別名alias指令指定了指令的別名。
其實(shí)除此之外我們還可以在PATH的路徑中添加鏈接文件指向我們的指令。
由此可知,可以通過以下方式指定腳本的路徑:
1. 在PATH變量中添加腳本路徑
2. 使用alias指令設(shè)置別名
3. 在PATH中的路徑目錄中增加鏈接文件
實(shí)戰(zhàn)
準(zhǔn)備自定義腳本
- 創(chuàng)建腳本文件:touch mysh.sh
- 編輯腳本文件(如果沒安裝vim可以改為用vi):vim mysh.sh
- 按Insert鍵進(jìn)入編輯模式,文件內(nèi)容如下:
#!/bin/bash
echo "Hello World!"
- 按Esc鍵退出編輯模式,輸入:wq保存并退出
- 授予腳本文件執(zhí)行權(quán)限:chmod +x mysh.sh
- 嘗試執(zhí)行腳本:./mysh.sh
修改環(huán)境變量PATH
- 修改profile文件:vim /etc/profile,在文件尾部添加以下內(nèi)容:export PATH=$PATH:/root。內(nèi)容中的/root可以替換為腳本所在的目錄。
- 使修改后的profile文件生效:soruce /etc/profile
- 檢查PATH修改是否生效:echo $PATH
- 嘗試執(zhí)行腳本:mysh.sh
設(shè)置別名
- 修改profile文件:vim /etc/profile,在文件尾部添加設(shè)置別名的內(nèi)容,注意要使用全路徑名:alias mysh=/root/mysh.sh內(nèi)容中的/root可以替換為腳本所在的目錄。
- 使修改后的profile文件生效:soruce /etc/profile
- 檢查增加別名是否生效:alias mysh
- 嘗試執(zhí)行腳本:mysh
使用鏈接文件
- 創(chuàng)建鏈接文件:ln -s /root/mysh.sh /usr/bin/mysh
- ln為創(chuàng)建鏈接文件的指令,-s參數(shù)為創(chuàng)建軟鏈接文件。/root/mysh.sh為目標(biāo)文件,即需要創(chuàng)建軟鏈接的文件。/usr/bin/mysh為創(chuàng)建的軟鏈接文件。
- 通過軟鏈接文件名執(zhí)行腳本:mysh
題外話
有時(shí)候解壓一些工具,想嘗試運(yùn)行的時(shí)候,不是全路徑名執(zhí)行,就是跳轉(zhuǎn)到執(zhí)行文件所在的目錄,然后./執(zhí)行文件名。
如果是懶得打./,可以在profile文件的底部添加以下內(nèi)容:export PATH=$PATH:./。注意這段內(nèi)容盡量保證在文件最后一行。
總結(jié)
在最后匯總以下使用到的指令和工具:
1. 查看文件信息:ls
2. 跳轉(zhuǎn)到某個目錄:cd
3. 輸出指令:echo
4. 文本編輯器:vim
5. 查看環(huán)境變量:env
6. 查看指令或者工具的執(zhí)行文件所在路徑:which
7. 別名指令:alias
8. 配置刷新:source
9. 文件授權(quán):chmod
10. 設(shè)置環(huán)境變量:export
11. 創(chuàng)建鏈接文件:ln
相關(guān)文章
在Linux中對存儲設(shè)備進(jìn)行分區(qū)和格式化的操作步驟
在 Linux 系統(tǒng)上準(zhǔn)備新磁盤以供使用是一個簡單的過程,雖然有許多工具、文件系統(tǒng)格式和分區(qū)方案可能會因?yàn)樘厥庑枨蠖淖冞@個過程,但基本原理仍然是一樣的,文中給大家詳細(xì)介紹了在Linux中對存儲設(shè)備進(jìn)行分區(qū)和格式化的操作步驟,需要的朋友可以參考下2024-10-10inotify-tools+rsync實(shí)時(shí)同步文件的配置方法
我使用的是google的inotify-tools,比較簡單.國內(nèi)有功能很強(qiáng)大的類似的程序,但是好復(fù)雜.2013-02-02CentOS 7.2安裝Nginx 1.10.2的詳細(xì)教程
最近公司要切換VPS,所以打算使用最新的系統(tǒng)進(jìn)行搭建LNMP,這篇文章是為CentOS 7.2安裝Nginx 1.10.2的安裝記錄,記錄下以便下次或者有需要的朋友們參考使用。下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2016-11-11Linux 初始化MySQL 數(shù)據(jù)庫報(bào)錯解決辦法
這篇文章主要介紹了Linux 初始化MySQL 數(shù)據(jù)庫報(bào)錯解決辦法的相關(guān)資料,需要的朋友可以參考下2017-05-05值得收藏的20個Linux服務(wù)器性能優(yōu)化技巧
這篇文章主要為大家詳細(xì)介紹了Linux服務(wù)器性能優(yōu)化小技巧,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10如何將CentOS7升級至CentOS8(詳細(xì)步驟)
這篇文章主要介紹了如何將CentOS7升級至CentOS8(詳細(xì)步驟),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11