Vi basic operation(more)

使用vi编辑器

1. 认识基本的vi编辑器操作:[vi编辑器不会改 变文件的权限]

vi中的三种基本模式:命令模 式、编辑模式、末行模式;

命令模式:删除/修 改/拷贝/移动文本内容、定位光标、搜索字串及退出vi;
末行模式:按':'(冒号)进入该模式,能使用增强 的编辑命令。

!命令模式和编辑模式间的切换: vi进入后默认为命令模式,键入编辑命令即可进



入编辑模式,完成后按Esc返回到命令模式

vi -r filename:用于vi时系统 当机后找回文件所修改的内容;



2. vi编辑器中的文件操作

命令view filename:调用vi以只读模式打开文件,退出时不能保 存修改!

vi中编辑模式增加内容的命令: < br>
I:在光标所在行首插入内容;

i:在光标前插入内容;

O:光标所在行上方再 插入一空行

o:光标所在行下方再增加一空行;

A:在光标所在行末增加内容;
a:在光标后增加内容;

:r filen ame:当前文件中插入来自另一文件的内容;



vi中光标移动的控制:

h( 退格)/j/k/l:光标方向,相当于左/下/上/右的方向键;

w/b:光标向前/向后一个单词;

e:光标移动到当前单词的末字符位;

$:光标移动到行末;

0(零):光标移动到行 首;

^:光标移动到不是以空格开头的第一行;

回车:光标移动到下一行首;

G:光标移动到文件最后一行;

lG:光标移 动到文件第一行;

:n或nG:光标移动到第“ n”行;

Ctrl+F:屏幕向后翻一页内容;

Ctrl+D:屏幕中向下翻半页内容;
Ctrl+B:屏幕向前翻一页内容;
Ctrl+U:屏幕中向上翻半页内容;

C trl+L:重新刷新屏幕内容;


vi中与删除相关的操作:

R:覆盖或替换 从光标右侧开始得字符直到按Esc为止;

C: 从光标所在行得末尾开始改写内容;

s:替换光 标所在的字符串;

x:删除当前光标所在的字符 ;

dw:删除位于光标右侧的一个单词;
dd:删除光标所在的一整行内容;

D:删除当前行光标右侧的剩余内容;

:n, md:删除n-m行的内容;

![删除操作在文 件没有保存退出前,都只是对缓冲区操作]


vi中基本的编辑命令:

cw:修 改或替换光标所在单词的最后一个字符;

r:替 换光标所在的字符为另一字符;

J:合并当前行 及下一行;

xp:使当前光标和光标右侧的字符 调换位置;

~:改变当前光标所在字符的大小写 ;

u:恢复到上一条命令执行前的状态;
U:恢复当前行的所有改变;

.: 重复执行上一条命令;



vi中 的查找和替换操作:

/string:向后搜索 'string'字串;

?string:向前 搜索'string'字串;

n:跟搜索命令后 执行,继续查找下一匹配的字串;

N:跟搜索命 令后执行,继续查找上一匹配的字串;

:%s/ old/new/g:搜索所有的'old'字串并全部替换成'n ew'字串。



vi中的拷贝粘 贴操作:

yy:拷贝一行内容至缓冲区;
P:???

p:???

:n,n1 co n2:拷贝第n-n1行的内容粘贴到 第n2行后面;

:n,n1 m n2:移动第 n-n1行到第n2行,如“:4,6 m 8”则第六行变成第八 行,第



五行变成第七行,第四 行变成第六行!



vi中的存盘 和退出操作:

:w:保存修改到文件;

:w new_filename:保存修改后的内容到 一个新文件;

:wq或:x或zz:保存文件修 改并退出vi;

:q!:不保存对文件的修改并 退出vi;



vi编辑会话定制 命令:

:set nu:显示行号;

:set nonu:隐藏行号显示;

:set ic:执行搜索时忽略字母大小写;

:set noic:执行搜索时字母大小写敏感;
:set list:显示不可见的特殊字符,如表格中的^I ,或行末的$;

:set nolist:不显 示特殊字符;

:set showmode:显 示当前vi编辑器所处的操作模式;

:set noshowmode:不显示当前vi编辑器所处的操作模式;

:set:显示所有vi中能设置的set参数;

:set all:显示所有set参数,并指 示当前个参数的设置值;

![vi操作快速参考 :P153_图6-3]!



七 、文件的基本权限:可以通过ls -l或ls -n查看当前文件 或目录的权限;

Solaris OE通过两项 基本措施来防止系统的非验证访问及数据安全:

1. 登陆系统的用户名和密码(保存在/etc/passwd和 /etc/shadow两个文件中);

2. 系统自动保护对文件和目录的访问(文件建立时系统就赋予了基本访 问权限);



例:ls -l给 出的内容中:-rw-r--r--

其中最左边 一位表示文件类型,-为普通文件、d为目录;

接下来就是文件的具体访问权限:r只读、w可写、x可执行、-拒 绝;

三位一组(从左往右):文件的所有者、文 件所有者所在的组、其他

!系统中记录组的文件 :/etc/group,系统管理员按照用户可访问的文件来确定 用



户属于那个组!

[注意:目录若没有赋予执行权限,那么就不能用cd命令 进入,一般给r-x权限];



命令ls -n可以查看文件或目录的访问权限及文件所有者的UI D(用户验证字)和所



属组的 GID(组验证字);一个文件或目录同一时间只能属于唯一的UI D和GID,不能



多属! < br>


!系统通过判断当前登陆用户的U ID和GID,对比文件所属的UID和GID,来确定用户


访问文件的权限。(P162_图7 -3)



改变文件或目录的权限 :

格式:chmod symbolic_mo de filename

