第三章 Linux 的目錄結構
3.1 基本介紹
linux 的檔案系統是采用級層式的樹狀目錄結構,在此結構中的最上層是根目錄“/”,然後在此目錄下再建立其他的目錄。
在 Linux 世界裡,一切皆檔案。
3.2 Linux具體目錄結構
l /lib
¡ 系統開機所需要最基本的動态連結共享庫,其作用類似于Windows裡的DLL檔案。幾乎所有的應用程式都需要用到這些共享庫。
l /lost+found
¡ 一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案。
l /etc [重點]
¡ 所有系統管理所需要的配置檔案和子目錄。my.conf
l /usr
¡ 使用者的很多應用程式和檔案都放在這個目錄下。類似于Windows下的program.files目錄
l /bin [重點](usr/bin、/usr/local/bin) [usr:Unix System Resource,即Unix系統資源的縮寫]
¡ 是Binary的縮寫,這個目錄存放着經常使用的指令
l /sbin (usr/sbin、/usr/local/sbin)
¡ s就是
¡ per user的意思,這裡存放的是系統管理者使用的系統管理程式
l /home [重點]
¡ 存放普通使用者的主目錄,在Linux中的每個使用者都有一個自己的目錄,一般該目錄一使用者的賬号名命名
l /root [重點]
¡ 該目錄為系統管理者,超級權限者的使用者目錄
l /boot
¡ 存放的啟動Linux時使用的一些核心檔案,包括一些連結檔案和鏡像檔案
l /proc
¡ 虛拟目錄,是系統記憶體的映射,通路這個目錄來擷取系統資訊。
l /srv
¡ service 的縮寫,該目錄是存放一些服務啟動之後需要提取的資料
l /sys
¡ Linux2.6核心的一個很大變化,該目錄安裝了2.6核心中新出現的一個檔案系統
l /tmp
¡ [t1] 存放臨時檔案
l /dev
¡ 類似于 windows的裝置管理器,把所有的硬體用檔案的形式存儲
l /media [重點]
¡ Linux系統會自動識别一些裝置,例如U盤、光驅等等,當識别後,Linux 會把識别的裝置挂載到這個目錄下。
l /mnt [重點]
¡ 系統提供該目錄是為了讓使用者臨時挂載别的檔案系統的,我們可以将外部的存儲挂載在/mnt/上,然後進入該目錄就可以檢視裡的内容了。d:/ myshare
l /opt
¡ 這是給主機額外安裝軟體所擺放的目錄。如安裝 ORACLE資料庫就可放到該目錄下。預設為空。
l /usr/local [重點]
¡ 這是另個給主機額外安裝軟體所安裝的目錄。一般是通過編譯源碼方式安裝的程式。
l /var [重點]
¡ 這個目錄中存放着在不斷擴充着的東西,習慣将經常被修改的目錄放在這個目錄下。包括各種日志檔案。
l /selinux [security-enhanced linux] 類似 360
¡ Selinux是一種本機安全性授權,它能控制程式隻能訪同特定檔案。
3.3 Linux 目錄總結一下
1) linux 的目錄中有且隻要一個根目錄 /
2) linux 的各個目錄存放的内容是規劃好,不用亂放檔案。
3) linux 是以檔案的形式管理我們的裝置,是以 linux 系統,一切皆為檔案。
4) linux 的各個檔案目錄下存放什麼内容,大家必須有一個認識。
5) 學習後,你腦海中應該有一顆 linux 目錄樹。
第四章Linux常用指令
4.1 檔案處理指令
[2] 4.1.1 指令格式與目錄處理指令ls
指令格式 :指令 [-選項] [參數]
例 : ls -la /etc
說明:1)個别指令使用不遵循此格式
2)當有多個選項時,可以寫在一起
3)簡化選項與完整選項-a 等于 --all
指令名稱:ls
指令英文原意:list
指令所在路徑:/bin/ls
執行權限:所有使用者
功能描述:顯示目錄檔案
文法:ls 選項[-ald] [檔案或目錄]
-a 顯示所有檔案,包括隐藏檔案[t3]
-l 詳細資訊顯示
-d 檢視目錄屬[t4] 性
tip:
-rw-r--r--
l - 檔案類型(- 檔案 d 目錄 l 軟連結檔案)
l rw- r-- r--
u g o
u所有者 g所屬組 o其他人
r讀 w寫 x執行
4.1.2 目錄處理指令
指令名稱:mkdir
指令英文原意:make directories
指令所在路徑:/bin/mkdir
執行權限:所有使用者
文法:mkdir -p [目錄名]
功能描述:建立新目錄-p 遞歸建立
範例: $ mkdir -p /tmp/Japan/boduo
$ mkdir /tmp/Japan/longze /tmp/Japan/cangjing[t5]
指令名稱:cd
指令英文原意:change directory
指令所在路徑:shell内置
指令執行權限:所有使用者
文法:cd [目錄]
功能描述:切換目錄
範例: $ cd /tmp/Japan/boduo 切換到指定目錄
$ cd .. 回到上一級目錄[t6]
指令名稱:pwd
指令英文原意: print working directory
指令所在路徑:/bin/pwd
執行權限:所有使用者
文法:pwd
功能描述:顯示目前目錄
範例:$ pwd
/tmp/Japan
指令名稱:rmdir
指令英文原意:remove empty directories
指令所在路徑:/bin/rmdir
執行權限:所有使用者
文法:rmdir [目錄名]
功能描述: 删除空目錄
範例: $ rmdir /tmp/Japan/boduo
指令名稱:cp
指令英文原意:copy
指令所在路徑:/bin/cp
執行權限:所有使用者
文法:cp -rp [原檔案或目錄] [目标目錄]
-r 複制目錄
-p 保留檔案屬性
功能描述:複制檔案或目錄
範例:$ cp -r /tmp/Japan/cangjing /root
将目錄/tmp/Japan/cangjing複制到目錄/root下
$ cp -rp /tmp/Japan/boduo /tmp/Japan/longze /root
将/tmp/Japan目錄下的boduo和longze目錄複制到/root下,保持目錄屬性[t7] [t8]
指令名稱:rm [t9] [t10]
指令英文原意:remove
指令所在路徑:/bin/rm
執行權限:所有使用者
文法:rm -rf [檔案或目錄]
-r 删除目錄
-f 強制執行
功能描述:删除檔案[t11] [t12]
範例:$ rm /tmp/yum.log
删除檔案/tmp/yum.log
$ rm -rf /tmp/Japan/longze
删除目錄/tmp/Japan/longze[t13]
4.1.3 檔案處理指令
指令名稱:touch
指令所在路徑:/bin/touch
執行權限:所有使用者
文法:touch [檔案名]
功能描述:建立空檔案
範例: $ touch Japanlovestory.list[t14] [t15]
指令名稱:cat
指令所在路徑:/bin/cat
執行權限:所有使用者
文法:cat [檔案名]
功能描述:顯示檔案内容
-n 顯示行号
範例: $ cat /etc/issue $ cat -n /etc/services[t16]
指令名稱:more
指令所在路徑:/bin/more
執行權限:所有使用者
文法:more [檔案名]
(空格) 或f 翻頁
(Enter) 換行
q或Q 退出
功能描述:分頁顯示檔案内容
範例: $ more /etc/services
指令名稱:less
指令所在路徑:/usr/bin/less
執行權限:所有使用者
文法:less [檔案名]
功能描述:分頁顯示檔案内容(可向上翻頁) [t17]
範例: $ less /etc/services
tips: 按下 / 後可以搜尋 會反顯高亮 按q退出(more也可以)[t18]
指令名稱:head
指令所在路徑:/usr/bin/head
執行權限:所有使用者
文法:head [檔案名]
功能描述:顯示檔案前面幾行
-n 指定行數 [t19]
範例: $ head -n 20 /etc/services
指令名稱:tail
指令所在路徑:/usr/bin/tail
執行權限:所有使用者
文法:tail [檔案名]
功能描述:顯示檔案後面幾行
-n 指定行數
-f 動态顯示檔案末尾内容
範例: $ tail -n 18 /etc/services
4.1.4 連結指令
指令名稱:ln
指令英文原意:link
指令所在路徑:/bin/ln
執行權限:所有使用者
文法:ln -s [原檔案] [目标檔案] [t20]
-s 建立軟連結
功能描述:生成連結檔案
範例:
$ ln -s /etc/issue /tmp/issue.soft
建立檔案/etc/issue的軟連結/tmp/issue.soft
$ ln /etc/issue /tmp/issue.hard
建立檔案/etc/issue的硬連結/tmp/issue.hard
軟連結特征:
類似Windows快捷方式
1、lrwxrwxrwx l 軟連結
軟連結檔案權限都為rwxrwxrwx [t21]
2、檔案大小-隻是符号連結
3、/tmp/issue.soft -> /etc/issue 箭頭指向原檔案
硬連結特征:
1、拷貝cp -p + 同步更新
echo "this is a test" >> /etc/motd
2、可通過i節點識别 [t22]
3、不能跨分區
4、不能針對目錄使用
4.2 權限管理指令
4.2.1 權限管理指令chmod
指令名稱:chmod
指令英文原意:change the permissions mode of a file
指令所在路徑:/bin/chmod
執行權限:所有使用者
文法:chmod [{ugoa}{+-=}{rwx}] [檔案或目錄] [t23]
[mode=421 ] [檔案或目錄]
-R 遞歸修改 [t24]
功能描述:改變檔案或目錄權限
權限的數字表示
r ---- 4 w ---- 2 x ---- 1
rwxrw-r-- 7 6 4
範例:
$ chmod g+w testfile
賦予檔案testfile所屬組寫權限 [t25]
$ chmod -R 777 testdir
修改目錄testfile及其目錄下檔案為所有使用者具有全部權限[t26]
代表字元 | 權限 | 對檔案的含義 | 對目錄的含義 |
r | 讀權限 | 可以檢視檔案内容 | 可以列出目錄中的内容 |
w | 寫權限 | 可以修改檔案内容 | 可以在目錄中建立、删除檔案[t27] |
x | 執行權限 | 可以執行檔案 | 可以進入目錄[t28] |
tips:
1.rwx作用在檔案時
1> r:read,可以讀取,檢視
2> w:writte, 可以修改,但是不代表可以删除該檔案,删除一個檔案的前提是對該檔案所在的目錄(檔案夾)具有寫的權限,才能删該檔案
3> x:execute,可以被執行
2.rwx作用在目錄時
1> r,ls檢視目錄内容
2> w, 可以修改,目錄内建立+删除+重命名目錄
3> x, 可以進入該目錄 [t29]
4.2.2 其他權限管理指令
指令名稱:chown
指令英文原意:change file ownership
指令所在路徑:/bin/chown
執行權限:所有使用者
文法:chown [使用者] [檔案或目錄]
功能描述:改變檔案或目錄的所有者 範例:$ chown shenchao fengjie
改變檔案fengjie的所有者為shenchao
指令名稱:chgrp
指令英文原意:change file group ownership
指令所在路徑:/bin/chgrp
執行權限:所有使用者
文法:chgrp [使用者組] [檔案或目錄]
功能描述:改變檔案或目錄的所屬組
範例:$ chgrp lampbrother fengjie
改變檔案fengjie的所屬組為lampbrother
指令名稱:umask
指令英文原意:the user file-creation mask
指令所在路徑:Shell内置指令
執行權限:所有使用者
文法:umask [-S]
-S 以rwx形式顯示建立檔案預設權限
功能描述:顯示、設定檔案的預設[t30] 權限
範例: $ umask -S
tips: 建立檔案是預設沒有x權限(比如:防止木馬病毒攻擊)[t31] [t32] [t33]
4.3 檔案搜尋指令
4.3.1 檔案搜尋指令find
指令名稱:find
指令所在路徑:/bin/find
執行權限:所有使用者
文法:find [搜尋範圍] [比對條件]
功能描述:檔案搜尋
範例:
$ find /etc -name init [t34]
在目錄/etc中查找檔案init
-iname 不區分大小寫
$ find /etc -name *init*[t35]
在目錄/etc中查找檔案名包含init
$ find /etc -name init???[t36]
在目錄/etc中查找檔案名init開頭并有3個字元的
$ find /etc -name[t37] init*
在目錄/etc中查找檔案名init開頭的
tips:* 比對任意字元,?比對單個字元
$ find / -size +204800 [t38]
在根目錄下查找大于100MB的檔案
+n 大于 -n 小于 n 等于
$ find /home -user shenchao
在根目錄下查找所有者為shenchao的檔案
-group 根據所屬組查找
$ find /etc -cmin -5
在/etc下查找5分鐘内被修改過屬性的檔案和目錄
-amin 通路時間 access
-cmin 檔案屬性 change
-mmin 檔案内容 modify
$ find /etc -size +163840 -a -size -204800
在/etc下查找大于80MB小于100MB的檔案
-a 兩個條件同時滿足
-o 兩個條件滿足任意一個即可
$ find /etc -name inittab -exec ls -l {} \;
在/etc下查找inittab檔案并顯示其詳細資訊
-exec/-ok[t39] 指令 {} \; 對搜尋結果執行操作
tips:-exec直接執行,ok會詢問操作[t40] [t41]
-type 根據檔案類型查找
f 檔案 d 目錄 l 軟鍊[t42]
-inum 根據i節點查找[t43]
4.3.2 其他搜尋指令
指令名稱:locate
指令所在路徑:/usr/bin/locate
執行權限:所有使用者
文法:locate 檔案名
功能描述:在檔案資料庫中查找檔案
範例:$ locate inittab
tips:建立檔案locate不到,可以updatedb,更新檔案資料庫後查找[tmp不在檔案資料庫内][t44]
$ locate -i masichun.json // -i 作用你不區分大小寫類似 -iname
指令名稱:which
指令所在路徑:/usr/bin/which
執行權限:所有使用者
文法:which 指令
[t45] 功能描述:搜尋指令所在目錄及别名資訊
範例:$ which ls
指令名稱:whereis
指令所在路徑:/usr/bin/whereis
執行權限:所有使用者
文法:whereis [指令名稱]
功能描述:搜尋指令所在目錄及幫助文檔路徑
範例:$ whereis ls
指令名稱:grep
指令所在路徑:/bin/grep
執行權限:所有使用者
文法:grep -iv [指定字串] [檔案]
功能描述:在檔案中搜尋字串比對的行并輸出
-i 不區分大小寫
-v 排除指定字串
範例:# grep mysql /root/install.log
# grep -v ^# /etc/inittab 去除以#開頭的所有行資訊,^表示以XXX開頭 [t46]
4.4 幫助指令
指令名稱:man
指令英文原意:manual
指令所在路徑:/usr/bin/man
執行權限:所有使用者
文法:man [指令或配置檔案]
(空格) 或f 翻頁
(Enter) 換行
q或Q 退出
功能描述:獲得幫助資訊
範例: $ man ls[t47] [t48]
檢視ls指令的幫助資訊
$ man services
檢視配置檔案services的幫助資訊
1 指令的幫助 5配置檔案的幫助
man 5 passwd -> 檢視配置檔案的幫助[t49] [t50] [t51]
指令:whatis
文法:whatis 指令
功能描述:獲得指令的簡單介紹資訊
範例:what is ls
類似的:apropos
文法:apropos 配置檔案
whatis 類似于精确查找
apropos 模糊查找關鍵字 [功能等于 man -k ][可以tab快速補全]
[t52]
指令名稱:help
指令所在路徑:Shell内置指令
[t53] 執行權限:所有使用者
文法:help 指令
功能描述:獲得Shell内置指令的幫助資訊
範例: $ help umask
檢視umask指令的幫助資訊[t54] [t55]
4.5 使用者管理指令
指令名稱:useradd[t56]
指令所在路徑:/usr/sbin/useradd
執行權限:root
文法:useradd 使用者名
功能描述:添加新使用者
範例: $ useradd yangmi
指令名稱:passwd
指令所在路徑:/usr/bin/passwd
執行權限:所有使用者
文法:passwd 使用者名
功能描述:設定使用者
範例: $ passwd yangmi
普通使用者隻能更改自己密碼,root使用者可以更好所有人密碼
指令名稱:who
指令所在路徑:/usr/bin/who
執行權限:所有使用者
文法:who
功能描述:檢視登入使用者資訊
範例: $ who
參數分别為:
使用者名 登入終端[tty本地終端/pts遠端終端] 登入時間 IP位址[沒有表示本地登入]
指令名稱:w [t57]
指令所在路徑:/usr/bin/w
執行權限:所有使用者
文法:w
功能描述:檢視登入使用者詳細資訊
範例: $ w
4.6 壓縮解壓指令
指令名稱:gzip
指令英文原意:GNU zip
指令所在路徑:/bin/gzip
執行權限:所有使用者
文法:gzip [檔案]
功能描述:壓縮檔案[t58]
壓縮後檔案格式:.gz
指令名稱:gunzip [= gzip -d]
指令英文原意:GNU unzip
指令所在路徑:/bin/gunzip
執行權限:所有使用者
文法:gunzip [壓縮檔案]
功能描述:解壓縮.gz的壓縮檔案
範例: $ gunzip boduo.gz
tips:隻能壓縮檔案不能壓縮目錄[t59]
指令名稱:tar
指令所在路徑:/bin/tar
執行權限:所有使用者
文法:tar 選項[-zcf] [壓縮後檔案名] [目錄]
-c 打包
-v 顯示詳細資訊
-f 指定檔案名
-z 打包同時壓縮
功能描述:打包目錄 壓縮後檔案格式:.tar.gz
範例:
$ tar -zcf Japan.tar.gz Japan
将目錄Japan打包并壓縮為.tar.gz檔案[t60] [t61]
tar指令解壓縮文法:
-x 解包
-v 顯示詳細資訊
-f 指定解壓檔案
-z 解壓縮
範例:$ tar -zxvf Japan.tar.gz
指令名稱:zip [t62] [t63] [t64]
指令所在路徑:/usr/bin/zip
執行權限:所有使用者
文法:
zip 選項[-r] [壓縮後檔案名] [檔案或目錄]
-r 壓縮目錄
功能描述:壓縮檔案或目錄
壓縮後檔案格式:.zip
範例:
$ zip buduo.zip boduo
壓縮檔案
$ zip -r Japan.zip Japan
壓縮目錄
tips:會保留原檔案
指令名稱:unzip
指令所在路徑:/usr/bin/unzip
執行權限:所有使用者
文法:unzip [壓縮檔案]
功能描述:解壓.zip的壓縮檔案
範例:$ unzip test.zip
指令名稱:bzip2
指令所在路徑:/usr/bin/bzip2
執行權限:所有使用者
文法: bzip2 選項 [-k] [檔案]
-k 産生壓縮檔案後保留原檔案
功能描述:壓縮檔案
壓縮後檔案格式:.bz2
範例:$ bzip2 -k boduo
$ tar -cjf Japan.tar.bz2 Japan[t65]
指令名稱:bunzip2
指令所在路徑:/usr/bin/bunzip2
執行權限:所有使用者
文法: bunzip2 選項 [-k] [壓縮檔案]
-k 解壓縮後保留原檔案
功能描述:解壓縮
範例:$ bunzip2 -k boduo.bz2
$ tar -xjf Japan.tar.bz2
4.7 網絡指令
指令名稱:write
[t66] 指令所在路徑:/usr/bin/write
執行權限:所有使用者
文法:write <使用者名>
功能描述:給使用者發資訊,以Ctrl+D儲存結束
範例: # write linzhiling
tips:輸入錯誤,control+delete 删除
指令名稱:wall [t67]
指令英文原意:write all
指令所在路徑:/usr/bin/wall
執行權限:所有使用者
文法:wall [message]
功能描述:發廣播資訊
範例: # wall ShenChao is a honest man!
指令名稱:ping
指令所在路徑:/bin/ping
執行權限:所有使用者
文法:ping 選項 IP位址
-c 指定發送次數 [t68] [t69]
功能描述:測試網絡連通性
範例: # ping 192.168.1.156
指令名稱:ifconfig
指令英文原意:inter
ce configure
指令所在路徑:/sbin/ifconfig
執行權限:root
文法:ifconfig 網卡名稱 IP位址
功能描述:檢視和設定網卡資訊
範例:# ifconfig eth0 192.168.8.250[t70]
指令名稱:mail
指令所在路徑:/bin/mail
執行權限:所有使用者
文法:mail [使用者名]
功能描述:檢視發送電子郵件
範例:# mail root[t71]
指令名稱:last
指令所在路徑:/usr/bin/last
執行權限:所有使用者
文法:last
功能描述:列出目前與過去登入系統的使用者資訊
範例:# last
指令名稱:lastlog
指令所在路徑:/usr/bin/lastlog
執行權限:所有使用者
文法:lastlog
功能描述:檢查某特定使用者上次登入的時間
範例:# lastlog
# lastlog -u 502
[t72]
指令名稱:traceroute
指令所在路徑:/bin/traceroute
執行權限:所有使用者
文法:traceroute
功能描述:顯示資料包到主機間的路徑
範例:# traceroute www.lampbrother.net
指令名稱:netstat
指令所在路徑:/bin/netstat
執行權限:所有使用者
文法:netstat [選項]
功能描述:顯示網絡相關資訊
選項:
-t : TCP協定
-u : UDP協定
-l : 監聽
-r : 路由
-n : 顯示IP位址和端口号
範例:
# netstat -tlun 檢視本機監聽的端口
# netstat -an [t73] 檢視本機所有的網絡連接配接
# netstat -rn 檢視本機路由表
檢視某一端口是否被占用:netstat -tunlp |grep 2181
指令名稱:se[t74] tup
指令所在路徑:/usr/bin/setup
執行權限:root
文法:setup
功能描述:配置網絡
範例:# setup
指令名稱:mount [t75]
指令位置:/bin/mount
執行權限:所有使用者
指令文法:mount [-t 檔案系統] 裝置檔案名 挂載點
範例:# mount -t iso9660 /dev/sr0 /mnt/cdrom[t76]
4.8 關機重新開機指令
4.8.1 shutdown指令
[root@localhost ~]# shutdown [選項] 時間
選項: -c: 取消前一個關機指令 -h: 關機 -r: 重新開機
4.8.2其他關機指令
[root@localhost ~]# halt
[root@localhost ~]# poweroff
[root@localhost ~]# init 0
4.8.3 其他重新開機指令
[root@localhost ~]# reboot
[root@localhost ~]# init 6
4.8.4 系統運作級别
0 關機
1 單使用者
2 不完全多使用者,不含NFS服務
3 完全多使用者
4 未配置設定
5 圖形界面
6 重新開機
[root@localhost ~]# cat /etc/inittab
#修改系統預設運作級别
id:3:initdefault:
[root@localhost ~]# runlevel
#查詢系統運作級别
4.8.5 登出指令
[root@localhost ~]# logout