首頁 > 運維 > Nginx > 主體

提升你的命令列技能:Bash 和 Linux 符號與命令的完整指南

王林
發布: 2023-06-25 15:02:16
轉載
1719 人瀏覽過

本指南將帶領您去探索Linux和Bash符號與指令的廣闊世界。我們將涵蓋各種主題,例如檔案系統導航、文字處理、網路、系統管理等,並為每個命令提供實際範例。無論你是經驗豐富的Linux使用者還是剛入門,本指南都能幫助你提升命令列技能,在日常工作中變得更有效率。所以打開你的終端,讓我們開始吧!

提升你的命令行技能:Bash 和 Linux 符号与命令的完整指南

重定向

Bash 最基本但最強大的功能之一是能夠重定向指令的輸入和輸出。以下是一些可用於重定向的符號:

  • >:將命令的輸出重定向到文件,如果文件已存在則覆寫其內容。例如,ls > linuxmi.txt將命令的輸出寫入ls名稱為linuxmi.txt.
  • #>>:將命令的輸出重定向到文件,如果文件已存在,則將其附加到文件末尾。例如,echo "Hello, world!www.linuxmi.com" >> linuxmi.txt將附加字串「Hello, world!www.linuxmi.com」 到檔案結尾。
  • <:將指令的輸入從鍵盤改為從檔案中取得。例如,sort < linuxmi.txt將對 linuxmi.txt 的內容排序。
  • 2>:用於將指令的錯誤輸出重定向到檔案。
  • 2>>:用於將指令的錯誤輸出附加到檔案。
  • &>:用於將指令的輸出和錯誤輸出都重定向到檔案。
  • &>>:用於將命令的輸出和錯誤輸出附加到檔案。

提升你的命令行技能:Bash 和 Linux 符号与命令的完整指南

管道

可以使用管道將多個命令串聯在一起,使其中一個命令的輸出成為另一個命令的輸入。管道的符號是|。以下是一個範例:

ls -l | grep "linuxmi"
登入後複製

此指令以長格式 ( ) 列出目前目錄的內容ls -l,然後將輸出傳遞給grep指令,指令在輸出中搜尋字串「linuxmi」。

  • tee:用於拆分命令的輸出並將其傳送到檔案和標準輸出。

提升你的命令行技能:Bash 和 Linux 符号与命令的完整指南

通配符和通配符

Bash 支援稱為通配符的強大功能,它允許您使用通配符來匹配檔案名稱模式。以下是 globbing 中最常用的一些符號:

  • *: 匹配檔案名稱中任意數量的字元。例如,ls *.txt將列出目前目錄中所有以.txt.
  • ?: 匹配檔案名稱中的任何單一字元。例如,ls file?.txt將列出目前目錄中所有以 開頭file且後面只有一個字元的文件,後面跟著.txt.
  • [ ]: 匹配一組字元中的任何一個。例如,ls file[123].txt將列出目前目錄中以、或開頭file和結尾的所有文件,後面接著.123.txt

常用表達

    # #grep:用於在檔案或流中搜尋模式。
  • sed:用於對檔案或流執行文字轉換。
  • awk:用於圖形掃描和處理。
  • egrep:用於擴充的正規表示式。
  • fgrep:用於固定字串正規表示式。
  • regex:使用特殊字元和運算子指定文字模式的符號。

變數擴充與環境變數

    $$:用於引用變數的值。
  • export:用於在 Bash 中建立或修改環境變數。
  • ${}:用來進行變數擴充。
  • $(()):用於進行算術展開。
  • env:​​用於顯示目前環境變數。
  • echo:用於顯示環境變數的文字或值。

提升你的命令行技能:Bash 和 Linux 符号与命令的完整指南#

通配符和通配符

  • *: 匹配文件名中任意数量的字符。
  • ?: 匹配文件名中的任何单个字符。

否定

  • !:与其他命令结合使用,执行取反。

算术运算

  • +:算术表达式中的加法运算符。例如,echo $((2+3))将输出5.
  • -:算术表达式中的减法运算符。例如,echo $((16-5))将输出11.
  • *:算术表达式中的乘法运算符。例如,echo $((4*5))将输出20.
  • /: 算术表达式中的除法运算符。例如,echo $((20/2))将输出10.
  • $((expression)):用于在 Bash 中执行算术运算。例如,echo $((2 + 6))将打印值 8。
  • expr:用于执行算术运算。

提升你的命令行技能:Bash 和 Linux 符号与命令的完整指南

比较

  • ==:用于比较条件表达式中两个值是否相等。例如,if [ "$name" == "linuxmi" ]; then echo "Hello, linuxmi!"; fi将输出“Hello, linuxmi!” 如果变量的name值为“linuxmi”。
  • !=:用于比较条件表达式中的两个值是否不相等。例如,if [ "$name" != "linuxmi" ]; then echo "You're not linuxmi!"; fi将在变量name的值不为“John”输出“You’re not linuxmi!”。

