命令行是什么?
命令行是與計算機交互的一種方式,通過輸入文本命令來告訴計算機要執(zhí)行的操作。它就像是一個神奇的控制臺,你可以用它來導(dǎo)航文件、管理文件和文件夾、運行程序等等。
常用命令
>
$ cat oceans.txt > continents.txt
>
將左邊命令的標(biāo)準(zhǔn)輸出重定向到右邊的文件。就像把一個文件的內(nèi)容倒入另一個文件。
>>
$ cat glaciers.txt >> rivers.txt
>>
將左邊命令的標(biāo)準(zhǔn)輸出追加到右邊的文件。就像在故事書的末尾添加新的章節(jié)。
<
$ cat < lakes.txt
<
將右邊文件的標(biāo)準(zhǔn)輸入輸入到左邊的程序。就像把一個文件的內(nèi)容倒入一個魔法瓶子里。
|
$ cat volcanoes.txt | wc
|
是一個“管道”。它將左邊命令的標(biāo)準(zhǔn)輸出作為標(biāo)準(zhǔn)輸入傳遞給右邊的命令。就像把一個命令的輸出直接連接到另一個命令的輸入。
~/.bash_profile
$ nano ~/.bash_profile
~/.bash_profile
是一個文件,用于存儲環(huán)境設(shè)置。它通常被稱為“bash 配置文件”。當(dāng)你啟動一個會話時,它會加載 bash 配置文件的內(nèi)容,然后再執(zhí)行命令。
alias
alias pd="pwd"
alias
命令允許你為常用的命令創(chuàng)建鍵盤快捷鍵,或者別名。就像給一個長名字的命令取一個昵稱。
cd
$ cd Desktop/
cd
接受一個目錄名作為參數(shù),并切換到該目錄。就像從一個房間走到另一個房間。
$ cd jan/memory
要直接導(dǎo)航到一個目錄,使用 cd
并將目錄路徑作為參數(shù)。這里,cd jan/memory/
命令直接導(dǎo)航到 jan/memory 目錄。
cd ..
$ cd ..
要向上移動一個目錄,使用 cd ..
。這里,cd ..
從 jan/memory/ 導(dǎo)航到 jan/。
cp
$ cp ada_lovelace.txt historical/
cp
復(fù)制文件或目錄。這里,我們將文件 ada_lovelace.txt 復(fù)制到 historical/ 目錄。
通配符(*
)
$ cp * satire/
通配符 *
選擇當(dāng)前目錄中的所有文件。上面的例子將當(dāng)前目錄中的所有文件復(fù)制到名為 satire 的目錄。還有其他類型的通配符,但它們超出了這個詞匯表的范圍。
$ cp m*.txt scifi/
這里,m*.txt
選擇工作目錄中所有以“m”開頭并以“.txt”結(jié)尾的文件,并將它們復(fù)制到 scifi/。
env
$ env
env
命令代表“環(huán)境”,并返回當(dāng)前用戶的環(huán)境變量列表。
env | grep VARIABLE
$ env | grep PATH
env | grep PATH
是一個顯示單個環(huán)境變量值的命令。
export
export USER="Jane Doe"
export
使變量在你當(dāng)前會話啟動的所有子會話中可用。這是一種讓變量在程序之間持續(xù)存在的方法。
grep
$ grep "Mount" mountains.txt
grep
代表“全局正則表達式打印”。它搜索文件中與模式匹配的行并返回結(jié)果。它是區(qū)分大小寫的。
grep -i
$ grep -i "Mount" mountains.txt
grep -i
使命令不區(qū)分大小寫。
grep -R
$ grep -R Arctic /home/ccuser/workspace/geography
grep -R
搜索圖片搜索目錄中的所有文件,并輸出包含匹配結(jié)果的文件名和行。-R
代表“遞歸”。
grep -Rl
$ grep -Rl Arctic /home/ccuser/workspace/geography
grep -Rl
搜索功能搜索目錄中的所有文件,并僅輸出包含匹配結(jié)果的文件名。-R
代表“遞歸”,l
代表“包含匹配的文件”。
HOME
$ echo $HOME
HOME
變量是一個環(huán)境變量,顯示主目錄的路徑。
ls
$ ls
2024 2025 hardware.txt
ls
列出工作目錄中的所有文件和目錄。
ls -a
$ ls -a
. .. .preferences action drama comedy genres.xt
ls -a
列出工作目錄中的所有內(nèi)容,包括隱藏文件和目錄。
ls -l
$ ls -l
drwxr-xr-x 5 cc eng 4096 Jun 24 16:51 action
drwxr-xr-x 4 cc eng 4096 Jun 24 16:51 comedy
drwxr-xr-x 6 cc eng 4096 Jun 24 16:51 drama
-rw-r--r-- 1 cc eng 0 Jun 24 16:51 genres.txt
ls -l
以長格式列出目錄中的所有內(nèi)容。以下是每列的含義。
ls -t
ls -t
按最后修改時間對文件和目錄進行排序。
mkdir
$ mkdir media
mkdir
接受一個目錄名作為參數(shù),然后在當(dāng)前工作目錄中創(chuàng)建一個新目錄。這里我們使用 mkdir 創(chuàng)建了一個名為 media/ 的新目錄。
mv
$ mv superman.txt superhero/
要將文件移動到目錄中,使用 mv
,并將源文件作為第一個參數(shù),目標(biāo)目錄作為第二個參數(shù)。這里我們將 superman.txt 移動到 superhero/。
nano
$ nano hello.txt
nano
是一個命令行文本編輯器。它就像桌面文本編輯器(如 TextEdit 或 Notepad)一樣工作,只是它可以從命令行訪問,并且只接受鍵盤輸入。
PATH
$ echo $PATH
/home/ccuser/.gem/ruby/2.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
PATH
是一個環(huán)境變量,存儲了一系列由冒號分隔的目錄。每個目錄都包含命令行要執(zhí)行的腳本。PATH 列出哪些目錄包含腳本。
pwd
$ pwd
/home/ccuser/workspace/blog
pwd
打印工作目錄的名稱。
rm
$ rm waterboy.txt
rm
刪除文件。這里我們從文件系統(tǒng)中刪除文件 waterboy.txt。
rm -r
$ rm -r comedy
rm -r
刪除一個目錄及其所有子目錄。
sed
$ sed 's/snow/rain/' forests.txt
sed
代表“流編輯器”。它接受標(biāo)準(zhǔn)輸入,并根據(jù)一個表達式對其進行修改,然后將其顯示為輸出數(shù)據(jù)。
在表達式 's/snow/rain/'
中:
s
: 代表“替換”。snow
: 搜索功能搜索字符串,要查找的文本。rain
: 替換字符串,要添加的文本。
sort
$ sort lakes.txt
sort
接受一個文件名或標(biāo)準(zhǔn)輸入,并按字母順序?qū)γ恳恍羞M行排序,然后將其打印到標(biāo)準(zhǔn)輸出。
standard error
標(biāo)準(zhǔn)錯誤
,簡稱為 stderr
,是一個失敗進程輸出的錯誤消息。
source
source ~/.bash_profile
source
激活 ~/.bash_profile 中的更改,以便在當(dāng)前會話中使用。這樣就不需要關(guān)閉終端并需要啟動一個新會話,source
會立即在我們當(dāng)前的會話中應(yīng)用更改。
standard input
標(biāo)準(zhǔn)輸入
,簡稱為 stdin
,是通過鍵盤或輸入設(shè)備輸入到終端的信息。
standard output
標(biāo)準(zhǔn)輸出
,簡稱為 stdout
,是一個進程運行后輸出的信息。
touch
$ touch data.txt
touch
在工作目錄中創(chuàng)建一個新文件。它接受一個文件名作為參數(shù),然后在當(dāng)前工作目錄中創(chuàng)建一個新空文件。這里我們使用 touch 在 2025/dec/ 目錄中創(chuàng)建了一個名為 keyboard.txt 的新文件。
如果文件已存在,touch 用于更新文件的修改時間。
uniq
$ uniq lakes.txt
uniq
,代表“唯一”,接受一個文件名或標(biāo)準(zhǔn)輸入,并打印出每一行,刪除任何完全相同的重復(fù)項。
課程推薦
希望這篇文章能幫助你更好地理解命令行命令!如果你有任何問題或需要進一步的幫助,請隨時訪問 編程獅 。 ??