编程乱码问题(前后编码方式不同)
嵌入式文本编辑器-vi
-
vi的工作模式
命令模式:控制屏幕光标的移动,字符,字或行的删除,移动复制某区域,按i进入插入模式,按/或:进行底行模式。
插入模式:编辑文字,按ESC返回命令模式。
底行模式:将文件保存或退出vi,也可以设计编辑环境,如查找字符串,列出行号等。通常底行模式也算是命令模式。 -
vi的进入
vi+文件名
进入vi后,是命令模式,要输入i进入插入模式才能输入文字 -
编辑
当屏幕下方显示—INSERT—时,表示已进入插入模式,可以编辑文字,如想回到命令模式,如想保存或退出,按ESC键。 -
vi的退出
在命令模式下,按一下冒号【:】进入底行模式,如
:w 文件名 (将编辑的文件以指定文件名保存)
:wq (存盘并退出vi)
:q! (不存盘强制退出vi) -
删除
x:每按一次,删除光标所在位置字符
nx:例如5x,删除从光标所在位置开始往后的5个字符
X:每按一次,删除光标所在位置前一个字符
nX:例如5X,删除光标所在位置前5个字符
dd :删除光标所在行
ndd:例如5dd,从光标所在行 开始删除5行 -
复制
yw:将光标所在处到字尾的字符复制到缓冲区中
nyw:如5yw,复制5个字符到缓冲区
yy:复制光标所在行到缓冲区
nyy:如5yy,复制从光标所在行开始的5行到缓冲区
p:将缓冲区的内容粘贴到光标所在 -
替换
r:替换光标所在处的字符
R:替换光标所到之处的字符,直到按下ESC键为止 -
跳到指定行
Ctrl+g:列出光标所在处的行号
nG:如5G,移动光标到第5行的行首 -
底行模式下的命令
:set nu 命令模式下,按:可进入底行模式,setnu表示列出行号
:set nonu 命令模式下,取消列出行号
:n 表示数字,按回车光标会跳到该行
用户管理
-
su:切换用户
例如:su root 切换到root用户(需要输入root用户密码)
如果从root用户向其他用户切换则不需要输入密码 -
useradd:添加用户
useradd user 添加名字为user的用户,位置在/home下 -
userdel:删除用户
userdel -r user 删除user用户,-r使/home的用户目录也删除 -
passwd:修改用户密码
-
usernod:修改用户所属用户组
-g:将该用户修改到另外一个组中
-G:将该用户增加到其他多个附加组中 -
groupadd:增加一个新用户组
-
groupdel:删除某用户组(空用户组)
-
chmod:修改某些用户对文件的访问权
-R:递归修改子目录和文件的所有者 -
chgrp:修改文件关联的用户组
-R:递归修改子目录和文件的所属组 -
chown:修改文件的所有者
-R:递归修改子目录和文件的所有者
嵌入式编译器
- 常用编译选项
-E:对源文件进行预编译
-S:对源文件进行编译
-c:对原文件进行汇编
-o file:输出目标文件file,不指定时输出的为默认文件a.out
-W:屏蔽所有的警告信息
-Wall:显示所有的警告信息
-Werror:出现任何错误就停止编译
-g:产生调试信息,把调试信息加入可执行文件中
-01:对目标文件进行性能优化
-02:在01的基础上进一步优化,提高目标文件的运行性能
-03:在02的基础上进一步优化,支持函数集成优化
-static:使用静态链接
-library:链接 library函数库文件