Linux C编程环境总结

本文详细介绍了Vi文本编辑器的基本操作,如打开文件、插入模式、命令模式切换,以及进程用户ID和组ID的概念。还涵盖了设置SUID和SGID、文件权限、缓冲区使用、搜索与替换功能以及vi环境设置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值