Linux上如何暴露自定義指令碼

2021-08-15 21:09:01 字數 2002 閱讀 5283

在一台linux機器上寫好乙個指令碼以後,希望這個指令碼讓這台機器上其他使用者使用,但是不可能會讓別人記住這個指令碼的路徑,這個時候該怎麼辦呢?

在回答上面的問題之前,我們首先思考下面這個問題:為什麼我們用的很多指令都不需要絕對路徑的檔名呢?

我以最常用的ls指令為例子。首先要檢視指令的執行檔案位置:which ls。輸出的內容為:/bin/ls

為什麼ls指令就不需要以絕對路徑名就能呼叫呢?

這是因為環境變數path指定了預設的檢索路徑。那麼要怎麼去檢視環境變數呢?

1. 輸出內建變數path:echo $path

2. 檢視所有變數:env

但是有時候我們使用ll也能呼叫帶有引數的ls指令,但是使用which ll卻找不到執行檔案。這是使用了別名alias指令指定了指令的別名。

其實除此之外我們還可以在path的路徑中新增鏈結檔案指向我們的指令。

由此可知,可以通過以下方式指定指令碼的路徑:

1. 在path變數中新增指令碼路徑

2. 使用alias指令設定別名

3. 在path中的路徑目錄中增加鏈結檔案

#!/bin/bash

echo

"hello world!"

按esc鍵退出編輯模式,輸入:wq儲存並退出

嘗試執行指令碼:./mysh.sh修改profile檔案:vim /etc/profile,在檔案尾部新增以下內容:export path=$path:/root。內容中的/root可以替換為指令碼所在的目錄。

使修改後的profile檔案生效:source /etc/profile檢查path修改是否生效:echo $path嘗試執行指令碼:mysh.sh修改profile檔案:vim /etc/profile,在檔案尾部新增設定別名的內容,注意要使用全路徑名:alias mysh=/root/mysh.sh內容中的/root可以替換為指令碼所在的目錄。

使修改後的profile檔案生效:source /etc/profile檢查增加別名是否生效:alias mysh嘗試執行指令碼:myshln為建立鏈結檔案的指令,-s引數為建立軟鏈結檔案。/root/mysh.sh為目標檔案,即需要建立軟鏈結的檔案。/usr/bin/mysh為建立的軟鏈結檔案。

有時候解壓一些工具,想嘗試執行的時候,不是全路徑名執行,就是跳轉到執行檔案所在的目錄,然後./執行檔名

如果是懶得打./,可以在profile檔案的底部新增以下內容:export path=$path:./。注意這段內容盡量保證在檔案最後一行。

在最後彙總以下使用到的指令和工具:

1. 檢視檔案資訊:ls

2. 跳轉到某個目錄:cd

3. 輸出指令:echo

5. 檢視環境變數:env

6. 檢視指令或者工具的執行檔案所在路徑:which

7. 別名指令:alias

8. 配置重新整理:source

9. 檔案授權:chmod

10. 設定環境變數:export

shell指令碼如何自定義函式

在寫程式時,經常會用到函式,一般開發工具擁有豐富的函式庫。但有時還需要根據自己的需要自定義函式滿足我們的需求。在linux中,寫shell指令碼也一樣,有時會用到自定義函式。函式,最簡單的定義為 將一組命令集或語句形成乙個可用塊,這些塊稱為函式。1 定義函式的格式 sql view plain co...

自定義 如何自定義協議

何為自定義協議,其實是相對標準協議來說的,這裡主要針對的是應用層協議 常見的標準的應用層協議如http ftp smtp等,如果我們在網路通訊的過程中不去使用這些標準協議,那就需要自定義協議,比如我們常用的rpc框架 dubbo,thrift 分布式快取 redis,memcached 等都是自定義...

PowerDesigner 自定義指令碼

原文 code 表名 tname 生成後的效果預覽 表名 tname if not exists select 1 from sysobjects where id object id qualifier table and type u begin create table qualifier t...