LinuxShell菜鳥教程詳解

一、基礎命令

在LinuxShell的世界中,基礎命令是我們必須要學會的,例如常見的ls、mkdir、cd、cp、mv、rm、touch、echo等命令。

1、ls命令:

ls -l

在不加參數的情況下,ls命令為我們展示了當前目錄的文件列表,而加上-l參數將為我們提供更為詳細的信息,例如文件的許可權、所有者、文件大小、創建時間等。

2、mkdir命令:

mkdir test_dir

該命令用於在當前目錄下創建一個名為test_dir的目錄。

3、cd命令:

cd test_dir

該命令將進入當前目錄下的test_dir目錄。

4、cp命令:

cp test.txt test_dir/

該命令將test.txt文件複製到test_dir目錄下。

5、mv命令:

mv test.txt test_dir/

該命令將test.txt文件移動到test_dir目錄下。

6、rm命令:

rm test.txt

該命令將刪除當前目錄下的test.txt文件。

7、touch命令:

touch test.txt

該命令用於創建一個名為test.txt的新文件。

8、echo命令:

echo "Hello World"

該命令將在終端中輸出Hello World字元串。

二、Shell腳本

在了解基礎命令之後,我們就可以開始編寫Shell腳本了。Shell腳本是一種在LinuxShell環境中運行的腳本程序,常用於編寫自動執行任務、批量操作文件等自動化處理任務。

1、創建一個簡單的Shell腳本:

#!/bin/bash
echo "Hello World"

該腳本包含了一個echo命令,作用是輸出Hello World字元串。

2、運行Shell腳本:

chmod +x test.sh
./test.sh

我們需要先將腳本文件test.sh賦予執行許可權,然後通過./命令運行該腳本。

三、正則表達式

正則表達式是一種靈活的字元串匹配模式,LinuxShell中許多命令都支持正則表達式。

1、使用grep命令過濾文本:

grep 'hello' file.txt

該命令將在文件file.txt中查找包含hello字元串的行,並將其列印到終端中。

2、使用sed命令編輯文件:

sed 's/old/new/g' file.txt

該命令將在文件file.txt中查找old字元串,並將其替換為new字元串,所有匹配的字元串都會被替換。

四、Shell變數

Shell變數是我們在腳本中用於存儲值的標識符,它可以是數字、文本或其他任何類型的數據。我們可以通過Shell腳本中定義的變數來進行不同的操作。

1、定義一個Shell變數:

name="Tom"
echo $name

該腳本定義了一個名為name的變數,並將其值設置為Tom,在終端中運行該腳本後,將輸出Tom。

2、使用環境變數:

echo $HOME

使用$HOME環境變數,將輸出當前用戶的home目錄路徑。

3、使用特殊變數:

echo $0

使用$0特殊變數,將輸出當前腳本的名稱。

4、Shell數組:

names=("Tom" "Jerry" "Mike")
echo ${names[1]}

該腳本定義了一個名為names的數組,並將其值初始化為Tom、Jerry、Mike三個數據,然後通過${names[1]}命令輸出該數組的第二個元素Jerry。

五、Shell函數

Shell函數是一段可重複使用的代碼,當需要執行某些操作時,我們可以通過調用函數的方式來完成這些操作。

1、定義一個Shell函數:

#!/bin/bash
# 定義函數
function sayHello(){
  echo "Hello World"
}
# 調用函數
sayHello

該腳本定義了一個名為sayHello的函數,並在函數中定義了echo命令,用於輸出Hello World字元串。在腳本的最後,我們調用了該函數,將在終端中輸出Hello World。

2、定義帶有參數的Shell函數:

#!/bin/bash
# 定義函數
function sayHello(){
  echo "Hello $1"
}
# 調用函數
sayHello "Tom"

該腳本定義了一個名為sayHello的函數,並在函數中定義了echo命令,用於輸出Hello和函數中傳入的參數。在腳本的最後,我們調用了該函數,並傳入了參數Tom,將在終端中輸出Hello Tom。

六、Shell條件判斷

條件判斷是我們在編寫Shell腳本時不可避免的需求,例如我們需要在特定條件下執行特定操作,這時我們可以使用Shell的條件判斷語句。

1、if語句:

num=10
if [ $num -gt 5 ]; then
  echo "num is greater than 5"
fi

該腳本定義了一個名為num的變數,並將其值初始化為10。然後使用if語句判斷num是否大於5,如果是,則輸出num is greater than 5。

2、case語句:

fruit="apple"
case $fruit in
  apple )
    echo "This is an apple.";;
  banana )
    echo "This is a banana.";;
esac

該腳本定義了一個名為fruit的變數,並將其值初始化為apple。然後使用case語句對fruit的值進行判斷,如果是apple,則輸出This is an apple。

七、Shell循環

