首頁 計劃 > 正文

今日快訊:提升你的命令行技能:Bash 和 Linux 符號與命令的完整指南

從文件系統(tǒng)導(dǎo)航到文本處理、網(wǎng)絡(luò)、系統(tǒng)管理等,我們將涵蓋各種主題,并提供每個命令的實際示例。


(資料圖片)

在本指南中,我們將探索Linux和Bash符號與命令的廣闊世界。從文件系統(tǒng)導(dǎo)航到文本處理、網(wǎng)絡(luò)、系統(tǒng)管理等,我們將涵蓋各種主題,并提供每個命令的實際示例。無論你是經(jīng)驗豐富的Linux用戶還是剛剛?cè)腴T,本指南都能幫助你提升命令行技能,在日常工作中變得更加高效。所以打開你的終端,讓我們開始吧!

重定向

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

>:將命令的輸出重定向到文件,如果文件已存在則覆蓋其內(nèi)容。例如,ls > linuxmi.txt將命令的輸出寫入ls名為linuxmi.txt.>>:將命令的輸出重定向到文件,如果文件已存在,則將其附加到文件末尾。例如,echo “Hello, world!www.linuxmi.com” >> linuxmi.txt將附加字符串“Hello, world!www.linuxmi.com” 到文件末尾。<:將命令的輸入從鍵盤改為從文件中獲取。例如,sort < linuxmi.txt將對linuxmi.txt的內(nèi)容進行排序。2>:用于將命令的錯誤輸出重定向到文件。2>>:用于將命令的錯誤輸出附加到文件。&>:用于將命令的輸出和錯誤輸出都重定向到文件。&>>:用于將命令的輸出和錯誤輸出附加到文件。

管道

管道允許您將多個命令鏈接在一起,以便一個命令的輸出成為另一個命令的輸入。管道的符號是|。以下是一個例子:

ls -l | grep "linuxmi"

此命令以長格式 ( ) 列出當前目錄的內(nèi)容ls -l,然后將輸出傳遞給grep命令,命令在輸出中搜索字符串“l(fā)inuxmi”。

tee:用于拆分命令的輸出并將其發(fā)送到文件和標準輸出。

通配符和通配符

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

*: 匹配文件名中任意數(shù)量的字符。例如,ls *.txt將列出當前目錄中所有以.txt.?: 匹配文件名中的任何單個字符。例如,ls file?.txt將列出當前目錄中所有以 開頭file且后面只有一個字符的文件,后跟.txt.[ ]: 匹配一組字符中的任何一個。例如,ls file[123].txt將列出當前目錄中以、或開頭file和結(jié)尾的所有文件,后跟.123.txt

常用表達

grep:用于在文件或流中搜索模式。sed:用于對文件或流執(zhí)行文本轉(zhuǎn)換。awk:用于圖形掃描和處理。egrep:用于擴展的正則表達式。fgrep:用于固定字符串正則表達式。regex:使用特殊字符和運算符指定文本模式的符號。

變量擴展和環(huán)境變量

$:用于引用變量的值。export:用于在 Bash 中創(chuàng)建或修改環(huán)境變量。${}:用于進行變量擴展。$(()):用于進行算術(shù)展開。env:用于顯示當前環(huán)境變量。echo:用于顯示環(huán)境變量的文本或值。

通配符和通配符

*: 匹配文件名中任意數(shù)量的字符。?: 匹配文件名中的任何單個字符。

否定

!:與其他命令結(jié)合使用,執(zhí)行取反。

算術(shù)運算

+:算術(shù)表達式中的加法運算符。例如,echo $((2+3))將輸出5.-:算術(shù)表達式中的減法運算符。例如,echo $((16-5))將輸出11.*:算術(shù)表達式中的乘法運算符。例如,echo $((4*5))將輸出20./: 算術(shù)表達式中的除法運算符。例如,echo $((20/2))將輸出10.$((expression)):用于在 Bash 中執(zhí)行算術(shù)運算。例如,echo $((2 + 6))將打印值 8。expr:用于執(zhí)行算術(shù)運算。

比較

==:用于比較條件表達式中兩個值是否相等。例如,if [ “$name” == “l(fā)inuxmi” ]; then echo “Hello, linuxmi!”; fi將輸出“Hello, linuxmi!” 如果變量的name值為“l(fā)inuxmi”。!=:用于比較條件表達式中的兩個值是否不相等。例如,if [ “$name” != “l(fā)inuxmi” ]; then echo “You’re not linuxmi!”; fi將在變量name的值不為“John”輸出“You’re not linuxmi!”。

條件執(zhí)行

&&:用于僅在前一個命令成功執(zhí)行時執(zhí)行后續(xù)命令。例如,command1 && command2 會僅在 command1 成功執(zhí)行后才執(zhí)行command2。||:用于僅在前一個命令失敗時執(zhí)行后續(xù)命令。例如,command1 || command2會僅在 command1 失敗后才執(zhí)行 command2。

