Linux基礎學習筆記(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命令的內容