Linux的常用命令

2021-07-23 19:53:07 字數 3771 閱讀 2437

經過前面的學習,大概了解了計算機組成原理和作業系統的一些知識。儘管這些知識都是瑣碎的,拼湊的,在以後的工作和學習中仍需進行深入的了解。但是這些預備知識對於準備跨入 linux 大門的童鞋來說,應該是足夠了。於是可以愉(ku)快(bi)的敲命令了,這篇文章就來對這幾天學習的命令做乙個總結。

在開始 linux 的命令學習之前,不妨回顧一下作業系統有關的知識,這些知識在後面的學習中可能會用到,有必要再次了解。

1.kernel 核心和系統呼叫

kernel 是作業系統的核心,第一天中我們有說道作業系統的一些核心功能,比如程序管理、記憶體管理、檔案系統、網路管理等,這些都是由核心提供的。這些功能是每個作業系統的基本功能,那些執行在作業系統上面的軟體,都或多或少需要使用到核心提供的功能。因此我們這裡可以換個角度理解核心的作用:將計算機硬體的計算能力抽象出來,並提供給上層軟體呼叫。這種呼叫被稱為系統呼叫。

系統呼叫,可以解釋為呼叫作業系統提供的最底層api進行程式設計。但是對於程式設計師來說,系統呼叫太過底層和複雜,使用起來非常麻煩。這時我們就需要用到庫(library),庫是作業系統對系統呼叫更高一層的抽象,通過呼叫庫進行程式設計,比系統呼叫簡單的多。這些作業系統的層次結構我們清楚了:kernel 核心 -> 各種庫 -> 應用程式。應用程式是建立在各種庫的基礎之上的。

2.magic number 魔數

我們編寫的軟體,也叫可執行檔案。軟體的本質上也是乙個檔案,只是可以被執行,那麼作業系統怎麼判斷這個檔案是否可以被執行呢?或者從**執行這個檔案呢?這就要用到魔數。魔數,顧名思義,它是有魔力的,它的魔力在於:可以告訴作業系統這個檔案是乙個可執行檔案還是普通的檔案,以及其他的一些資訊。

具體而言,魔數是在每乙個檔案的二進位制**的開頭處,用來表示檔案型別以及許可權等的幾個特殊字元,這些特殊字元的格式是固定的。雙擊某個應用程式,或者在 cli 中輸入命令回車後,shell 就會將二進位制檔案提交給作業系統的核心 kernel ,kernel 就去尋找這個檔案的魔數,從這個魔數去判斷該檔案是否可執行,或者有無執行許可權等等。如果檢測的要求合法,就會執行該檔案,如果檢測不合法,則拒絕執行。

3.工作目錄

想必你已發現,只要我們處於作業系統中,我們就乙個處於某乙個目錄中。我們完成的所有的操作,都是在某乙個目錄中完成的。這個目錄也叫工作目錄(working directory)。

這裡留下乙個問題:linux 的基本哲學之一就是一切皆檔案,那麼目錄是不是一種檔案呢?檔名是不是一種檔案呢?檔名和檔案的存放位置是**?這些問題我也不懂,留在後序做解答。

說到工作目錄,這裡引入本文要介紹的第乙個 linux 命令:pwd(print working directory)。該命令用來在 bash 上以字串的形式輸出使用者當前所在的的工作目錄。

4.linux 檔案系統介紹

linux 使用的是層級檔案系統,也可以叫做屬性檔案系統,根檔案系統(root file system)等等。是從乙個根目錄開始,向下蔓延的檔案系統樹。" / "表示根檔案系統。絕大多數的 linux 發行版都遵循 fhs 標準,fhs 表示是 linux 標準委員會提出的檔案系統層級標準,規定了 linux 發行版必須建立哪些檔案。因此我們幾乎在所有的 linux 發行版中,都可以看到一些相同的目錄結構,比如 " /boot "、" /dev "、" /etc" 等等,下面將逐一介紹這些目錄。

動態庫(共享庫):在 windows 下的字尾名為 .dll,在 linux 下的字尾名為 .so(shared object)。動態庫檔案在記憶體中只存在乙份,如果幾個軟體同時依賴於某個庫檔案,他們使用的是同乙份庫檔案。動態庫的優勢在於不需要重複載入,節約很大的記憶體空間。缺點是不方便程式的移植,具體說來,乙個程式讀過依賴於某個動態庫執行,在將其移動到其他系統時,還要保證系統上有對應的庫檔案,否則程式無法執行。

靜態庫:區別於動態庫,靜態庫屬於程式的一部分,作為程式構成的一部分,隨程式一起執行。由於靜態庫和程式是乙個整體,因此如果多個程式使用相同的靜態庫檔案,這個靜態庫檔案也會在記憶體中存在多份。靜態庫的優勢在於方便程式移植,缺點則是無法節約記憶體空間。

