$cal
日曆
$cal 2015
指定年
$cal 7 2015
指定月
$bc
計算器node
$man -f socket
查看socket有多少個幫助文檔linux
# man -f socket socket (3pm) - load the C socket.h defines and structure manipulators socket (2) - create an endpoint for communication socket (3p) - create an endpoint for communication socket (7) - Linux socket interface socket (n) - Open a TCP network connection
$man n socket
查看對應於n的解釋shell
$ sync
直接在文字接口下輸入 sync , 那麼在內存中還沒有被更新的數據,就會被寫入硬盤中!因此,這個指令在系統關機或從新開機以前, 很重要喔!最好多執行幾回!(注:這個指令也只有 root 能夠執行喔! )vim
[root@linux ~]# /sbin/shutdown [-t 秒] [-arkhncfF] [時間] [警告訊息] 實例: [root@linux ~]# /sbin/shutdown -h 10 'I will shutdown after 10 mins' 告訴你們,這部機器會在十分鐘後關機!而且會顯示在目前登入者的屏幕前方! -t sec : -t 後面加秒數,亦即『過幾秒後關機』的意思 -k : 不要真的關機,只是發送警告訊息出去! -r : 在將系統的服務停掉以後就從新開機 -h : 將系統的服務停掉後,當即關機。 -n : 不通過 init 程序,直接以 shutdown 的功能來關機 -f : 關機並開機以後,強制略過 fsck 的磁盤檢查 -F : 系統從新開機以後,強制進行 fsck 的磁盤檢查 -c : 取消已經在進行的 shutdown 指令內容。
[root@linux ~]# df [-ahikHTm] [目錄或文件名] 參數: -a :列出全部的檔案系統,包括系統特有的 /proc 等檔案系統; -k :以 KBytes 的容量顯示各檔案系統; -m :以 MBytes 的容量顯示各檔案系統; -h :以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示; -H :以 M=1000K 取代 M=1024K 的進位方式; -T :連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出; -i :不用硬盤容量,而以 inode 的數量來顯示 範例: 範例一:將系統內全部的 partition 列出來! [root@linux ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda1 5952252 3012332 2632680 54% / /dev/shm 192836 0 192836 0% /dev/shm /dev/hda5 9492644 221604 8781060 3% /home # 特別注意,在 Linux (FC4) 底下,若是 df 沒有加任何參數, # 那麼預設會將系統內全部的 (不含特殊內存內的檔案系統與 swap) 都以 Kbytes # 的容量來列出來!至於那個 /dev/shm 是與內存有關的掛載,先不要理他!
du
數組
[root@linux ~]# ln [-sf] 來源文件 目標文件 參數: -s :若是 ln 不加任何參數就進行連結,那就是hard link,至於 -s 就是symbolic link -f :若是 目標文件 存在時,就主動的將目標文件直接移除後再創建!
[root@linux ~]# mount -a [root@linux ~]# mount [-tonL] 裝置名稱代號 掛載點 參數: -a :依照 /etc/fstab 的內容將全部相關的磁盤都掛上來! -n :通常來講,當咱們掛載檔案系統到 Linux 上頭時, Linux 會主動的將 目前的 partition 與 filesystem 還有對應的掛載點,都記錄到 /etc/mtab 那個檔案中。不過,有些時刻 (例如不正常關機致使一些問題,而進入單人模式) 系統沒法寫入 /etc/mtab 時,就能夠加上 -n 這個參數來略過寫入 mtab 的動做。 -L :系統除了利用裝置名稱代號 (例如 /dev/hda1) 以外,還能夠利用 partition 的表頭名稱 ( Label ) 來進行掛載喔!因此,最好爲您的 partition 取一個 在您系統當中獨一無二的名稱吧! -t :您的 Linux 支持的檔案格式,就寫在這裏吧!舉例來講,咱們在上面創建 /dev/hdb5 是 ext3 檔案系統,那麼要掛載時,就得要加上 -t ext3 來告知系統,用 ext3 的檔案格式來掛載該 partition 呢! 至於系統支持的 filesystem 類型在 /lib/modules/`uname -r`/kernel/fs 當中。 常見的有: ext2, ext3, reiserfs, 等 Linux 慣用 filesystem vfat, msdos 等 Windows 常見 filesystem iso9660 爲光盤片的格式 nfs, smbfs 等爲網絡相關檔案系統。這部分將來咱們會在網絡方面說起! 若 mount 後面沒有加 -t 檔案系統格式時,則 Linux 在預設的狀況下, 會主動以 /etc/filesystems 這個檔案內規範的檔案系統格式 來嘗試主動的掛載喔! -o :後面能夠接一些掛載時,額外加上的參數喔!比方說帳號、密碼、讀寫權限等: ro, rw: 此 partition 爲只讀(ro) 或可擦寫(rw) async, sync: 此 partition 爲同步寫入 (sync) 或異步 (async),這個與咱們 以前提到的檔案系統運做方式有關,預設是 async auto, noauto: 容許此 partition 被以 mount -a 自動掛載(auto) dev, nodev: 是否容許此 partition 上,可創建裝置檔案? dev 爲可容許 suid, nosuid: 是否容許此 partition 含有 suid/sgid 的檔案格式? exec, noexec: 是否容許此 partition 上擁有可執行 binary 檔案? user, nouser: 是否容許此 partition 讓 user 執行 mount ?通常來講, mount 僅有 root 能夠進行,但下達 user 參數,則可以讓 通常 user 也可以對此 partition 進行 mount 。 defaults: 默認值爲:rw, suid, dev, exec, auto, nouser, and async remount: 從新掛載,這在系統出錯,或從新更新參數時,頗有用! 範例: 範例一:將剛剛創建的 /dev/hdb5 掛載到 /mnt/hdb5 上面! [root@linux ~]# mkdir /mnt/hdb5 [root@linux ~]# mount -t ext3 /dev/hdb5 /mnt/hdb5 [root@linux ~]# df Filesystem 1K-blocks Used Available Use% Mounted on ....中間省略..... /dev/hdb5 700144 20664 643336 4% /mnt/hdb5 範例二:掛載光盤! [root@linux ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom [root@linux ~]# mount /dev/cdrom # 上面的參數當中提到,若是沒有加上 -t 這個參數時,系統會主動的以 # /etc/filesystems 裏面規範的內容給他測試一下是否掛載~另外, # 由於咱們的 /etc/fstab 裏面會規範 /dev/cdrom 應該掛載到那個掛載點, # 所以,直接下達 mount /dev/cdrom 也是能夠的喔!(固然要看/etc/fstab設定啦!) -範例三:掛載 Window fat 軟盤! [root@linux ~]# mount -t vfat /dev/fd0 /mnt/floppy 範例四:將 / 從新掛載,並加入參數爲 rw ! [root@linux ~]# mount -o remount,rw / 範例五:將 Label 名爲 logical 的 partition 掛載到 /mnt/hdb5 中 [root@linux ~]# mount -t ext3 -L logical /mnt/hdb5 範例六:將系統全部的以掛載的 partition 數據列出來 [root@linux ~]# mount /dev/hda1 on / type ext3 (rw) /dev/proc on /proc type proc (rw) /dev/shm on /dev/shm type tmpfs (rw) /dev/hda5 on /home type ext3 (rw) /dev/hdb5 on /mnt/hdb5 type ext3 (rw) # 嗯!不加任何參數,則 mount 會將目前系統的全部 partition # 與相關對應的 filesystem 及 mount point 都列出來!
範例二:將 /tmp/home 卸載: [root@linux ~]# umount /tmp/home [root@linux ~]# umount 裝置代號或掛載點 [root@linux ~]# umount /dev/hdb5 [root@linux ~]# umount /mnt/hdb5
. 表明此層目錄 .. 表明上一層目錄 - 表明前一個工做目錄 ~ 表明『目前使用者身份』所在的家目錄 ~account 表明 account 這個使用者的家目錄
• cat 由第一行開始顯示檔案內容 • tac 從最後一行開始顯示,能夠看出 tac 是 cat 的倒着寫! • nl 顯示的時候,順道輸出行號! • more 一頁一頁的顯示檔案內容 • less 與 more 相似,可是比 more 更好的是,他能夠往前翻頁! • head 只看頭幾行 • tail 只看尾巴幾行 • od 以二進制的方式讀取檔案內容!
[root@linux ~]# chattr [+-=][ASacdistu] 檔案或目錄名稱 參數: + :增長某一個特殊參數,其它本來存在參數則不動。 - :移除某一個特殊參數,其它本來存在參數則不動。 = :設定必定,且僅有後面接的參數 A :當設定了 A 這個屬性時,這個檔案(或目錄)的存取時間 atime (access) 將不可被修改,可避免例如手提式計算機容易有磁盤 I/O 錯誤的狀況發生! S :這個功能有點相似 sync 的功能!就是會將數據同步寫入磁盤當中! 能夠有效的避免數據流失! a :當設定 a 以後,這個檔案將只能增長數據,而不能刪除,只有 root 才能設定這個屬性。 c :這個屬性設定以後,將會自動的將此檔案『壓縮』,在讀取的時候將會自動解壓縮, 可是在儲存的時候,將會先進行壓縮後再儲存(看來對於大檔案彷佛蠻有用的!) d :當dump(備份)程序被執行的時候,設定 d 屬性將可以使該檔案(或目錄)不具備dump功能 i :這個 i 可就很厲害了!他可讓一個檔案『不能被刪除、更名、設定連結也沒法寫入 或新增資料!』對於系統安全性有至關大的幫助! j :當使用 ext3 這個檔案系統格式時,設定 j 屬性將會使檔案在寫入時先記錄在 journal 中!可是當 filesystem 設定參數爲 data=journalled 時,因爲已經設定了 日誌了,因此這個屬性無效! s :當檔案設定了 s 參數時,他將會被徹底的移除出這個硬盤空間。 u :與 s 相反的,當使用 u 來設定檔案時,則數據內容其實還存在磁盤中, 可使用來 undeletion. 注意:這個屬性設定上面,比較常見的是 a 與 i 的設定值,並且不少設定值必需要身爲 root 纔可以設定的喔! 範例: [root@linux ~]# cd /tmp [root@linux tmp]# touch attrtest [root@linux tmp]# chattr +i attrtest [root@linux tmp]# rm attrtest rm: remove write-protected regular empty file `attrtest'? y rm: cannot remove `attrtest': Operation not permitted # 看到了嗎?呼呼!連 root 也沒有辦法將這個檔案刪除呢!趕忙解除設定! [root@linux tmp]# chattr -i attrtest
lsattr
緩存
[root@linux ~]# lsattr [-aR] 檔案或目錄 參數: -a :將隱藏文件的屬性也秀出來; -R :連同子目錄的數據也一併列出來! 範例: [root@linux tmp]# chattr +aij attrtest [root@linux tmp]# lsattr ----ia---j--- ./attrtest
locate filename
在緩存中查詢文件 緩存文件在 /var/lib/slocate/安全
[root@linux ~]# find [PATH] [option] [action] 參數: 1. 與時間有關的參數: -atime n :n 爲數字,意義爲在 n 天以前的『一天以內』被 access 過的檔案; -ctime n :n 爲數字,意義爲在 n 天以前的『一天以內』被 change 過狀態的檔案; -mtime n :n 爲數字,意義爲在 n 天以前的『一天以內』被 modification 過的檔案; -newer file :file 爲一個存在的檔案,意思是說,只要檔案比 file 還要新, 就會被列出來~ 2. 與使用者或羣組名稱有關的參數: -uid n :n 爲數字,這個數字是使用者的帳號 ID,亦即 UID ,這個 UID 是記錄在 /etc/passwd 裏面與帳號名稱對應的數字。這方面咱們會在第四篇介紹。 -gid n :n 爲數字,這個數字是羣組名稱的 ID,亦即 GID,這個 GID 記錄在 /etc/group,相關的介紹咱們會第四篇說明~ -user name :name 爲使用者帳號名稱喔!例如 dmtsai -group name:name 爲羣組名稱喔,例如 users ; -nouser :尋找檔案的擁有者不存在 /etc/passwd 的人! -nogroup :尋找檔案的擁有羣組不存在於 /etc/group 的檔案! 當您自行安裝軟件時,極可能該軟件的屬性當中並無檔案擁有者, 這是可能的!在這個時候,就可使用 -nouser 與 -nogroup 搜尋。 3. 與檔案權限及名稱有關的參數: -name filename:搜尋文件名稱爲 filename 的檔案; -size [+-]SIZE:搜尋比 SIZE 還要大(+)或小(-)的檔案。這個 SIZE 的規格有: c: 表明 byte, k: 表明 1024bytes。因此,要找比 50KB 還要大的檔案,就是『 -size +50k 』 -type TYPE :搜尋檔案的類型爲 TYPE 的,類型主要有:通常正規檔案 (f), 裝置檔案 (b, c), 目錄 (d), 連結檔 (l), socket (s), 及 FIFO (p) 等屬性。 -perm mode :搜尋檔案屬性『恰好等於』 mode 的檔案,這個 mode 爲相似 chmod 的屬性值,舉例來講, -rwsr-xr-x 的屬性爲 4755 ! -perm -mode :搜尋檔案屬性『必需要所有囊括 mode 的屬性』的檔案,舉例來講, 咱們要搜尋 -rwxr--r-- ,亦即 0744 的檔案,使用 -perm -0744, 當一個檔案的屬性爲 -rwsr-xr-x ,亦即 4755 時,也會被列出來, 由於 -rwsr-xr-x 的屬性已經囊括了 -rwxr--r-- 的屬性了。 -perm +mode :搜尋檔案屬性『包含任一 mode 的屬性』的檔案,舉例來講,咱們搜尋 -rwxr-xr-x ,亦即 -perm +755 時,但一個檔案屬性爲 -rw------- 也會被列出來,由於他有 -rw.... 的屬性存在! 4. 額外可進行的動做: -exec command :command 爲其它指令,-exec 後面可再接額外的指令來處理搜尋到 的結果。 -print :將結果打印到屏幕上,這個動做是預設動做! 範例: 範例一:將過去系統上面 24 小時內有更動過內容 (mtime) 的檔案列出 [root@linux ~]# find / -mtime 0 # 那個 0 是重點!0 表明目前的時間,因此,從如今開始到 24 小時前, # 有變更過內容的檔案都會被列出來!那若是是三天前的 24 小時內? # find / -mtime 3 ,意思是說今天以前的 3*24 ~ 4*24 小時之間 # 有變更過的檔案都被列出的意思!同時 -atime 與 -ctime 的用法相同。 範例二:尋找 /etc 底下的檔案,若是檔案日期比 /etc/passwd 新就列出 [root@linux ~]# find /etc -newer /etc/passwd # -newer 用在分辨兩個檔案之間的新舊關係是頗有用的! 範例三:搜尋 /home 底下屬於 dmtsai 的檔案 [root@linux ~]# find /home -user dmtsai # 這個東西也頗有用的~當咱們要找出任何一個使用者在系統當中的全部檔案時, # 就能夠利用這個指令將屬於某個使用者的全部檔案都找出來喔! 範例四:搜尋系統中不屬於任何人的檔案 [root@linux ~]# find / -nouser # 透過這個指令,能夠輕易的就找出那些不太正常的檔案。 # 若是有找到不屬於系統任何人的檔案時,不要太緊張, # 那有時候是正常的~尤爲是您曾經以原始碼自行編譯軟件時。 範例五:找出檔名爲 passwd 這個檔案 [root@linux ~]# find / -name passwd # 利用這個 -name 能夠搜尋檔名啊! 範例六:搜尋檔案屬性爲 f (通常檔案) 的檔案 [root@linux ~]# find /home -type f # 這個 -type 的屬性也頗有幫助喔!尤爲是要找出那些怪異的檔案, # 例如 socket 與 FIFO 檔案,能夠用 find /var -type p 或 -type s 來找! 範例七:搜尋檔案當中含有 SGID/SUID/SBIT 的屬性 [root@linux ~]# find / -perm +7000 # 所謂的 7000 就是 ---s--s--t ,那麼只要含有 s 或 t 的就列出, # 因此固然要使用 +7000 ,使用 -7000 表示要含有 ---s--s--t 的全部三個權限, # 所以,就是 +7000 ~瞭乎? 範例八:將上個範例找到的檔案使用 ls -l 列出來~ [root@linux ~]# find / -perm +7000 -exec ls -l {} \; # 注意到,那個 -exec 後面的 ls -l 就是額外的指令, # 而那個 {} 表明的是『由 find 找到的內容』的意思~因此, -exec ls -l {} # 就是將前面找到的那些檔案以 ls -l 列出長的數據!至於 \; 則是表示 # -exec 的指令到此爲止的意思~意思是說,整個指令其實只有在 # -exec (裏面就是指令下達) \; # 也就是說,-exec 最後必定要以 \; 結束才行!這樣瞭解了嗎?! 範例九:找出系統中,大於 1MB 的檔案 [root@linux ~]# find / -size +1000k # 雖然在 man page 提到可使用 M 與 G 分別表明 MB # 不過,俺卻試不出來這個功能~因此,目前應該是僅支持到 c 與 k 吧!
[root@linux ~]# tar [-cxtzjvfpPN] 檔案與目錄 .... 參數: -c :創建一個壓縮檔案的參數指令(create 的意思); -x :解開一個壓縮檔案的參數指令! -t :查看 tarfile 裏面的檔案! 特別注意,在參數的下達中, c/x/t 僅能存在一個!不可同時存在! 由於不可能同時壓縮與解壓縮。 -z :是否同時具備 gzip 的屬性?亦便是否須要用 gzip 壓縮? -j :是否同時具備 bzip2 的屬性?亦便是否須要用 bzip2 壓縮? -v :壓縮的過程當中顯示檔案!這個經常使用,但不建議用在背景執行過程! -f :使用檔名,請留意,在 f 以後要當即接檔名喔!不要再加參數! 例如使用『 tar -zcvfP tfile sfile』就是錯誤的寫法,要寫成 『 tar -zcvPf tfile sfile』纔對喔! -p :使用原檔案的原來屬性(屬性不會依據使用者而變) -P :可使用絕對路徑來壓縮! -N :比後面接的日期(yyyy/mm/dd)還要新的纔會被打包進新建的檔案中! --exclude FILE:在壓縮的過程當中,不要將 FILE 打包! 範例: 範例一:將整個 /etc 目錄下的檔案所有打包成爲 /tmp/etc.tar [root@linux ~]# tar -cvf /tmp/etc.tar /etc <==僅打包,不壓縮! [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包後,以 gzip 壓縮 [root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包後,以 bzip2 壓縮 # 特別注意,在參數 f 以後的檔案檔名是本身取的,咱們習慣上都用 .tar 來做爲辨識。 # 若是加 z 參數,則以 .tar.gz 或 .tgz 來表明 gzip 壓縮過的 tar file ~ # 若是加 j 參數,則以 .tar.bz2 來做爲附檔名啊~ # 上述指令在執行的時候,會顯示一個警告訊息: # 『tar: Removing leading `/' from member names』那是關於絕對路徑的特殊設定。 範例二:查閱上述 /tmp/etc.tar.gz 檔案內有哪些檔案? [root@linux ~]# tar -ztvf /tmp/etc.tar.gz # 因爲咱們使用 gzip 壓縮,因此要查閱該 tar file 內的檔案時, # 就得要加上 z 這個參數了!這很重要的! 範例三:將 /tmp/etc.tar.gz 檔案解壓縮在 /usr/local/src 底下 [root@linux ~]# cd /usr/local/src [root@linux src]# tar -zxvf /tmp/etc.tar.gz # 在預設的狀況下,咱們能夠將壓縮檔在任何地方解開的!以這個範例來講, # 我先將工做目錄變換到 /usr/local/src 底下,而且解開 /tmp/etc.tar.gz , # 則解開的目錄會在 /usr/local/src/etc 呢!另外,若是您進入 /usr/local/src/etc # 則會發現,該目錄下的檔案屬性與 /etc/ 可能會有所不一樣喔! 範例四:在 /tmp 底下,我只想要將 /tmp/etc.tar.gz 內的 etc/passwd 解開而已 [root@linux ~]# cd /tmp [root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd # 我能夠透過 tar -ztvf 來查閱 tarfile 內的文件名稱,若是單隻要一個檔案, # 就能夠透過這個方式來下達!注意到! etc.tar.gz 內的根目錄 / 是被拿掉了! 範例五:將 /etc/ 內的全部檔案備份下來,而且保存其權限! [root@linux ~]# tar -zcvpf /tmp/etc.tar.gz /etc # 這個 -p 的屬性是很重要的,尤爲是當您要保留本來檔案的屬性時! 範例六:在 /home 當中,比 2005/06/01 新的檔案才備份 [root@linux ~]# tar -N '2005/06/01' -zcvf home.tar.gz /home 範例七:我要備份 /home, /etc ,但不要 /home/dmtsai [root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc 範例八:將 /etc/ 打包後直接解開在 /tmp 底下,而不產生檔案! [root@linux ~]# cd /tmp [root@linux tmp]# tar -cvf - /etc | tar -xvf - # 這個動做有點像是 cp -r /etc /tmp 啦~依舊是有其有用途的! # 要注意的地方在於輸出檔變成 - 而輸入檔也變成 - ,又有一個 | 存在~ # 這分別表明 standard output, standard input 與管線命令啦! # 這部分咱們會在 Bash shell 時,再次提到這個指令跟你們再解釋囉!
通常模式: 移動光標的方法 h 或 向左方向鍵(←) 光標向左移動一個字符 j 或 向下方向鍵(↓) 光標向下移動一個字符 k 或 向上方向鍵(↑) 光標向上移動一個字符 l 或 向右方向鍵(→) 光標向右移動一個字符 若是想要進行屢次移動的話,例如向下移動 30 行,可使用 "30j" 或 "30↓" 的組合按鍵, 亦即加上想要進行的次數(數字)後,按下動做便可! [Ctrl] + [f] 屏幕『向下』移動一頁,至關於 [Page Down]按鍵 (經常使用) [Ctrl] + [b] 屏幕『向上』移動一頁,至關於 [Page Up] 按鍵 (經常使用) [Ctrl] + [d] 屏幕『向下』移動半頁 [Ctrl] + [u] 屏幕『向上』移動半頁 + 光標移動到非空格符的下一列 - 光標移動到非空格符的上一列 n<space> 那個 n 表示『數字』,例如 20 。按下數字後再按空格鍵,光標會向右移動這一行的 n 個字符。例如 20<space> 則光標會向後面移動 20 個字符距離。 0 這是數字『 0 』:移動到這一行的最前面字符處 (經常使用) $ 移動到這一行的最後面字符處(經常使用) H 光標移動到這個屏幕的最上方那一行 M 光標移動到這個屏幕的中央那一行 L 光標移動到這個屏幕的最下方那一行 G 移動到這個檔案的最後一行(經常使用) nG n 爲數字。移動到這個檔案的第 n 行。例如 20G 則會移動到這個檔案的第 20 行(可配合 :set nu) gg 移動到這個檔案的第一行,至關於 1G 啊! (經常使用) n<Enter> n 爲數字。光標向下移動 n 行(經常使用) 通常模式: 搜尋與取代 /word 向光標之下尋找一個字符串名稱爲 word 的字符串。例如要在檔案內搜尋 vbird 這個字符串,就輸入 /vbird 便可! (經常使用) ?word 向光標之上尋找一個字符串名稱爲 word 的字符串。 n 這個 n 是英文按鍵。表明『重複前一個搜尋的動做』的意思。舉例來講, 若是剛剛咱們執行 /vbird 去向下搜尋 vbird 這個字符串,則按下 n 後,會向下繼續搜尋下一個名稱爲 vbird 的字符串。若是是執行 ?vbird 的話,那麼按下 n 則會向上繼續搜尋名稱爲 vbird 的字符串! N 這個 N 是英文按鍵。與 n 恰好相反,爲『反向』進行前一個搜尋動做。 例如 /vbird 後,按下 N 則表示『向上』搜尋 vbird 。 :n1,n2s/word1/word2/g n1 與 n2 爲數字。在第 n1 與 n2 行之間尋找 word1 這個字符串,並將該字符串取代爲 word2 !舉例來講,在 100 到 200 行之間搜尋 vbird 並取代爲 VBIRD 則: 『:100,200s/vbird/VBIRD/g』。(經常使用) :1,$s/word1/word2/g 從第一行到最後一行尋找 word1 字符串,並將該字符串取代爲 word2 !(經常使用) :1,$s/word1/word2/gc 從第一行到最後一行尋找 word1 字符串,並將該字符串取代爲 word2 !且在取代前顯示提示字符給使用者確認 (conform) 是否須要取代!(經常使用) 通常模式: 刪除、複製與貼上 x, X 在一行字當中,x 爲向後刪除一個字符 (至關於 [del] 按鍵), X 爲向前刪除一個字符(至關於 [backspace] 亦便是退格鍵) (經常使用) nx n 爲數字,連續向後刪除 n 個字符。舉例來講,我要連續刪除 10 個字符, 『10x』。 dd 刪除遊標所在的那一整列(經常使用) ndd n 爲數字。刪除光標所在的向下 n 列,例如 20dd 則是刪除 20 列 (經常使用) d1G 刪除光標所在到第一行的全部數據 dG 刪除光標所在到最後一行的全部數據 d$ 刪除遊標所在處,到該行的最後一個字符 d0 那個是數字的 0 ,刪除遊標所在處,到該行的最前面一個字符 yy 複製遊標所在的那一行(經常使用) nyy n 爲數字。複製光標所在的向下 n 列,例如 20yy 則是複製 20 列(經常使用) y1G 複製光標所在列到第一列的全部數據 yG 複製光標所在列到最後一列的全部數據 y0 複製光標所在的那個字符到該行行首的全部數據 y$ 複製光標所在的那個字符到該行行尾的全部數據 p, P p 爲將已複製的數據在光標下一行貼上,P 則爲貼在遊標上一行! 舉例來講,我目前光標在第 20 行,且已經複製了 10 行數據。則按下 p 後, 那 10 行數據會貼在本來的 20 行以後,亦即由 21 行開始貼。但若是是按下 P 呢? 那麼本來的第 20 行會被推到變成 30 行。 (經常使用) J 將光標所在列與下一列的數據結合成同一列 c 重複刪除多個數據,例如向下刪除 10 行,[ 10cj ] u 復原前一個動做。(經常使用) [Ctrl]+r 重作上一個動做。(經常使用) 這個 u 與 [Ctrl]+r 是很經常使用的指令!一個是復原,另外一個則是重作一次~ 利用這兩個功能按鍵,您的編輯,嘿嘿!很快樂的啦! . 不要懷疑!這就是小數點!意思是重複前一個動做的意思。 若是您想要重複刪除、重複貼上等等動做,按下小數點『.』就行了! (經常使用) 進入編輯模式 i, I 插入:在目前的光標所在處插入輸入之文字,已存在的文字會向後 退; 其中, i 爲『從目前光標所在處插入』, I 爲『在目前所在行的第一個非空格符處開始插入』。 (經常使用) a, A a 爲『從目前光標所在的下一個字符處開始插入』, A 爲『從光標所在行的最後一個字符處開始插入』。(經常使用) o, O 這是英文字母 o 的大小寫。o 爲『在目前光標所在的下一行處插入新的一行』; O 爲在目前光標所在處的上一行插入新的一行!(經常使用) r, R 取代:r 會取代光標所在的那一個字符;R會一直取代光標所在的文字,直到按下 ESC 爲止;(經常使用) 上面這些按鍵中,在 vi 畫面的左下角處會出現『--INSERT--』或『--REPLACE--』的字樣。 由名稱就知道該動做了吧!!特別注意的是,咱們上面也提過了,你想要在檔案裏面輸入字符時, 必定要在左下角處看到 INSERT/REPLACE 才能輸入喔! Esc 退出編輯模式,回到通常模式中(經常使用) 指令列命令模式 :w 將編輯的數據寫入硬盤檔案中(經常使用) :w! 若檔案屬性爲『只讀』時,強制寫入該檔案。不過,到底能不能寫入, 仍是跟您對該檔案的檔案權限有關啊! :q 離開 vi (經常使用) :q! 若曾修改過檔案,又不想儲存,使用 ! 爲強制離開不儲存檔案。 注意一下啊,那個驚歎號 (!) 在 vi 當中,經常具備『強制』的意思~ :wq 儲存後離開,若爲 :wq! 則爲強制儲存後離開 (經常使用) :e! 將檔案還原到最原始的狀態! ZZ 若檔案沒有更動,則不儲存離開,若檔案已經通過更動,則儲存後離開! :w [filename] 將編輯的數據儲存成另外一個檔案(相似另存新檔) :r [filename] 在編輯的數據中,讀入另外一個檔案的數據。亦即將 『filename』 這個檔案內容加到遊標所在行後面 :n1,n2 w [filename] 將 n1 到 n2 的內容儲存成 filename 這個檔案。 :! command 暫時離開 vi 到指令列模式下執行 command 的顯示結果!例如 『:! ls /home』便可在 vi 當中察看 /home 底下以 ls 輸出的檔案信息! :set nu 顯示行號,設定以後,會在每一行的前綴顯示該行的行號 :set nonu 與 set nu 相反,爲取消行號!
vi /etc/sysconfig/i18n
更改語言系bash
[root@linux ~]# declare [-aixr] variable 參數: -a :將後面的 variable 定義成爲數組 (array) -i :將後面接的 variable 定義成爲整數數字 (integer) -x :用法與 export 同樣,就是將後面的 variable 變成環境變量; -r :將一個 variable 的變量設定成爲 readonly ,該變量不可被更改內容,也不能 unset 範例: 範例一:讓變量 sum 進行 100+300+50 的加總結果 [root@linux ~]# sum=100+300+50 [root@linux ~]# echo $sum 100+300+50 <==咦!怎麼沒有幫我計算加總?由於這是文字型態的變量屬性啊! [root@linux ~]# declare -i sum=100+300+50 [root@linux ~]# echo $sum 450 <==瞭乎?? 範例二:將 sum 變成環境變量 [root@linux ~]# declare -x sum 範例三:讓 sum 變成只讀屬性,不可更動! [root@linux ~]# declare -r sum [root@linux ~]# sum=tesgting -bash: sum: readonly variable <==老天爺~不能改這個
[root@linux ~]# split [-bl] file PREFIX 參數: -b :後面可接欲分割成的檔案大小,可加單位,例如 b, k, m 等; -l :以行數來進行分割。 範例: 範例一:個人 /etc/termcap 有七百多K,若想要分紅 300K 一個檔案時? [root@linux ~]# cd /tmp; split -b 300k /etc/termcap termcap [root@linux tmp]# ls -l termcap* -rw-rw-r-- 1 root root 307200 8月 17 00:25 termcapaa -rw-rw-r-- 1 root root 307200 8月 17 00:25 termcapab -rw-rw-r-- 1 root root 184848 8月 17 00:25 termcapac # 那個檔名能夠隨意取的啦!咱們只要寫上前導文字,小檔案就會以 # xxxaa, xxxab, xxxac 等方式來創建小檔案的! 範例二:如何將上面的三個小檔案合成一個檔案,檔名爲 termcapback [root@linux tmp]# cat termcap* >> termcapback # 很簡單吧?就用數據流重導向就好啦!簡單! 範例三:使用 ls -al / 輸出的信息中,每十行記錄成一個檔案 [root@linux tmp]# ls -al / | split -l 10 - lsroot # 重點在那個 - 啦!通常來講,若是須要 stdout/stdin 時,但恰恰又沒有檔案,*斜體文字* # 有的只是 - 時,那麼那個 - 就會被當成 stdin 或 stdout ~