條件語句

if:用于檢查條件是否為真并相應(yīng)地執(zhí)行命令。例如,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 中執(zhí)行條件測試。case:用于將變量與模式列表進行匹配并相應(yīng)地執(zhí)行命令。例如:
case $fruit in  apple)    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”。

循環(huán)

for: 用于創(chuàng)建一個遍歷項目列表的循環(huán)。例如,for fruit in apple banana orange; do echo $fruit; done將在不同的行中輸出“apple”、“banana”和“orange”。while:用于創(chuàng)建一個循環(huán),只要條件為真,該循環(huán)就會繼續(xù)執(zhí)行命令。例如,while true; do echo “Hello”; sleep 1; done會重復(fù)輸出“Hello”,直到腳本被中斷。until:用于執(zhí)行命令,直到條件為真。

函數(shù)

function:用于在 Bash 中定義一個函數(shù)。例如,function hello { echo “Hello, $1!”; }定義一個名為hello的函數(shù),它接受一個參數(shù)并打印“Hello,”后跟參數(shù)。$1,$2, 等:用于指代傳遞給函數(shù)的第一個、第二個、第三個等參數(shù)。例如,在上面定義的函數(shù)中hello,$1指的是傳遞給函數(shù)的第一個參數(shù)。

數(shù)組

[]:用于在 Bash 中定義一個數(shù)組。例如,my_array=(apple banana orange)定義一個名為my_array“apple”、“banana”和“orange”的數(shù)組。${array[@]}:用于引用 Bash 中數(shù)組中的所有元素。例如,echo ${my_array[@]}將在一行中輸出“apple banana orange”。

過程控制和管理

&:用于在后臺運行命令。ctrl-c:用于終止正在運行的命令。ctrl-z:用于暫停正在運行的命令。ps:用于顯示有關(guān)正在運行的進程的信息。kill:用于終止正在運行的進程。nohup:用于在后臺運行命令,即使終端已關(guān)閉。nice:用于設(shè)置進程的優(yōu)先級。renice:用于修改已經(jīng)運行的進程的優(yōu)先級。

文件系統(tǒng)操作

cp:用于復(fù)制文件。mv:用于移動或重命名文件。rm:用于刪除文件。mkdir:用于創(chuàng)建目錄。rmdir:用于刪除目錄。ln:用于創(chuàng)建文件或目錄之間的鏈接。

文件和文本操作

head: 用于顯示文件的前幾行。tail:用于顯示文件的最后幾行。sort:用于按字母或數(shù)字對文本行進行排序。uniq:用于刪除重復(fù)的文本行。cut:用于從文本行中提取特定的列或字段。paste:用于合并來自多個文件的行。

權(quán)限

chmod:用于更改文件和目錄的權(quán)限。chown:用于更改文件或目錄的所有者。chgrp:用于更改文件或目錄的組。umask:用于設(shè)置新建文件和目錄的默認權(quán)限。

字符串操作、搜索和比較

cut:用于從文件或流中提取特定列。tr:用于翻譯或刪除字符。sort:用于對文本行進行排序。uniq:用于從文件或流中刪除重復(fù)行。grep:用于在文件或流中搜索模式。sed:用于對文件或流執(zhí)行文本轉(zhuǎn)換。awk:用于圖形掃描和處理。diff: 用于逐行比較兩個文件。cmp:用于逐字節(jié)比較兩個文件。

網(wǎng)絡(luò)

ping:用于測試與網(wǎng)絡(luò)主機的連接。curl:用于向服務(wù)器傳輸數(shù)據(jù)或從服務(wù)器傳輸數(shù)據(jù)。wget:用于從互聯(lián)網(wǎng)下載文件。ssh:用于安全地連接到遠程計算機。nslookup:用于查詢 DNS 服務(wù)器以將主機名解析為 IP 地址。ifconfig:用于顯示和配置網(wǎng)絡(luò)接口。netstat:用于顯示網(wǎng)絡(luò)統(tǒng)計信息和活動連接數(shù)。

SSH 和加密

ssh-keygen:用于生成和管理用于安全遠程訪問的 SSH 密鑰。scp:用于通過 SSH 連接在系統(tǒng)之間安全地傳輸文件。openssl:用于加密功能,例如生成和管理 SSL/TLS 證書、加密和解密。gpg:用于加密、解密和數(shù)字簽名驗證。

系統(tǒng)信息、維護和管理

