LINUX 指令
来源:互联网 发布:养老保险报盘软件1.9 编辑:程序博客网 时间:2024/04/29 13:57
ln
[root@www ~]# ln [-sf] 來源檔 目標檔
選項與參數:
-s :如果不加任何參數就進行連結,那就是hard link,至於 -s 就是symbolic link
-f :如果 目標檔 存在時,就主動的將目標檔直接移除後再建立!
範例一:將 /etc/passwd 複製到 /tmp 底下,並且觀察 inode 與 block
[root@www ~]# cd /tmp
[root@www tmp]# cp -a /etc/passwd .
[root@www tmp]# du -sb ; df -i .
18340
. <==先注意一下這裡的容量是多少!
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/hdc2 2560864 149738
2411126 6% /
# 利用 du 與 df 來檢查一下目前的參數~那個 du -sb
# 是計算整個 /tmp 底下有多少 bytes 的容量啦!
範例二:將 /tmp/passwd 製作 hard link 成為 passwd-hd 檔案,並觀察檔案與容量
[root@www tmp]# ln passwd passwd-hd
[root@www tmp]# du -sb ; df -i .
18340
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/hdc2 2560864 149738
2411126 6% /
# 仔細看,即使多了一個檔案在 /tmp 底下,整個 inode 與 block 的容量並沒有改變!
[root@www tmp]# ls -il passwd*
586361
-rw-r--r-- 2
root root 1945 Sep 29 02:21 passwd
586361
-rw-r--r-- 2
root root 1945 Sep 29 02:21 passwd-hd
# 原來是指向同一個 inode 啊!這是個重點啊!另外,那個第二欄的連結數也會增加!
範例三:將 /tmp/passwd 建立一個符號連結
[root@www tmp]# ln -s passwd passwd-so
[root@www tmp]# ls -li passwd*
586361 -rw-r--r-- 2 root root 1945 Sep 29 02:21 passwd
586361 -rw-r--r-- 2 root root 1945 Sep 29 02:21 passwd-hd
586401
lrwxrwxrwx 1 root root 6
Oct 22 14:18 passwd-so -> passwd
# passwd-so 指向的 inode number 不同了!這是一個新的檔案~這個檔案的內容是指向
# passwd 的。passwd-so 的大小是 6bytes ,因為 passwd 共有六個字元之故
[root@www tmp]# du -sb ; df -i .
18346
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/hdc2 2560864 149739
2411125 6% /
# 呼呼!整個容量與 inode 使用數都改變囉~確實如此啊!
範例四:刪除原始檔案 passwd ,其他兩個檔案是否能夠開啟?
[root@www tmp]# rm passwd
[root@www tmp]# cat passwd-hd
......正常顯示完畢!
[root@www tmp]# cat passwd-so
cat: passwd-so: No such file or directory
[root@www tmp]# ll passwd*
-rw-r--r-- 1 root root 1945 Sep 29 02:21 passwd-hd
lrwxrwxrwx 1 root root 6 Oct 22 14:18 passwd-so
-> passwd
# 怕了吧!符號連結果然無法開啟!另外,如果符號連結的目標檔案不存在,
# 其實檔名的部分就會有特殊的顏色顯示喔!
mkfs
[root@www ~]# mkfs [-t 檔案系統格式] 裝置檔名
選項與參數:
-t :可以接檔案系統格式,例如 ext3, ext2, vfat 等(系統有支援才會生效)
範例一:請將上個小節當中所製作出來的 /dev/hdc6 格式化為 ext3 檔案系統
[root@www ~]# mkfs -t ext3 /dev/hdc6
mke2fs 1.39 (29-May-2006)
Filesystem label=
<==這裡指的是分割槽的名稱(label)
OS type: Linux
Block size=4096 (log=2)
<==block 的大小設定為 4K
Fragment size=4096 (log=2)
251392 inodes, 502023 blocks
<==由此設定決定的inode/block數量
25101 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=515899392
16 block groups
32768 blocks per group, 32768 fragments per group
15712 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (8192 blocks): done
<==有日誌記錄
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
# 這樣就建立起來我們所需要的 Ext3 檔案系統了!簡單明瞭!
[root@www ~]# mkfs[tab][tab]
mkfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.msdos mkfs.vfat
# 按下兩個[tab],會發現 mkfs 支援的檔案格式如上所示!可以格式化 vfat 喔!
mke2fs
[root@www ~]# mke2fs [-b block大小] [-i block大小] [-L 標頭] [-cj] 裝置
選項與參數:
-b :可以設定每個 block 的大小,目前支援 1024, 2048, 4096 bytes 三種;
-i :多少容量給予一個 inode 呢?
-c :檢查磁碟錯誤,僅下達一次 -c 時,會進行快速讀取測試;
如果下達兩次 -c -c 的話,會測試讀寫(read-write),會很慢~
-L :後面可以接標頭名稱 (Label),這個 label 是有用的喔!e2label
指令介紹會談到~
-j :本來 mke2fs 是 EXT2 ,加上 -j 後,會主動加入 journal 而成為 EXT3。
[root@www ~]# ln [-sf] 來源檔 目標檔
選項與參數:
-s :如果不加任何參數就進行連結,那就是hard link,至於 -s 就是symbolic link
-f :如果 目標檔 存在時,就主動的將目標檔直接移除後再建立!
範例一:將 /etc/passwd 複製到 /tmp 底下,並且觀察 inode 與 block
[root@www ~]# cd /tmp
[root@www tmp]# cp -a /etc/passwd .
[root@www tmp]# du -sb ; df -i .
18340
. <==先注意一下這裡的容量是多少!
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/hdc2 2560864 149738
2411126 6% /
# 利用 du 與 df 來檢查一下目前的參數~那個 du -sb
# 是計算整個 /tmp 底下有多少 bytes 的容量啦!
範例二:將 /tmp/passwd 製作 hard link 成為 passwd-hd 檔案,並觀察檔案與容量
[root@www tmp]# ln passwd passwd-hd
[root@www tmp]# du -sb ; df -i .
18340
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/hdc2 2560864 149738
2411126 6% /
# 仔細看,即使多了一個檔案在 /tmp 底下,整個 inode 與 block 的容量並沒有改變!
[root@www tmp]# ls -il passwd*
586361
-rw-r--r-- 2
root root 1945 Sep 29 02:21 passwd
586361
-rw-r--r-- 2
root root 1945 Sep 29 02:21 passwd-hd
# 原來是指向同一個 inode 啊!這是個重點啊!另外,那個第二欄的連結數也會增加!
範例三:將 /tmp/passwd 建立一個符號連結
[root@www tmp]# ln -s passwd passwd-so
[root@www tmp]# ls -li passwd*
586361 -rw-r--r-- 2 root root 1945 Sep 29 02:21 passwd
586361 -rw-r--r-- 2 root root 1945 Sep 29 02:21 passwd-hd
586401
lrwxrwxrwx 1 root root 6
Oct 22 14:18 passwd-so -> passwd
# passwd-so 指向的 inode number 不同了!這是一個新的檔案~這個檔案的內容是指向
# passwd 的。passwd-so 的大小是 6bytes ,因為 passwd 共有六個字元之故
[root@www tmp]# du -sb ; df -i .
18346
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/hdc2 2560864 149739
2411125 6% /
# 呼呼!整個容量與 inode 使用數都改變囉~確實如此啊!
範例四:刪除原始檔案 passwd ,其他兩個檔案是否能夠開啟?
[root@www tmp]# rm passwd
[root@www tmp]# cat passwd-hd
......正常顯示完畢!
[root@www tmp]# cat passwd-so
cat: passwd-so: No such file or directory
[root@www tmp]# ll passwd*
-rw-r--r-- 1 root root 1945 Sep 29 02:21 passwd-hd
lrwxrwxrwx 1 root root 6 Oct 22 14:18 passwd-so
-> passwd
# 怕了吧!符號連結果然無法開啟!另外,如果符號連結的目標檔案不存在,
# 其實檔名的部分就會有特殊的顏色顯示喔!
mkfs
[root@www ~]# mkfs [-t 檔案系統格式] 裝置檔名
選項與參數:
-t :可以接檔案系統格式,例如 ext3, ext2, vfat 等(系統有支援才會生效)
範例一:請將上個小節當中所製作出來的 /dev/hdc6 格式化為 ext3 檔案系統
[root@www ~]# mkfs -t ext3 /dev/hdc6
mke2fs 1.39 (29-May-2006)
Filesystem label=
<==這裡指的是分割槽的名稱(label)
OS type: Linux
Block size=4096 (log=2)
<==block 的大小設定為 4K
Fragment size=4096 (log=2)
251392 inodes, 502023 blocks
<==由此設定決定的inode/block數量
25101 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=515899392
16 block groups
32768 blocks per group, 32768 fragments per group
15712 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (8192 blocks): done
<==有日誌記錄
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
# 這樣就建立起來我們所需要的 Ext3 檔案系統了!簡單明瞭!
[root@www ~]# mkfs[tab][tab]
mkfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.msdos mkfs.vfat
# 按下兩個[tab],會發現 mkfs 支援的檔案格式如上所示!可以格式化 vfat 喔!
mke2fs
[root@www ~]# mke2fs [-b block大小] [-i block大小] [-L 標頭] [-cj] 裝置
選項與參數:
-b :可以設定每個 block 的大小,目前支援 1024, 2048, 4096 bytes 三種;
-i :多少容量給予一個 inode 呢?
-c :檢查磁碟錯誤,僅下達一次 -c 時,會進行快速讀取測試;
如果下達兩次 -c -c 的話,會測試讀寫(read-write),會很慢~
-L :後面可以接標頭名稱 (Label),這個 label 是有用的喔!e2label
指令介紹會談到~
-j :本來 mke2fs 是 EXT2 ,加上 -j 後,會主動加入 journal 而成為 EXT3。
fsck
[root@www ~]# fsck [-t 檔案系統] [-ACay] 裝置名稱
選項與參數:
-t :如同 mkfs 一樣,fsck 也是個綜合軟體而已!因此我們同樣需要指定檔案系統。
不過由於現今的 Linux 太聰明了,他會自動的透過 superblock 去分辨檔案系統,
因此通常可以不需要這個選項的囉!請看後續的範例說明。
-A :依據 /etc/fstab 的內容,將需要的裝置掃瞄一次。/etc/fstab 於下一小節說明,
通常開機過程中就會執行此一指令了。
-a :自動修復檢查到的有問題的磁區,所以你不用一直按 y 囉!
-y :與 -a 類似,但是某些 filesystem 僅支援 -y 這個參數!
-C :可以在檢驗的過程當中,使用一個長條圖來顯示目前的進度!
EXT2/EXT3 的額外選項功能:(e2fsck 這支指令所提供)
-f :強制檢查!一般來說,如果 fsck 沒有發現任何 unclean 的旗標,不會主動進入
細部檢查的,如果您想要強制 fsck 進入細部檢查,就得加上 -f 旗標囉!
-D :針對檔案系統下的目錄進行最佳化配置。
範例一:強制的將前面我們建立的 /dev/hdc6 這個裝置給他檢驗一下!
[root@www ~]# fsck -C -f -t ext3 /dev/hdc6
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
vbird_logical: 11/251968 files (9.1% non-contiguous), 36926/1004046 blocks
# 如果沒有加上 -f 的選項,則由於這個檔案系統不曾出現問題,
# 檢查的經過非常快速!若加上 -f 強制檢查,才會一項一項的顯示過程。
範例二:系統有多少檔案系統支援的 fsck 軟體?
[root@www ~]# fsck[tab][tab]
fsck fsck.cramfs fsck.ext2 fsck.ext3 fsck.msdos fsck.vfat
badblocks
[root@www ~]# badblocks -[svw] 裝置名稱
選項與參數:
-s :在螢幕上列出進度
-v :可以在螢幕上看到進度
-w :使用寫入的方式來測試,建議不要使用此一參數,尤其是待檢查的裝置已有檔案時!
[root@www ~]# badblocks -sv /dev/hdc6
Checking blocks 0 to 2008093
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found.
- Linux指令
- linux指令
- LINUX 指令
- linux指令
- Linux指令
- Linux指令
- linux 指令
- LINUX 指令
- linux指令
- linux指令
- linux指令
- Linux指令
- linux 指令
- Linux 指令
- linux指令
- linux 指令
- linux 指令
- Linux指令
- 堆与优先级队列
- 基于注解风格的Spring-MVC的拦截器
- Start to change
- 如何通过Fckeditor把图片上传到独立图片服务器
- 去大芬沃尔码有感
- LINUX 指令
- 冬天
- C#异步Socket编程
- DWR util.js工具包的使用
- 使用DevComponents.dll时出现问题
- [转贴]变态的C自增
- 【wbia】lucene+IKAnalyzer
- 美职业顾问公布15个谷歌面试题
- 理解 set get ,为什么用