条件执行

  • &&:用于仅在前一个命令成功执行时执行后续命令。例如,command1 && command2 会仅在 command1 成功执行后才执行command2。
  • ||:用于仅在前一个命令失败时执行后续命令。例如,command1 || command2会仅在 command1 失败后才执行 command2。

条件语句

  • if:用于检查条件是否为真并相应地执行命令。例如,if [[ $foo == "bar" ]]; then echo "foo is bar"; fi将检查变量是否foo等于“bar”,如果为真则打印“foo is bar”。
  • elifif:如果语句中的先前条件为假,则用于检查其他条件。例如,if [[ $foo == "bar" ]]; then echo "foo is bar"; elif [[ $foo == "baz" ]]; then echo "foo is baz"; else echo "foo is something else"; fi将检查是否foo等于“bar”并在为真时打印“foo is bar”,否则检查是否foo等于“baz”并在为真时打印“foo is baz”,最后打印“foo is something else”如果前面两个条件都为假。
  • [[ ]]:用于在 Bash 中执行条件测试。
  • case:用于将变量与模式列表进行匹配并相应地执行命令。例如:
case $fruit inapple)echo "It's an apple";;banana)echo "It's a banana";;*)echo "It's something else";;esac
登入後複製

将检查变量的值fruit,如果等于“apple”则打印“It’s an apple”,如果等于“banana”则打印“It’s a banana”,对于任何其他值则打印“It’s something else”。

循環

  • for: 用來建立一個遍歷項目清單的迴圈。例如,for fruit in apple banana orange; do echo $fruit; done將在不同的行中輸出“apple”、“banana”和“orange”。
  • while:用來建立一個循環,只要條件為真,循環就會繼續執行指令。例如,while true; do echo "Hello"; sleep 1; done會重複輸出“Hello”,直到腳本中斷。
  • until:用於執行指令,直到條件為真。

函數

  • function:用於在 Bash 中定義一個函數。例如,function hello { echo "Hello, $1!"; }定義一個名為hello的函數,它接受一個參數並列印“Hello,”後跟參數。
  • $1, $2, 等:用來指稱傳遞給函數的第一個、第二個、第三個等參數。例如,在上面定義的函數中hello,$1指的是傳遞給函數的第一個參數。

陣列

  • []:用於在 Bash 中定義一個陣列。例如,my_array=(apple banana orange)定義一個名為my_array「apple」、「banana」和「orange」的陣列。
  • ${array[@]}:用來引用 Bash 中陣列中的所有元素。例如,echo ${my_array[@]}將在一行中輸出「apple banana orange」。

過程控制與管理

  • &:用於在背景執行指令。
  • ctrl-c:用於終止正在執行的命令。
  • ctrl-z:用於暫停正在運行的命令。
  • ps:用於顯示有關正在運行的進程的資訊。
  • kill:用於終止正在執行的程序。
  • nohup:用於在背景執行命令,即使終端已關閉。
  • nice:用於設定進程的優先權。
  • renice:用於修改已經執行的進程的優先權。

檔案系統操作

  • cp:用於複製檔案。
  • mv:用於移動或重新命名檔案。
  • rm:用於刪除檔案。
  • mkdir:用於建立目錄。
  • rmdir:用於刪除目錄。
  • ln:用於建立檔案或目錄之間的連結。

檔案與文字操作

  • head: 用於顯示檔案的前幾行。
  • tail:用於顯示文件的最後幾行。
  • sort:用於按字母或數字對文字行進行排序。
  • uniq:用於刪除重複的文字行。
  • cut:用於從文字行中提取特定的列或欄位。
  • paste:用於合併來自多個檔案的行。

權限

  • chmod:用於更改檔案和目錄的權限。
  • chown:用於更改檔案或目錄的擁有者。
  • chgrp:用於更改檔案或目錄的群組。
  • umask:用於設定新檔案和目錄的預設權限。

字串操作、搜尋和比較

  • cut:用於從檔案或流中提取特定列。
  • tr:用於翻譯或刪除字元。
  • sort:用於對文字行進行排序。
  • uniq:用於從檔案或流中刪除重複行。
  • grep:用於在檔案或流中搜尋模式。
  • sed:用於對檔案或流執行文字轉換。
  • awk:用於圖形掃描和處理。
  • diff: 用來逐行比較兩個檔案。
  • cmp:用於逐字節比較兩個檔案。

網路

  • ping:用於測試與網路主機的連線。
  • curl:用於向伺服器傳輸資料或從伺服器傳輸資料。
  • wget:用於從網路下載檔案。
  • ssh:用於安全地連接到遠端電腦。
  • nslookup:用於查詢 DNS 伺服器以將主機名稱解析為 IP 位址。
  • ifconfig:用於顯示和設定網路介面。
  • netstat:用於顯示網路統計資訊和活動連線數。

SSH 和加密

  • ssh-keygen:用於產生和管理用於安全遠端存取的 SSH 金鑰。
  • scp:用於透過 SSH 連線在系統之間安全地傳輸檔案。
  • openssl:用於加密功能,例如產生和管理 SSL/TLS 憑證、加密和解密。
  • gpg:用於加密、解密和數位簽章驗證。

