【Linux】鸟哥的Linux私房菜基础学习篇整理(四)

1. VI按键说明。
(1)移动光标的方法
h或向左箭头:光标向左移动一个字符;
j或向下箭头:光标向下移动一个字符;
k或向上箭头:光标向上移动一个字符;
l或向右箭头:光标向右移动一个字符;
进行多次移动,如向左移动30行,可以使用“30k”或者“30<-”
[ctrl]+[f]:屏幕向下移动一页;
[ctrl]+[b]:屏幕向上移动一页;
[ctrl]+[d]:屏幕向下移动半页;
[ctrl]+[u]:屏幕向上移动半页;
+:光标移动到非空格的下一行;
-:光标移动到非空格的上一行;
n[space]:n表示数字,按下数字键后再按下空格,光标会向右移动这一行的n个字符;
0或功能键[Home]:移动到这一行的最前面字符处;
$或功能键[End]:移动到这一行的最后面字符处;
H:光标移动到这个屏幕的最上方那一行的第一个字符;
M:光标移动到这个屏幕的中央那一行的第一个字符;
L:光标移动到这个屏幕的最下方那一行的第一个字符;
G:光标移动到这个文件的最后一行;
nG:n为数字。移动到这个文件的第n行;
gg:移动到这个文件的第一行,相当于1G;
N[Enter]:n为数字,光标向下移动n行。

(2)查找与替换
/word:向下寻找一个名为word的字符串;
?word:向上寻找一个名为word的字符串;
n:n为按键n,代表重复前一个查找操作;
N:代表反向重复前一个查找操作,例如前一个操作为向下查找,使用N后即向上查找;
:n1,n2s/word1/word2/g:n1与n2为数字。在第n1行与n2行之间查找word1这个字符串,并将该字符串替换为word2;
:1,$s/word/1word2/g:从第1行到最后一行查找word1,并替换为word2;
:1,$s/word/1word2/gc:从第1行到最后一行查找word1,并替换为word2,且在替换前显示提示字符给用户确认(confirm)是否替换。

(3)删除、复制与粘贴
x,X:在一行字当中,x为向后删除一个字符(相当于[Del]),X为向前删除一个字符(相当于[Backspace]);
nx:n为数字,连续向后删除n个字符;
dd:删除光标所在的那一整行;
ndd:n为数字,删除光标所在的向下n行;
d1G:删除光标所在行到第1行的所有数据;
dG:删除从光标所在行到最后一行的所有数据;
d$:删除从光标所在字符到该行行末的数据;
d0:删除从光标所在字符到该行行首的数据;
yy:复制光标所在行;
nyy:n为数字,复制光标所在的向下n行;
y1G:复制光标所在行到第1行的所有数据;
yG:复制光标所在行到最后1行的所有数据;
y$:复制光标所在的字符到该行的行末的数据;
y0:复制光标所在的字符到该行的行首的数据;
p,P:p为将已复制数据在光标下一行粘贴,P则为将已复制数据在光标上一行粘贴;
J:将光标所在行与下一行的数据合并成同一行;
c:重复删除多个数据,例如向下删除10行,10cj;
u:复原前一个操作;
[ctrl]+[r]:重做上一个操作;
.:小数点,重复删除、复制和粘贴操作。

(3)一般模式切换到编辑模式
i,I:进入插入模式,i从目标光标处插入,I为目前所在行的第一个空白字符插入;
a,A:进入插入模式,a从光标所在的下一个字符开始插入,A为光标所在行的最后一个开始插入;
o,O:进入插入模式,o从光标所在的下一行处插入新的一行,O从光标所在行的上一行插入新的一行;
r,R:进入替换模式,r只会替换光标所在行的那一个字符一次,R会一直替换光标所在的字符,直到按下[Esc]键为止;
[Esc]:退出编辑模式,回到一般模式。

(4)一般模式切换到命令行模式
:w:将编辑的数据写入硬盘文件中;
:w!:若文件属性为“只读”,强制写入该文件,不过,到底是否可以写入与权限有关;
:q:离开vi;
:q!:强制离开,不保存;
:wq:保存后离开;
:w[filename]:将编辑的数据保存成另一个文件filename;
:n1,n2w[filename]:将n1到n2的内容保存成filename这个文件;
:! command:暂时离开vi到命令行模式执行command并显示结果;
:set nu:显示行号;
:set nonu:取消显示行号。

