shell指令碼初學者指南3:更多基本命令和鏈

您已經學習瞭如何建立指令碼、使用引數和構建for迴圈。現在,讓我們看一些更基本的命令,文字檔案操作,以及將輸入和輸出重定向到檔案和其他命令。...

shell指令碼初學者指南3:更多基本命令和鏈

您已經學習瞭如何建立指令碼、使用引數和構建for迴圈。現在,讓我們看一些更基本的命令,文字檔案操作,以及將輸入和輸出重定向到檔案和其他命令。

一些基本的有用命令

我們已經為您提供了shell指令碼的基本分類和for迴圈的基於示例的概要,但是如果您錯過了我們的shell指令碼指南,請務必檢視這些文章。

命令列之所以出色有很多原因,重定向是最突出的原因之一。如果為了採取進一步的行動或將其用於其他事情而必須記錄並再現每個命令的輸出,那麼我們早就瘋了。重定向允許我們使用該輸出並儲存它,或者立即將其用作另一個命令的輸入。我們也可以使用檔案作為其他命令的輸入。

在繼續之前,讓我們先介紹一些基本命令,這些命令可以在許多不同的地方使用。

echo–這個命令只是在命令列上列印(顯示)整個引數作為輸出

echo argument with spaces

shell指令碼初學者指南3:更多基本命令和鏈

如您所見,特殊字元需要“轉義”,以便正常處理。這是透過在字元前面使用反斜槓(\)來完成的。最好用引號。echo命令也適用於變數。

shell指令碼初學者指南3:更多基本命令和鏈

如您所見,單引號和雙引號的行為不同。有關更多資訊,請檢視bashshell中單引號和雙引號的區別?

cat–此命令將文字檔案的內容顯示為輸出。

cat file_to_be_read

假設我們在nano中建立這個文字檔案:

shell指令碼初學者指南3:更多基本命令和鏈

當我們對檔案使用cat命令時,我們可以看到它的輸出。

shell指令碼初學者指南3:更多基本命令和鏈

grep–這是Linux中最強大、最有用的命令之一。它代表全域性/正則表示式列印。它瀏覽一個檔案並列印與特定模式匹配的任何行。因為這個模式是基於“正則表示式”的,所以一條簡潔的行可以產生大量要匹配的模式。不過,對於not,您可以輸入一個tern進行搜尋。

grep pattern file

shell指令碼初學者指南3:更多基本命令和鏈

我向你保證,格雷普可以做得更多,但現在讓我們繼續做更簡單的事情。

重定向輸出

為了將命令的輸出重定向到檔案,我們使用了一個特殊字元,即大於符號(>)。

我們把單子改一下,好嗎?輸入以下命令:

echo pepperoni > list

shell指令碼初學者指南3:更多基本命令和鏈

您可以看到echo不再顯示該行,當我們檢視“list”檔案的內容時,我們可以看到其中的回聲。

還要注意的是,“列表”之前的內容已被刪除。再試一次:

shell指令碼初學者指南3:更多基本命令和鏈

當您想重用一個檔案時,這會很有用,但通常我們只想新增到現有的檔案中。為此,我們使用兩個連續的大於符號:

echo yellow peppers >> list

shell指令碼初學者指南3:更多基本命令和鏈

容易的!讓我們用這個命令建立一個更大的列表,好嗎?

shell指令碼初學者指南3:更多基本命令和鏈

就這樣。我想你可以理解為什麼這麼多極客使用命令列來**待辦事項列表之類的東西,但是它變得更好了。

讓我們將命令的輸出放入一個檔案中:

ls –al / > ~/rootlist

shell指令碼初學者指南3:更多基本命令和鏈

**檔案列表,編輯它們,然後在你想要的檔案上執行命令,從來沒有這麼簡單過。而且,當我們在命令列中執行這些基本功能時,它們在指令碼中也能很好地工作。

管道或鏈條

管道之所以這樣命名,是因為它使用管道(在大多數鍵盤上與\鍵共享)。從本質上講,它接受一個命令的輸出並直接將其提供給另一個命令。您可以透過這種方式建立長的命令鏈來獲得非常特定的所需輸出,這對於grep之類的命令非常方便。

shell指令碼初學者指南3:更多基本命令和鏈

它的行為很像“>”,只是它可以被連結多次,其效果更一般,因為它不需要遍歷文字檔案。

如你所見,grep是區分大小寫的。可以使用“-i”標誌使其忽略大小寫。

shell指令碼初學者指南3:更多基本命令和鏈

重定向輸入

還可以使用小於符號(<)從檔案中獲取命令的輸入。

cat < list

shell指令碼初學者指南3:更多基本命令和鏈

“這和用論點沒什麼區別!“你可能會說。在這種情況下你是對的。輸入重定向真正有用的地方是將命令連結在一起。

假設我們想從當前的“list”檔案中將任何包含“pep”的單詞過濾到一個名為“revisi***”的新檔案中。

grep pep < list > revisi***

shell指令碼初學者指南3:更多基本命令和鏈

讓我們重做這個命令,並新增一些排序。

grep pep < list | sort > revisi***

shell指令碼初學者指南3:更多基本命令和鏈

這將使用“pep”作為輸入檔案“list”中的搜尋項,按字母順序對其排序(所有大寫項後跟所有小寫項),然後將其輸出到“revisi***”檔案中。