系統資訊、維護與管理

  • sudo:用於執行具有提升權限的命令。
  • su:用於切換到不同的使用者帳戶。
  • systemctl:用於管理基於 systemd 的 Linux 發行版中的系統服務。
  • uptime:用於顯示系統運行了多久。
  • journalctl:用於查看系統日誌。
  • fdisk:用於建立和操作磁碟分割區。
  • mount:用於在系統上掛載檔案系統。
  • top:用於顯示系統資源使用情況。
  • htoptop:提供即時系統監控和資源使用資訊的更進階版本。
  • ps:用於顯示有關正在運行的進程的資訊。
  • df:用於顯示磁碟空間使用情況。
  • du:用於顯示檔案或目錄的大小。
  • apt-get:用於安裝、移除和更新軟體套件的套件管理工具。
  • dpkg:用於安裝和管理軟體套件的套件管理工具。
  • shutdown:用於關閉或重新啟動系統。
  • free:用於顯示系統記憶體使用情況。
  • uname:用於顯示核心版本、主機名稱等系統資訊。
  • lscpu:用於顯示CPU資訊。
  • lsusb:用於顯示系統連接的USB設備。
  • nmon:用於顯示詳細的系統效能信息,包括CPU、記憶體、磁碟I/O和網路使用情況。
  • sar:用於收集和報告一段時間內的系統效能資料。
  • lshw:用於顯示系統硬體資訊。
  • dmidecode:用於顯示系統的BIOS和硬體資訊。
  • lsblk:用於顯示系統中區塊裝置(如硬碟)的資訊。
  • lspci:用於顯示系統連接的PCI設備資訊。
  • lsusb:用於顯示系統連接的USB設備資訊。

使用者輸入

  • read:用於從命令列讀取使用者輸入。
  • select:用於向使用者顯示選項選單。

命令列編輯

  • ctrl-a:用於將遊標移到行首。
  • ctrl-e:用於將遊標移到行尾。
  • ctrl-k:用於刪除從遊標位置到行尾的文字。
  • ctrl-u:用於刪除從遊標位置到行首的文字。

文字編輯

  • nano:一個簡單的命令列文字編輯器。
  • vi或vim:具有許多功能的更高級的文字編輯器。
  • cat:用於在終端機上顯示檔案的內容。
  • head: 用於顯示檔案的前幾行。
  • tail:用於顯示文件的最後幾行。

作業控制

  • jobs:用於顯示後台作業清單。
  • fg:用於將後台作業帶到前台。
  • bg:用於將暫停或停止的作業移至背景。
  • kill:用於終止正在執行的程序。

使用者和群組管理

  • useradd:用於建立新的使用者帳號。
  • usermod:用於修改現有使用者帳號。
  • userdel:用於刪除使用者帳號。
  • groupadd:用於建立新的使用者群組。
  • groupmod:用來修改已有的使用者群組。
  • groupdel:用於刪除使用者群組。
  • passwd:用於更改使用者密碼。

調試和故障排除

  • strace:用於追蹤進程發出的系統呼叫和訊號。
  • ltrace:用於追蹤進程進行的函式庫呼叫。
  • gdb: 一個強大的偵錯器,用於偵錯 C 和 C 程式。
  • tcpdump:用於擷取和分析網路流量。
  • wireshark: 用於分析網路流量的基於 GUI 的工具。 ellaneous
  • echo:用於在終端機上顯示訊息。
  • printf:用於格式化和顯示資料。
  • date:用於顯示或設定係統日期和時間。
  • tar:用於建立或提取壓縮檔案。

各種各樣的

  • cal:用於顯示日曆。
  • date:用於顯示或修改系統日期和時間。
  • sleep:用於將腳本或指令的執行延遲指定的時間量。
  • tee:用於將輸出重定向到螢幕和檔案。
  • history:用來顯示目前shell會話的指令歷史。
  • echo:用於將文字列印到終端或輸出到檔案。

請注意,本指南中所述的符號分類並非絕對,而是基於一種可能的分類方式。某些符號可能適用於多個類別,並且可能存在一些重疊或重複。符號清單並非完全詳盡,可能會因Linux發行版和版本的差異而有所不同。我們鼓勵讀者參考其係統文件以獲取更多資訊。這份指南的目的是提供Linux和Bash標記和命令的綜合概述,但並非權威資源。

感謝閱讀我們關於Linux和Bash符號和命令的全面指南。希望您發現本指南對掌握命令列非常有幫助。為了隨時了解有關在日常工作中使用這些命令的最新技巧、技巧和最佳實踐,請務必長期關注Linux迷www.linuxmi.com以獲取未來的文章。我們將提供詳細的範例和實例,以協助您成為更精通的Linux使用者和命令列專員。

以上是提升你的命令列技能:Bash 和 Linux 符號與命令的完整指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!