2. vim的功能
(1)快选择(Visual Block)
v:字符选择,会将光标所经过的地方反白选择;
V:行选择,会将光标所经过的行反白选择;
[ctrl]+[v]:快选择,可以用长方形的方式选择数据;
y:将反白处复制;
d:将反白处删除。

(2)多文件编辑
:n:编辑下一个文件;
:N:编辑上一个文件;
:files:列出目前这个vim打开的所有文件。

(3)多窗口功能
:sp [filename]:打开一个新窗口,若指定filename表示在新窗口打开filename文件,否则表示在新窗口打开原文件;
[ctrl]+w+j或向下箭头:先按下ctrl不放,再按下w后放开所有键,然后按下j或方向键,光标移动到下方窗口;
[ctrl]+w+k或向上箭头:同上,光标移动到上方窗口;
[ctrl]+w+q:结束离开。

(4)vim的环境设置参数
:set nu:设置行号;
:set nonu:取消设置行号;
:set hlsearch:high light search,设置将选择的数字反白;
:set nohlsearch:取消设置将选择的数字反白;
:set autoindent:设置自动缩排;
:set noautoindent:取消设置自动缩排;
:set backup:设置自动保存备份文件;
:set ruler:设置状态说明;
:set showmode:设置模式显示;
:set backspace=(012):backspace=2时,可以删除任意值,backspace=0或1时,仅可删除刚才输入的字符;
:set all:显示目前所有环境参数设置值;
:set:显示与系统默认值不同的设置参数;
:syntax on:设置依据相关语法显示不同颜色;
:syntax off:取消设置依据相关语法显示不同颜色;
:set bg=dark:设置dark色调;
:set bg=light:设置light色调。

3. dos2UNIX [-kn] file [newfile]
    UNIX2dos [-kn] file [newfile]:断行符处理
参数:
-k:保留该文件的元贝mtime时间格式;
-n:保留原本的旧文件,将转换内容输出新文件。

4. iconv [-f] 原本编码 [-t] 新编码 filename [-o newfile]:语系编码转换
    iconv [--list]:列出支持的语系
参数:
--list:列出iconv支持的语系数据;
-f:from,后接原始编码格式;
-t:to,后接新编码格式;
-o:保留原文件,将新数据写入新目标文件。

【Linux】鸟哥的Linux私房菜基础学习篇整理(四)

时间: 2024-10-10 14:39:27

【Linux】鸟哥的Linux私房菜基础学习篇整理(四)的相关文章

【Linux】鸟哥的Linux私房菜基础学习篇整理(一)

最近,一直在写PPC的模拟器和汇编器,也在做设计.所以重新看了看<鸟哥的Linux私房菜>,还是有好多命令不太熟悉.就打算写几篇blog记下来. 1. nl [-bnw] filename:添加行号打印参数:-b:指定行号指定的方式,主要有两种: -b a:表示不论是否为空行,也同样列出行号(类似cat -n): -b t:如果有空行,空的那一行不要列出行号(默认值).-n:列出行号表示的方法,主要有三种: -n ln:行号在屏幕的最左方显示: -n rn:行号在自己字段的最右方显示,且不加0

【Linux】鸟哥的Linux私房菜基础学习篇整理(二)

1. dumpe2fs [-bh] devicename:查询superblock信息.参数:-b:列出保留为坏道的部分:-h:列出superblock的数据,不会列出其他的区段内容. 2. df [-ahikHTm] 目录或文件名:列出文件系统的整理磁盘使用量.参数:-a:列出所有的文件系统,包括系统特有的/proc等文件系统:-k:以KB的容量显示各文件系统:-m:以MB的容量显示各文件系统:-h:以人们易阅读的GB.MB.KB等格式自行显示:-H:以M=1000K替代M=1024K的进位方

【Linux】鸟哥的Linux私房菜基础学习篇整理(七)

