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.
原创粉丝点击