使用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文件!
Vi basic operation(more)
最新推荐文章于 2018-04-16 19:17:09 发布