Linux格式化命令一般是mkfs,該命令使用方法如下:
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計與策劃設(shè)計,孝南網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:孝南等地區(qū)。孝南做網(wǎng)站價格咨詢:18980820575
使用權(quán)限 : 超級使用者
使用方式 : mkfs [-V] [-t fstype] [fs-options] filesys [blocks] [-L Lable]
說明 : 建立 linux 檔案系統(tǒng)在特定的 partition 上
參數(shù) :
device : 預(yù)備檢查的硬盤 partition,例如:/dev/sda1
-V : 詳細顯示模式
-t : 給定檔案系統(tǒng)的型式,Linux 的預(yù)設(shè)值為 ext2
-c : 在制做檔案系統(tǒng)前,檢查該partition 是否有壞軌
-l bad_blocks_file : 將有壞軌的block資料加到 bad_blocks_file 里面
block : 給定 block 的大小
-L:建立lable
補充說明:
mkfs本身并不執(zhí)行建立文件系統(tǒng)的工作,而是去調(diào)用相關(guān)的程序來執(zhí)行。例如,若在"-t" 參數(shù)中指定ext2,則mkfs會調(diào)用mke2fs來建立文件系統(tǒng).使用時如省略指定【塊數(shù)】參數(shù),mkfs會自動設(shè)置適當(dāng)?shù)膲K數(shù).
例子 :
在 /dev/hda5 上建一個 msdos 的檔案系統(tǒng),同時檢查是否有壞軌存在,并且將過程詳細列出來 :
mkfs -V -t msdos -c /dev/hda5
mfks -t ext3 /dev/sda6 //將sda6分區(qū)格式化為ext3格式
mkfs -t ext2 /dev/sda7 //將sda7分區(qū)格式化為ext2格式
如果一個名稱用%括起來,那么就是用的它的賦值,而不是本身的字母
比如
echo time echo %time%
以上兩個前者顯示time這個字母,后者顯示系統(tǒng)時間 19:42:12:02
還有%diskdiver%=系統(tǒng)盤等。
可以用set自己設(shè)定,有一些是系統(tǒng)默認的比容上面說的time;diskdiver
----------------------------------------------------------------------
FOR這條命令基本上都被用來處理文本,我們這次除了要說他處理文本的作用外還要講他的其他一些好用的功能!
看看他的基本格式(這里我引用的是批處理中的格式,直接在命令行只需要一個%號)
FOR 參數(shù) %%變量名 IN (相關(guān)文件或命令) DO 執(zhí)行的命令
參數(shù):FOR有4個參數(shù) /d /l /r /f 他們的作用我在下面用例子解釋
%%變量名 :這個變量名可以是小寫a-z或者大寫A-Z,他們區(qū)分大小寫哦~
FOR會把每個讀取到的值給他!
IN:命令的格式,照寫就是了!
(相關(guān)文件或命令) :FOR要把什么東西讀取然后賦值給變量,不懂的話看下面的例子
do:命令的格式,照寫就是了!
執(zhí)行的命令:對每個變量的值要執(zhí)行什么操作就寫在這.
看不懂我的這些說明,可以在CMD輸入for /?看系統(tǒng)提供的幫助!我這里也給出來吧,大家對照
FOR %%variable IN (set) DO command [command-parameters]
%%variable 指定一個單一字母可替換的參數(shù)。
(set) 指定一個或一組文件??梢允褂猛ㄅ浞?。
command 指定對每個文件執(zhí)行的命令。
command-parameters
為特定命令指定參數(shù)或命令行開關(guān)。
現(xiàn)在開始講每個參數(shù)的意思
/d
僅為目錄
如果 Set (也就是我上面寫的 "相關(guān)文件或命令") 包含通配符(* 和 ?),將對與 Set 相匹配的每個目錄(而不是指定目錄中的文件組)執(zhí)行指定的 Command。
這個參數(shù)其實我也沒弄太懂...有錯誤希望各位糾正!
系統(tǒng)幫助的格式:FOR /D %%variable IN (set) DO command
他主要用于目錄搜索,不會搜索文件,看這樣的例子
@echo off
for /d %%i in (*) do @echo %%i
pause
把他保存放在C盤根目錄執(zhí)行,就會把C盤目錄下的全部目錄名字打印出來,而文件名字一個也不顯示!
在來一個,比如我們要把當(dāng)前路徑下文件夾的名字只有1-3個字母的打出來
@echo off
for /d %%i in (???) do @echo %%i
pause
這樣的話如果你當(dāng)前目錄下有目錄名字只有1-3個字母的,就會顯示出來,沒有就不顯示了
這里解釋下*號和?號的作用,*號表示任意N個字符,而?號只表示任意一個字符
知道作用了,給大家個思考題目!
@echo off
for /d %%i in (window?) do @echo %%i
pause
保存到C盤下執(zhí)行,會顯示什么呢?自己看吧!
/D參數(shù)只能顯示當(dāng)前目錄下的目錄名字,這個大家要注意!
/R
遞歸
進入根目錄樹 [Drive:]Path,在樹的每個目錄中執(zhí)行 for 語句。如果在 /R 后沒有指定目錄,則認為是當(dāng)前目錄。如果 Set 只是一個句點 (.),則只枚舉目錄樹。
系統(tǒng)幫助的格式:FOR /R [[drive:]path] %%variable IN (set) DO command
上面我們知道,/D只能顯示當(dāng)前路徑下的目錄名字,那么現(xiàn)在這個/R也是和目錄有關(guān),他能干嘛呢?放心他比/D強大多了!
他可以把當(dāng)前或者你指定路徑下的文件名字全部讀取,注意是文件名字,有什么用看例子!
@echo off
for /r c:\ %%i in (*.exe) do @echo %%i
pause
咋們把這個BAT保存到D盤隨便哪里然后執(zhí)行,我會就會看到,他把C盤根目錄,和每個目錄的子目錄下面全部的EXE文件都列出來了!!!!
再來一個
@echo off
for /r %%i in (*.exe) do @echo %%i
pause
參數(shù)不一樣了吧!這個命令前面沒加那個C:\也就是搜索路徑,這樣他就會以當(dāng)前目錄為搜索路徑,比如你這個BAT你把他防災(zāi)d:\test目錄下執(zhí)行,那么他就會把D:\test目錄和他下面的子目錄的全部EXE文件列出來!!!
這個參數(shù)大家因該理解了吧!還是滿好玩的命令!
/L
迭代數(shù)值范圍
使用迭代變量設(shè)置起始值 (Start#),然后逐步執(zhí)行一組范圍的值,直到該值超過所設(shè)置的終止值 (End#)。/L 將通過對 Start# 與 End# 進行比較來執(zhí)行迭代變量。如果 Start# 小于 End#,就會執(zhí)行該命令。如果迭代變量超過 End#,則命令解釋程序退出此循環(huán)。還可以使用負的 Step# 以遞減數(shù)值的方式逐步執(zhí)行此范圍內(nèi)的值。例如,(1,1,5) 生成序列 1 2 3 4 5,而 (5,-1,1) 則生成序列 (5 4 3 2 1)。語法是:
系統(tǒng)幫助的格式:for /L %% Variable in (Start#,Step#,End#) do Command
看著這說明有點暈吧!咋們看例子就不暈了!
@echo off
for /l %%i in (1,1,5) do @echo %%i
pause
保存執(zhí)行看效果,他會打印從1 2 3 4 5 這樣5個數(shù)字
(1,1,5)這個參數(shù)也就是表示從1開始每次加1直到5終止!
大會暈,就打印個數(shù)字有P用...好的滿足大家,看這個例子
@echo off
for /l %%i in (1,1,5) do start cmd
pause
執(zhí)行后是不是嚇了一跳,怎么多了5個CMD窗口,呵呵!如果把那個 (1,1,5)改成 (1,1,65535)會有什么結(jié)果,我先告訴大家,會打開65535個CMD窗口....這么多你不死機算你強!
當(dāng)然我們也可以把那個start cmd改成md %%i 這樣就會建立指定個目錄了!!!名字為1-65535
看完這個被我賦予破壞性質(zhì)的參數(shù)后,我們來看最后一個參數(shù)
/f
\迭代及文件解析
使用文件解析來處理命令輸出、字符串及文件內(nèi)容。使用迭代變量定義要檢查的內(nèi)容或字符串,并使用各種 ParsingKeywords 選項進一步修改解析方式。使用 ParsingKeywords 令牌選項指定哪些令牌應(yīng)該作為迭代變量傳遞。請注意:在沒有使用令牌選項時,/F 將只檢查第一個令牌。
文件解析過程包括讀取輸出、字符串或文件內(nèi)容,將其分成獨立的文本行以及再將每行解析成零個或更多個令牌。然后通過設(shè)置為令牌的迭代變量值,調(diào)用 for 循環(huán)。默認情況下,/F 傳遞每個文件每一行的第一個空白分隔符號。跳過空行。
系統(tǒng)幫助的格式:
for /F "ParsingKeywords" %% Variable in (FileNameSet) do Command
有沒有發(fā)現(xiàn)這個參數(shù)說明比上面幾個都多...沒辦法,人們用FOR命令主要也就是用/f參數(shù),FOR的主場啊!大家得好好看!
先來解釋下那個多出來的"ParsingKeywords"
他表示4個參數(shù)
eol=c - 指一個行注釋字符的結(jié)尾(就一個)
skip=n - 指在文件開始時忽略的行數(shù)。
delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的
默認分隔符集。
tokens=x,y,m-n - 指每行的哪一個符號被傳遞到每個迭代
的 for 本身。這會導(dǎo)致額外變量名稱的分配。m-n
格式為一個范圍。通過 nth 符號指定 mth。如果
符號字符串中的最后一個字符星號,
那么額外的變量將在最后一個符號解析之后
分配并接受行的保留文本。
usebackq - 指定新語法已在下類情況中使用:
在作為命令執(zhí)行一個后引號的字符串并且一個單
引號字符為文字字符串命令并允許在 filenameset
中使用雙引號擴起文件名稱。
先別暈了!我這就舉個例子幫助大家來理解這些參數(shù)!
usebackq這個參數(shù)不用理解了,系統(tǒng)默認會給我們加上!
為了能使用這個例子,我們先新建一個文本文件,在里面打上這些內(nèi)容保存為test.txt:
;郁悶啊!
您好! 歡迎來到, 非常批處理
我們的網(wǎng)站 bbs.verybat.org
完畢!
@echo off
FOR /F "eol=; tokens=1 delims= " %%i in (test.txt) do @echo %%i
pause
我們把這個BAT保存到和你的test.txt相同的目錄下面然后執(zhí)行
我們會看到屏幕上會顯示
您好!
我們的網(wǎng)站
完畢!
為什么會這樣?我來解釋
這個命令會讀取在當(dāng)前目錄下名為test.txt文件中的內(nèi)容,將每一行的內(nèi)容賦值給變量%%i,忽略掉以;號開頭的行,并且以空格做為分隔符號,打印每行以空格做分隔符號的第一列
結(jié)果就是這樣了!!
如果改成
當(dāng)然我們想要把全部文件內(nèi)容直接打印出來就可以這樣
@echo off
FOR /F "delims=" %%i in (test.txt) do @echo %%i
pause
另外/F參數(shù)還可以以輸出命令的結(jié)果看這個例子
@echo off
FOR /F "delims=" %%i in ('net user') do @echo %%i
pause
這樣你本機全部帳號名字就出來了把擴號內(nèi)的內(nèi)容用兩個單引號引起來就表示那個當(dāng)命令執(zhí)行,FOR會返回命令的每行結(jié)果,加那個"delims=" 是為了讓我空格的行能整行顯示出來,不加就只顯示空格左邊一列!
基本上講完了FOR的基本用法了...如果你看過FOR的系統(tǒng)幫助,你會發(fā)現(xiàn)他下面還有一些特定義的變量,這些我先不講.大家因該都累了吧!你不累我累啊....
LVM將一個或多個硬盤的分區(qū)在邏輯上集合,相當(dāng)于一個大硬盤來使用,當(dāng)硬盤的空間不夠使用的時候,可以繼續(xù)將 其它 的硬盤的分區(qū)加入其中,這樣可以實現(xiàn)磁盤空間的動態(tài)管理,相對于普通的磁盤分區(qū)有很大的靈活性。那么你知道linux系統(tǒng)硬盤怎么格式化嗎?我?guī)砹薼inux系統(tǒng)硬盤格式化的具 體操 作過程,下面大家跟著我一起來學(xué)習(xí)一下吧。
linux系統(tǒng)硬盤怎么格式化
分區(qū)與格式化
先用fdisk分區(qū),分區(qū)完成后再用mkfs格式化并創(chuàng)建文件系統(tǒng),掛載,磁盤就能使用啦。
分區(qū)的原理:
MBR:主引導(dǎo)扇區(qū)
主分區(qū)表:64bytes,最多只能分四個主分區(qū),每個主分區(qū)的記錄(相關(guān)信息,比如分區(qū)大小,位置)在主分區(qū)表里占14bytes。
如果要建多于四個的分區(qū),就要拿出一個主分區(qū)做為擴展分區(qū),再在擴展分區(qū)里面進行其它的分區(qū)操作。在 建擴展分區(qū)的時候會建立一張對應(yīng)的擴展分區(qū)表,它記錄了在這個擴展分區(qū)里的分區(qū)的相關(guān)信息;理論上它沒有分區(qū)數(shù)量的限制,在擴展分區(qū)內(nèi)部的分區(qū)叫做邏輯分區(qū),如上圖中的 /dev/hda5,/dev/hda6/,/dev/hda7
格式化原理:
在分好區(qū)后,分區(qū)里面是空的,沒有任何東西。為了能讓OS識別,就必須要向分區(qū)里寫入相應(yīng)格式的數(shù)據(jù)。比如windows的FAT32,NTFS;Linux的ext2,ext3,ext4(目前ext3格式的用的比較多,ext4還在實驗之中,在新的Fedora上使用的就是ext4的文件系統(tǒng))。
Windows/dos常用的分區(qū)工具:fdisk/partition magic/diskpart
Linux下常用的分區(qū)工具:
fdisk/sfdisk:命令行工具,各種版本和環(huán)境都能使用,包含在軟件包util-linux中
diskdruid:圖形化分區(qū)工具,只能在安裝REDHAT系統(tǒng)時使用。
下面我們開始實驗:
環(huán)境/工具:Fedora 14/256M內(nèi)存卡;fdisk
第一步:fdisk
[root@novice ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 254 MB, 254017536 bytes
8 heads, 61 sectors/track, 1016 cylinders, total 496128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
[root@novice ~]# fdisk /dev/sdb
Command (m for help): #在輸入上面的命令后會出現(xiàn)左邊的提示,輸入m就會得到一個幫助菜單,如下:
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
#help雖然是英文的,可都很簡單,在這里不再解釋。
#現(xiàn)在,我們正式開始分區(qū)的操作:
Command (m for help): n #新建分區(qū)
Command action
e extended
p primary partition (1-4)
#e/p分別對應(yīng)擴展分區(qū) /主分區(qū);我們先分四個主分區(qū),每個50M;然后再來增加主分區(qū)或擴展分區(qū),看會出現(xiàn)怎樣的狀況,嘿嘿。
p #分區(qū)類型為主分區(qū)
Partition number (1-4, default 1): 1 #分區(qū)號,在這里我們依次選擇1、2、3、4
First sector (2048-496127, default 2048): #指定分區(qū)的起始扇區(qū),一般默認,按enter鍵即可。
Last sector, +sectors or +size{K,M,G} (2048-496127, default 496127): +50M #指定分區(qū)的終止扇區(qū),根據(jù)前面的提示我們可以做出相應(yīng)的選擇+sectors 或 +size{K,M,G}
Command (m for help): p #用p打印出已建好的分區(qū)列表
Disk /dev/sdb: 254 MB, 254017536 bytes
8 heads, 61 sectors/track, 1016 cylinders, total 496128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
#剩下的三個分區(qū)的建立操作同上
#分好四個主分區(qū)后的情況如下
Command (m for help): p
Disk /dev/sdb: 254 MB, 254017536 bytes
8 heads, 61 sectors/track, 1016 cylinders, total 496128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 206847 51200 83 Linux
/dev/sdb3 206848 309247 51200 83 Linux
/dev/sdb4 309248 309298 25+ 83 Linux
#已經(jīng)建好四個主分區(qū)啦,現(xiàn)在我們來看看如果再建主分區(qū)或是擴展分區(qū)的話會出現(xiàn)怎樣的情況:
Command (m for help): n
You must delete some partition and add an extended partition first
#看到了吧,不能再建分區(qū)啦!要再建分區(qū)的話必須刪除some分區(qū),再新建一個擴展分區(qū)才行。
#現(xiàn)在,我們刪掉一個主分區(qū),來新建擴展分區(qū)
Command (m for help): d #刪除分區(qū)
Partition number (1-4): 4 #選擇要刪除分區(qū)的分區(qū)號,我們選第四個
Command (m for help): p #打印,如下,四個分區(qū)變成了三個!
Disk /dev/sdb: 254 MB, 254017536 bytes
8 heads, 61 sectors/track, 1016 cylinders, total 496128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 206847 51200 83 Linux
/dev/sdb3 206848 309247 51200 83 Linux
#新建一個擴展分區(qū)
#如果在沒有建滿三個主分的區(qū)的情況下建立擴展分區(qū),相關(guān)選項會有些不同。
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Selected partition 4
First sector (309248-496127, default 309248): #enter,默認
Using default value 309248
Last sector, +sectors or +size{K,M,G} (309248-496127, default 496127): #enter,默認,使用剩余空間
Using default value 496127
Command (m for help): p
Disk /dev/sdb: 254 MB, 254017536 bytes
8 heads, 61 sectors/track, 1016 cylinders, total 496128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 206847 51200 83 Linux
/dev/sdb3 206848 309247 51200 83 Linux
/dev/sdb4 309248 496127 93440 5 Extended
#接下來,我們在新建的擴展分區(qū)里再新建兩個邏輯分區(qū),因為已經(jīng)有了三個主分區(qū),這里不會再顯示是建立邏輯分區(qū)還是主分區(qū)的提示!
Command (m for help): n
First sector (311296-496127, default 311296): #enter
Using default value 311296
Last sector, +sectors or +size{K,M,G} (311296-496127, default 496127): +50M
Command (m for help): n
First sector (415744-496127, default 415744): #enter
Using default value 415744
Last sector, +sectors or +size{K,M,G} (415744-496127, default 496127): #enter
Using default value 496127
Command (m for help): p
Disk /dev/sdb: 254 MB, 254017536 bytes
8 heads, 61 sectors/track, 1016 cylinders, total 496128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 206847 51200 83 Linux
/dev/sdb3 206848 309247 51200 83 Linux
/dev/sdb4 309248 496127 93440 5 Extended
/dev/sdb5 311296 413695 51200 83 Linux
/dev/sdb6 415744 496127 40192 83 Linux
#上面的列表,就是我們今天分區(qū)的成果啦!接下來保存退出,重啟計算機,就可以進行下一步的mkfs操作啦!如果忘記了相關(guān)的操作命令,記得按m!!!
Command (m for help): w #保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
另:在建好分區(qū)后,我們還可以更改相關(guān)分區(qū)的文件系統(tǒng)類型
#如,我們要把第二個主分區(qū)改成Linux下的交換分區(qū),操作如下
Command (m for help): t #更改文件系統(tǒng)類型
Partition number (1-6): 2 #選擇第二個分區(qū)
Hex code (type L to list codes): L #選擇要更改的文件系統(tǒng)編碼,可以按L來查看相關(guān)編碼信息。
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
............
16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT
1e Hidden W95 FAT1
Hex code (type L to list codes): 82 #查找到linux swap的編碼為82
Changed system type of partition 2 to 82 (Linux swap / Solaris)
Command (m for help): p
..............
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 206847 51200 82 Linux swap / Solaris
/dev/sdb3 206848 309247 51200 83 Linux
/dev/sdb4 309248 496127 93440 5 Extended
/dev/sdb5 311296 413695 51200 83 Linux
/dev/sdb6 415744 496127 40192 83 Linux
#最后別忘了保存!如果你須要的話!
#擴展分區(qū)不能直接使用,邏輯分區(qū)只能建立在擴展分區(qū)上!
第二步:mkfs(mkfs時分區(qū)的格式最好與fdisk設(shè)定的分區(qū)格式一致,不然.......)
mkfs支持ext2 ext3 vfa msdos jfs reiserfs等文件系統(tǒng)。
用法1:mkfs -t
例: mkfs -t ext3 /dev/sdb2
用法2:mkfs.
例:mkfs,vfat /dev/sdb3
mke2fs支持ext2/ext3文件系統(tǒng)
用法:mke2fs [-j]
例:mke2fs -j /dev/sdb5
# 更多更具體的用法請參照相關(guān)命令的man手冊
下面,接著實驗:
例一
[root@novice ~]# mkfs -t ext3 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
12824 inodes, 51200 blocks
2560 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=52428800
7 block groups
8192 blocks per group, 8192 fragments per group
1832 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961
Writing inode tables: done
Creating journal (4096 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.
例二:
[root@novice ~]# fdisk /dev/sdb
Command (m for help): t
Partition number (1-6): 6
Hex code (type L to list codes): L
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx
5 Extended 42 SFS 86 NTFS volume set da Non-FS data
6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
.........
Hex code (type L to list codes): 7
Changed system type of partition 6 to 7 (HPFS/NTFS)
Command (m for help): p
Disk /dev/sdb: 254 MB, 254017536 bytes
8 heads, 61 sectors/track, 1016 cylinders, total 496128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 206847 51200 82 Linux swap / Solaris
/dev/sdb3 206848 309247 51200 83 Linux
/dev/sdb4 309248 496127 93440 5 Extended
/dev/sdb5 311296 413695 51200 83 Linux
/dev/sdb6 415744 496127 40192 7 HPFS/NTFS
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@novice ~]# mkfs.ntfs /dev/sdb6
Cluster size has been automatically set to 4096 bytes.
Initializing device with zeroes: 100% - Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.
awk格式化:前面接觸到的awk的輸出功能,是{print}的功能,只能對文本簡單的輸出,并不能美化或修改格式
printf格式化輸出:對文本格式化輸出
printf和print的區(qū)別:format的使用
要點
1、其與print命令的最大不同是,printf需要指定format
2、format用于指定后面的每個item的輸出格式
3、printf語句不會自動打印換行符;\n; print默認添加空格換行符
format格式的指示符都以%開頭,后跟一個字符
%c 顯示字符的ASCII碼
%d, %i 十進制整數(shù)
%e, %E 科學(xué)計數(shù)法顯示數(shù)值
%f 顯示浮點數(shù)
%g, %G 以科學(xué)計數(shù)法的格式或浮點數(shù)的格式顯示數(shù)值
%s 顯示字符串
%u 無符號整數(shù)
%% 顯示%自身
printf修飾符
- 左對齊;默認右對齊
+ 顯示數(shù)值符號;printf "%+d"
給printf添加格式
格式化字符串%s代表字符串的意思
awk '{printf "%s\n",$1}' file
對對個變量進行格式化
當(dāng)我們使用Linux命令printf時,一個%s格式替換符,可以對多個參數(shù)進行重復(fù)格式化
printf "%s\n" a b c d
然而awk的格式替換符想要修改多個變量,必須傳入多個
awk 'BEGIN{printf "%d\n%d\n%d\n%d\n%d\n",1,2,3,4,5}'
注意awk不跟上文件數(shù)據(jù),必須添加BEGIN, %d代表的是十進制數(shù)字
awk通過空格切割文檔,printf動作對數(shù)據(jù)格式化輸出
awk '{printf "第一列:%s 第二列:%s 第三列:%s\n", 2,$3}' file
對pwd.txt進行格式化輸出
awk -F ":" 'BEGIN{printf
"%-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %-25s\n",
"用戶名","密碼","UID","GID","用戶注釋","用戶家目錄","用戶使用的解釋器"}
{printf "%-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %s\n",
2, 4, 6,$7}'
pwd.txt
參數(shù)解釋
'BEGIN{printf "格式替換符 格式替換符2","變量1","變量2"}' 執(zhí)行BEGIN模式
"%-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %-25s\n" 先打印第一行信息
%s是格式替換符 ,替換字符串
%s\t 格式化字符串后,添加制表符,四個空格
%-25s 已然是格式化字符串, - 代表左對齊 ,25個字符長度
printf對輸出的文本不會換行,必須添加對于的格式替換符和\n
使用printf動作,'{printf "%s\n",$1}',替換的格式和變量之間得有逗號
使用printf動作,%s %d 等格式化替換符,必須和被格式化的數(shù)據(jù)一一對應(yīng)
Linux下常用文本處理命令大全
Linux下面有很多經(jīng)典的非常有用的命令,其中處理文本的命令就有很多。下面就讓我們一起看看這些經(jīng)典的Linux文本處理命令有哪些吧。
一. sort
文件排序, 通常用在管道中當(dāng)過濾器來使用. 這個命令可以依據(jù)指定的關(guān)鍵字或指定的字符位置, 對文件行進行排序. 使用-m選項, 它將會合并預(yù)排序的輸入文件. 想了解這個命令的全部參數(shù)請參考這個命令的info頁.
二. tsort
拓撲排序, 讀取以空格分隔的有序?qū)? 并且依靠輸入模式進行排序.
三. uniq
這個過濾器將會刪除一個已排序文件中的重復(fù)行. 這個命令經(jīng)常出現(xiàn)在sort命令的管道后邊.
四. expand, unexpand
expand命令將會把每個tab轉(zhuǎn)化為一個空格. 這個命令經(jīng)常用在管道中.
unexpand命令將會把每個空格轉(zhuǎn)化為一個tab. 效果與expand命令相反.
五. cut
一個從文件中提取特定域的工具. 這個命令與awk中使用的print $N命令很相似, 但是更受限. 在腳本中使用cut命令會比使用awk命令來得容易一些. 最重要的選項就是-d(字段定界符)和-f(域分隔符)選項.
六. paste
將多個文件, 以每個文件一列的形式合并到一個文件中, 合并后文件中的每一列就是原來的一個文件. 與cut結(jié)合使用, 經(jīng)常用于創(chuàng)建系統(tǒng)log文件.
七. join
這個命令與paste命令屬于同類命令. 但是它能夠完成某些特殊的目地. 這個強力工具能夠以一種特殊的形式來合并兩個文件, 這種特殊的形式本質(zhì)上就是一個關(guān)聯(lián)數(shù)據(jù)庫的簡單版本.
join命令只能夠操作兩個文件. 它可以將那些具有特定標記域(通常是一個數(shù)字標簽)的行合并起來, 并且將結(jié)果輸出到stdout. 被加入的文件應(yīng)該事先根據(jù)標記域進行排序以便于能夠正確的匹配.
八. head
把文件的頭部內(nèi)容打印到stdout上(默認為10行, 可以自己修改). 這個命令有一些比較有趣的選項.
九. tail
將一個文件結(jié)尾部分的內(nèi)容輸出到stdout中(默認為10行). 通常用來跟蹤一個系統(tǒng)logfile的.修改情況, 如果使用-f選項的話, 這個命令將會繼續(xù)顯示添加到文件中的行.
十. wc
wc可以統(tǒng)計文件或I/O流中的”單詞數(shù)量”:
十一. fold
將輸入按照指定寬度進行折行. 這里有一個非常有用的選項-s, 這個選項可以使用空格進行斷行(譯者: 事實上只有外文才需要使用空格斷行, 中文是不需要的)(請參考例子 12-23和例子 A-1).
十二. fmt
一個簡單的文件格式器, 通常用在管道中, 將一個比較長的文本行輸出進行”折行”.
十三. col
這個命令用來濾除標準輸入的反向換行符號. 這個工具還可以將空白用等價的tab來替換. col工具最主要的應(yīng)用還是從特定的文本處理工具中過濾輸出, 比如groff和tbl. (譯者: 主要用來將man頁轉(zhuǎn)化為文本.)
十四. column
列格式化工具. 通過在合適的位置插入tab, 這個過濾工具會將列類型的文本轉(zhuǎn)化為”易于打印”的表格式進行輸出.
十五. colrm
列刪除過濾器. 這個工具將會從文件中刪除指定的列(列中的字符串)并且寫到文件中, 如果指定的列不存在, 那么就回到stdout. colrm 2 4 filename將會刪除filename文件中每行的第2到第4列之間的所有字符. p="" /filename將會刪除filename文件中每行的第2到第4列之間的所有字符.
Caution: 如果這個文件包含tab和不可打印字符, 那將會引起不可預(yù)期的行為. 在這種情況下, 應(yīng)該通過管道的手段使用expand和unexpand來預(yù)處理colrm.
十六. nl
計算行號過濾器. nl filename將會把filename文件的所有內(nèi)容都輸出到stdout上, 但是會在每個非空行的前面加上連續(xù)的行號. 如果沒有filename參數(shù), 那么就操作stdin.
nl命令的輸出與cat -n非常相似, 然而, 默認情況下nl不會列出空行.
十七. pr
格式化打印過濾器. 這個命令會將文件(或stdout)分頁, 將它們分成合適的小塊以便于硬拷貝打印或者在屏幕上瀏覽. 使用這個命令的不同的參數(shù)可以完成好多任務(wù), 比如對行和列的操作, 加入行, 設(shè)置頁邊, 計算行號, 添加頁眉, 合并文件等等. pr命令集合了許多命令的功能, 比如nl, paste, fold, column, 和expand.
pr -o 5 –width=65 fileZZZ | more 這個命令對fileZZZ進行了比較好的分頁, 并且打印到屏幕上. 文件的縮進被設(shè)置為5, 總寬度設(shè)置為65.
一個非常有用的選項-d, 強制隔行打印(與sed -G效果相同).
十八. gettext
GNU gettext包是專門用來將程序的輸出翻譯或者本地化為不同國家語言的工具集. 在最開始的時候僅僅支持C語言, 現(xiàn)在已經(jīng)支持了相當(dāng)數(shù)量的其它程序語言和腳本語言.
想要查看gettext程序如何在shell腳本中使用. 請參考info頁.
十九. msgfmt
一個產(chǎn)生二進制消息目錄的程序. 這個命令主要用來本地化.
二十. iconv
一個可以將文件轉(zhuǎn)化為不同編碼格式(字符集)的工具. 這個命令主要用來本地化.
二十一. recode
可以認為這個命令是上邊iconv命令的專業(yè)版本. 這個非常靈活的并可以把整個文件都轉(zhuǎn)換為不同編碼格式的工具并不是Linux標準安裝的一部分.
二十二. TeX, gs
TeX和Postscript都是文本標記語言, 用來對打印和格式化的視頻顯示進行預(yù)拷貝.
TeX是Donald Knuth精心制作的排版系統(tǒng). 通常情況下, 通過編寫腳本的手段來把所有的選項和參數(shù)封裝起來一起傳到標記語言中是一件很方便的事情.