命令別名 保護和服務

2021-09-24 08:50:13 字數 3503 閱讀 2759

linux shell 允許你將命令彼此鏈結在一起,一次觸發執行複雜的操作,並且可以對此建立別名作為快捷方式。

讓我們將繼續我們的別名系列。到目前為止,你可能已經閱讀了我們的關於別名的第一篇文章,並且應該非常清楚它們是如何為你省去很多麻煩的最簡單方法。例如,你已經看到它們幫助我們減少了輸入,讓我們看看別名派上用場的其他幾個案例。

linux shell 最美妙的事情之一是可以使用數以萬計的選項和把命令連線在一起執行真正複雜的操作。好吧,也許這種美麗是在旁觀者的眼中的,但是我們覺得這個功能很實用。

不利的一面是,你經常需要記得難以記憶或難以打字出來的命令組合。比如說硬碟上的空間非常寶貴,而你想要做一些清潔工作。你的第一步可能是尋找隱藏在你的家目錄裡的東西。你可以用來判斷的乙個標準是查詢不再使用的內容。ls可以幫助你:

ls -lct

複製**

上面的命令顯示了每個檔案和目錄的詳細資訊(-l),並顯示了每一項上次訪問的時間(-c),然後它按從最近訪問到最少訪問的順序排序這個列表(-t)。

這難以記住嗎?你可能不會每天都使用-c-t選項,所以也許是吧。無論如何,定義乙個別名,如:

alias lt='ls -lct'

複製**

會更容易一些。

然後,你也可能希望列表首先顯示最舊的檔案:

alias lo='lt -f | tac'

複製**

aliases

圖 1:使用 lt 和 lo 別名。

這裡有一些有趣的事情。首先,我們使用別名(lt)來建立另乙個別名 —— 這是完全可以的。其次,我們將乙個新引數傳遞給lt(後者又通過lt別名的定義傳遞給了ls)。

-f選項會將特殊符號附加到專案的名稱後,以便更好地區分常規檔案(沒有符號)和可執行檔案(附加了*)、目錄檔案(以/結尾),以及所有鏈結檔案、符號鏈結檔案(以@符號結尾)等等。-f選項是當你回歸到單色終端的日子裡,沒有其他方法可以輕鬆看到列表項之間的差異時用的。在這裡使用它是因為當你將輸出從lt傳遞到tac時,你會丟失ls的顏色。

第三件我們需要注意的事情是我們使用了管道。管道用於你將乙個命令的輸出傳遞給另外乙個命令時。第二個命令可以使用這些輸出作為它的輸入。在包括 bash 在內的許多 shell 裡,你可以使用管道符(|) 來做傳遞。

在這裡,你將來自lt -f的輸出導給tactac這個命令有點玩笑的意思,你或許聽說過cat命令,它名義上用於將檔案彼此連線(concat),而在實踐中,它被用於將乙個檔案的內容列印到終端。tac做的事情一樣,但是它是以逆序將接收到的內容輸出出來。明白了嗎?cattac,技術人有時候也挺有趣的。

cattac都能輸出通過管道傳遞過來的內容,在這裡,也就是乙個按時間順序排序的檔案列表。

那麼,在有些離題之後,最終我們得到的就是這個列表將當前目錄中的檔案和目錄以新鮮度的逆序列出(即老的在前)。

最後你需要注意的是,當在當前目錄或任何目錄執行lt時:

# 這可以工作:

lt# 這也可以:

lt /some/other/directory

複製**

……而lo只能在當前目錄奏效:

# 這可工作:

lo# 而這不行:

lo /some/other/directory

複製**

這是因為 bash 會展開別名的組分。當你鍵入:

lt /some/other/directory

複製**

bash 實際上執行的是:

ls -lct /some/other/directory

複製**

這是乙個有效的 bash 命令。

而當你鍵入:

lo /some/other/directory

複製**

bash 試圖執行:

ls -lct -f | tac /some/other/directory

複製**

這不是乙個有效的命令,主要是因為/some/other/directory是個目錄,而cattac不能用於目錄。

mkdir newdir

mkdir newdir/subdir

複製**

或這樣:

mkdir -p newdir/subdir

複製**

而用這個別名你將只需要這樣就行:

mkdir newdir/subdir

複製**

你的新mkdir也會告訴你建立子目錄時都做了什麼。

別名的另乙個好處是它可以作為防止你意外地刪除或覆寫已有的檔案的保護措施。你可能聽說過這個 linux 新使用者的傳言,當他們以 root 身份執行:

rm -rf /

複製**

整個系統就爆了。而決定輸入如下命令的使用者:

rm -rf /some/directory/ *

複製**

就很好地乾掉了他們的家目錄的全部內容。這裡不小心鍵入的目錄和*之間的那個空格有時候很容易就會被忽視掉。

這兩種情況我們都可以通過alias rm='rm -i'別名來避免。-i選項會使rm詢問使用者是否真的要做這個操作,在你對你的檔案系統做出不可彌補的損失之前給你第二次機會。

對於cp也是一樣,它能夠覆蓋乙個檔案而不會給你任何提示。建立乙個類似alias cp='cp -i'來保持安全吧。

我們越來越深入到了指令碼領域,下一次,我們將沿著這個方向,看看如何在命令列組合命令以給你真正的樂趣,並可靠地解決系統管理員每天面臨的問題。

本文由 lctt 原創編譯,linux中國 榮譽推出

session程序和服務

session如果是存在程序內的話,當程序重啟,session資料就會丟失。所以就找到了個辦法,不吧session放在程序內,而是放在伺服器上。這樣子只要伺服器不重啟,session資料就不會丟失.1.開始服務 開始本機上的asp.net state service 服務 2.更改配置檔案 在sys...

Springcloud 服務熔斷和服務降級配置

服務熔斷 概念 微服務中,熔斷機制是應對雪崩效應的一種微服務鏈路保護機制。當扇出鏈路的某個微服務不可用或者響應時間太長時,會進行服務降級,進而熔斷該節點微服務的呼叫,快速返回 錯誤 的響應資訊。當檢測到該節點微服務呼叫響應正常後恢復呼叫鏈路。服務熔斷的作用類似於我們家用的保險絲,當某服務出現不可用或...

ArcGIS安裝和服務發布

一 arcgis服務 1.底圖 gis底層的美化圖即為底圖 2.db2gis 通過db2gis程式將資料庫中的資源基礎資訊生成gis圖層資訊 底圖快取圖層 gsm小區覆蓋區域 td小區覆蓋區域 gsm小區動態圖層 td小區動態圖層 框選輔助圖層 專題圖圖層 小區模擬選中圖層 標籤專題圖圖層 問題區域...