vi全屏幕編輯器
vi(Visual)是以視覺為導向的全屏幕編輯器、共分為三種方式(mode):
command方式:
任何輸入都會作為編輯命令,而不會出現在屏幕上,若輸入錯誤則有“岬”的聲音;任何輸入都引起立即反映
insert方式:
任何輸入的數據都置於編輯寄存器。在command方式下輸入(I,a,A等),可進入insert方式,insert方式下按ESC,可跳回command方式。
escape方式:
以“:”或者“/”為前導的指令,出現在屏幕的最下一行,任何輸入都被當成特別指令。
進入vi(在系統提示符下面輸入以下指令):
vi 進入vi而不讀入任何文件
vi filename 進入vi並讀入指定名稱的文件(新、舊文件均可)。
vi +n filename 進入vi並且由文件的第幾行開始。
vi +filename 進入vi並且由文件的最後一行開始。
vi + /word filename 進入vi並且由文件的word這個字開始。
vi filename(s) 進入vi並且將各指定文件列入名單內,第一個文件先讀入。
vedit 進入vi並且在輸入方式時會在狀態行顯示“INSERT MODE"。
編輯數個文件(利用vi filename(s))進入vi後)
:args 顯示編輯名單中的各個文件名
:n 讀入編輯名單中的下一個文件
:rew 讀入編輯名單中的第一個文件
:e# 讀入編輯名單內的前一個文件
:e file 讀入另一個文件進vi(此文件可不在編輯名單內),若原文件經修改還沒有存檔,則應先以: w 存檔。
:e! file 強迫讀入另一個文件進入vi,原文件不作存檔動作。
存儲及退出vi
:w filename 存入指定文件,但未退出vi(若未指定文件名則為當前工作的文件名)。
:wq 或者 :x或者zz 存文件,並且退出vi.
:q 不作任何修改並退出vi。
:q! 放棄任何修改並退出vi。
:!command 暫時退出vi並執行shell指令,執行完畢後再回到vi。
:sh 暫時退出vi到系統下,結束時按Ctrl + d則回到vi。
加數據指令
i 在關標位置開始插入字符,結束時候按ESC鍵。
I 在光標所在行的最前面開始加字,結束時按ESC鍵。
a 在光標位置後開始加字,結束時按ESC鍵。
A 在光標所在行的最後面開始加字,結束時按ESC鍵。
o 在光標下加一空白行並開始加字,結束時按ESC鍵。
O 在光標上加一空白行並開始加字,結束時按ESC鍵。
!command 執行shell指令,並把結果加在光標所在行的下一行。
刪除指令
nx 刪除由光標位置起始的n個字符(含光標位置,按一個x表示刪除光標所在的字符)
nX 刪除由光標位置起始的n個字符(不含光標位置)。
ndw 刪除光標位置其實的n個字符組(word)。
d0 將行的開始到光標位置的字符全部刪除。
d$或D 將光標位置起始到行尾的字符全部刪除。
ndd 將光標位置起始的n行(整行)刪除(dd表示刪除光標所在行)。
:start,endd 刪除文件的第start到end行。
關標移動
0 移到一行的開始
$ 移到一行的最後
[ 移到文件開始位置
] 移到文件結束位置
nh 往左移n位
nl或者spacebar 往右移n位
nk 向上移n行
n+ 向上移n行,光標在該行的起始
ni 向下移n行
n- 向下移n行,光標在該行的起始
H 移到屏幕的左上角
M 移到屏幕的中間行開頭
L 移到屏幕的最後一行
G 移到文件的最後一行
nG或者:n 移到文件的第n行
nw 右移n個字組,標點符號屬於字組
nW 右移n個字組,標點符號不屬於字組
nb 左移n個字組,標點符號屬於字組
nB 左移n個字組,標點符號不屬於字組
Ctrl+u 屏幕上卷半個菜單 本文來自http://bianceng.cn(學電腦)
Ctrl+d 屏幕下卷半個菜單
Ctrl+b 屏幕上卷一個菜單
Ctrl+F 屏幕下卷一個菜單
修改指令
r 修改光標文件的字符
R 從光標位置開始修改,結束時按ESC鍵
new 更改n組字符,結束時按ESC鍵
ncc 從光標所在位置開始更改n行,結束時按ESC鍵
重排各行長度
i 並按Enter將該行由光標所在處斷開,並進入insert方式
J 把下一行的數據連接到本行之後
尋找指令
/text 從光標位置往下找字串text
?text 從光標位置往上找字串text
n 繼續找下一個字串(在輸入上面的尋找指令之後使用)
尋找並且取代指令
:getxt1/s/ /text2/options 將各行的text1替換為text2
option=g表示文件中所有的text1均被取代,若未輸入任何option,則只有各行中的第一個出現的text1被取代
option=go 在屏幕顯示各取代的行
option=gc 在每個字串取代之前要求確認
Start,endgtext1/s/ / text2/options 同上,只尋找並取代第start~end行。
或:Start,ends/text1/text2/options
復制及移動文件
:first,last co dest 將first 到last行的數據復制到目標行(dest)下面
:Start,end m dest 將start 到 end行的數據移動到目標行(dest)下。
:r filename 將指定文件的內容讀入光標所在行下。
nY 將光標所在位置開始的n行數據暫存
p 復制暫存數據在光標的下一行
P 復制暫存數據在光標的上一行
其他命令
. 重復前一指令
u 取消前一指令
Ctrl+l 刷新屏幕顯示
:set number 顯示文件的行號,但不會存文件
:set nonumber 解除行號顯示
:set ai 設置每行起始位置(以光標當前位置為起始)
:set noai 取消行起始位置設定
:f 或<Ctrl>+g 告訴用戶有關現行編輯文件的數據。
quit 退出bc
附錄 UNIX 常用命令簡單說明
UNIX 命令大多數可用聯機幫助手冊 man 獲得幫助,下面是常用命令及簡單說明,可供用戶快速查找使用。
命令 功能簡述
acctcom 等於進程記帳文件
accton 啟動或中止記帳進程
adb 匯編語言調試工具
admin 創建和管理SCCS文件
ar 檔案文件和庫文件管理程序
as 匯編器
asa 回車控制
at 在指定時間執行程序
awk 模式搜索和處理語言
banner 制作標題
basename 生成文件基本名(無前。後綴)
batch 命令的延遲執行
bc 計算器
bdiff 大型文件比較
bfs 大文件搜索
break 退出循環
cal 打印日歷表
calendar 打印日歷表
cancel 取消打印任務
case 分支語句
cb C語言整理程序
cd 改變當前目錄
cc C語言編譯器
cdc SCCS實用程序
cflow 生成C語言流程圖
checkeq 數學公式排版命令
chgrp 改變文件組
chmod 改變文件存取模式
chown 改變文件主
chroot 改變根目錄
cksum 顯示校驗和
clri 清除指定的I節點
cmp 文件比較
col 過濾反向換行
comb SCCS實用程序
comm 顯示兩個排序文件的公共行
command 執行簡單命令
continue 進入下一循環
cp 復制文件
cpio 復制文件檔案
cpp C語言預處理程序
crash 檢查系統內存映象
create 建立臨時文件
cref 生成交叉引用表
cron 在指定時間執行一組命令
crontab 為命令cron 准備crontab文件
crypt 加密/解密
csplit 將一個文件分解
ct 遠程終端注冊
ctags 創建供vi使用的標識符
cu 呼叫另一UNIX系統
cut 斷開一文件中所選擇的字段
cxref 生成C程序交叉訪問表
date 打印和設置時間
dc 桌面計算器
dd 轉換和復制文件
delta SCCS實用程序
deroff 去掉排版格式
devnm 標識設備名
df 顯示可用磁盤空間
diff 顯示兩個文件的差異
diff3 顯示三個文件的差異
dircmp 目錄比較
dis 反匯編程序
du 顯示對磁盤的占用情況
dump 對指定文件備份
echo 回顯指定參數
ed 行編輯器
edit 文本編輯器
egrep 在文件中查找指定模式
env 設置命令執行環境
eqn 數學公式排版命令
eval 執行指定命令
ex 行編輯器
exec 執行指定命令
exit 進程中止
expand 使表格占滿行寬
export 將變量傳遞給子程序
expr 計算表達式值
factor 因式分解
false 返回FALSE
fgrep 在文件中查找指定模式
file 確定文件類型
find 查找符號條件的文件
fmt 安排簡單的文本格式
fold 折行
for 循環語句
fsck 文件系統檢查和修復
fsdb 文件系統調試程序
fumount 強制性拆協指定資源
function 函數說明
fuser 列出使用文件的進程
fwtmp 產生記帳記錄
get SCCS實用程序
getconf 查找配置參數
getopt 獲得命令中的選擇項
getopts 獲得命令中的選擇項
getty 設置終端類型、模式、行律等
grep 在文件中查找指定模式
head 打印文件的頭若干行
hexdump 按十六進制轉儲文件
id 顯示用戶號
if 條件語句
init UNIX 初啟進程
install 安裝一個文件到文件系統
ipcrm 刪除IPC隊列
ipcs 顯示IPC狀態
join 連接兩個文件(關系操作〕
kill 中止指定進程
killall 中止所有活動進程
labelit 給文件系統提供標號
ld 目標文件鏈接編輯器
lex 詞法分析程序
line 讀一行
link 連接文件
lint C程序檢查程序
ln 鏈接文件
local 建立局部變量
logger 顯示注冊信息
login 注冊
logname 獲取注冊名
look 在排序文件中查找某行
lorder 查找目標庫的次序關系
lp 打印文件
lpr 打印文件
lpstat 顯示打印隊列狀態
ls 目錄列表
mail 發送或接收電子郵件
mailx 發送、接收或處理電子郵件
make 執行有選擇的編譯
makekey 生成加密碼
man 顯示命令用法
mesg 接收或取消對話方式
mkdir 建立目錄
mkfifo 建立FIFO文件
mkfs 建立文件系統
mknod 建立文件系統的I節點
mount 安裝文件系統
mv 移動文件
mvdir 移動目錄
ncheck 按節點號生成節點名清單
neqn 數學公式排版命令
newgrp 把用戶加入到新組
news 打印消息
nice 改變命令執行優先級
nl 給文件加行號
nm 顯示目標文件符號表
nohup 忽略掛起或退出執行命令
nroff 文本文件排版
od 按八進制轉儲文件
pack 壓縮文件
passwd 改變口令
paste 文件合並
pax 可移植檔案管理程序
pcat 顯示壓縮格式文件
pg 分屏顯示
pr 按打印格式顯示文件
pstat 報告系統信息
pwck 口令文件校驗程序
pwd 顯示當前工作目錄
quot 檢查文件系統所有權
ratfor 轉換成標准FORTRANC程序
read 從標准輸入讀一行
readonly 標記變量為只讀
red 文本編輯器
regcmp 正規表達式編輯
restor 文件系統恢復程序
restore 文件系統恢復程序
return 返回語句
rev 顛倒文件中每行字符次序
rm 刪除文件
rmdel SCCS使用程序
rmdir 刪除目錄
rsh(net) 遠程SHELL
rsh(sec) 受限SHELL
runacct 運行日常記帳程序
sact SCCS實用程序
sag 打印系統活動圖
sar 報告系統活動
sccsdiff SCCS實用程序
sdb 符號調試器
sdiff 並列顯示兩個文件的差別
sed 流編輯器
sendto 發送郵件
set 設置選項或參數
setmnt 建立文件系統安裝表
sh SHELL解釋器
shift 命令行參數移位
shl SHELL層(layer)管理程序
shutdown 關機
size 顯示目標文件長度
sleep 掛起進程一段時間
sort 文件排序和合並
spell 拼寫錯誤檢查程序
spellin 拼寫錯誤檢查
spellout 拼寫錯誤檢查
spline 按平滑曲線輸出數據
split 分解一個文件
strings 在目標文件中尋找可打印字符
strip 刪除符號表
stty 設置終端模式
su 改變用戶
sum 顯示文件校驗和及塊數
sync 更新磁盤
tabs 設置制表符
tbl 表格排版
tee 在管道上建立多通路
tic 終端數據庫編譯程序
time 打印執行命令所花時間
tiemx 報告命令所花時間及活動
touch 更新文件時間
tput 恢復終端或查詢數據庫
tr 轉換字符
trap 捕獲信號
troff 文本文件排版
true 返回TRUE
tsort 拓撲排序
tty 顯示終端設備名
umask 設置文件掩碼
umount 拆卸文件系統
uname 顯示系統名
unget SCCS實用程序
uniq 刪除文件中重復行
units 度量單位轉換
unlink 刪除文件
unpack 將壓縮文件還原
until 循環語句
update 更新磁盤
val SCCS實用程序
vc SCCS實用程序
vi 全屏幕編輯器
volcopy 文件系統的文字拷貝
wait 等待所有字進程結束
while 循環語句
who 顯示誰在使用系統
whodo 顯示哪些用戶在做什麼
write 和另一用戶直接對話
xargs 建立參數表並執行命令
yacc 語法分析程序生成器
vmstat iostat sar topas glance