Linux文件編輯管理常用命令
-
常用命令
- cat、less、more
command file
more和less可以分屏查看文件,more翻屏至尾部後自動退出,less可以往回翻屏查看 - more
-
tail:查看文件的後幾行,默認查看後十行
tail [options] file
-n # :查看後幾行
-#
-f :查看文件尾部內容結束後不退出,跟隨顯示新增的行
1.查看刷新的日誌
2.日誌排查
tail -f /var/log/messages | grep -i error - head:查看文件的前幾行,默認前10行
head [options] file
-n # :查看前幾行
-#
- cat、less、more
-
vim編輯器使用
vi:visual interface,vim :vi improved增強版
基本模式:命令模式、輸入模式、末行模式
vim file 進入默認為命令模式,三者間切換:
i:insert,在光標所在處插入
a: append,在光標所在處後插入
o:在光標所在處的下方添加一個新行
I: 在光標所在行的行首插入
A:在光標所在行的行尾插入
O:在光標所在處的上方添加一個新行- 打開文件
vim [options] file... -
關閉文件
ZZ 命令行模式,保存退出
:q 退出
:q! 強制退出
:wq 保存並退出
:x 等同於:wq
:w /path/to/somefile保存至給定文件 -
光標跳轉
字符跳轉方向鍵
單詞間跳轉:
w:下一個單詞詞首
e:當前或後一個單詞詞尾
b:當前或前一個單詞詞首
行首行尾行間跳轉:
^:跳至行首第一個非空白字符
0:跳至行首
$:跳至行尾
#G:跳至#指定行
1G,gg:第一行
G:跳到最後一行
翻屏操作:
Ctrl+f:向文件尾翻一屏
Ctrl+b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
Enter:按行向後翻 - vim命令模式
字符編輯: x:刪除光標所在處的字符; #x:刪除光標所在處起始的#個字符; 替換命令(replace): r:替換光標所在處的字符; rCHAR 刪除命令: d:刪除命令,可結合光標跳轉字符,實現範圍刪除; d$:刪除光標所在處至行尾的所有字符 d^: 刪除光標所在處至行首的所有字符 dw:向後刪除光標所在處的單詞,但光標所在的字符不會刪除 de:向後刪除光標所在處的單詞 db:向前刪除光標所在處的單詞 dd:刪除光標所在處的行; #dd:刪除光標所處的行起始的共#行; 粘貼命令: p:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的下方;否則,則粘貼至當前光標所在處的後方; P:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的上方;否則,則粘貼至當前光標所在處的前方; 復制命令:y 復制,工作行為相似於d命令; y$ y^ y0 ye yw yb yy:復制一整行 #yy:復制光標處起#行 其它編輯操作: 可視化模式: v:按字符選定 V:按行選定 結合編輯命令使用:d, c, y實現批量操作
撤銷操作:
u:撤銷此前的操作;
#u:撤銷此前的#個操作;
恢復此前的撤銷:
Ctrl+r- vim末行模式 地址定界 :start_pos[,end_pos] #:指定第#行 .:當前行; $:最後一行; #,#:指定行範圍,左側為起始行,右側為結束行; #,+#:指定行範圍,左側為超始行絕對編號,右側為相對左側行號的偏移量;例如:5,+2 .,$-1:當前行至倒數第一行 1,$:全文 %:全文 /pattern/:從光標所在處起始向文件尾部第一次被模式所匹配到的行; /first/,$ /pat1/,/pat2/:從光標所在處起始,第一次由pat1匹配到的行開始,至第一次由pat2匹配到的行結束之間的所有行; 可同編輯命令一同使用,實現編輯操作:d、y、c 查找: /PATTERN:從當前光標所在處向文件的尾部查找能夠被當前模式匹配到的所有字符串; ?PATTERN:從當前光標所在處向文件的首部查找能夠被當前模式匹配到的所有字符串; n:下一個 N:上一個 查找並替換: s:末行模式的命令;使用格式:s/ ../ ../ s/old_content/new_content/修飾符 old_content:可使用正則表達式; new_content:不可以使用下則表達式,但可以引用; 修飾符: i:忽略大小寫; g:全局替換 註:分隔符替換為其它非常用字符 s@@@ s###
- 打開文件
-
vim其他使用功能
編輯多個文件:
vim [-o|-O] file1 file2 ...
-o:水平分割窗口
-O:垂直分割
窗口間切換:Ctrl+w,方向鍵切換即可
註:單個文件也可以分屏:Ctrl+w,s/v #s表示水平分割,v表示垂直分割 - vim的配置文件:可以定制vim的工作特性
註意:在末行模式下的設定,僅對當前vim進程有效;永久有效:
全局:/etc/vimrc
用戶個人:~/.vimrc
可以使用幫助:help
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set fileencodings=ucs-bom,utf-8,latin1
endif
set nocompatible " Use Vim defaults (much better!)
set bs=indent,eol,start " allow backspacing over everything in insert mode
set ai " always set autoindenting on
set sw=4
set si "smart suo jin
"set backup " keep a backup file
set viminfo=‘20,\"50 " read/write a .viminfo file, don‘t store more
" than 50 lines of registers
set history=50 " keep 50 lines of command line history
set ruler " show the cursor position all the time
set tabstop=4
" Only do this part when compiled with support for autocommands
if has("autocmd")
augroup redhat
autocmd!
" In text files, always limit the width of text to 78 characters
" autocmd BufRead *.txt set tw=78
" When editing a file, always jump to the last cursor position
autocmd BufReadPost *
\ if line("‘\"") > 0 && line ("‘\"") <= line("$") |
\ exe "normal! g‘\"" |
\ endif
" don‘t write swapfile on most commonly used directories for NFS mounts or USB sticks
autocmd BufNewFile,BufReadPre /media/*,/run/media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp
" start with spec file template
autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec
augroup END
endif
if has("cscope") && filereadable("/usr/bin/cscope")
set csprg=/usr/bin/cscope
set csto=0
set cst
set nocsverb
" add any database in current directory
if filereadable("cscope.out")
cs add $PWD/cscope.out
" else add database pointed to by environment
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
set csverb
endif
" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
syntax on
set hlsearch
endif
filetype plugin on
if &term=="xterm"
set t_Co=8
set t_Sb=[4%dm
set t_Sf=[3%dm
endif
" Don‘t wake up system with blinking cursor:
" http://www.linuxpowertop.org/known.php
let &guicursor = &guicursor . ",a:blinkon0"
"set auto add shellscript title #設置腳本xxx.sh默認配置
autocmd BufNewFile *.py,*.cc,*.sh,*java exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == "sh"
call setline(1, "#!/bin/bash")
call setline(2, "#Author:tong")
call setline(3, "#Blog:http://www.xuetong.51cto.com")
call setline(4, "#Time:".strftime("%F %T"))
call setline(5, "#Name:".expand("%"))
call setline(6, "#Version:v1.0")
call setline(7, "#Description:this is a test script")
endif
endfunc
Linux文件編輯管理常用命令