1. 程式人生 > 其它 >Linux基礎學習筆記(1

Linux基礎學習筆記(1

1、檔案管理基礎命令

1.1 Linux檔案系統目錄結構

在Linux系統中有“一切皆檔案”的思想,也就是說,在Linux系統中將所有的硬體裝置都當做檔案來處理,包括硬碟、CD-ROM、USB等裝置。

Linux系統採取“樹形結構”來管理檔案

  • /:整個檔案系統層次結構的根目錄

  • /bin:存放常用指令

  • /boot:包含核心啟動檔案

  • /dev:存放裝置特殊檔案目錄,如音效卡檔案、磁碟檔案等

  • /ect:存放系統管理和配置檔案目錄

  • /home:使用者的主目錄,包括儲存的檔案,個人配置,等等

  • /lib:/bin/ 和 /sbin/中的二進位制檔案的必需的庫檔案

  • /mnt: 掛載目錄

  • /root:root使用者主目錄

  • /usr:最龐大的目錄,存放應用程式和檔案目錄

  • /proc:process的縮寫,存放描述系統程序的詳細資訊,可直接訪問這個目錄來獲取系統資訊

1.2 常用命令

1.2.1 pwd 命令

作用:獲取當前所在目錄的絕對路徑

1.2.2 cd 命令

作用:切換到指定目錄下

用法:cd [引數]

常用引數:

  • 相對路徑 | 絕對路徑

  • ~:回到自己家目錄

  • ..:返回上級目錄

1.2.3 mkdir 命令

作用:建立目錄

用法:mkdir [選項] 要建立的目錄名

常用選項:

  • -p:建立多級目錄

我們在/tmp下建立一個aaa目錄

切換到aa目錄下,建立 bbb/ccc 兩個目錄需要加 -p

1.2.4 rmdir命令

作用:刪除一個空目錄,如果目錄不為空,刪除不了

用法:rmdir [選項] 刪除的空目錄名

常用選項:

  • -p:連同上層“空的”目錄也一起刪除

我們要刪除ccc目錄,首先切換到bbb目錄中

這樣ccc目錄就被刪除了

刪除aaa目錄(此時aaa中含有bbb)加上 -p

1.2.5 ls 命令

作用:列出目錄的內容

用法:ls [選項] [目錄或者檔案]

常用選項:

  • -a:列出全部的檔案,包括隱藏的目錄和隱藏的檔案(以.開頭的檔案)

  • -A:列出全部的檔案,包括隱藏的目錄和檔案(不包括 . 與 .. 這兩個目錄)

  • -d:僅列出目錄本身,而不是列出目錄內的檔案資料

  • -h:將檔案容量以人類較易讀的方式(例如GB、KB等) 列出來

  • -l:以列表的方式顯示資訊

  • -al:具有上面兩個的功能

ls列出目錄的內容(不含隱藏檔案)

ls -a:隱藏目錄和檔案也被顯示出來(以.開頭的檔案)

ls -A:不包含.和..這兩目錄(與上面不同的地方)

ls -d:列出/ect 目錄本身

ls -h:可以看出更多的檔案引數,通常和-l 一起

1.2.6 cp 命令

作用:拷貝檔案到指定目錄

用法:cp [選項] 原始檔 目標目錄

常用選項:

  • -r:拷貝整個資料夾

  • -f:若目的地已經有同名的檔案存在,則在複製前先予刪除再複製

  • -a:儘可能將檔案狀態、許可權等資料都照原狀予以複製

1.2.7 rm命令

作用:移除檔案或目錄

用法:rm [選項] 要刪除的檔案或者目錄

常用選項:

  • -r :遞迴刪除整個資料夾

  • -f :強制刪除不提示

刪除aaa目錄(含有bbb目錄),加上f 就不會有一下提示了

2、獲取命令幫助

2.1 man 命令

作用:顯示指定命令的用法 ,

用法:man [命令或配置檔案]

例如:獲取ls命令的使用方法

操作:你可以按 空格鍵 往下翻,可以按 q 鍵離開

3、瞭解你的系統

關於Linux系統執行級別:

在Linux中共有7個執行級別,它們分別是:

執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動

執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登陸

執行級別2:多使用者狀態(沒有NFS)

執行級別3:完全的多使用者狀態(有NFS),登陸後進入字元模式(就是黑乎乎的介面)

執行級別4:系統未使用,保留

執行級別5:圖形介面模式

執行級別6:系統正常關閉並重啟,預設執行級別不能設為6,否則不能正常啟動

系統啟動預設級別設定檔案是 : /etc/inittab 。修改裡面的 id:3:initdefault:這一行 ,就能改變啟動預設啟動級別,比如id:3 ,就是預設啟動到字元介面。

3.1 檢視Linux中硬體資訊

3.1.1 cat /proc/cpuinfo

作用:檢視CPU資訊

3.1.2 cat /proc/cpuinfo | grep "processor" | wc -l

作用:檢視邏輯CPU個數

3.1.3 cat /proc/cpuinfo | grep "physical id" | sort -u | wc -l

作用:檢視物理CPU個數

3.1.3 cat /proc/cpuinfo | grep "core id" | uniq | wc -l

作用:檢視core id的數量,如果有兩個邏輯CPU具有相同的 core id ,意味這,CPU啟用的超執行緒

3.2 檢視linux的記憶體資訊

3.2.1 cat /proc/meminfo

作用:檢視linux的記憶體資訊

顯示的東西很多,還可以用另一個命令 free 來檢視記憶體的資訊

其中

total:代表總大小 ; used :已經使用的大小;free:剩餘的大小;Shared:多個程序共享的記憶體總額;buffers/cached:磁碟快取的大小。

第二行(mem)的used/free與第三行(-/+ buffers/cache) used/free的區別。這兩個的區別在於使用的角度來看,第一行是從OS的角度來看,因為對於OS,buffers/cached 都是屬於被使用,所以他的可用記憶體是879348KB,已用記憶體是140916KB,其中包括,核心(OS)使用+Application(X, oracle,etc等)使用的+buffers+cached。

第三行所指的是從應用程式角度來看,對於應用程式來說,buffers/cached 是等於可用的,因為buffer/cached是為了提高檔案讀取的效能,當應用程式需在用到記憶體的時候,buffer/cached會很快地被回收。

所以從應用程式的角度來說,可用記憶體=系統free memory+buffers+cached。

3.3 磁碟使用情況檢視

命令:fdisk -l

還可以使用df -Th命令

3.4 身份資訊檢視

3.4.1 whoami 命令

作用:顯示當前登入使用者名稱

用法:whoami [--help][--version]

引數選項:

  • --help  線上幫助

  • --version  顯示版本資訊

3.4.2 who 命令

作用:顯示所有登入使用者(所有登入使用者資訊)

3.5 系統在幹嘛?

3.5.1 top 命令

作用:實時顯示 process 的動態,相當於windows中的工作管理員

欄位說明:

USER:該 process 屬於哪個使用者賬號的

PID :該 process 的號碼

%CPU:該 process 使用掉的 CPU 資源百分比

%MEM:該 process 所佔用的實體記憶體百分比

VSZ :該 process 使用掉的虛擬記憶體量 (Kbytes)

RSS :該 process 佔用的固定的記憶體量 (Kbytes)

TTY :該 process 是在那個終端機上面運作,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程式,若為 pts/0 等等的,則表示為由網路連線進主機的程式。

STAT:該程式目前的狀態,主要的狀態有:

D 不可中斷

R 執行中

S 休眠的程序,可以被某些訊號喚醒

T 停止的程序

Z 僵死的程序,就像windows裡面程式無響應差不多

系統都開啟了哪些服務?

3.5.2 chkconfig --list

作用:查詢系統服務在系統各個執行級別上的資訊

最左邊的一列,是表示服務名,右邊是指各個服務在各個系統啟動級別上是否開啟的狀態。

3.5.3 service 命令

作用:檢視某個服務的狀態,比如檢視 sshd這個服務的狀態

用法:service [選項][引數]

選項:

  • -h:顯示幫助資訊

  • --status-all:顯示所服務的狀態

引數:

  • 服務名:自動要控制的服務名,即/etc/init.d目錄下的指令碼檔名

  • 控制命令:系統服務指令碼支援的控制命令

它就像我們windows裡面的服務管理,可以開啟和關閉服務。

要注意的是這個命令不是在所有的linux發行版本中都有。主要是在redhat、fedora、和centos中。

檢視 sshd這個服務的狀態:

顯示所有服務狀態

顯示服務crond的狀態

service crond status

停止服務crond

service crond stop

啟動服務crond

service crond start

重啟服務crond

service crond restart

重新載入crond服務的配置

service crond reload

3.6 系統網路連結狀況

3.6.1 ifconfig 命令

作用:顯示或設定網路裝置

Inet addr :就是IP地址 ;

Bcast:廣播地址;

Mask:是子網掩碼;

inet6 addr:這是ipv6的ip地址。

RX:指接收 ;

TX:指傳送。

3.6.2 netstat

作用:顯示目前在Linux系統上的檔案系統的磁碟使用情況統計

如果要看更加詳細的,可以使用 netstat -atunp

會顯示所有udp和tcp連結並顯示程序號

4、Linux檔案許可權

4.1 Linux檔案屬性

許可權:

  • 第一個字元表示這個檔案是目錄、檔案或連線檔案等;

    d:表示目錄

    -:表示檔案

    |:表示連線檔案

    b:表示塊裝置(如硬碟)

    c:表示字元裝置(如鍵盤,滑鼠等)

  • 接下來的字元中,以三個為一組,均為”rwx“的三個引數的組合。分別是r:可讀;w:可寫;x:可執行。注意,這三個許可權的位置不會改變,如果沒有許可權,就是:”-“。

  • 第一組為檔案擁有者可具有的許可權;

  • 第二組為加入使用者組之賬號的許可權

  • 第三組為非本人且沒有加入本使用者的其他賬號的許可權

連線:每個檔案都會將他的許可權和屬性記錄到檔案系統的inode中,每個檔案名都會連線到一個inode。這個連線數就是記錄有多少不同的檔案名連線到相同的一個inode號碼去了。

擁有者:就是這個檔案所屬的擁有者賬號了

使用者組:表示這個檔案所屬的群組

檔案容量:這個檔案佔用的容量大小,預設單位是bytes

修改日期:最近被修改的日期

檔名:就是檔名

4.2 修改檔案的屬性與許可權

4.2.1 chown 命令

作用:修改檔案擁有者

用法:chown [-R] 賬號名稱 檔案或者目錄

引數:

  • -R:遞迴,用於改變目錄。連同該目錄下所有的檔案都改變

4.2.2 chmod 命令
數字型別修改檔案許可權

作用:chmod [-R] xyz 檔案或目錄

引數:

  • xyz:數字型別的許可權屬性,為rwx屬性的數值的相加,r為4,w為2,x為1,如rw-就是6

  • -R:進行遞迴修改連同子目錄下的所有檔案都會修改

例如:將a.txt的許可權改為rwxrwxrwx,許可權數字就是777

符號型別修改檔案許可權

接下來要將a.txt改為[-rwxr-xr-x]

5、檔案與目錄管理

5.1 檢視檔案型別

5.1.2 file 命令

作用:檢視檔案型別

用法:file [-bLvz] 檔案

  • -b:顯示結果,但是不顯示檔名稱

  • -L:直接顯示符號連結所指向的檔案的型別

  • -v:顯示版本資訊

  • -z:測試去讀取壓縮檔案的內容

檢視/etc中的adjtime檔案型別

原來是個文字檔案

5.2 指令碼檔案查詢

5.1.1 which 命令

作用:顯示命令的完整檔名

用法:which [-a] command

引數:

  • -a:將PATH中可以找到的指令都列出來,而不是第一個被找到的名稱

找到mkdir命令

用root使用者的時候,為什麼能找到ifconfig ,但是用普通使用者就找不到了呢?是這樣的,which是根據使用者的PATH變數設定的路徑去找的

5.3 檔案查詢

5.3.1 whereis 命令

作用:找到系統中某些特定目錄下的檔案

用法:whereis [-bmsu] 目錄或檔名

引數:

  • -b:只找binary(二進位制)格式的檔案

  • -m:只找在說明檔案manual路徑下的檔案

  • -s:只找source來源檔案

  • -u:搜尋不在上述三個專案當真的其他特殊檔案

找到ifconfig

whereis搜尋非常快速,因為它是基於資料庫的。這是因為linux系統會將系統內的所有檔案都記錄在一個數據庫檔案中,當使用 whereis和下面即將介紹的locate時,會從資料庫中查詢資料,而不是像find命令那樣,通過遍歷硬碟來查詢,效率自然會很高。

5.3.2 locate 命令

作用:找到與關鍵字相關的檔案或目錄

用法:locate [-ir] keyword

引數:

  • -i :忽略大小寫

  • -r :使用正規運算式做尋找的條件

搜尋所有有關passwd的檔案

5.3.3 find命令

作用:

用法:find [路徑] [option] [action]

引數:

  • -atime,-ctime和-mtime

    • 以-mtime說明:-mtime n :n 為數字

    • -mtime +n :n天之前(不含n天本身)

    • -mtime -n:n天之內(含n天本身)

    • -nwer file:file為一個存在的檔案,列出比file更新的檔案。

將過去系統上面24小時內有更改(mtime)的內容列出來:

6、檔案內容檢視

6.1 直接檢視檔案內容

6.1.1 cat 命令

作用:檢視檔案內容

用法:cat [-n] 檔案

引數:

  • -n:顯示行號

檢視passwd

加上-n會顯示行號

6.1.2 tac (反向列示)

作用:檢視檔案內容(顯示內容與cat相反)

用法:tac 檔案

6.2 可翻頁檢視

6.2.1 more 命令

作用:實現一頁一頁翻動

用法:more [檔名]

檢視一個內容很長的文件

顯示進度,按空格鍵或者回車鍵盤 就能往下翻頁了。按 q 鍵就可以離開,輸入 “/keyword” 可以對關鍵詞就行搜尋,按 n 可以向下搜尋

6.2.2 less 命令

作用:實現一頁一頁翻動

用法:less 檔案

6.3 資料擷取

6.3.1 head命令

作用:有時候我們並不需要檢視全部的文件內容,只是想看其中幾行而已,這時可用head,head是選取頭幾行,預設不加引數,是顯示頭十行的內容。

用法:head [-n number] 文件

引數:

  • -n:後面接的數字,代表顯示幾行的意思

6.3.2 tail 命令

作用:選取尾部文件內容(與head相反)

用法:taill [-n number] 檔案

引數:

  • -n:後面接的數字,代表顯示幾行的意思

  • -f:持續重新整理顯示後面所接檔案中的內容,等到按下[ctrl ] + c 才會結束

6.4 非純文字檔案

6.4.1 od 命令

作用:檢視二進位制檔案的內容

用法:od [-t TYPE] 檔案

引數:

  • -t 後面接輸出的型別

TYPE:

  • a:利用預設的字元來輸出

  • c:使用ASCII字元來輸出

  • d[size]︰利用十進位制(decimal)來輸出資料,每個整數佔用size bytes ;

  • f[size]:利用浮點數(floating)來輸出資料,每個數佔用size bytes ;

  • o[size]:利用八進位制(octal)來輸出資料,每個整數佔用size bytes ;

  • x[size]∶利用十六進位制(hexadecimal)來輸出資料,每個整數佔用size

檢視head命令的內容