佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Linux命令和命令行詳解

Linux命令和命令行詳解

熱門(mén)標(biāo)簽:服務(wù)器配置 外呼系統(tǒng) 電話機(jī)器人搭建 美團(tuán) 解決方案 硅谷的囚徒呼叫中心 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 家政服務(wù)網(wǎng)絡(luò)

Linux的命令是很重要的工具,也往往是初學(xué)者最大的瓶頸。有朋友用了很長(zhǎng)時(shí)間的Linux圖形界面,基本不使用命令行輸入命令執(zhí)行,所以裝的Linux最終成了擺設(shè)。這里總結(jié)一些命令行下常使用的命令,希望能有用。

什么是命令

我們通常所說(shuō)的Linux命令行是運(yùn)行在終端(terminal)的shell (閱讀Linux架構(gòu)以了解什么是shell以及它在Linux系統(tǒng)中的位置)

所謂的命令,是我們?cè)诿钚休斎氲囊淮址?。shell負(fù)責(zé)理解并執(zhí)行這些字符串。shell命令可以分為如下幾類(lèi) 1)可執(zhí)行文件(executable file) 2)shell內(nèi)建函數(shù)(built-in function) 3) 別名(alias)。可執(zhí)行文件為經(jīng)過(guò)編譯的程序文件,我們輸入這些文件的路徑來(lái)讓shell運(yùn)行,比如$/bin/ls。有些可執(zhí)行文件被放在特殊的目錄(默認(rèn)路徑)下面,從而使得操作系統(tǒng)可以通過(guò)文件名找到,而不用總是輸入該文件的絕對(duì)路徑(absolute path)。比如說(shuō)$ls(實(shí)際上,shell自動(dòng)幫我們補(bǔ)齊ls的路徑)。隨后,這些可執(zhí)行文件中包含的程序運(yùn)行,并成為進(jìn)程。shell的內(nèi)建函數(shù)與上面類(lèi)似,只是其對(duì)應(yīng)的程序被保存在shell的內(nèi)部。別名是指我們給以上兩種命令起一個(gè)簡(jiǎn)稱(chēng),以便減少輸入的工作量。

我們可以通過(guò)type命令來(lái)了解命令的類(lèi)型:

復(fù)制代碼
代碼如下:

$type ls/p> p>$type cd

命令的構(gòu)成

當(dāng)我們?cè)诿钚休斎朊畹臅r(shí)候,往往由一下方式構(gòu)成:

復(fù)制代碼
代碼如下:

$ls -l /home