/usr/local:存放第三方軟體。

5.linux 檔案命名的的規則

6.常用命令

cd(change directory):切換目錄

type:判斷命令的型別。

hash:檢視 shell 中快取的命令

date:顯示時間或者修改時間

獲取命令幫助

如果多個章節都有相同的命令,需要手動指定在哪個章節查詢,否則預設顯示第一次匹配。

使用 whatis command 可以檢視命令的章節資訊。man 命令中的相關操作(以下均表示按鍵)

cal:獲取日曆

echo:內容輸出

file:辨識檔案的型別

tree:檢視指定目錄的目錄樹結構(這個挺帥的)

mkdir:建立目錄

touch:修改檔案的時間戳資訊/建立檔案

檔案的最後一次訪問時間戳和修改時間戳都是可以改變的,檔案的時間戳不可改變

touch -a file:改變檔案的最後一次訪問時間戳

touch -m file:改變檔案的修改時間戳

touch 在修改檔案的時間戳時,會首先判斷檔案是否存在,如果存在就修改檔案時間戳資訊,如果不存在,就建立乙個新檔案。因此我們經常使用 touch 來建立新檔案。

touch -c file:修改已存在檔案的時間戳,如果檔案不存在,則不做任何操作。

touch -a -t 209912122359 file:改變檔案的時間戳資訊到指定的時間。這是黑客常用的伎倆。

stat file:檢視檔案的時間戳資訊

rm file:刪除檔案

cp:複製檔案

mv:移動檔案

install:複製檔案或建立目錄

cat:顯示檔案的內容

more / less file:讀取長檔案內容,並能夠進行翻屏

head:檢視檔案的前 n 行,預設為10

tail:檢視檔案的後 n 行,預設為10

cut:抓取文字中的內容

sort:對文字中的內容進行排序,預設按照 ascii 排序

uniq:去除重複行

wc file:文字統計

tr:字元轉換

7.bash 和其的一些特性(包括一些命令)

bash 也是乙個命令,表示在當前的 shell 中開啟乙個子 shell。exit 命名表示退出當前 shell 並回到上乙個 shell,如果上乙個 shell 已經是根 shell,則退出當前使用者。linux 中沒登入乙個使用者就會開啟乙個 bash,並且可以同時登陸多個使用者。據此可以 su 之後 exit 又回到原先的使用者 shell。

bash 是命令列工具,除了 bash 之外,類似的還有 csh,ksh 等。值的注意的是 shell 可以交替開啟,如可以在 bash 中開啟 csh,再在 csh 中開啟 ksh。也就是說乙個 shell 的子 shell 並不要求和原來一一致。

bash 的一些操作技巧:

命令歷史:bash 會記錄執行過的命令的,可以使用上下箭頭切換,也可使用 history 命令檢視記錄:

經過執行的命令被存放在記憶體的緩衝區中,當使用者正常退出時,會將緩衝區中的內容追加到 ~ 下的 .bash_history 中,因此下一次該使用者登陸系統時,還可以繼續使用 history。

命令的使用技巧:

命令別名:

unalias alias:撤銷命令別名

命令替換:類似於 php 中的魔術變數

檔名通配:

8.總結

這篇文章主要介紹了 linux 的一些基本概念和常用命令,包括 linux 的檔案系統,以及一些常用的操作檔案和目錄的命令。最後介紹了 bash 的特性以及一些使用技巧,需要不斷的練習和複習,才能掌握上面的內容。

Linux常用命令之Linux常用命令實戰知識點

在在複習linux,這是以前做的筆記,分享一下。linux系統 一切皆檔案 操作檔案就是操作linux系統 一 linux版本 1 redhat 企業版 收費 2 centos redhat的社群版 免費 3 ubuntu 4 紅旗 二 linux的特點 1 多使用者 多工 2 豐富的網路功能 3 ...

常用命令 Linux的介紹以及常用命令

創始人 林納斯 托瓦茲 最早是為了玩遊戲而開發出來的。linux是一套免費使用和自由傳播的類unix作業系統,是乙個基於posix和unix的多使用者 多工 支援多執行緒和多cpu的作業系統。它能執行主要的unix工具軟體 應用程式和網路協議。它支援32位和64位硬體。linux繼承了unix以網路...

LINUX常用命令

一 目錄結構 目錄名稱 意 義 vmlinuz 該目錄中存放的是系統核心 bin 該目錄中存放linux的常用命令,在有的版本中是一些和根目錄下相同的目錄。boot 該目錄下存放的都是系統啟動時要用到的程式,當用lilo引導linux時,會用到這裡的一些資訊 dev 該目錄包含了linux系統中使用...