一.登錄Linux
[root@linux~]#
root:目前使用者賬戶 @之后接的內(nèi)容:主機名稱
root為管理員賬戶 #:提示字元(對于root賬戶) $:提示字元(對于一般賬戶)
系統(tǒng)出現(xiàn)亂碼時,設置語言:LANG=en或者LANG=en_US
如何開通root帳戶
ubuntu默認不啟用root賬號,第一個用戶具有管理員的權限,用它的普通密碼就能執(zhí)行sudo,用passwd root直接能修改root密碼
~$ sudo passwd root
Password: //第一個用戶的密碼
Enter new UNIX password: //root密碼
Retype new UNIX password:
passwd: password updated successfully
su root(進入root賬號)
二.指令方式
[root@linux~]# command [-options] parameter1 parameter2…
1. command為指令的名稱,例如變化路徑的指令為cd
2. 中括號[]不存在實際的指令中,加入?yún)?shù)設定是,通常為-號,例如–h;
完整的參數(shù)名稱輸入用—符號,例如–help
3. command,-options,parameter1...中間以空格來區(qū)分。不論幾個空格shell都視為一格。
4. 指令太長時,使用\符號來連接下一行
5. 在Linux系統(tǒng)中,英文大小寫字母是不一樣的。如CD和cd不同
簡單指令:
date日期
cal 日歷
cal [month] [year] 顯示任意年月的日歷
bc 進入計算器+加 -減*乘 /除 ^指數(shù) %余數(shù)quit退出scale=3小數(shù)點精確位數(shù)
三.重要熱鍵
[Tab]按鍵
1. 命令補全,查詢匹配的指令 #ca[Tab][Tab]
2. 檔案補齊, #ls –al ~/.bash[Tab][Tab]
[Tab]接在一串指令的第一個字的后面,則為命令補全
[Tab]接在一串指令的第二個字以后時,則為檔案補全
[Ctrl] + C 停止執(zhí)行的程序
[Ctrl] + D 退出文字界面相當于exit功能
四.錯誤信息查看
[root@linux~]#DATE
~bash:DATE:command not found
bash表示我們的shell的名稱
查詢指令
man
1. man date
2. 輸入/string向下搜索string這個字串
3. 輸入?string向上搜索string這個字串
4. q 離開指令查詢幫助
info
m進入到某一節(jié)點文章
n前往下一個info page處
p前往上一個info page處
s(/)在info page當中進行搜索
u向上移動一層
b光標移動到該info畫面中第一個node處
e光標移動到該info畫面中最后一個node處
關于關機:
1. 觀察使用者who
觀察網(wǎng)絡情況 netstat –a
背景程序 ps –aux
2. 關機指令:
將資料同步寫入硬盤:sync 關機之前必須執(zhí)行(只有root賬戶才能執(zhí)行)
常用關機指令:shutdown 只有root有權利關機
重新開機,關機:reboot,halt,poweroff
shutdown語法
[root@linux~]#/sbin/shutdown [-t秒] [-arkhncfF] [時間] [警告信息]
示例:
[root@linux~]#/sbin/shutdown –h 10 ‘I will shutdown after 10mins’
這個機器將在10分鐘后關機!并且會顯示在登入者的屏幕
-t sec:-t后面加秒數(shù),就是“過幾秒后關機”
-k:不要真的關機,只是發(fā)送警告訊息出去
-r:將在系統(tǒng)的服務停掉之后重新開機
-h: 將在系統(tǒng)的服務停掉之后,;立即關機
-n:不經(jīng)過init程序,直接以shutdown的功能關機
示例:
[root@linux~]# shutdown -h now
立刻關機,其中now相當于時間為0的狀態(tài)
[root@linux~]# shutdown -h 20:25
系統(tǒng)在今天的20:25分會關機
[root@linux~]# shutdown –h +10
系統(tǒng)再過10分鐘后自動關機
[root@linux~]# shutdown –r now
系統(tǒng)立刻重新開機
[root@linux~]# shutdown –r +30 ‘The system will reboot’
再過三十分鐘系統(tǒng)會重新開機,并顯示后面的信息
[root@linux~]# shutdown –k now ‘This system will reboot’
僅發(fā)出警告信件的參數(shù)!系統(tǒng)并不會關機。
三.Linux檔案屬性
-rw-r--r-- 1 root root 5976 Jun 25 08:53 install.log.syslog
[屬性] [連結數(shù)] [檔案擁有者] [群組] [檔案容量] [修改日期] [檔案名]
屬性1:權限
第一個屬性:
d:表示目錄 drwxr-x---
-:表示檔案 -rw-r--r--
一個用戶可以附屬在一個或多個群組之下。
舉例:
[-][rwx][r-x][r--]
[-] :代表為檔案
[rwx]:擁有人的權限:可讀,可寫,可執(zhí)行
[r-x]:同群組使用者權限:可讀,可執(zhí)行
[r--]:其他使用者權限:可讀
在Windows下一個檔案是否可以執(zhí)行是否屬性來判斷的,例如.exe .com .bat
在Linux下一個檔案是否能夠執(zhí)行由x屬性來決定的,跟檔案名沒有絕對的關系
檔案名:若檔案名前多一個[.],則代表這個檔案為[隱藏檔]。
例如:[.bashrc_history]就是隱藏檔。
改變檔案權限:
chgrp:改變檔案所屬群組
chown:改變檔案所屬人
chmod:改變檔案的屬性、SUID、等等的特性
chgrp [-R] users install.log
1.users:必須是已經(jīng)存在的群組,存在于/etc/passwd
2.[-R]遞回的持續(xù)變更,值該目錄下的文檔都執(zhí)行操作
chown [-R] root:root install.log
1.同時改變擁有者為root,群組為root
2.[-R]遞回的持續(xù)變更,值該目錄下的文檔都執(zhí)行操作
改變權限:
方法一:
r:4 w:2 x:1
[-rwxrwx---]
owner=rwx=4+2+1=7
group=rwx=4+2+1=7
others=---=0+0+0=0
方法二:
基本屬性:(1)user (2)group (3)others
由三個字母來代表u,g,o
a代表all即全部三個群
chmod u=rwx,go=rx .bashrc (u=rwx,go=rx中間沒有空格)
ls –al .bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
目錄屬性的意義:
r:表示具有讀取目錄結構清單的權限
w:具有移動該目錄結構清單的權限:
1.建立新的檔案和目錄
2.刪除已經(jīng)存在的檔案和目錄(不論該檔案屬于誰)
3.將已存在的檔案或目錄進行更名
4.搬移該目錄內(nèi)的檔案,目錄位置。
x: x與能否進入該目錄有關
[root@linux tmp]# mrdir testing *mkdir是建立目錄指令
[root@linux tmp]# chmod 744 testing *改變目錄權限
[root@linux tmp]# touch testing/test *touch可以建立一個沒有內(nèi)容的檔案
[root@linux tmp]# chmod 600 testing/test *改變檔案的權限
[root@linux tmp]# ls –al
drwxr--r-- 2 root root 4096 Jul 14 01:05 test
[root@linux tmp]# su dmtsai *切換用戶身份為dmtsai
[dmtsai@linux tmp]$ ls –al test
---------------???? ? test *由于test檔案的權限是root,dmtsai屬于others,僅有r的權限
[dmtsai@linux tmp]$ cd testing
bash:cd: testing/:Permission denied *我們具有r的權限,但是沒有x,所以dmtsai無法進入到/tmp/testing
[dmtsai@linux tmp]$ exit
檔案名
*.sh:批次檔,該文檔有shell寫成
*Z ,*.tar ,*tar.gz *.zip , *.tgz :經(jīng)過打包的壓縮檔
*.html , *.php :網(wǎng)頁相關檔案
四.文件與目錄管理
相對路徑與絕對路徑
.:代表當前的目錄,也可以使用./表示
.. : 代表上一層目錄,也可以../來表示
舉例:
1.當前在/home目錄下,要進入到/var/log這個目錄,如何操作?
cd /var/log (absolute)
cd ../var/log (relative)
單個檔案或目錄的最大容量名稱為255個字節(jié)
包含完整路徑名稱及目錄/之后完整檔名為4096個字節(jié)
Linux兩層文件結構
重要目錄:
/etc:這個目錄是系統(tǒng)設定檔放置的地方,包括系統(tǒng)上的賬號和密碼(/etc/passwd, /etc/shadow),還有個主要的網(wǎng)絡服務的設定文檔。
/usr/local /opt:軟件安裝一般統(tǒng)一放置在這兩個目錄下
/var:這個目錄是在管理系統(tǒng)運作過程中的重要中間暫存資料的如:/var/lib與/var/run
最終的資料如郵件存放在/var/spool/mail目錄中。所有服務的登錄檔(誰,時間,地址,操作)都存放在/var/log目錄下。 異常存放地址:/var/log/messages
Linux檔案系統(tǒng)ext2,ext3是ext2的升級版,可以對操作日志有記錄,快速重新恢復文件。
相對路徑與絕對路徑
絕對路徑:路徑的寫法一定由根目錄/寫起如cd /usr/share
相對路徑:路徑的寫法不是由/寫起如cd ../man 相對路徑指“相對于目前工作目錄的路徑”
目錄的相關操作
. 代表次層目錄
.. 代表上一層目錄
-代表前一個工作目錄
~ 代表[當前使用者身份]所在的家目錄
~account 代表account這個使用者的家目錄
cd:變換目錄
pwd: 顯示當前的目錄
mkdir:建立一個新的目錄
rmdir: 刪除一個空的目錄
cd
舉例:
[root@linux ~]# cd ~dmtsai
#代表去了dmtsai這個使用者的家目錄,即/home/dmtsai
[root@linux dmtsai]# cd ~
#代表回到自己的家目錄,即/root
[root@linux ~]#cd
#沒有加上任何路徑,也是代表回到自己的家目錄
[root@linux ~]#cd ..
#表示去目前的上層目錄
[root@linux ~]#cd –
#表示回到剛剛的那個目錄
[root@linux ~]#cd /var/spool/mail
#絕對路徑
[root@linux ~]#cd ../mqueue
#相對路徑,退回上級目錄后進入到mqueue目錄
mkdir(建立新目錄)
[root@linux ~]# mkdir [-mp]目錄名稱
-m:設定文件的權限!直接設定,不需要看預設權限(umask)
-p:幫助你直接將所需要的目錄遞回建立起來
范例1:
[root@linux tmp]# mkdir test1/test2/test3/test4
#沒有辦法直接建立此目錄
[root@linux tmp]# mkdir –p test1/test2/test3/test4
#加了這個-p的參數(shù),可以自行幫你建立多層目錄
范例2:
[root@linux tmp]#mkdir –m 711 test2
[root@linux tmp]#ls –l /test2
drwx--x--x 2 root root 4096 Jul 18 12:54 test2
rmdir:刪除空的目錄
[root@linux tmp]#rmdir [-p]目錄名稱
# -p :連同上層“空的”目錄一起刪除
[root@linux tmp]#rmdir test1
刪除空目錄test1
[root@linux tmp]#rmdir –p test2/test3/test4
3個空目錄一起刪除
目錄需要一層一層的刪除,而且被刪除的目錄里面不能存在其他的目錄或文件。如果要刪除目錄下的所有內(nèi)容時需要用rm –rf test指令(較危險!)
ls:查詢
ls:不顯示隱藏的文件和目錄
ls –a:顯示所有的文件和目錄
ls –l:不顯示隱藏的文件和目錄(顯示所有屬性)
ls –al:顯示所有的文件和目錄(顯示所有屬性)
ls –l bashrc*模糊查詢,將匹配bashrc字段的文件和文件夾全部顯示
mv(移動檔案與目錄,或更名)
[root@linux ~]#mv [-fiu] source destination
[root@linux ~]#mv [options] source1 source2…directory
參數(shù):
-f:force意思,強制復制不詢問。
-i:若目標檔案(destination)已經(jīng)存在,就會詢問是否覆蓋
-u:若目標已經(jīng)存在,且source較新,才會更新。
范例一:將檔案移動到目錄中
[root@linux ~]#mv bashrc mvtest
范例二:將目錄更名
[root@linux ~]#mv mvtest mvtest2?完成更名。更名的其他一個指令:rename
范例三:將兩個以上文件或目錄移動
[root@linux tmp]#touch testfile
[root@linux tmp]#mkdir testdir1 testdir2
[root@linux tmp]#mv testfile testdir1 testdir2
#注意如果有多個來源檔案或目錄,則最后一個目的檔一定是“目錄”
文件內(nèi)容查詢:
cat:由第一行開始顯示檔案內(nèi)容
tac:從最后一行開始顯示,tac就是cat倒著寫
nl:顯示的時候,順便輸出行號!
more:一頁一頁的顯示檔案內(nèi)容
head:只看頭幾行
tail:只看尾巴幾行
od:以二進制的方式讀取檔案內(nèi)容
cp:復制
[root@linux~]#cp [-adfilprsu]來源檔(source)目的檔(destination)
[root@linux~]#cp [options] source1 source2 source3 directory
參數(shù):
-a:復制所有內(nèi)容,包括文件和文件夾,和文件的屬性
-d:來源檔的屬性為連結檔(快捷方式),復制連結檔屬性(快捷方式指向的文件),不是復制快捷方式本身。本質(zhì):創(chuàng)建一個快捷方式,并指向來源檔指向的文件。
-s:目的檔復制成為連結檔(快捷方式),不管來源檔A是真實文件還是快捷方式,復制完成后的文件成為快捷方式,并指向A。本質(zhì):創(chuàng)建一個快捷方式,并指向來源檔(范例四)
-f:為強制的意思,若有重復或其他疑問時,先不回詢問用戶,直接復制
-i:若目的檔(destination)已經(jīng)存在時,在覆蓋時會先詢問
-r:遞回持續(xù)復制,用于文件夾的復制行為;文件夾的權限會改變
-u:若destination比source舊才會更新destination!常用于文檔更新
注意:如果來源檔有兩個以上,則最后一個目的檔一定要目錄才可以
范例一:將家目錄下的.bashrc復制到/tmp下,并更名為bashrc
[root@linux~]#cd /tmp
[root@linux~]#cp ~/.bashrc bashrc
[root@linux~]#cp –i ~/.bashrc bashrc
cp:overwrite ‘bashrc’?n
#加上參數(shù)i,會在復制文件重復時提示。
范例二:將/var/log/wtmp復制到/tmp底下
[root@linux~]#cd /tmp
[root@linux~]#cp /var/log/wtmp . ?想要復制到當前文件夾,最后的.不能忘
#如果要將檔案的所有特性都一起復制過來,可加入?yún)?shù)-a
范例三:復制/etc這個目錄下的所有內(nèi)容到/tmp底下
[root@linux~]#cp /etc/ /tmp
cp:omitting directory ‘/etc’ ?如果是目錄,不能直接復制,需要加上參數(shù)-r
[root@linux~]#cp –r /etc/ /tmp
#注意:-r可以復制文件夾,復制后的文件夾權限會相應改變
#將權限也一起復制:cp –a /etc /tmp
范例四:將復制的bashrc建立一個連接檔(快捷方式)
[root@linux~]#cp –s bashrc bashrc_slink
[root@linux~]#ls –l bashrc*
-rw-r--r-- 2 root root 395 jul 18 22:08 bashrc
1rwxrwxrwx 2 root root 395 jul 18 22:08 bashrc_slink -> bashrc
#bashrc_slink是由-s參數(shù)造成。創(chuàng)建了一個快捷方式
范例六:bashrc_slink復制成為bashrc_slink2(區(qū)分-d –s的用法)
[root@linux~]#cp bashrc_slink bashrc_slink2
[root@linux~]#cp –d bashrc_slink bashrc_slink3
[root@linux~]#cp –s bashrc_slink baschrc_slink4
[root@linux~]#ls –l bashrc_slink*
lrwxrwxrwx 1 root root 6 jul 18 22:31 bashrc_slink – > bashrc (該文件原本存在)
-rw-r--r--1 root root 395 jul 18 22:31 bashrc_slink2 (只復制了一個快捷方式,無任何意思)
lrwxrwxrwx 1 root root 6 jul 18 22:31 bashrc_slink3 – > bashrc (-d用法,復制快捷方式,并指向bashrc_slink指向的文件)
lrwxrwxrwx 1 root root 6 jul 18 22:31 bashrc_slink4 – > bashrc_slink(-s用法,復制快捷方式,并指向源文件)
范例七:將家目錄的.bachrc和.bash_history復制到/tmp
[root@linux tmp]#cp ~/.bashrc ~/.bashrc_history /tmp
#可以將多個資料一次復制到同一個目錄去!
復制檔案時,一般復制后文件的權限就是操作者的權限。由于這個特性,在進行備份時要注意特殊權限檔案,例如密碼檔以及一些設定檔。不能直接以cp復制,需要加入-a或-p參數(shù)。
另外,如果要復制檔案給其他使用者,也必須要注意到檔案的權限(包括讀、寫、執(zhí)行以及檔案擁有者),否則,其他人沒有權限進行操作。
復制前的注意點:
1.是否需要完整的保留來源檔案的資訊(包括文件和屬性)
2.來源檔案是否為連結檔(快捷方式)
3.來源檔是否為特殊的檔案,例如FIFL,socket等
4.來源檔是否為目錄?
rm(移除檔案或目錄)
參數(shù):
-f:就是force意思,強制刪除
-i:互動模式,在刪除前會詢問使用者
-r:遞回刪除。常用于目錄的刪除。
范例一:刪除一個不為空的目錄
[root@linux tmp]#mkdir test
[root@linux tmp]#cp ~/.bashrc test/
[root@linux tmp]#rm
范例二:刪除一個帶有-開頭的檔案
[root@linux tmp]#ls *aa*
-aaa-
[root@linux tmp]#rm –aaa-
rm:invalid option --a ?因為“-”是參數(shù)
[root@linux tmp]#rm ./-aaa-?正確方法
[root@linux tmp]#rm –rf test 會將test目錄下的文件和子目錄全部刪除,后果嚴重
資料截取
head(取出前面幾行)
[root@linux ~]#head [-n number]檔案
參數(shù):
-n:后面接數(shù)字,代表顯示幾行
范例:
[root@linux ~]#head /etc/man.config
#預設的情況中,顯示前面十行!若要顯示20行,就要這樣:
[root@linux ~]#head –n 20 /etc/man.config
tail(取出后面幾行)
[root@linux ~ ]#tail [-n number]檔案
tail用法與head用法一致。
范例:若要顯示文件第11行到第20行
那么先取前20行,再取后面的10行
head –n 20 bashrc | tail –n 10
修改檔案時間和建新檔:touch
touch使用情況:
1. 建立一個空的檔案
2. 將某個檔案日期修訂為目前
那么umask指定的是『該預設值需要減掉的權限!』因為r、w、x分別是4、2、1分,所以棉!也就是說,當要拿
掉能寫的權限,就是輸入2分,而如果要拿掉能讀的權限,也就是4分,那么要拿掉讀與寫的權限,也就是6分,
而要拿掉執(zhí)行與寫入的權限,也就是3分,這樣了解嗎?請問您,5分是什么?呵呵!就是讀與執(zhí)行的權限啦!如
果以上面的例子來說明的話,因為umask為022,所以user并沒有被拿掉屬性,不過group與others的屬性被拿掉
了2 (也就是w這個屬性),那么由于當使用者
檔案預設權限:umask
在預設權限的屬性上,目錄與檔案是不一樣的。由于檔案我們不希望他具有可執(zhí)行的權力,預設情況中,檔案是沒有可執(zhí)行(x)權限的。因此∶
●若使用者建立為『檔案』則預設『沒有可執(zhí)行( x )項目』,亦即只有rw這兩個項目,也就是最大為666分,預設屬性如下∶
-rw-rw-rw-
●若使用者建立為『目錄』,則由于x與是否可以進入此目錄有關,因此預設為所有權限均開放,亦即為777分,預設屬性如下∶
drwxrwxrwx
umask就是“該預設值需要減掉的權限”,r,w,x分別為4、2、1分
去掉寫入的權限022
建文件:(-rw-rw-rw-)-(-----w--w-)è-rw-r--r--
建目錄:(drwxrwxrwx)-(d----w—w-)èdrwxr-xr-x
操作:
[root@linux ~ ]# umask 002
#去掉others寫入的權限。
檔案隱藏屬性:
chattr(設定檔案隱藏屬性)
[root@linux ~]#chattr [+-=] [ASacdistu]檔案或目錄名稱
參數(shù):
+:增加一個特殊參數(shù),其他原本存在參數(shù)則不變
-:移除一個特殊參數(shù),其他原本存在參數(shù)則不變
=:設定一個參數(shù)
A:設定A后,這個文件(或目錄)的存取時間atime將不可被修改
i:可以讓一個文件“不能被刪除、改名、設定連結也無法寫入或新增資料”,提高系統(tǒng)安全性。(重要)
a:當設定a后,這個文件只能增加資料,而不能刪除,只有root才能設定,非常適用于log file這種登錄文件。
[root@linux tmp]#touch attrtest
[root@linux tmp]#chattr +i attrtest
[root@linux tmp]#rm attrtest
rm:cannot remove ‘a(chǎn)ttrtest’: Operation not permitted
#即使root也是沒有權限將這個文檔刪除。
[root@linux tmp]#chattr –i attrtest
#解除檔案設定
lsattr(顯示檔案隱藏屬性)
[root@linux ~] lsattr [-aR]檔案或目錄
參數(shù):
-a:將隱藏檔的屬性顯示;
-R:連同子目錄的資料也一起顯示出來!
檔案特殊權限:SUID/SGID/Sticky Bit
Set UID:讓一般使用者在執(zhí)行程序時,能夠短暫具有該程序擁有者的權限。對文件有效,文件夾無效
Sticky Bit:在具有SBit的目錄下,使用者若在該文件夾下具有w,x的權限,則當使用者在該目錄下建立檔案或目錄時,只有檔案擁有者與root才有權力刪除。
權限設定
我們使用chmod xyz filename的方式來設定filename的屬性
4:SUID
2:SGID
1:Sticky bit
file:檔案類型查看
檔案搜索
which(尋找“執(zhí)行檔”)
[root@linux ~]#which [-a] command
參數(shù):
-a:將所有可以找到的指令均列出,而不止第一個被找到的指令名稱
[root@linux ~]#which passwd
/usr/bin/passwd
whereis(尋找特定檔案)
參數(shù):
-b:只找binary的文件
-m:只找在說明檔manual路徑下的檔案
-s:只找source來源檔案
-u:沒有說明檔的檔案!
[root@linux ~]#whereis passwd
#任何與passwd有關的檔名都會被列出來
locate
直接查詢文件
[root@linux ~]#locate filename
find
[root@linux ~ ]#find [PATH] [option] [action]
參數(shù):
1. 與時間相關參數(shù):
-atime n:在n天之前的“一天之內(nèi)”被access過的檔案
-ctime n:在n天之前的“一天之內(nèi)”被change過狀態(tài)的檔案
-mtime n:在n天之前的“一天之內(nèi)”被modification過的檔案
-newer file:file為一個存在的檔案,只要檔案比file還要新,就會被列出來
2. 與使用者或群組名稱有關的參數(shù):
-user name:name為使用者賬號名稱
-group name:name為群組名稱
-nouser:尋找檔案的擁有者不存在/etc/passwd的人
-nogroup:尋找檔案的擁有群組不存在與/etc/group的檔案
3. 與檔案權限及名稱有關的參數(shù)
-name filename:搜尋檔案名稱為filename的檔案
-type TYPE:搜尋檔案的類型為TYPE的,主要類型:一般正規(guī)檔案(f),裝置檔案(b,c)目錄(d),連結檔(l),sockte(s),F(xiàn)IFO(p)
-perm mode:搜尋檔案屬性“剛好等于”mode的檔案,這個mode為chmod的屬性值。-rwsr-xr-x的屬性為4755
-perm –mode:搜尋檔案屬性“必須要全部包括的mode屬性”例如要搜尋-rwxr--r--,即0744的檔案,使用-perm -0744,這個檔案的屬性為-rwsr-xr-x,亦即4755,也會被列出來
-perm +mode:搜尋檔案屬性“包含任一mode的屬性”
4. 額外可進行的指令:
-exec command: command為其他指令,-exec后面可再接額外的指令來處理搜尋到的結果。
范例一:將過去系統(tǒng)上面24小時內(nèi)有更新過內(nèi)容(mtime)的檔案列出
[root@linux ~]#find / -mtime 0
#0代表目前的時間,從現(xiàn)在開始到24小時前。
#find / -mtime 0 從今天之前的3*24~4*24小時之間更新的檔案
#-atime和-ctime的用法相同
范例二:比較檔案新舊
[root@linux ~]#find /etc -newer /etc/passwd
范例三:搜尋/home下屬于dmtsai檔案
[root@linux ~]#find /home –user dmtsai
范例四:找出檔案名為passwd這個檔案
#搜尋-name的檔案名
范例五:搜尋檔案屬性為f的檔案
[root@linux~]#find /home -type f
范例六:將找到的檔案使用ls –l列出來
[root@linux ~]#find /home –type f -exec ls –l {} \;
#-exe后面的ls –l就是額外的指令
# -exec最后用\;結束
范例七:搜尋檔案名包含’http’
find /etc -name ‘*http*’
五.磁盤系統(tǒng)管理
查看磁盤容量:df
[root@linux~]#df [-ahikHTm] [文檔名或目錄]
參數(shù):
1. –h以較易讀的容量格式顯示
2. 不計算硬盤容量,而是以inode的數(shù)量來顯示
[root@linux~]#df –h
#將容量結果以較易讀的方式顯示出來
[root@linux~]#df –h /etc
#將/etc做在的磁盤已易讀形式顯示容量
顯示文件或文件夾容量:du
[root@linux~]#du [-ahskm]檔案或目錄名稱
參數(shù):
-h:以易讀的方式顯示
-s:不顯示目錄內(nèi)的文件容量,只顯示總的容量
[root@linux~]#du –hs /*
#顯示根目錄下每個文件夾的容量
查看系統(tǒng)內(nèi)存:free
查看系統(tǒng)信息CPU+內(nèi)存+進程:top
Linux的EXT2檔案系統(tǒng)(inode)
在標準的ext2檔案系統(tǒng)當中,我們將每個檔案的內(nèi)容分為兩個部分來儲存,一個是檔案的屬性,另一個是檔案的內(nèi)容。所以ext2規(guī)劃出inode與Block來分別存儲檔案的屬性(放在inode)與檔案的內(nèi)容(放在Block)
Block:記錄檔案內(nèi)容資料
inode:記錄檔案的相關屬性,檔案內(nèi)容放置在哪一個Block之內(nèi)
ext2檔案系統(tǒng)特色
1. Blocks與inode在一開始格式化時就已經(jīng)固定
2. 一個partition能夠容納的檔案數(shù)與inode有關
3. 一般來說,每4Kbytes的硬盤空間分配一個inode
4. 一個inode的大小為128bytes
5. Block為固定大小,目前支持1024/2048/4096bytes等
6. Block越大,則損耗的硬盤空間也越多。
7. 1個inode可以對應多個Block
8. 當block大小越小,而inode數(shù)量越多,則可利用的空間越多,但是大檔案寫入的效率差
9. 當block大小越大,而inode數(shù)量越少,大檔案寫入效率佳,可是浪費的硬盤空間較多。
六.vi文本編輯器
vi共有三種模式,“一般模式”、“編輯模式”、“指令列命令模式”
一般模式:
以vi處理一個文檔,剛進入時就是一般模式,該模式下可以“刪除字元”或“刪除整行”可以復制,粘貼資料。但是無法編輯
編輯模式:
輸入【i,I,o,O,a,A,r,R】等字母后進入到編輯模式。在頁面下方出現(xiàn)‘insert或replace’才可以輸入任何字來輸入到檔案中
指令列命令模式:
在一般模式中輸入:/ ?可以提供讀取、搜索、存檔、退出vi、顯示行號等操作
一般模式:光標移動
n n gg:移動到文檔的第一行 0:移動到這一行的最前面 G:移動到檔案的最后一行。 一般模式:搜索與取代 /word:開始向下搜索關鍵字word ?word:開始向上搜索關鍵字word n:重復執(zhí)行搜索命令 N:執(zhí)行反向結果,若之前輸入/word向下搜索,按N則向上搜索。 :n1,n2s/word1/word2 n1,n2為數(shù)字,在n1與n2行之間尋找word1字段,并用word2來取代。 :1, $s/word1/word2/gc 從第一行到最后一行尋找word1字串,并將該字串取代為word2!在取代前顯示提示,是否取代。 一般模式:刪除、復制、粘貼 x,X: x向后刪除一個字符(del),X向前刪除一個字符(backspace) nx:n為數(shù)字,連續(xù)向后刪除n個字符。 dd:刪除光標所在的那一行 ndd:n為數(shù)字,刪除n行 yy:復制光標所在那一行 nyy:復制n行 p,P: p在光標行下面粘貼,P在光標行上面粘貼 u:撤銷上一步 [Ctrl]+r:重做上一個動作 u和[Ctrl]+r搭配使用可以完成一直撤銷的操作 進入編輯模式: i ,I:插入。i:在光標處進行插入操作。I光標移動到該行最前面出開始插入 a,A: a從目前光標處下一個字符開始插入,A所在行最后一個字符開始插入 o,O: o在光標下一行插入新的一行。O光標所在上一行插入新的一行。 r,R:取代 r會取代光標處的一個字符;R會一直取代光標所在文字,知道ESC 指令列命令模式 :w 將編輯的資料保存 :w! 強制保存。 :q 退出 :q! 強制退出 :wq 保存后退出 ZZ 若檔案沒有變更,則不保存離開,若檔案已經(jīng)變動,則保存后退出 :n1, n2 w [filename] 將n1到n2的內(nèi)容存儲成filename這個檔案 :! command 暫時離開vi到指令模式下執(zhí)行command的顯示結果。 例如“:! ls /home”即離開vi后查看/home底下以ls輸出的檔案資訊。 :set nu :顯示行號,設定后會在每一行的字首顯示該行行號 :set nonu:取消行號。 vi簡單練習題 1. 請在/tmp這個目錄下建立一個名為vitest的目錄; 2. 進入vitest這個目錄當中; 3. 將/etc/man.config拷貝到本目錄底下(或由上述的連結下載man.config檔案); 4. 使用vi開啟本目錄下的man.config這個檔案; 5. 在vi中設定一下行號; 6. 移動到第58行,向右移動40個字元,請問您看到的雙引號內(nèi)是什么目錄? 7. 移動到第一行,并且向下搜尋一下『bzip2』這個字串,請問他在第幾行? 8. 接著下來,我要將50到100行之間的man改為MAN,并且一個一個挑選是否需要修改,如何下達指令? 9. 修改完之后,突然反悔了,要全部復原,有哪些方法? 10. 我要復制51到60行這十行的內(nèi)容,并且貼到最后一行之后; 11. 刪除11到30行之間的20行; 12. 將這個檔案另存成一個man.test.config的檔名; 13. 去到第29行,并且刪除15個字元; 14. 儲存后離開吧! 整個步驟可以如下顯示∶ 1. 『mkdir /tmp/vitest』 2. 『cd /tmp/vitest』 3. 『cp /etc/man.config .』 4. 『vi man.config
聯(lián)系客服