sudo:用于運行具有提升權(quán)限的命令。su:用于切換到不同的用戶帳戶。systemctl:用于管理基于 systemd 的 Linux 發(fā)行版中的系統(tǒng)服務(wù)。uptime:用于顯示系統(tǒng)運行了多長時間。journalctl:用于查看系統(tǒng)日志。fdisk:用于創(chuàng)建和操作磁盤分區(qū)。mount:用于在系統(tǒng)上掛載文件系統(tǒng)。top:用于顯示系統(tǒng)資源使用情況。htoptop:提供實時系統(tǒng)監(jiān)控和資源使用信息的更高級版本。ps:用于顯示有關(guān)正在運行的進程的信息。df:用于顯示磁盤空間使用情況。du:用于顯示文件或目錄的大小。apt-get:用于安裝、刪除和更新軟件包的包管理工具。dpkg:用于安裝和管理軟件包的包管理工具。shutdown:用于關(guān)閉或重啟系統(tǒng)。free:用于顯示系統(tǒng)內(nèi)存使用情況。uname:用于顯示內(nèi)核版本、主機名等系統(tǒng)信息。lscpu:用于顯示CPU信息。lsusb:用于顯示系統(tǒng)連接的USB設(shè)備。nmon:用于顯示詳細的系統(tǒng)性能信息,包括CPU、內(nèi)存、磁盤I/O和網(wǎng)絡(luò)使用情況。sar:用于收集和報告一段時間內(nèi)的系統(tǒng)性能數(shù)據(jù)。lshw:用于顯示系統(tǒng)硬件信息。dmidecode:用于顯示系統(tǒng)的BIOS和硬件信息。lsblk:用于顯示系統(tǒng)中塊設(shè)備(如硬盤)的信息。lspci:用于顯示系統(tǒng)連接的PCI設(shè)備信息。lsusb:用于顯示系統(tǒng)連接的USB設(shè)備信息。

用戶輸入

read:用于從命令行讀取用戶輸入。select:用于向用戶顯示選項菜單。

命令行編輯

ctrl-a:用于將光標移動到行首。ctrl-e:用于將光標移動到行尾。ctrl-k:用于刪除從光標位置到行尾的文本。ctrl-u:用于刪除從光標位置到行首的文本。

文本編輯

nano:一個簡單的命令行文本編輯器。vi或vim:具有許多功能的更高級的文本編輯器。cat:用于在終端上顯示文件的內(nèi)容。head: 用于顯示文件的前幾行。tail:用于顯示文件的最后幾行。

作業(yè)控制

jobs:用于顯示后臺作業(yè)列表。fg:用于將后臺作業(yè)帶到前臺。bg:用于將暫停或停止的作業(yè)移至后臺。kill:用于終止正在運行的進程。

用戶和組管理

useradd:用于創(chuàng)建新的用戶帳戶。usermod:用于修改現(xiàn)有用戶帳戶。userdel:用于刪除用戶帳戶。groupadd:用于創(chuàng)建新的用戶組。groupmod:用于修改已有的用戶組。groupdel:用于刪除用戶組。passwd:用于更改用戶密碼。

調(diào)試和故障排除

strace:用于跟蹤進程發(fā)出的系統(tǒng)調(diào)用和信號。ltrace:用于跟蹤進程進行的庫調(diào)用。gdb: 一個強大的調(diào)試器,用于調(diào)試 C 和 C++ 程序。tcpdump:用于捕獲和分析網(wǎng)絡(luò)流量。wireshark: 用于分析網(wǎng)絡(luò)流量的基于 GUI 的工具。ellaneousecho:用于在終端上顯示消息。printf:用于格式化和顯示數(shù)據(jù)。date:用于顯示或設(shè)置系統(tǒng)日期和時間。tar:用于創(chuàng)建或提取壓縮檔案。

各種各樣的

cal:用于顯示日歷。date:用于顯示或修改系統(tǒng)日期和時間。sleep:用于將腳本或命令的執(zhí)行延遲指定的時間量。tee:用于將輸出重定向到屏幕和文件。history:用于顯示當前shell會話的命令歷史。echo:用于將文本打印到終端或輸出到文件。

注意:請注意,本指南中提供的符號分類并非絕對,它基于一種可能的分類方式。某些符號可能適用于多個類別,并且可能存在一些重疊或重復(fù)。提供的符號列表也并非詳盡無遺,可能因Linux發(fā)行版和版本的不同而有所變化。我們鼓勵讀者參考其系統(tǒng)文檔獲取更多信息。本指南旨在提供關(guān)于Linux和Bash符號和命令的全面概述,但并不意味著是權(quán)威資源。

感謝閱讀我們關(guān)于Linux和Bash符號和命令的全面指南。希望您發(fā)現(xiàn)本指南對掌握命令行非常有幫助。為了及時了解有關(guān)在日常工作中使用這些命令的最新技巧、技巧和最佳實踐,請務(wù)必長期關(guān)注Linux迷www.linuxmi.com以獲取未來的文章。我們將提供深入的示例和用例,幫助您成為更熟練的Linux用戶和命令行專家。

關(guān)鍵詞:

最近更新

關(guān)于本站 管理團隊 版權(quán)申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2023 創(chuàng)投網(wǎng) - mallikadua.com All rights reserved
聯(lián)系我們:39 60 29 14 2@qq.com
皖I(lǐng)CP備2022009963號-3