1. test命令的测试功能.测试的标志:(1)关于文件类型的检测 test [-efdbcSpL] filename-e:该文件名是否存在:-f:该文件名是否为文件:-d:该文件名是否为目录:-b:该文件名是否存在且为一个block device设备:-c:该文件名是否存在且为一个character device设备:-S:该文件名是否存在且为一个Socket文件:-p:该文件名是否存在且为一个FIFO文件:-L:该文件名是否存在且为一个连接文件.(2)关于文件权限的检测 test [-r]

【Linux】鸟哥的Linux私房菜基础学习篇整理(九)

1. quotacheck [-avugfM] [/mount_point]:扫描文件系统并创建Quota配置文件.参数:-a:扫描所有在/etc/mtab内,含有quota支持的文件系统,加上此参数后,不必写/mount_point:-u:针对用户扫描文件与目录的使用情况,会新建aquota.user:-g:针对用户组扫描文件与目录的使用情况,会新建aquota.group:-v:显示扫描过程的信息:-f:强制扫描文件系统,并写入新的quota配置文件(危险):-M:强制以读写的方式扫描文件系

Bombe 【Linux】鸟哥的Linux私房菜基础学习篇整理(三)

1. gzip [-cdtv#] filename:压缩.参数:-c:将压缩的数据输出到屏幕上,可通过数据重定向进行处理:-d:解压缩的参数:-t:可以用来检验一个压缩文件的一致性,查看文件有无错误:-v:可以显示出原文件/压缩文件的压缩比等信息:-#:压缩等级,1最快(压缩比最差),9最慢(压缩比最好),默认6. 2. zcat *.gz:读取gzip压缩文件. 3. bzip2 [-cdkzv#] filename:压缩.参数:-c:将压缩过程中产生的数据输出到屏幕上:-d:解压缩的参数:-

【Linux】鸟哥的Linux私房菜基础学习篇整理(十二)

1. depmod [-Ane]:更新内核模块依赖.参数:无参数:depmod会主动分析目前内核的模块,并重新写入/lib/modules/$(uname -r)/modules.dep中:-A:depmod会查找比modules.dep内还要新的模块,如果找到符合模块才更新:-n:不写modules.dep,而将结果输出到屏幕:-e:显示目前已加载的不可执行的模块名称. 2. lsmod:查看内核目前加载的模块. 3. modinfo [-adln] [module_name|filename

【Linux】鸟哥的Linux私房菜基础学习篇整理(五)

1. type [-tpa] name:查看name命令是否为bash内置命令.参数:type:不加任何参数,type会显示出那么是外部命令还是bash的内置命令:-t:当加入-t参数时,type会通过如下关键字显示其意义: file:表示为外部命令 alias:表示为命名别名 builtin:表示为bash的内置命令-p:如果后面接的name为外置命令时,才会显示完整文件名:-a:会由PATH变量定义的路径中,将含有name的命令都列出来,包含别名. 2. unset name:取消变量名na

【Linux】鸟哥的Linux私房菜基础学习篇整理(六)

1. 正则表达式特殊符号.[:alnum:]:代表英文大小写字符及数字:[:alpha:]:代表英文大小写字符:[:blank:]:代表空格键与[Tab]键:[:cntrl:]:代表键盘上的控制键,即包括CR.LF.Tab.Del键:[:digit:]:代表数字:[:graph:]:除了空格符外的其他所有按键:[:lower:]:代表英文小写字符:[:print:]:代表任何可以被打印出来的字符:[:punct:]:代表标点符号,即"'?!;:#$:[:upper:]:代表英文大写字符:[:sp

【Linux】鸟哥的Linux私房菜基础学习篇整理(八)

1. useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-mM]\   [-c 说明栏] [-d 主文件夹绝对路径] [-r] [-s shell] 用户账号名:新增用户.参数:-u:后面接UID,是一组数字,直接指定一个特定的UID给这个账号:-g:后面接初始用户组,该用户组的GID会被放置到/etc/passwd的第四个字段:-G:后面接这个账号还可以加入的用户组:-M:强制,不创建用户主文件夹(系统账号默认值):-m:强制,创建用户主文件夹(一般账号默认值):