工具:
創(chuàng)新互聯(lián)建站的客戶(hù)來(lái)自各行各業(yè),為了共同目標(biāo),我們?cè)诠ぷ魃厦芮信浜?,從?chuàng)業(yè)型小企業(yè)到企事業(yè)單位,感謝他們對(duì)我們的要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。專(zhuān)業(yè)領(lǐng)域包括網(wǎng)站建設(shè)、成都做網(wǎng)站、電商網(wǎng)站開(kāi)發(fā)、微信營(yíng)銷(xiāo)、系統(tǒng)平臺(tái)開(kāi)發(fā)。
Linux
方法:
1、首先進(jìn)入Linux的命令行界面.在目錄下創(chuàng)建一個(gè)用于測(cè)試的文本文件(touch filename).這里就新建了一個(gè)test12文本文件.當(dāng)然這個(gè)名字是可以隨便取得.
2、用"vi test12"命令進(jìn)入vi命令行模式(vi filename). 如果要想編輯文本文件.必須要轉(zhuǎn)換到插入模式下,也就是按一下鍵盤(pán)上的"i"就可以了.這樣就可以編輯文本,刪除文本中的內(nèi)容.按鍵盤(pán)上的上下左右鍵.來(lái)回移動(dòng)了.就跟在windows 系統(tǒng)中編輯文本一樣.
3、輸入要輸入的內(nèi)容.如果想退出文本編輯模式.并且保存剛剛編輯的文本.首先點(diǎn)擊一下鍵盤(pán)上的"ESC",然后輸入":wq!"這樣就將文本保存了.然后推出了vi編輯器.如果不想保存就按一下鍵盤(pán)上的"ESC",輸入":q!".如果不確定是否成功.可以通過(guò)"cat filename" 命令來(lái)查看.
4、光標(biāo)的移動(dòng)除了鍵盤(pán)上的上下左右鍵.也可以是小寫(xiě)模式下,按鍵盤(pán)上的"h,j,k,l",
"ctrl+b":屏幕往后移動(dòng)一頁(yè)
"ctrl+f":屏幕往前移動(dòng)一頁(yè)
"ctrl+u":屏幕往后移動(dòng)半頁(yè)
"ctrl+d":屏幕往前移動(dòng)半頁(yè)
輸入任何一個(gè)整數(shù),然后輸入"shift+G" 就可以到這一頁(yè)的開(kāi)頭了.
按鍵盤(pán)上的大寫(xiě)"G"移動(dòng)到文章的最后.
按"$"符號(hào)將光標(biāo)移動(dòng)到行尾
"^"將光標(biāo)移到行頭
"w":將光標(biāo)移到下一行頭
"b":跟"w"相反.移到上一行行頭
"e":將光標(biāo)移到下一行尾.
如果想讓文本顯示行號(hào).就在命令行 模式下,在文本最后輸入":set nu"命令.就可以了
5、復(fù)制 「yw」:將光標(biāo)所在之處到字尾的字符復(fù)制到緩沖區(qū)中。 「yy」:復(fù)制光標(biāo)所在行到緩沖區(qū)。 「#yy」:例如,「6yy」表示拷貝從光標(biāo)所在的該行"往下數(shù)"6行文字。 「p」:將緩沖區(qū)內(nèi)的字符貼到光標(biāo)所在位置。注意:所有與"y"有關(guān)的復(fù)制命令都必須與"p"配合才能完成復(fù)制與粘貼功能。
6、查找
用"/"加上要查找的內(nèi)容.例如"/hello"或者是"?hello"也是可以的.
7、替換 「r」:替換光標(biāo)所在處的字符。 ,按一下"r"然后輸入要即可.「R」:替換光標(biāo)所到之處的字符,直到按下「ESC」鍵為止。
8、恢復(fù)上一次操作 「u」:如果誤執(zhí)行一個(gè)命令,可以馬上按下「u」,回到上一個(gè)操作。按多次"u"可以執(zhí)行多次恢復(fù).就相當(dāng)于"CTRL +Z"的操作.
1、linux分區(qū)
--在linux里面所有的設(shè)備、任何東西,在linux看來(lái)都是文件。
--文件在它看來(lái),有兩種形式:
第一種是字符型(鍵盤(pán)輸入、打印機(jī));
第二種是二進(jìn)制型(硬盤(pán)、光驅(qū)、U盤(pán))
--linux中所有硬件
--手動(dòng)分區(qū)
--A、至少有兩個(gè)分區(qū)
/ 根分區(qū)
SWAP 交換分區(qū)(物理內(nèi)存大小的兩倍)
--B、個(gè)人桌面分區(qū)
/
/boot 128MB is enough
/usr
SWAP
/tmp(用于光盤(pán)刻錄)
2、linux目錄說(shuō)明
--/dev/xxyN
--xx (分區(qū)所在設(shè)備類(lèi)型:hd--IDE硬盤(pán) sd--SCSI硬盤(pán))
--y (標(biāo)明分區(qū)所在設(shè)備
例如:/dev/hda 第一個(gè)IDE硬盤(pán) 或 /dev/hdb 第二個(gè)IDE硬盤(pán) 或 /dev/sdb 第二個(gè)SCSI硬盤(pán))
--N (數(shù)字代表分區(qū):1-4--主分區(qū)或擴(kuò)展分區(qū);邏輯分區(qū)從5開(kāi)始!
例如:/dev/hda3 第一個(gè)IDE硬盤(pán)上的第三個(gè)主分區(qū)或擴(kuò)展分區(qū)
/dev/sdb6 第二個(gè)SCSI硬盤(pán)上的第二個(gè)邏輯分區(qū))
3、linux目錄結(jié)構(gòu)
/ 根目錄,最高級(jí)別
/bin 系統(tǒng)基本命令存放目錄(/usr/bin)
/boot linux的內(nèi)核及引導(dǎo)系統(tǒng)程序文件存放目錄(如:vmlinuz、initrd.img)
一般情況下,GRUB或LILO系統(tǒng)引導(dǎo)管理也位于這個(gè)目錄
/dev 設(shè)備文件存儲(chǔ)目錄,如聲卡、光驅(qū)...
/ect 存放系統(tǒng)設(shè)置文件(如用戶(hù)賬號(hào)密碼、服務(wù)器配置文件等)
/home 普通用戶(hù)家目錄,默認(rèn)存放目錄
/lib 庫(kù)文件存放目錄
/lost+found 在ext2或ext3文件系統(tǒng)中,當(dāng)系統(tǒng)以外崩潰或機(jī)器意外關(guān)機(jī),而產(chǎn)生一些文件碎片放在這里。
當(dāng)系統(tǒng)啟動(dòng)的過(guò)程中,fsck工具會(huì)檢查這里,并修復(fù)已經(jīng)損壞的文件系統(tǒng)。
有事喜用發(fā)生問(wèn)題,有很多的文件被移到這個(gè)目錄中,可能會(huì)用手工的方式來(lái)修復(fù),或者移文件到原來(lái)的位置上。
/media 即插即用型存儲(chǔ)設(shè)備的掛載點(diǎn)自動(dòng)在這個(gè)目錄下創(chuàng)建。
如USB盤(pán)系統(tǒng)自動(dòng)掛在后,會(huì)在這個(gè)目錄下產(chǎn)生一個(gè)目錄;
類(lèi)似cdrom的目錄
/mnt 存放掛載存儲(chǔ)設(shè)備的掛載目錄,如cdrom等目錄
/opt 表示可選的意思,有些軟件包也會(huì)被安裝在此,也就是自定義軟件包,
比如OpenOffice,或者一些我們自己編譯的軟件包,也可安裝此處。
/proc 操作系統(tǒng)運(yùn)行時(shí),進(jìn)程(正在運(yùn)行的程序)信息及內(nèi)核信息(比如CPU、硬盤(pán)分區(qū)、內(nèi)存信息等)存放在此。
/proc目錄是偽裝的文件系統(tǒng)proc的掛載目錄,proc并不是真正的文件系統(tǒng)
/root linux超級(jí)權(quán)限用戶(hù)root的家目錄
/sbin 大多是涉及系統(tǒng)管理的命令的存放,只有超級(jí)權(quán)限用戶(hù)root才可執(zhí)行命令存放,普通用戶(hù)無(wú)權(quán)限執(zhí)行此目錄下的命令
與 /usr/sbin; /usr/X11R6/sbin; usr/local/sbin 目錄相似
(sbin,只有root權(quán)限才能執(zhí)行)
/tmp 臨時(shí)文件目錄,有時(shí)用戶(hù)運(yùn)行程序的時(shí)候,會(huì)產(chǎn)生臨時(shí)文件。
/var/tmp目錄和此目錄相似
/usr 系統(tǒng)存放程序的目錄,如命令、幫助文件等。這個(gè)目錄下有很多的文件和目錄。
大部分Linux發(fā)行版提供的軟件包都安裝在此,涉及服務(wù)器的配置文件就安裝在/ect中。
/usr/share/fonts 字體目錄
/usr/share/man 或 /usr/share/doc 幫助目錄
/usr/bin 或 /usr/local/bin 或 /usr/X11R6/bin 普通用戶(hù)可執(zhí)行文件目錄
/usr/sbin 或 /usr/local/sbin 或 /usr/X11R6/sbin 超級(jí)權(quán)限用戶(hù)root可執(zhí)行命令存放目錄
/usr/include 程序頭文件存放目錄
/var (vary)此目錄經(jīng)常變動(dòng)
/var/log 用來(lái)存放系統(tǒng)日志
/var/www 用來(lái)定義Apache服務(wù)器站點(diǎn)存放
/var/lib 用來(lái)存放一些庫(kù)文件,如MySQL的,以及MySQL數(shù)據(jù)庫(kù)的存放地。
4、基本命令
--查看幫助 *** --help *** --?
--查看詳細(xì)幫助 man ***
--登錄 login
--退出窗口 exit
--關(guān)機(jī) shutdown
--重啟 reboot
--初始化 init (run level -/etc/inittab),0-6看第六部分的g
--進(jìn)入根目錄 cd /
--回上層目錄 cd ..
--相對(duì)路徑 cd dev
--絕對(duì)路徑 cd /dev
--查用戶(hù)名 whoami
--查當(dāng)前目錄 pwd
--列出當(dāng)前目錄內(nèi)容 ls
-l(樹(shù)詳細(xì)顯示目錄內(nèi)容)
-m(橫列顯示目錄內(nèi)容,是屏幕長(zhǎng)度顯示)
-a(列出全部文件,包括隱藏文件)
-S(以文檔大小排序)
--創(chuàng)建目錄 mkdir dname
--刪除目錄 rmdir dname
rm -r *** -(遞歸刪除該目錄下所有內(nèi)容,詢(xún)問(wèn)每個(gè)準(zhǔn)備刪除的文件)
rm -rf ***-(強(qiáng)制刪除該目錄下所有內(nèi)容,不詢(xún)問(wèn))
--創(chuàng)建空白文件 touch ***
(ps:從技術(shù)的角度來(lái)講,linux的文件后綴名沒(méi)有任何意義)
--復(fù)制 cp
cp -r **1 **2 (復(fù)制1到2中)
--移動(dòng) mv
mv -t **1 **2 (把2移動(dòng)到1中)
--編輯文本 vi [文件名]
--查看文本 cat 由第一行開(kāi)始顯示文本內(nèi)容
tac 從最后一行顯示,可以看出 tac 是 cat 的倒著寫(xiě)
more 一頁(yè)一頁(yè)的顯示文檔內(nèi)容
less 與 more 類(lèi)似,可以往前翻頁(yè)
head 只看頭幾行
-N(數(shù)字,可根據(jù)行數(shù)顯示)
tail 只看后幾行
-N(數(shù)字,可根據(jù)行數(shù)顯示)
nl 顯示的時(shí)候,順序輸出行號(hào)
od 以二進(jìn)制位的方式讀取檔案內(nèi)容
--查找文本 find [路徑][查找類(lèi)型][搜索文件名]
如查找rc.local find /etc -name *.local
--查找命令信息及其位置 whereis 命令
如 whereis ls
--查看環(huán)境變量 echo $SHELL
如 echo $PATH (分大小寫(xiě):分隔符是:,windows是echo %path%;)
--鏈接 ln
如 ln joe.txt a (硬鏈接,如同復(fù)制一個(gè)新文件,joe.txt刪除后,a還存在)
a是鏈接的名稱(chēng),a和joe.txt同步,然后a的內(nèi)容和joe.txt一樣
joe.txt改變,a也跟著變
如 ln -s joe.txt b (軟鏈接,如同創(chuàng)建一個(gè)快捷方式,joe.txt刪除后,b不存在)
--wc 統(tǒng)計(jì)指定文本文件的行數(shù)、字?jǐn)?shù)、字符數(shù)
--grep(很常用) 在指定的文本文件中查找指定的字符串
grep 字符串 文件名
--col 見(jiàn)管道..
--------------------
----信息顯示命令----
--------------------
--date 顯示和設(shè)置日期
--stat 顯示指定文件的相關(guān)信息
--who、w 顯示在線(xiàn)登錄用戶(hù)
--whoami 顯示用戶(hù)自己的身份
--id 顯示當(dāng)前用戶(hù)的id信息
--hostname 顯示主機(jī)名稱(chēng)
--uname 顯示操作系統(tǒng)信息
--dmesg 顯示系統(tǒng)啟動(dòng)信息
--du 顯示指定的文件(目錄)已使用的磁盤(pán)空間
--df 顯示文件系統(tǒng)磁盤(pán)空間的使用情況
--free 顯示當(dāng)前內(nèi)存和交換空間的使用情況
--fdisk -l 顯示磁盤(pán)信息
--locale 顯示當(dāng)前語(yǔ)言環(huán)境
5、掛載點(diǎn)(mount 設(shè)備目錄 掛載目錄)
--訪(fǎng)問(wèn)設(shè)備 (那設(shè)備當(dāng)成一個(gè)文件,和另外一個(gè)文件夾進(jìn)行綁定)
--例如掛載光驅(qū):步驟 [cd /mnt]---[mkdir cdr]---[mount /dev/cdrom /mnt/cdr]---[cd cdr]--OK!直接訪(fǎng)問(wèn)光驅(qū)內(nèi)容
--卸載掛載設(shè)備(umount /dev/cdrom)--注意必須先退出掛載目錄,否則出現(xiàn)"device is busy"錯(cuò)誤.
6、startup-shutdown(linux啟動(dòng)流程)
--A、boot sequence(important) linux啟動(dòng)過(guò)程
a. load bios(hardware information)
b. read MBR's config to find out the OS
(MBR--Master Boot Record,硬盤(pán)第一個(gè)物理扇區(qū),柱面0、磁頭0、扇區(qū)1,包含主引導(dǎo)程序和硬盤(pán)分區(qū)表)
c. load the kernel of the OS
(加載為kernel核心的OS)
d. init process starts...
(啟動(dòng)linux第一個(gè)進(jìn)程init)
e. execute /etc/rc.d/sysinit
(執(zhí)行系統(tǒng)最重要的配置文件,后臺(tái)啟用進(jìn)程)
(rc.d--run command)
f. start other modules(stc/modules.conf)
(開(kāi)啟各種模塊,如內(nèi)存管理模塊、硬盤(pán)管理模塊)
g. execute the run level scripts
(系統(tǒng)啟動(dòng)是分層次的,根據(jù)情況執(zhí)行,每個(gè)層次之間沒(méi)關(guān)系)
0 - 系統(tǒng)停機(jī)狀態(tài)
1 - 單用戶(hù)工作狀態(tài) root
2 - 多用戶(hù)狀態(tài)(沒(méi)有NFS)
3 - 多用戶(hù)狀態(tài)(有NFS)
NFS - Network File System 網(wǎng)絡(luò)文件系統(tǒng),聯(lián)網(wǎng)系統(tǒng)
4 - 系統(tǒng)未使用,留給用戶(hù)
5 - 圖形界面
6 - 系統(tǒng)正常關(guān)閉并重新啟動(dòng)
如:cd /etc -- 有rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d等多個(gè)文件夾,保存著各個(gè)層次執(zhí)行的進(jìn)程文件
h. execute /etc/rc.d/rc.local (重要)
(保存其它進(jìn)程腳本,如tomcat自動(dòng)啟動(dòng),要修改此配置文件)
i. execute /bin/login
(登錄界面)
j. shell started...
7、vi 文本編輯器
--兩種模式:命令模式 編輯模式
--vi [文件名]
(切換到編輯模式)
a append-光標(biāo)后添加
i insert-光標(biāo)前插入
o open-另起一行編輯
esc (切換回命令模式)
:w 存盤(pán)
:wq 存盤(pán)退出
:q 退出
:q! 不存盤(pán)退出
dd 刪除其中一行
dw 刪除一個(gè)單詞
(sudo gedit 文本 常用linux下的文本編輯器,比vi好用)
8、用戶(hù)設(shè)置
--切換用戶(hù)(switch user) su username
小技巧:直接exit切換
--添加用戶(hù) useradd username [-g] [組名](分配到某個(gè)用戶(hù)組)
(創(chuàng)建后會(huì)自動(dòng)在/home目錄下創(chuàng)建該新用戶(hù)的文件夾,如/home/username)
--設(shè)置密碼 passwd username
--cd /etc
--查看用戶(hù)信息 more password
如新增的用戶(hù)信息:username:x:500:500::/home/username:/bin/bash
第一個(gè)數(shù)字,代表用戶(hù)組,當(dāng)添加用戶(hù)沒(méi)有指定用戶(hù)組時(shí),系統(tǒng)會(huì)創(chuàng)建一個(gè)和用戶(hù)ID一樣的組ID;
第二個(gè)數(shù)字:用戶(hù)ID號(hào);
用戶(hù)的目錄是/home/username;
用戶(hù)的SHELL是/bin/bash
(命令---SHELL[解釋命令]---kenrel內(nèi)核)
SHELL有多種類(lèi)型,如csh、bash(常用)、bsh、ksh、sh(最原始)
--添加用戶(hù)組 groupadd groupname
--查看用戶(hù)組信息 more group
--刪除用戶(hù)組 groupdel groupname
--修改用戶(hù) usermod [-g] [組名] [用戶(hù)名]
--刪除用戶(hù) userdel username
然后把/home的文件夾刪除了 rm -rf 文件夾
9、權(quán)限file privilege
--linux把文件的權(quán)限分成四種:r:read w:write x:execute -:none
如:-rw-r--r--
lrwxrwxrwx
drwxr-xr-x
drwxr-xr-x
第一個(gè)數(shù)字'-'代表文件,其余是文件夾,后9位分為3組,每組有四種權(quán)限設(shè)置rwx-
第一位表示文件所有者
第二位表示和所有者在同一用戶(hù)組的用戶(hù)
第三位表示不在同一用戶(hù)組的用戶(hù)權(quán)限
--設(shè)置權(quán)限 (隨意應(yīng)用,靈活組合!)
1、普通用法
--添加權(quán)限 [chmod +x 文件]
如:-rw-r--r-- --- -rwxr-xr-x
--刪除權(quán)限 [chmod -x 文件]
如:-rwxr-xr-x --- -rw-r--r--
--給自己添加權(quán)限 [chmod ?+x 文件]
如此類(lèi)推,組--g,其他人--o
如:chmod u+x -rw-r--r-- --- -rwxr--r--
chmod g+x -rw-r--r-- --- -rw-r-xr--
chmod o+x -rw-r--r-- --- -rw-r--r-x
2、專(zhuān)業(yè)用法 chmod 755/777
--原理,八進(jìn)制轉(zhuǎn)二進(jìn)制
如755,111 101 101, rwx r-x r-x
777,111 111 111, rwx rwx rwx
--修改所有者權(quán)限 chown (change owner)
如:chown 原來(lái)文件 file1 的所有者是 root,改成joe的
chown joe file1
10、管道(把上一個(gè)命令執(zhí)行的結(jié)果交給下一個(gè)命令)
--使用方法:
命令1|命令2|命令3......|命令n
--使用舉例
--$ls -Rl /etc | more
(如 ls -Rl /etc (在控制臺(tái)模式下,無(wú)法返回前面過(guò)去的信息),因此需要管道執(zhí)行該查詢(xún),實(shí)現(xiàn)分頁(yè)的工作, ls -Rl /etc | more)
--$cat /etc/passwd | wc
(顯示文件結(jié)果,再數(shù)數(shù)有多少行)
--$cat /etc/passwd | grep lrj
(顯示文件結(jié)果,再查找包含lrj的行)
--#dmesg | grep eth0
(顯示系統(tǒng)啟動(dòng)的信息,再查找包含eth0的行--真正含義,檢查網(wǎng)卡執(zhí)行信息是否正常)
--$man bash | col -b bash.txt
語(yǔ)法:col [-bfx][-l緩沖區(qū)列數(shù)]
補(bǔ)充說(shuō)明:在許多UNIX說(shuō)明文件里,都有RLF控制字符。當(dāng)我們運(yùn)用shell特殊字符""和"",把說(shuō)明文件的內(nèi)容輸出成純文本文件時(shí),控制字符會(huì)變成亂碼,col指令則能有效濾除這些控制字符。
參數(shù):
-b 過(guò)濾掉所有的控制字符,包括RLF和HRLF。
-f 濾除RLF字符,但允許將HRLF字符呈現(xiàn)出來(lái)。
-x 以多個(gè)空格字符來(lái)表示跳格字符。
-l緩沖區(qū)列數(shù) 預(yù)設(shè)的內(nèi)存緩沖區(qū)有128列,您可以自行指定緩沖區(qū)的大小。
--$ls -l | grep "^d"
(用正則表達(dá)式篩選出目錄列表中 頭字母為'd' 的內(nèi)容--目錄)(^是正則表達(dá)式開(kāi)頭部分)
--$ls -l * | grep "^-" | wc -l
(列出目錄列表中 頭字符為'-'的內(nèi)容--文件,并統(tǒng)計(jì)顯示的行數(shù)wc -l)
11、其他命令
--wall(warning all) 通知所有人
a.命令替換
如 wall `date`、 cd 'pwd'、mkbootdisk $(uname -r)
b.重定向
重定向輸出:
如 ls cmd.txt ,把文件寫(xiě)到cmd.txt,不輸出在控制臺(tái)
ls cmd.txt ,把文件追加寫(xiě)到cmd.txt
重定向輸入:
如 wall cmd.txt,把文本內(nèi)容發(fā)給所有人
12、修改系統(tǒng)的默認(rèn)系統(tǒng)級(jí)別
常用3和5
3 - 多用戶(hù)狀態(tài)(有NFS)
NFS - Network File System 網(wǎng)絡(luò)文件系統(tǒng),聯(lián)網(wǎng)系統(tǒng)
5 - 圖形界面
PS.設(shè)置用戶(hù)權(quán)限: sudo chmod 777 目錄
4表示讀,2表示寫(xiě),1表示執(zhí)行.
第一位表示文件所有者,第二位表示和所有者在同一用戶(hù)組的用戶(hù),第三位表示不在同一用戶(hù)組的用戶(hù)權(quán)限.
755表示文件所有者可讀寫(xiě),執(zhí)行.
第二位5表示與所有者在同一用戶(hù)組的可讀,可執(zhí)行,不可寫(xiě).
第三位5表示其它組可讀,可執(zhí)行,不可寫(xiě). 轉(zhuǎn)載于Joewalker在本人空間也有詳細(xì)說(shuō)明
一、vi編輯器有3種基本工作模式
分別是:命令模式、文本輸入模式、和末行模式。
第一:命令行模式:
該模式是進(jìn)入vi編輯器后的默認(rèn)模式。任何時(shí)候,不管用戶(hù)處于何種模式,按下ESC鍵即可進(jìn)入命令模式。在該模式下,用戶(hù)可以輸入vi命令,用戶(hù)管理自己的文檔。此時(shí)從鍵盤(pán)上輸入的任何字符都被當(dāng)作編輯命令來(lái)解釋。若輸入的字符是合法的vi命令,則vi在接受用戶(hù)命令之后完成相應(yīng)的動(dòng)作。但需要注意的是,所輸入的命令并不回顯在屏幕上。若輸入的字符不是vi命令,vi會(huì)響鈴報(bào)警。
第二:文本輸入模式:
在命令模式下輸入命令i、附加命令a、打開(kāi)命令o、修改命令c、取代命令r或替換命令s都可以進(jìn)入文本輸入模式。在該模式下,用戶(hù)輸入的任何字符都被vi當(dāng)作文件內(nèi)容保護(hù)起來(lái),并將其顯示在屏幕上。在文本輸入過(guò)程中,若想回到命令模式下,按ESC鍵即可。
第三:末行模式:
末行模式也稱(chēng)ex轉(zhuǎn)義模式。在命令模式下,用戶(hù)按“:”鍵即可進(jìn)入末行模式下,此時(shí)vi會(huì)在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個(gè)“:”作為末行模式的說(shuō)明符,等待用戶(hù)輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫(xiě)到文件中等)。末行命令在執(zhí)行完后,vi自動(dòng)回到命令模式。如果要從命令模式轉(zhuǎn)換到編輯模式,可以鍵入a或者i。如果需要從文本模式返回,則按ESC即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。
實(shí)例演示
首先我們使用命令 vi filename 打開(kāi)一個(gè)文件,這個(gè)時(shí)候進(jìn)入到的是命令模式
接下來(lái)我們按i,然后鍵盤(pán)隨便輸入寫(xiě)內(nèi)容。
然后按ESC重新進(jìn)入到命令模式。
在命令模式的情況下,我們按:,進(jìn)入到了末行模式。
我們輸入wq!,然后回車(chē),強(qiáng)行保存退出。
下次我們?cè)俅蜷_(kāi)對(duì)應(yīng)文件(可用less filename命令打開(kāi)),即可看到內(nèi)容已經(jīng)更改。
補(bǔ)充:
(1)末行模式下:q! 【強(qiáng)制退出不保存】 q【退出不保存】 wq【退出并保存后面也可以加個(gè)!】
(2)如果你不想保存直接退出有可以在命令模式下使用“ctrl+z”快捷鍵或者按住“shift”鍵,輸入兩個(gè)z即可退出。
更多命令
進(jìn)入vi的命令:
vi filename :打開(kāi)或新建文件,并將光標(biāo)置于第一行首
vi +n filename :打開(kāi)文件,并將光標(biāo)置于第n行首
vi + filename :打開(kāi)文件,并將光標(biāo)置于最后一行首
vi +/pattern filename:打開(kāi)文件,并將光標(biāo)置于第一個(gè)與pattern匹配的串處
vi -r filename :在上次正用vi編輯時(shí)發(fā)生系統(tǒng)崩潰,恢復(fù)filename
vi filename….filename :打開(kāi)多個(gè)文件,依次進(jìn)行編輯
屏幕翻滾類(lèi)命令:
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時(shí)將當(dāng)前行滾至屏幕頂部。
插入文本類(lèi)命令:
i :在光標(biāo)前
I :在當(dāng)前行首
a:光標(biāo)后
A:在當(dāng)前行尾
o:在當(dāng)前行之下新開(kāi)一行
O:在當(dāng)前行之上新開(kāi)一行
r:替換當(dāng)前字符
R:替換當(dāng)前字符及其后的字符,直至按ESC鍵
s:從當(dāng)前光標(biāo)位置處開(kāi)始,以輸入的文本替代指定數(shù)目的字符
S:刪除指定數(shù)目的行,并以所輸入文本代替之
ncw或nCW:修改指定數(shù)目的字
nCC:修改指定數(shù)目的行
刪除命令:
ndw或ndW:刪除光標(biāo)處開(kāi)始及其后的n-1個(gè)字
do:刪至行首
d$:刪至行尾
ndd:刪除當(dāng)前行及其后n-1行
x或X:刪除一個(gè)字符,x刪除光標(biāo)后的,而X刪除光標(biāo)前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令:
/pattern:從光標(biāo)開(kāi)始處向文件尾搜索pattern
?pattern:從光標(biāo)開(kāi)始處向文件首搜索pattern
n:在同一方向重復(fù)上一次搜索命令
N:在反方向上重復(fù)上一次搜索命令
:s/p1/p2/g:將當(dāng)前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
撤銷(xiāo)回退命令:
u 撤銷(xiāo)上一步的操作
Ctrl+r 恢復(fù)上一步被撤銷(xiāo)的操作
選項(xiàng)設(shè)置:
all:列出所有選項(xiàng)設(shè)置情況
term:設(shè)置終端類(lèi)型
ignorance:在搜索中忽略大小寫(xiě)
list:顯示制表位(Ctrl+I)和行尾標(biāo)志($)
number:顯示行號(hào)
report:顯示由面向行的命令修改過(guò)的數(shù)目
terse:顯示簡(jiǎn)短的警告信息
warn:在轉(zhuǎn)到別的文件時(shí)若沒(méi)保存當(dāng)前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符
nowrapscan:禁止vi在搜索到達(dá)文件兩端時(shí),又從另一端開(kāi)始
mesg:允許vi顯示其他用戶(hù)用write寫(xiě)到自己終端上的信息
末行模式命令:
:n1,n2 co n3:將n1行到n2行之間的內(nèi)容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內(nèi)容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內(nèi)容刪除
:w :保存當(dāng)前文件
:e filename:打開(kāi)文件filename進(jìn)行編輯
:x:保存當(dāng)前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:wq:保存并退出
:!command:執(zhí)行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內(nèi)容作為command的輸入并執(zhí)行之,若不指定n1,n2,則表示將整個(gè)文件內(nèi)容作為command的輸入
:r!command:將命令command的輸出結(jié)果放到當(dāng)前行
寄存器操作:
“?nyy:將當(dāng)前行及其下n行的內(nèi)容保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
“?nyw:將當(dāng)前行及其下n個(gè)字保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
“?nyl:將當(dāng)前行及其下n個(gè)字符保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
“?p:取出寄存器?中的內(nèi)容并將其放到光標(biāo)位置處。這里?可以是一個(gè)字母,也可以是一個(gè)數(shù)字
ndd:將當(dāng)前行及其下共n行文本刪除,并將所刪內(nèi)容放到1號(hào)刪除寄存器中。
vi filename :打開(kāi)或新建文件,并將光標(biāo)置于第一行首
vi n filename :打開(kāi)文件,并將光標(biāo)置于第n行首
vi filename :打開(kāi)文件,并將光標(biāo)置于一行首
vi /pattern filename:打開(kāi)文件,并將光標(biāo)置于第一個(gè)與pattern匹配的串處
vi -r filename :在上次正用vi編輯時(shí)發(fā)生系統(tǒng)崩潰,恢復(fù)filename
vi filename....filename :打開(kāi)多個(gè)文件,依次進(jìn)行編輯
移動(dòng)光標(biāo)類(lèi)命令
h :光標(biāo)左移一個(gè)字符
l :光標(biāo)右移一個(gè)字符
space:光標(biāo)右移一個(gè)字符
Backspace:光標(biāo)左移一個(gè)字符
k或Ctrl p:光標(biāo)上移一行
j或Ctrl n :光標(biāo)下移一行
Enter :光標(biāo)下移一行
w或W :光標(biāo)右移一個(gè)字至字首
b或B :光標(biāo)左移一個(gè)字至字首
e或E :光標(biāo)右移一個(gè)字至字尾
) :光標(biāo)移至句尾
( :光標(biāo)移至句首
}:光標(biāo)移至段落開(kāi)頭
{:光標(biāo)移至段落結(jié)尾
nG:光標(biāo)移至第n行首
n :光標(biāo)下移n行
n-:光標(biāo)上移n行
n$:光標(biāo)移至第n行尾
H :光標(biāo)移至屏幕頂行
M :光標(biāo)移至屏幕中間行
L :光標(biāo)移至屏幕行
0:(注意是數(shù)字零)光標(biāo)移至當(dāng)前行首
$:光標(biāo)移至當(dāng)前行尾
屏幕翻滾類(lèi)命令
Ctrl u:向文件首翻半屏
Ctrl d:向文件尾翻半屏
Ctrl f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時(shí)將當(dāng)前行滾至屏幕頂部.
插入文本類(lèi)命令
i :在光標(biāo)前
I :在當(dāng)前行首
a:光標(biāo)后
A:在當(dāng)前行尾
o:在當(dāng)前行之下新開(kāi)一行
O:在當(dāng)前行之上新開(kāi)一行
r:替換當(dāng)前字符
R:替換當(dāng)前字符及其后的字符,直至按ESC鍵
s:從當(dāng)前光標(biāo)位置處開(kāi)始,以輸入的文本替代指定數(shù)目的字符
保存命令
按ESC鍵 跳到命令模式,然后:
:w 保存文件但不退出vi
:w file 將修改另外保存到file中,不退出vi
:w! 強(qiáng)制保存,不推出vi
:wq 保存文件并退出vi
:wq! 強(qiáng)制保存文件,并退出vi
q: 不保存文件,退出vi
:q! 不保存文件,強(qiáng)制退出vi
:e! 放棄所有修改,從上次保存文件開(kāi)始再編輯
之后,回車(chē),ok!
進(jìn)入vi的命令
vi filename :打開(kāi)或新建文件,并將光標(biāo)置于第一行首
vi n filename :打開(kāi)文件,并將光標(biāo)置于第n行首
vi filename :打開(kāi)文件,并將光標(biāo)置于一行首
vi /pattern filename:打開(kāi)文件,并將光標(biāo)置于第一個(gè)與pattern匹配的串處
vi -r filename :在上次正用vi編輯時(shí)發(fā)生系統(tǒng)崩潰,恢復(fù)filename
vi filename....filename :打開(kāi)多個(gè)文件,依次進(jìn)行編輯
如果你想編輯某個(gè)文檔 可以直接編輯的如你有文檔AA 可以用vi AA 【注意:必須在AA所在的目錄下】 如果沒(méi)有文檔而且你又想編輯就可以直接編輯vi aa【名字你可以隨便命名】 也可以先建立一個(gè)文檔touch aa 然后再編輯vi aa 編輯器有三種模式 1 命令行模式 2 末行模式 3 輸入模式 按Esc 就可以進(jìn)入命令行模式也是系統(tǒng)默認(rèn)模式 輸入模式可以按 o i a 都可以進(jìn)入 退出可以進(jìn)入末行和命令行模式 末行模式可以按ctrl+;它的主要功能是退出編輯器 也可以保存退出文檔 q! 【強(qiáng)制退出不保存】 q【退出不保存】 wq【退出并保存后面也可以加個(gè)!】 在輸入模式和命令行模式命令很多 如果你想具體知道哪些你可以在和我說(shuō) 如復(fù)制(yy)粘貼(p) 刪除(d)等等。有本書(shū)《Linux就該這么學(xué)》,簡(jiǎn)單到復(fù)雜的命令應(yīng)有盡有,沒(méi)事多看看就學(xué)會(huì)了。