搜尋
首頁運維Nginx提升你的命令列技能:Bash 和 Linux 符號與命令的完整指南

本指南將帶領您去探索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」 到檔案結尾。
  • 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刪除
Nginx vs. Apache:看他們的架構Nginx vs. Apache:看他們的架構Apr 28, 2025 am 12:13 AM

NGINX和Apache在架構上的主要區別在於:NGINX採用事件驅動、異步非阻塞模型,而Apache使用進程或線程模型。 1)NGINX通過事件循環和I/O多路復用機制高效處理高並發連接,適合靜態內容和反向代理。 2)Apache採用多進程或多線程模型,穩定性高但資源消耗大,適合需要豐富模塊擴展的場景。

NGINX與Apache:檢查優點和缺點NGINX與Apache:檢查優點和缺點Apr 27, 2025 am 12:05 AM

NGINX適合處理高並發和靜態內容,Apache則適用於復雜配置和動態內容。 1.NGINX高效處理並發連接,適合高流量場景,但處理動態內容需額外配置。 2.Apache提供豐富模塊和靈活配置,適合複雜需求,但高並發性能較差。

nginx和apache:了解關鍵差異nginx和apache:了解關鍵差異Apr 26, 2025 am 12:01 AM

NGINX和Apache各有優劣,選擇應基於具體需求。 1.NGINX適合高並發場景,因其異步非阻塞架構。 2.Apache適用於需要復雜配置的低並發場景,因其模塊化設計。

NGINX單元:關鍵功能NGINX單元:關鍵功能Apr 25, 2025 am 12:17 AM

NGINXUnit是一個開源應用服務器,支持多種編程語言,提供動態配置、零停機更新和內置負載均衡等功能。 1.動態配置:無需重啟即可修改配置。 2.多語言支持:兼容Python、Go、Java、PHP等。 3.零停機更新:支持不中斷服務的應用更新。 4.內置負載均衡:可將請求分發到多個應用實例。

NGINX單元與其他應用程序服務器NGINX單元與其他應用程序服務器Apr 24, 2025 am 12:14 AM

NGINXUnit優於ApacheTomcat、Gunicorn和Node.js內置HTTP服務器,適用於多語言項目和動態配置需求。 1)支持多種編程語言,2)提供動態配置重載,3)內置負載均衡功能,適合需要高擴展性和可靠性的項目。

NGINX單元:架構及其工作原理NGINX單元:架構及其工作原理Apr 23, 2025 am 12:18 AM

NGINXUnit通過其模塊化架構和動態重配置功能提高了應用的性能和可管理性。 1)模塊化設計包括主控進程、路由器和應用進程,支持高效管理和擴展。 2)動態重配置允許在運行時無縫更新配置,適用於CI/CD環境。 3)多語言支持通過動態加載語言運行時實現,提升了開發靈活性。 4)高性能通過事件驅動模型和異步I/O實現,即使在高並發下也保持高效。 5)安全性通過隔離應用進程提高,減少應用間相互影響。

使用NGINX單元:部署和管理應用程序使用NGINX單元:部署和管理應用程序Apr 22, 2025 am 12:06 AM

NGINXUnit可用於部署和管理多種語言的應用。 1)安裝NGINXUnit。 2)配置它以運行不同類型的應用,如Python和PHP。 3)利用其動態配置功能進行應用管理。通過這些步驟,你可以高效地部署和管理應用,提升項目效率。

NGINX與Apache:Web服務器的比較分析NGINX與Apache:Web服務器的比較分析Apr 21, 2025 am 12:08 AM

NGINX更适合处理高并发连接,而Apache更适合需要复杂配置和模块扩展的场景。1.NGINX以高性能和低资源消耗著称,适合高并发。2.Apache以稳定性和丰富的模块扩展闻名,适合复杂配置需求。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具