循環語句在編寫Shell腳本時也是常用的語句之一,例如我們需要對某些操作進行多次重複執行,這時我們就需要使用循環語句。

1、while循環:

count=0
while [ $count -lt 5 ]
do
  echo "Current count is: $count"
  count=`expr $count + 1`
done

該腳本定義了一個名為count的變數,並將其值初始化為0,然後使用while循環對count進行迭代,每次迭代輸出Current count is:和當前的count值。

2、for循環:

names=("Tom" "Jerry" "Mike")
for name in ${names[@]}
do
  echo "Hello $name"
done

該腳本定義了一個名為names的數組,並將其值初始化為Tom、Jerry、Mike三個數據。然後使用for循環輸出Hello和數組中的每個元素。

八、Shell並發編程

當我們涉及到多個任務需要同時執行時,我們就需要使用到Shell並發編程技術,以提高代碼的效率。

1、&符號:

#!/bin/bash
# 運行任務1
task1(){
  echo "This is task1."
  sleep 5
}
# 運行任務2
task2(){
  echo "This is task2."
  sleep 5
}
# 運行任務3
task3(){
  echo "This is task3."
  sleep 5
}
# 並發運行任務
task1 &
task2 &
task3 &

該腳本定義了三個名為task1、task2、task3的函數,每個函數都包含一個輸出語句和5秒的睡眠時間。在腳本的最後,我們使用&符號來並發運行三個函數。

九、Shell輸入輸出重定向

Shell輸入輸出重定向是我們在Shell編程中常用的技術之一,例如我們需要將命令的輸出結果保存到文件中,或者從文件中讀取輸入等操作,都需要用到輸入輸出重定向技術。

1、輸出重定向:

echo "Hello World" > file.txt

該命令將輸出Hello World字元串,並將其重定向到文件file.txt中。

2、輸入重定向:

cat < file.txt

該命令將從文件file.txt中讀取數據,並輸出到終端中。

十、Shell管道

Shell管道是我們另外一個常用的技術,通過將一個命令的輸出結果傳遞給另一個命令來完成一系列的操作,以實現更加複雜的任務。

1、使用管道過濾數據:

cat file.txt | grep "Hello"

該命令將從文件file.txt中讀取數據,然後將其傳遞給grep命令(也就是將包含Hello字元串的行輸出到終端中)。

2、使用管道排序數據:

cat file.txt | sort

該命令將從文件file.txt中讀取數據,然後將其傳遞給sort命令(也就是將文件內容按行排序輸出到終端中)。

十一、Shell網路編程

在需要與外部伺服器或者其他設備進行交互時,我們就需要使用到Shell網路編程技術,以完成網路通訊等任務。

1、使用telnet與遠程伺服器進行交互:

telnet www.baidu.com 80

該命令將連接到百度伺服器並打開80埠,在終端中可以進行與該伺服器的交互操作。

2、使用curl下載文件:

curl -O http://example.com/file.zip

該命令將從指定網址下載一個名為file.zip的文件。

十二、Shell常用工具

除了Shell自帶的命令和組件外,還有一些社區或第三方提供的庫和工具,我們可以使用這些工具來完成更加複雜的任務。

1、使用awk命令進行文本處理:

awk '{print $1}' file.txt

該命令將從文件file.txt中讀取數據,並使用awk命令將每一行的第一個單詞提取出來,輸出到終端中。

2、使用sed命令編輯文件:

sed '

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/241339.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:30
下一篇 2024-12-12 12:30

相關推薦

  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變數類型,而是在變數第一次賦值時自動識別該變數的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬碟。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • 猿編程python免費全套教程400集

    想要學習Python編程嗎?猿編程python免費全套教程400集是一個不錯的選擇!下面我們來詳細了解一下這個教程。 一、課程內容 猿編程python免費全套教程400集包含了從P…

    編程 2025-04-29
  • Python煙花教程

    Python煙花代碼在近年來越來越受到人們的歡迎,因為它可以讓我們在終端里玩煙花,不僅具有視覺美感,還可以通過代碼實現動畫和音效。本教程將詳細介紹Python煙花代碼的實現原理和模…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows伺服器上的日誌,並將其發送到遠程伺服器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29
  • Python畫K線教程

    本教程將從以下幾個方面詳細介紹Python畫K線的方法及技巧,包括數據處理、圖表繪製、基本設置等等。 一、數據處理 1、獲取數據 在Python中可以使用Pandas庫獲取K線數據…

    編程 2025-04-28
  • Python語言程序設計教程PDF趙璐百度網盤介紹

    Python語言程序設計教程PDF趙璐百度網盤是一本介紹Python語言編程的入門教材,本文將從以下幾個方面對其進行詳細闡述。 一、Python語言的特點 Python語言屬於解釋…

    編程 2025-04-28

發表回復

登錄後才能評論