整個(gè)一行命令由空格分為三個(gè)部分(注意, $是自動(dòng)出現(xiàn)的提示符,有時(shí)還會(huì)在此之前出現(xiàn)計(jì)算機(jī)名)。第一個(gè)為命令的名字ls,這個(gè)命令ls的功能是列出目錄中所有文件,第二個(gè)-l是關(guān)鍵字,它告訴ls要列出每個(gè)文件的詳細(xì)信息,第三個(gè)/home為參數(shù),表示我所要列出的目錄是/home。實(shí)際上關(guān)鍵字是一種特殊的參數(shù),大部分情況下用來(lái)開(kāi)關(guān)程序的某些特殊功能 (用來(lái)選擇做出的是拿鐵咖啡還是黑咖啡)。而參數(shù)是用來(lái)傳遞給程序的一般的變量。ls經(jīng)過(guò)處理之后,將在終端輸出/home下面包含的各個(gè)文件名 (該文件系統(tǒng)見(jiàn):https://www.jb51.net/LINUXjishu/214042.html):

復(fù)制代碼
代碼如下:

vamei another

關(guān)鍵字和參數(shù)可以不止有一個(gè),比如:

復(fù)制代碼
代碼如下:

$ls -l -a /home /bin/p> p>$ls -la /home /bin

(上面兩個(gè)命令等價(jià))

列出/home和/bin目錄下的文件,-a表示列出全部文件(即使是隱藏文件也要列出), -l表示列出每個(gè)文件的詳細(xì)信息。

(如果命令沒(méi)有被放在默認(rèn)路徑中,你也可以輸入絕對(duì)路徑來(lái)執(zhí)行)

回憶Linux文件管理背景知識(shí) ,我們知道,每個(gè)文件能否被執(zhí)行要根據(jù)用戶(hù)所擁有的權(quán)限。命令實(shí)際上是可執(zhí)行文件,也是如此。系統(tǒng)相關(guān)的命令,或者某個(gè)命令中的定義的操作,往往會(huì)要求超級(jí)用戶(hù)root的身份才能使用。如果你是用戶(hù)vamei,那么你就無(wú)法使用這些命令。但以root的身份登錄是個(gè)糟糕的想法。為了解決這一矛盾,你可以以vamei的身份登錄,但在執(zhí)行命令之前加上sudo, 以便臨時(shí)以root的身份執(zhí)行某條命令。比如$sudo ls .

對(duì)于大多數(shù)的shell來(lái)說(shuō),都有命令補(bǔ)齊的功能。當(dāng)你在的后面輸入命令的一部分時(shí),比如rmdir的rmd的時(shí)候,按Tab鍵,Linux會(huì)幫你打剩下的字符,補(bǔ)充成為rmdir。不止是命令,如果你輸入的是文件名,Linux也可以幫你補(bǔ)齊。比如說(shuō),ls a.txt。當(dāng)你輸入到lsa.t的時(shí)候,按Tab鍵,Linux會(huì)幫你補(bǔ)齊該文件名,成為ls a.txt。當(dāng)然,這樣做的前提是你輸入到rmd的時(shí)候,默認(rèn)路徑下能和它相符的命令只有一個(gè)rmdir了。如果有多個(gè)相符的命令,連按兩下Tab,Linux會(huì)顯示所有的相符的命令。

多使用命令的好處

實(shí)際上,許多命令的功能都可以通過(guò)圖形化界面來(lái)實(shí)現(xiàn),學(xué)習(xí)這些命令的意義在哪里呢?

在UNIX發(fā)育的大部分歷史上,用戶(hù)都是通過(guò)shell來(lái)工作的。大部分命令都已經(jīng)經(jīng)過(guò)了幾十年的發(fā)展和改良,功能強(qiáng)大,性能穩(wěn)定。Linux繼承自UNIX,自然也是如此。此外Linux的圖形化界面并不好,并不是所有的命令都有對(duì)應(yīng)的圖形按鈕。更別說(shuō)在圖形化界面崩潰的情況下,你就要靠shell輸入命令來(lái)恢復(fù)計(jì)算機(jī)了。

命令本身是一個(gè)函數(shù) (function),是一個(gè)小的功能模塊。當(dāng)我們想要讓計(jì)算機(jī)做很復(fù)雜的事情 (比如說(shuō): 在晚上12:00下載某個(gè)頁(yè)面的所有鏈接,然后復(fù)制到移動(dòng)硬盤(pán))的時(shí)候,不斷地去按各個(gè)圖形化按鈕并不是個(gè)很聰明的事情 (1. 要點(diǎn)很多下,2. 必須等到12:00)。我們通常是通過(guò)shell編程來(lái)實(shí)現(xiàn)這樣一些復(fù)雜任務(wù),這時(shí),就可以把命令作為函數(shù),嵌入到我們的shell程序中, 從而讓不同命令協(xié)同工作 (比如使用date來(lái)查詢(xún)時(shí)間,再根據(jù)時(shí)間來(lái)使用wget下載等等)。

如何了解一個(gè)陌生的命令?

有一些命令可以用來(lái)了解某個(gè)命令本身的情況,比如這個(gè)命令的絕對(duì)路徑。

復(fù)制代碼
代碼如下:

$which ls

which 在默認(rèn)路徑中搜索命令,返回該命令的絕對(duì)路徑。

復(fù)制代碼
代碼如下:

$whereis ls

whereis 在相對(duì)比較大的范圍搜索命令,返回該命令的絕對(duì)路徑。

復(fù)制代碼
代碼如下:

$whatis ls

whatis 用很簡(jiǎn)短的一句話來(lái)介紹命令。

復(fù)制代碼
代碼如下:

$man ls

man 查詢(xún)簡(jiǎn)明的幫助手冊(cè)。對(duì)于大部分的Linux自帶的命令來(lái)說(shuō),當(dāng)作者編寫(xiě)它的時(shí)候,都會(huì)帶有一個(gè)幫助文檔,告訴用戶(hù)怎么使用這個(gè)命令。

(man可以說(shuō)是我們了解Linux最好的百科全書(shū),它不但可以告訴你Linux自帶的命令的功能,還可以查詢(xún)Linux的系統(tǒng)文件和系統(tǒng)調(diào)用。如果想要深入學(xué)習(xí)Linux,就必須要懂得如何用man來(lái)查詢(xún)相關(guān)文檔。)

復(fù)制代碼
代碼如下:

$info ls

info 查詢(xún)更詳細(xì)的幫助信息

此外,在shell中,你還可以用向上箭頭來(lái)查看之前輸入運(yùn)行的命令。

你也可以用

復(fù)制代碼
代碼如下:

$history

來(lái)查詢(xún)之前在命令行的操作。

當(dāng)一個(gè)命令運(yùn)行時(shí),你中途想要停止它時(shí),可以用Ctrl + c。如果你只是想暫時(shí)停止,使用Ctrl + z。具體機(jī)制與信號(hào)(signal)有關(guān),我們將在以后介紹。

總結(jié)

命令行: 使用shell解釋輸入的字符串,以運(yùn)行程序
type
sudo
which, whereis, whatis, man, info
使用Tab自動(dòng)補(bǔ)齊,向上箭頭查詢(xún)歷史,history
Ctrl + c, Ctrl + z

標(biāo)簽:邢臺(tái) 防城港 臨沂 烏蘭察布 韶關(guān) 撫州 南昌 北海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux命令和命令行詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢(xún)

    • 400-1100-266
    卢龙县| 博罗县| 北辰区| 特克斯县| 精河县| 呼玛县| 舒兰市| 保山市| 庆云县| 韶山市| 林州市| 博乐市| 富平县| 四会市| 上饶县| 锦屏县| 晋江市| 怀安县| 阿坝县| 色达县| 依安县| 平凉市| 沂水县| 阜新市| 长丰县| 博乐市| 克什克腾旗| 竹山县| 都昌县| 咸丰县| 竹溪县| 平罗县| 安徽省| 商南县| 晋城| 潼关县| 新津县| 灵川县| 巫山县| 阿拉善左旗| 合作市|