為了演示sort命令,讓我們看一下以下示例:

shell指令碼初學者指南3:更多基本命令和鏈

如您所見,向sort命令新增“-f”標誌允許您忽略大小寫。這使得我們可以很容易地按字母順序排列文字檔案中的行,並忽略大小寫時,這並不重要。

簡單的指令碼

讓我們建立一個具有以下形式的指令碼:

script searchterm listfile

It will take the term and use grep to search through a list file, sort the results, and then output them to another file.shell指令碼初學者指南3:更多基本命令和鏈

下面是我們將在其中測試指令碼的目錄:

shell指令碼初學者指南3:更多基本命令和鏈

我們可以在這裡建立一個列表,然後執行指令碼。

shell指令碼初學者指南3:更多基本命令和鏈

給你!學習正則表示式的規則越多,就越能準確地組合搜尋命令。而且,任何在引號中有效的東西都可以代替你的第一個引數!

就排序而言,您可以做的不僅僅是按字母順序排序。檢視手冊頁,瞭解以下命令:

  • tsort–更高階的拓撲排序功能
  • tr–用於將特定字元對映到其他字元,並在它們之間進行轉錄。
  • uniq–刪除任何非唯一的(讀:複製)
  • awk–一種非常高階的文字處理語言/函式,可以用來分隔檔名中的欄位
  • 剪下、貼上/連線–用於將欄位與文字檔案隔離以及將新資料新增到列中的命令
  • look–像grep那樣進行搜尋,但使用字典檔案(可以由使用者指定)進行查詢
  • wc–讓您獲得字數、行數、字元數等

 


今天我們看了一些在命令列和指令碼中同樣有用的基礎知識。基於文字的資料通常是我們日常使用的核心,因此能夠處理、搜尋和操作它是關鍵。

 

你最喜歡的指令碼是什麼?對於基於文字的檔案,有什麼特殊的使用指令碼嗎?分享你在評論中所知道的!

  • 發表於 2021-04-12 20:58
  • 閱讀 ( 40 )
  • 分類:網際網路

你可能感興趣的文章

2021年面向開發者、雲工程師和devops的5大linux課程

...s課程。如果您是一名開發人員和devops工程師,對學習Linux指令碼的細微差別相當感興趣,那麼本課程將是對您的技能的一個很好的補充。 ...

  • 發佈於 2021-03-11 10:29
  • 閲讀 ( 59 )

9個最好的pi程式設計資源,把你的樹莓pi使用

...Chin的refcard深入研究了Java程式設計。儘管如此,它仍然是初學者友好的。這個refcard涵蓋了從設定到Java程式設計以及測試I/O庫的所有內容。因此,帶有Java和Raspberry Pi refcard的DZone IoT應用程式提供了全面的軟體和硬體概述。DZone的Io...

  • 發佈於 2021-03-14 03:57
  • 閲讀 ( 54 )

頂級網站和書籍,讓您成為linux命令列英雄

... 此外,還有一個Bash指令碼部分,它解釋了可以在命令列中進行的基本程式設計。這包括變數、if語句、迴圈和函式。如果你不熟悉這些,不用擔心——它們相當簡單! ...

  • 發佈於 2021-03-14 07:04
  • 閲讀 ( 60 )

VisualStudio程式碼是mac的完美文字和指令碼編輯器

...一個匆忙衝出Windows版本的埠。程式碼對於簡單的自動化指令碼來說是很好的,但是外掛支援才是它真正的亮點。 ...

  • 發佈於 2021-03-14 07:11
  • 閲讀 ( 56 )

適合初學者的11個最佳樹莓圓周率專案

...如何透過簡單的使用者介面開啟和關閉**上的LED。提供了指令碼,因此您不需要在複雜的編碼過程中絆倒。透過檢視這些指令碼,您將學到很多關於如何為Pi設定基於web的應用程式的知識。 ...

  • 發佈於 2021-03-19 13:42
  • 閲讀 ( 61 )

初學者快速自動熱鍵指南

... 自動熱鍵是一種指令碼語言,允許建立巨集和指令碼,通常使用熱鍵觸發。自動熱鍵的常見用法有: ...

  • 發佈於 2021-03-21 16:59
  • 閲讀 ( 55 )

如何程式設計樹莓pi控制led燈

...們將一起建立一個簡短的Python,不過如果您想獲取完成的指令碼,可以從Pastebin複製程式碼。 ...

  • 發佈於 2021-03-24 09:16
  • 閲讀 ( 58 )

關於python程式設計最常見的問題

...有趣的語言,而且是一種非常實用的語言,對於建立各種指令碼和軟體都很有用。 ...

  • 發佈於 2021-03-25 18:32
  • 閲讀 ( 58 )

啟動linux的9個基本命令

... linux命令提示初學者 ...

  • 發佈於 2021-03-26 18:33
  • 閲讀 ( 59 )

如何使用“helloworld”指令碼開始使用python

Python是當今世界上最流行的程式語言之一。雖然大多數人可能把它的流行歸因於它在資料科學和機器學習等領域的應用,但它也很容易學習語法,因此深受初學者的喜愛。 ...

  • 發佈於 2021-03-28 01:18
  • 閲讀 ( 52 )
lnllpdjai
lnllpdjai

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