文章目錄
1、文件系統管理基本知識
(1)分區
-
分區類型
- 主分區:最多隻能有4個主分區
- 擴展分區:用於擴展邏輯分區,擴展分區相當於一個主分區
- 只能有一個,擴展分區加主分區最多隻能四個
- 擴展分區中還可以劃分擴展分區
- 擴展分區不能存儲數據和格式化(格式化就是將文件系統寫入分區)
- 擴展分區必須再劃分爲邏輯分區才能使用
- 邏輯分區:邏輯分區是在擴展分區中再劃分的
- IDE硬盤:Linux最多支持59個邏輯分區
- SCSI硬盤:Linux最多支持11個邏輯分區
-
分區的設備名
-
主分區:爲sda1~4
-
擴展分區:同主分區
-
邏輯分區:從sda5開始
-
例子:假設有兩個主分區,一個擴展分區,在擴展分區裏有3個邏輯分區,則命名如下
設備 設備名 主分區1 /dev/sda1 主分區2 /dev/sda2 擴展分區 /dev/sda3 邏輯分區1 /dev/sda5 邏輯分區2 /dev/sda6 邏輯分區3 /dev/sda7
-
(2)掛載
- 掛載:就是將硬件設備的設備名和掛載點(即盤符,一個目錄)連接起來,通過訪問掛載點來訪問硬件設備
- Windows中掛載是自動進行的,由系統自動分配盤符
- Linux中所有存儲設備都必須掛載後才能使用(硬盤的掛載是自動進行的)
2、df
-
全名:disk free
-
用途:查看文件系統
-
常用選項
du [選項] [掛載點]
-a
:顯示所有的文件系統,包括特殊文件系統-h
:同ls的-h
選項-T
:顯示文件系統類型-m
:以MB爲單位,默認爲KB
3、du
-
全名:disk usage
-
用途:統計目錄或文件大小,一般用ls查看文件大小,du比df目錄更消耗資源
-
常用選項
du [選項] <目錄或文件>
-a
:查看目錄下所有文件和子目錄大小,默認只顯示子目錄-h
-s
:只顯示總大小
-
例子
[dream@172 test]$ ls
dir1 dir2 dir3 f1 f2
[dream@172 test]$ du
0 ./dir1
0 ./dir2
0 ./dir3
0 .
[dream@172 test]$ du -a # 也顯示文件大小
0 ./dir1
0 ./dir2
0 ./dir3
0 ./f1
0 ./f2
0 .
[dream@172 test]$ du -sh ~ # 查看指定目錄總大小
162M /home/dream
- df和du的區別
- du(面向文件)查看的佔用空間大小隻包括文件和目錄
- df(面向文件系統)查看的佔用空間大小不僅包括文件和目錄,還包括被命令和程序佔用的空間,最常見的就是文件已經刪除,但是程序沒有釋放空間
- 所以df看到的剩餘空間纔是真正的剩餘空間
- 系統長期不重啓,會累積大量被進程佔用的空間和未釋放的空間,導致可用空間減少
- du和df區別如下
[dream@172 test]$ df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root 6.2G 4.7G 1.6G 75% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 9.1M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 183M 4.0K 183M 1% /run/user/42
tmpfs 183M 36K 183M 1% /run/user/1000
[dream@172 test]$ sudo du -sh /
[sudo] dream 的密碼:
du: 無法訪問"/proc/97543/task/97543/fd/4": 沒有那個文件或目錄
du: 無法訪問"/proc/97543/task/97543/fdinfo/4": 沒有那個文件或目錄
du: 無法訪問"/proc/97543/fd/4": 沒有那個文件或目錄
du: 無法訪問"/proc/97543/fdinfo/4": 沒有那個文件或目錄
du: 無法訪問"/run/user/1000/gvfs": 權限不夠
4.6G /
# 可以看到du查看的大小比df小
4、mount
(1)基本使用
-
全名:mount
-
用途:用於掛載設備
-
常用選項
mount [-t 文件系統] [-L 卷標名] [-o 特殊選項] <設備文件名> <掛載點>
-
-t
:指定掛載的類型,可以爲ext3、ext4、iso9660等文件系統 -
-L
:掛載指定卷標的分區,而不是按照設備文件名掛載,也就是給分區起別名 -
-o
:可以指定掛載的額外選項
- 比較重要的是remount和exec/noexec
-
-
查看系統已有的掛載點
dream:~ dream$ mount /dev/disk1s1 on / (apfs, local, journaled) devfs on /dev (devfs, local, nobrowse) /dev/disk1s4 on /private/var/vm (apfs, local, noexec, journaled, noatime, nobrowse) map -hosts on /net (autofs, nosuid, automounted, nobrowse) map auto_home on /home (autofs, automounted, nobrowse) /dev/disk2s1 on /Volumes/NO NAME (msdos, local, nodev, nosuid, noowners) # u盤 /dev/disk3s1 on /Volumes/Seagate Expansion Drive (ufsd_NTFS, local, nodev, nosuid, noowners) # 移動硬盤
- 可以看到我電腦的硬盤disk1s1的掛載點是根目錄
- disk2s1是移動硬盤的設備名,可以看到該硬盤的掛載點是
/Volumes/Seagate Expansion Drive
,那麼我就可以通過訪問這個目錄來訪問我的移動硬盤
-
依據配置文件/etc/fstab的內容,自動掛載
mount -a
-
修改掛載的執行權限,重新掛載設備
[root@192 boot]$ vim hello.sh [root@192 boot]$ chmod 755 hello.sh [root@192 boot]$ ./hello.sh hello [root@192 boot]$ mount -o remount,noexec /boot [root@192 boot]$ ./hello.sh -bash: ./hello.sh: 權限不夠 # 修改掛載的權限後,不能執行可執行文件 [root@192 boot]$ mount -o remount,exec /boot [root@192 boot]$ ./hello.sh # 改回來後,可以執行 hello
(2)掛載u盤和光盤
-
掛載光盤
- 根目錄下有
/mnt
和/media
兩個目錄用於掛載(一般前者用於u盤,後者用於光盤) - 掛載點必須是空目錄
- 光盤的設備名是
cdrom\*
或者sr*
- 先創建一個空目錄,然後將設備掛載到該目錄上即可
- 根目錄下有
-
卸載命令umount
umount <設備文件名或者掛載點>
- Linux下必須卸載後才能正常取出光盤,u盤也是一樣
-
掛載u盤
- 掛載前先使用
fdisk -l
命令查看u盤設備文件名,之後的步驟和掛載光盤一樣 - u盤的設備名爲
sd*
,sd後面跟a或b或c······,這要看電腦本身有幾塊硬盤,先把設備名分給電腦本身的硬盤,之後纔給u盤分配設備名 - 注意u盤的兼容性(虛擬機默認設置是usb2.0)
[dream@192 ~]$ sudo fdisk -l # 查看u盤設備名 ... 磁盤 /dev/sdb:62.1 GB, 62109253632 字節,121307136 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標籤類型:dos 磁盤標識符:0x00000000 設備 Boot Start End Blocks Id System /dev/sdb1 32 121307135 60653552 c W95 FAT32 (LBA) [dream@192 ~]$ sudo umount /dev/sdb1 # 我的虛擬機是自動掛載的,我需要先卸載u盤 [dream@192 ~]$ sudo mount /dev/sdb1 /mnt/sr_dream/ [dream@192 ~]$ cd /mnt/sr_dream/ [dream@192 sr_dream]$ ls # 手動掛載後中文是亂碼 ?? ????? catsoop System Volume Information ?? ?????? ??.docx Ubuntu16.04+NS2.35+NAM+PT.zip ?? ???????? DSP?? vimrcforme ??? ??1710-???-17211249-?????????????.pptx FM?labview? voicebox ???? 201911200615.pdf JD51??(USB??) win10?? ???? ?????.7z labview??.rar WindowsSupport ???? ?????.7z ?? - ??.mp3 workplacec ???? ?????.7z ??????????.pptx ??????.xlsx ???? ????AM?FM??.zip ??????.pptx xzj ???? C++?? Rigol [dream@192 ~]$ umount /dev/sdb1 # 卸載,看一下系統自動掛載的掛載點 [dream@192 ~]$ mount ... # 可以看到系統自動掛載掛載的是/run/media/dream/025E-CAC1 type vfat /dev/sdb1 on /run/media/dream/025E-CAC1 type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2) [dream@192 ~]$ cd /run/media/dream/025E-CAC1 type vfat [dream@192 025E-CAC1]$ ls # 系統自動掛載的就是正常的 201911200615.pdf 歌曲 catsoop 紅外模塊 C++作業 課件 DSP答辯 模電相關 FM(labview) 數電相關 JD51資料(USB新版) 數據手冊 labview講義.rar 通信1710-王敬一-17211249-超材料及隱身斗篷技術的研究.pptx Rigol 通信原理研學.pptx System Volume Information 通原實驗AM和FM材料.zip Ubuntu16.04+NS2.35+NAM+PT.zip 圖片.docx vimrcforme 未命名文件夾 voicebox 研學答辯(趨膚效應).pptx win10文件 趙雷 - 成都.mp3 WindowsSupport 值班室電話表.xlsx workplacec 中期答辯 xzj 綜合實驗二.7z 陳老師講義 綜合實驗三.7z 大創相關 綜合實驗一.7z 大三上 作業 電子設計競賽資料 [dream@192 catsoop]$ cd ~ [dream@192 ~]$ sudo umount /dev/sdb1
- 掛載出現亂碼,重新掛載調整一下編碼即可
- 掛載前先使用
(3)支持NTFS文件系統
- Linux默認不支持NTFS,解決辦法有兩個
- 重新編譯內核,加入NTFS驅動
- 使用第三方軟件NTFS-3G,教學視頻:兄弟連Linux教學
5、tar
-
全名:tar
-
用途:打包、壓縮目錄
- 打包:把多個文件或目錄打成一個包(即一個文件),方便對這個包進行壓縮
Linux下包的後綴名爲.tar
- 壓縮:使用某種算法將一個大文件的容量減小,壓縮是對文件的操作,在Linux下一般先打包文件,再對
包文件進行壓縮,
- 打包:把多個文件或目錄打成一個包(即一個文件),方便對這個包進行壓縮
-
常用選項
tar [選項] <打包或壓縮後文件名> <目錄>
-c
:打包-x
:解包-z
:和-c
同時使用時爲壓縮,和-x
同時使用爲解壓縮,壓縮包爲.gz
-j
:和-c
同時使用時爲壓縮,和-x
同時使用爲解壓縮,壓縮包爲bz2
-f
:指定文件名-v
:顯示詳細信息
-
壓縮後文件格式:.tar.gz
-
tar基本使用,打包和解包
[dream@172 test]$ ls
t1 t2 t3 t4
[dream@172 test]$ tar -cf t123.tar t1 t2 t3 # 打包t1、t2、t3
[dream@172 test]$ ls
t1 t123.tar t2 t3 t4
[dream@172 test]$ rm t1 t2 t3
[dream@172 test]$ ls
t123.tar t4
[dream@172 test]$ tar -xf t123.tar # 解包t123.tar
[dream@172 test]$ ls
t1 t123.tar t2 t3 t4
- 先打包,再壓縮,注意,命令的選項是有順序的
[dream@172 test]$ ls
t1 t2 t3 t4
[dream@172 test]$ tar -zcf t123.tar.gz t1 t2 t3 # 打包並壓縮爲gz
[dream@172 test]$ ls
t1 t123.tar.gz t2 t3 t4
[dream@172 test]$ tar -zxf t123_gz
[dream@172 test]$ mkdir t123_gz
[dream@172 t123_gz]$ mv ../t123.tar.gz ./t123.tar.gz
[dream@172 t123_gz]$ ls
t123.tar.gz
[dream@172 t123_gz]$ tar -zxf t123.tar.gz # 解壓縮並解包
[dream@172 t123_gz]$ ls
t1 t123.tar.gz t2 t3
[dream@172 test]$ ls
t1 t123_gz t2 t3 t4
[dream@172 test]$ mkdir t123_bz2
[dream@172 test]$ ls
t1 t123_bz2 t123_gz t2 t3 t4
[dream@172 test]$ tar -jcf t123.tar.bz2 t1 t2 t3 # 打包並壓縮爲bz2
[dream@172 test]$ ls
t1 t123_bz2 t123_gz t123.tar.bz2 t2 t3 t4
[dream@172 test]$ mv t123.tar.bz2 t123_bz2/
[dream@172 test]$ cd t123_bz2/
[dream@172 t123_bz2]$ ls
t123.tar.bz2
[dream@172 t123_bz2]$ tar jxf t123.tar.bz2 # 解壓縮並解包
[dream@172 t123_bz2]$ ls
t1 t123.tar.bz2 t2 t3
- 使用tar命令向包裏追加文件
[dream@172 test]$ ls
t123 t123_bz2 t123_gz t123.tar
[dream@172 test]$ touch t4
[dream@172 test]$ tar -uf t123.tar t4 # 追加新文件到包裏
[dream@172 test]$ ls
t123 t123_bz2 t123_gz t123.tar t4
- 使用tar命令從.tar包裏提取一個包
[dream@172 test]$ ls
t123.tar.gz
[dream@172 test]$ tar -tvf t123.tar.gz # 查看包裏的文件
drwxrwxr-x dream/dream 0 2020-02-14 21:45 t123/
-rw-rw-r-- dream/dream 0 2020-02-14 21:18 t123/t1
-rw-rw-r-- dream/dream 0 2020-02-14 21:18 t123/t2
-rw-rw-r-- dream/dream 0 2020-02-14 21:18 t123/t3
-rw-rw-r-- dream/dream 0 2020-02-14 21:55 t4
[dream@172 test]$ tar -zxvf t123.tar.gz t123/t1 # 將t123/t1解壓縮並提取出來
t123/t1
[dream@172 test]$ ls # 可以看到t123目錄也被創建了
t123 t123.tar.gz
6、gzip
-
全名:GNU zip
-
用途:壓縮文件,壓縮文件的格式爲
.gz
,該命令只能壓縮文件,並且壓縮文件會覆蓋原文件 -
常用選項
gzip [選項] <file_name>
-d
:解壓縮,相當於gunzip
-
例子,先打包,再壓縮
[dream@172 test]$ ls # t123爲目錄
t123 t123_bz2 t123_gz
[dream@172 test]$ tar -cf t123.tar t123 # 先打包
[dream@172 test]$ ls
t123 t123_bz2 t123_gz t123.tar
[dream@172 test]$ gzip t123.tar # 打包後再壓縮
[dream@172 test]$ ls
t123 t123_bz2 t123_gz t123.tar.gz
[dream@172 test]$ gzip -d t123.tar.gz # 解壓縮,也會覆蓋原文件
[dream@172 test]$ ls
t123 t123_bz2 t123_gz t123.tar
7、gunzip
- 全名:GNU unzip
- 用途:解壓縮gzip文件,作用同
gzip -d <xxx.gzip>
8、zip
-
全名:zip
-
用途:壓縮文件或目錄,壓縮文件的格式爲
zip
(在Windows和Linux下均可用) -
常用選項
zip [選項] <壓縮後文件名> <文件或目錄>
-r
:表示壓縮目錄
-
例子,壓縮目錄
[dream@172 ~]$ ls
LAMP test 公共 模板 視頻 圖片 文檔 下載 音樂 桌面
[dream@172 ~]$ zip -r test.zip test
adding: test/ (stored 0%)
adding: test/t123_gz/ (stored 0%)
adding: test/t123_gz/t123.tar.gz (deflated 1%)
adding: test/t123_gz/t1 (stored 0%)
adding: test/t123_gz/t2 (stored 0%)
adding: test/t123_gz/t3 (stored 0%)
adding: test/t123_bz2/ (stored 0%)
adding: test/t123_bz2/t123.tar.bz2 (stored 0%)
adding: test/t123_bz2/t1 (stored 0%)
adding: test/t123_bz2/t2 (stored 0%)
adding: test/t123_bz2/t3 (stored 0%)
adding: test/t123/ (stored 0%)
adding: test/t123/t1 (stored 0%)
adding: test/t123/t2 (stored 0%)
adding: test/t123/t3 (stored 0%)
adding: test/t123.tar (deflated 99%)
9、unzip
- 全名:unzip
- 用途:解壓縮zip壓縮包
- cyxx
unzip <xxx.zip>
- 例子
[dream@172 ~]$ ls
LAMP test.zip 公共 模板 視頻 圖片 文檔 下載 音樂 桌面
[dream@172 ~]$ unzip test.zip
Archive: test.zip
creating: test/
creating: test/t123_gz/
inflating: test/t123_gz/t123.tar.gz
extracting: test/t123_gz/t1
extracting: test/t123_gz/t2
extracting: test/t123_gz/t3
creating: test/t123_bz2/
extracting: test/t123_bz2/t123.tar.bz2
extracting: test/t123_bz2/t1
extracting: test/t123_bz2/t2
extracting: test/t123_bz2/t3
creating: test/t123/
extracting: test/t123/t1
extracting: test/t123/t2
extracting: test/t123/t3
inflating: test/t123.tar
[dream@172 ~]$ ls # 可以看到使用unzip解壓縮不會覆蓋原文件
LAMP test test.zip 公共 模板 視頻 圖片 文檔 下載 音樂 桌面
10、bzip2
-
全名:bzip2
-
用途:壓縮文件,壓縮文件的格式爲
bz2
,用法同gzip -
常用選項
bzip2 [選項] <file_name>
-k
:保留原文件
11、bunzip2
-
全名:
-
用途:解壓縮bz2壓縮文件
-
常用選項:
-k
,保留原壓縮文件