symbolic_m ode包括:who | op | permission(s) 三部分:

who:u(所有者)、g(所属组 )、o(其他)、a(所有);

op:+(增加 权限)、-(移除权限)、=(分配给出的权限);
permission:r(只读)、w(可写)、x(执行) ;

例:chmod o-r file1:删除 file1这个文件其他用户的读权限;

chm od u+x,go+r file2:增加file2所有者的执 行权限,所属组和其的读权限;


chmod a =rw file2:分配file2的读写权限给所有用户。 < br>


当然,也可以使用八进制格式分配 权限:

格式:chmod octal_mod e filename 八进制的具体表示:

7 rwx 读、写、执行

6 rw- 读、写

5 r-x 读、 执行

4 r-- 读

3 -wx 写、执行
< br>2 -w- 写

1 --x 执行
0 --- (无)


修改文件或目录的默认权限:通常文件建立时系统就赋予了默认 权限,可以通过



umask工 具修改,在Solaris OE中默认的umask值为022!



查看umask值,直接键入 umask即可;

注意:不同的shell,u mask值看起来也不同[sh为0022,ksh为022,cs h为22]!



Solaris OE中系统初始分配的权限:

1. 新建文件 为666(rw-rw-rw-);


2. 新建 目录为777(rwxrwxrwx);


通过设 置umask改变权限使用的是掩码值!(初始权限-umask= 实际分配的权限)!



八、在K orn shell中使用:

[不知道准确的“ metacharacters”该怎么翻译,按照我的理解觉得用 “(系统)特



殊字符”解释比 较合理]

Korn shell支持三类特殊字 符:路径中的~、(文件名)通配符、重定向符。



1. 在路径中使用的特殊字符:
< br>“~”:表示当前用户的Home目录;

如用cd ~/dir1即可切换到当前用户Home目录下的di r1子目录。

!注意:除sh外,其他shel l都支持路径中使用“~”;

用cd ~use rname即可进入指定用户的Home目录

“ ~+”表示当前工作目录,“~-”表示先前的目录(父目录)。

“-”:使用cd -可以在当前工作目录和上一 工作目录间切换。



2. 文件 名中使用通配符:

“*”:可代替文件名中任意 位数的字符,不包括开头首字符是.的隐藏文件;

“?”:可代替文件名中一位字符,不包括开头首字符是.的隐藏 文件;

“[]”:用一组字符或一个范围的字符 代替单一一个字符(如[a-z]*表示开头字母



可以是a-z中任意一个字母的文件、[acb ]*表示以a或c或b开头的文件)。



3. 使用引用符号:

' '单引号: 单引号中的所有字符都将被shell忽略执行;

" "双引号:双引号中除$、`(被单引号括起来的东西)、\ 三个特殊字符,其他内



容也将 被shell忽略执行;

\ 反斜杠:双引号中 特殊字符前加上\就不会被shell当指令而执行。
< br>例:echo "$SHELL"显示为/bin/ksh, 而echo '$SHELL'则仍为$SHELL


4. 使用重定向符:

三 个重定向符:>
、<
、| ——默认下,系统都是 通过键盘接收和读取命令,再



通过显示设备将命令和结果输出到屏幕上!

格式 :command<
filename:把file文件作为 命令执行的输入;

command>
fi lename:把命令的结果输出到一个文件中;

command>
>
filename:把命令的结 果添加进文件中(跟在原有内容之后);

!抑制 命令的出错信息:command 2>
/dev/nul l



“|”管道符:故名思义就 是把前一个命令的输出当作第二个命令的输入信息。


5. 显示历史命令:

直 接用history命令显示已执行的历史命令,例:
< br>...

87 data

88 cd /etc

89 ps -ef

90 history

使用h istory -n可不显示左边的命令行号;

可用history -m显示不包括当前history这个命令 之前的m个命令(m为具体数字);


< br>默认history的命令按执行顺序往下排列显示的,可以 是用-r参数反相排列;

若history后跟 具体命令,则显示近期执行那条命令的相关次数。



在Korn shell中历史命令存储在$H OME/.sh_history这个文件中,默认为128条,



可通过HISTFILE变量改 变默认存储值。



重复执行上一 条命令:命令行中直接输入r即可!若r后再跟一个具体行号,则执



行history中那行所在 的命令。若r后跟具体字串,则系统会执行最近执行过的命



令中含那个字串的命令。
< br>

[接下来讲到的开启vi的shell命令 行编辑还没完全理解,等弄明白后进行补充。]



6. 用户配置文件:

当用户 登陆时,Korn shell会从.profile文件中查询初 始环境设置,.profile文


件包含ENV变量。shell首先执行.profile中的 命令,再执行命令中的ENV变量。


< br>另外,shell还要定位Korn shell的特定配置 文件.kshrc,之后系统提示符就会出


现,等待用户命令输入。



若需要启动CDE,则还要用到另一个初始化文件.dtp rofile来定制桌面环境。



~/.profile文件:针对特定用户的配置文件,其中的设 置只对特定用户生效;

/etc/profil e文件:全局配置文件,其中的设置对登陆系统的每个用户都生效;

~/.kshrc文件:包含shell变量和 别名,可设置一下常用内容:

Shell提示符 定义、别名定义、shell功能、History变量、shel l特殊选项等。



一般对.pr ofile和.kshrc的修改在用户再次登陆后生效,也可通过 执行这两个文



件使之当场生效 :

$. ~/.profile
$

$. ~/.kshrc


~/.dtprofile文件:对.dtp rofile文件中变量的修改可覆盖任何CDE中默认设置。 < br>


每次登陆CDE shell都会 去读.dtprofile、.profile和.kshrc文件 ;

在CDE中打开Console也会再次读. profile和.kshrc文件!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值