首頁(yè) 計(jì)劃 > 正文

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

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


(資料圖片)

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

重定向

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

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

管道

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

ls -l | grep "linuxmi"

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

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

通配符和通配符

Bash 支持稱為通配符的強(qiáng)大功能,它允許您使用通配符來(lái)匹配文件名模式。以下是 globbing 中最常用的一些符號(hào):

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

常用表達(dá)

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

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

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

通配符和通配符

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

否定

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

算術(shù)運(yùn)算

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

比較

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

條件執(zhí)行

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

條件語(yǔ)句

if:用于檢查條件是否為真并相應(yīng)地執(zhí)行命令。例如,if [[ $foo == “bar” ]]; then echo “foo is bar”; fi將檢查變量是否foo等于“bar”,如果為真則打印“foo is bar”。elifif:如果語(yǔ)句中的先前條件為假,則用于檢查其他條件。例如,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”并在為真時(shí)打印“foo is bar”,否則檢查是否foo等于“baz”并在為真時(shí)打印“foo is baz”,最后打印“foo is something else”如果前面兩個(gè)條件都為假。[[ ]]:用于在 Bash 中執(zhí)行條件測(cè)試。case:用于將變量與模式列表進(jìn)行匹配并相應(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”,對(duì)于任何其他值則打印“It’s something else”。

循環(huán)

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

函數(shù)

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

數(shù)組

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

過(guò)程控制和管理

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

文件系統(tǒng)操作

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

文件和文本操作

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

權(quán)限

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

字符串操作、搜索和比較

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

網(wǎng)絡(luò)

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

SSH 和加密

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

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

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

命令行編輯

ctrl-a:用于將光標(biāo)移動(dòng)到行首。ctrl-e:用于將光標(biāo)移動(dòng)到行尾。ctrl-k:用于刪除從光標(biāo)位置到行尾的文本。ctrl-u:用于刪除從光標(biāo)位置到行首的文本。

文本編輯

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

作業(yè)控制

jobs:用于顯示后臺(tái)作業(yè)列表。fg:用于將后臺(tái)作業(yè)帶到前臺(tái)。bg:用于將暫?;蛲V沟淖鳂I(yè)移至后臺(tái)。kill:用于終止正在運(yùn)行的進(jìn)程。

用戶和組管理

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

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

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

各種各樣的

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

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

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

關(guān)鍵詞:

最近更新

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

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