1.文档编辑
命令:
1.vi:开始⼀个新⽂件,保存⽂件时指定名称
2.vi ⽂件名:如果未指定名称,则创建⼀个新⽂件 ,如果现有⽂件具有指定名称,则打开该⽂件
3.ETC
-vi -R ⽂件名 只读
-vi +line_no filename 打开⽂件时,移动到特定⾏
-vi +/关键字⽂件名 转到特定关键字
命令键 | 该怎么办 |
---|---|
i | 在光标前插⼊ |
a | 在光标后插⼊ |
I | 在当前⾏的第⼀个空格之前输⼊⽂本 |
A | 在当前⾏末尾输⼊⽂本 |
o | 在当前⾏之后插⼊ |
O | 在当前⾏之前插⼊ |
重点:输⼊“后输⼊模式“在 ”命令模式应该回来(Esc键)
2.进程的⽤⼾ID
除了进程ID之外,进程具有进程的⽤⼾ ID 和组 ID。执⾏进程的⽤⼾ID和⽤⼾组ID⽤于确定进程可以执⾏哪些操作。
-id命令
$id [⽤⼾名]:⽤⼾实际的ID和有效⽤⼾⾝份。
进程⽤⼾ID:包括(真实⽤⼾ID)和(有效⽤⼾ID)
过程的真实⽤⼾ID
相应的运⾏该进程的实际⽤⼾它被设置为⽤⼾ID。例如,如果您使⽤名为 chang 的⽤⼾ ID 登录并运⾏程序,则该进程的实际⽤⼾ ID 将变为 chang。
过程的有效⽤⼾ID
创建新⽂件时,确定⽂件的所有者或关于该⽂件检查访问权限它就是⽤于此⽬的。
有效的⽤⼾ ID 使⽤,并且⼀般来说,有效⽤⼾ID和实际⽤⼾ID是相同的,除⾮运⾏特殊的可执⾏⽂件。
如果指定了Setuid,则执⾏程序时,⽂件地址不是执⾏该⽂件的⽤⼾。将⽤⼾的uid分配给⽂件执⾏器的有效uid——即运⾏程序时,将当前⽤⼾的EUID(有效UID)设置 为程序所有者的RUID(真实UID)。
设置⽤⼾ ID 可执⾏⽂件
set-user-id(执⾏时设置⽤⼾ID)执⾏权限
当您运⾏带有 set-user-id 设置的可执⾏⽂件时,这个过程的有效⽤⼾ ID 更改为可执⾏⽂件的所有者,该进程在运⾏时具有⽂件的所有者权限。
设置组 ID 可执⾏⽂件
-set-group-id(执⾏时设置组ID)执⾏权限,在执⾏过程中,进程以⽂件所有者的组作为其有效组ID。
特别地:set-group-id执⾏权限⽤⼋进制表⽰为2000。同理,set-user-id执行权限为4000.
设置⽤⼾ ID/设置组 ID 设置
-set-user-id 设置执⾏权限
$ chmod4755 ⽂件或 $ chmod u+s⽂件
-set-group-id执⾏权限设置
$ chmod2755 ⽂件或 $ chmod g+s⽂件
解释4755:set-user-id执行权限为4000,读数据八进制表示为4,写为2,执行为1。4后面的755分别对应:用户-组-其他用户的权限。
-rwsr-xr-x
例如这里的权限:
-
: 表示这是一个文件,而不是目录或者其他类型的文件。rws
: 表示用户(所有者)拥有读、写和执行权限,并且设置了 set-user-id(SUID)权限。通常情况下,如果用户没有执行权限,SUID 会被表示为大写的 S。但是在这种情况下,因为用户已经有执行权限,所以 S 表示用户设置了 SUID。r-x
: 表示组用户拥有读和执行权限,但没有写权限。r-x
: 表示其他用户拥有读和执行权限,但没有写权限。
其他命令
-exit
退出shell并将退出码(exit code)传递给⽗进程 $exit [退出值]
-nohup
如果您想在注销后继续运⾏该进程,请使⽤ $ nohup 命令 [参数] &该命令的结果记录在系统的nohup.out⽂件中。
光标移动命令[1]
光标移动命令[2]
画⾯移动
滚动到屏幕上未显⽰的部分
内容的删除和取消
编辑内容 -在命令模式下运⾏
更改后(即输⼊模式),⾃动地返回命令模式。
与编辑模式类似的作⽤
钥匙 | 编辑⽬标 | 该怎么办 |
---|---|---|
r | 信息 | 删除光标位置的字符并将后续内容转移至下一行进行输入 |
R | 行 | 从当前光标位置开始复写内容 |
cw | 单词 | 重新编辑词单词 |
cc | 行 | 更改整行内容 |
s,ns | 行 | 删除光标字符并从当前光标位置开始更改内容 |
C | 行的一部分 | 从光标位置删除整行并重新编辑 |
编辑功能 ‒ 复制、剪切、粘贴
在命令模式下运⾏
命令 | 做什么 |
---|---|
yw | 复制光标当前所在的单词 |
yy,#yy | 将当前⾏复制到缓冲区(例如 4yy) |
p | 当前⾏之后插⼊缓冲区内容 |
P | 在当前⾏上⽅插⼊缓冲区内容 |
dd,#dd | 剪切当前⾏ |
删除和截断⾏是相同的操作。
-复制粘贴
-剪切和粘贴
缓冲区的使⽤
-缓冲
- vi 将您的⼯作保存在缓冲区中 ‒ 您可以撤消它
-⽤于复印和剪切
缓冲器类型
-未命名缓冲区
-命名缓冲区“a、”b、…… “z
-编号缓冲区“1、”2、…… ,“9
⽤法⽰例
-a3yy
- 从当前⾏开始保存3⾏到缓冲区a -> 粘贴缓冲区的内容
在最后⼀⾏模式下复制和剪切
如何指定范围
--如何指定编辑范围 在最后⼀⾏模 式下使⽤
-:范围编辑命令组合使⽤的形式
搜索功能 -
⽤于最后⼀⾏模式
命令 | 执行的操作 |
---|---|
/字符串 | ⽂件中从当前位置向下搜索字符串 |
?字符串 | ⽂件中从当前位置向上搜索字符串 |
n |
搜索下⼀个字符串 (向下移动为“/string”,向上移动为“?string” |
N | 反向搜索字符串(从 n 向相反⽅向移动) |
替换功能(查找和替换功能)
其他功能[1]
读取⽂件/编辑多个⽂件
其他功能[2]
-需要了解的有⽤命令键
vi环境设置
-设置 vi 环境的特殊命令和变量
命令 | 该做什么 |
---|---|
:set nu | ⽂件内容的每⾏上显⽰⾏号(仅可 ⻅,不保存) |
:set nonu | 取消行号 |
:set list | 显⽰不可⻅的特殊字符(tab:̂ I、eol:$ 等) |
:set nolist | 取消特殊字符查看功能 |
:set showmode | 显⽰当前模式 |
:set noshowmode | 取消当前模式显⽰功能 |
:set | 打印所有⽤ set 设置的 vi 变量 |
:set all | 打印所有 vi 变量及其当前值 |
:set ts=4 | 选项卡⼤⼩调整为 4 |