再终端输入vi敲Enter(回车)可以看到介绍<br<
~ VIM - Vi IMproved
~
~ 版本 7.4.629
~ 维护人 Bram Moolenaar 等
~ 修改者 bugzilla@redhat.com
~ Vim 是可自由分发的开放源代码软件
~
~ 成为 Vim 的注册用户!
~ 输入 :help register
~
~ 输入 :q
~ 输入 :help
~ 输入 :help version7
vi的模式分为四种模式
正常模式
插入模式
命令模式
可视模式
正常模式
光标的移动
h 光标向左移动一个字符
j 光标向下移动一个字符
k 光标向上移动一个字符
l 光标向右移动一个字符
nG n是数字 移动到指定行
g 移动到文件开头
G 移动到文件末尾
^ 移动到所在行的第一个字符处
$ 移动到所在行的最后末尾
复制
yy 复制光标所在一行数据
nyy n是数字,复制光标向下的n行
y$ 复制光标所在字符到该行末尾的所有数据
y0 复制光标所在字符到该行行首的所有数据
yG 复制光标所在行到最后一行的数据
y1G 复制光标所在行到第一行的数据
粘贴
p 将复制的数据贴在光标下一行
P 将复制的数据贴在光标上一行
剪切
dd 剪切光标所在行数据
d$ 剪切光标所在字符到该行末尾的所有数据
ndd n是数字,剪切光标向下的n行
撤销和重做
u 撤销上一次命令
ctrl+r 重做 恢复撤销命令
删除
x 删除当前光标所在字符
nx 删除当前光标后n个字符
dj 删除光标所在上一行
dk 删除光标所在下一行
命令模式
:set nu 显示行数
:set nonu 取消行数
:w 保存文件
:w! 若文件为’可读’模式,就强行写入文档
:q 不保存文件,离开vi
:wq 保存后离开
:! command 暂时离开vi,执行linux 命令
:w [文件名] 将内容保存到另一个档案
:/keyword 查找光标向下名称为keyword的字符
?keyword 查找光标向上名称为keyword的字符
:s/old/new 字符的替换 默认只替换光标所在的字符
:%s/old/new/g 全局替换字符
:n1,n2s/old/new n1和n2为数字,从n1行到n2行之间替换字符
插入模式
i 从当前光标处输入
I 在当前所在行的第一个非空格符处开始输入
a 从当前光标所在下一个字符处开始输入
A 从当前光标所在最后一个字符处开始输入
o 从当前光标所在下一行输入新的一行
O 从当前光标所在上一行输入新的一行
可视模式
v 字符选择,将所在光标经过的地方选中
V 行选择 ,会将光标经过的行选中
Crtl+v 块选择
linux 用户分三种,根用户、系统用户、普通用户
useradd 新建用户
userdel 删除用户
passwd 修改密码
usermod 修改用户属性
用户新增
1 | [root@localhost ~]# useradd kuan1 //新增一个用户叫kuan1 |
1.第一步 会在/etc/passwd和/etc/shadow里面新增一条信息,分配一个UID给用户
1 | [root@localhost ~]# tail -3 /etc/passwd |
2.第二步 创建家目录,再/home下创建一个和用户名同名的目录,然后把/etc/skel下的所有文件复制到创建的家目录
1 | [root@localhost ~]# ls -a /etc/skel/ |
3.第三步 如果没有指定用户组,系统会新建一个和用户名相同的用户组,默认新增用户就属于这个用户组的
1 | [root@localhost ~]# id kuan1 //groups 就是用户所属用户组 |
每个用户都有一个唯一的UID
新增时指定UID,指定的UID不能跟其他用户冲突
useradd -u [uid] 用户名
1 | [root@localhost ~]# useradd -u 555 kuan2 |
__ 指定用户组__
1 | [root@localhost ~]# useradd -g kuan1 kuan3 |
指定用户家目录
1 | [root@localhost ~]# useradd -d /home/kuan1 kuan4 |
修改密码
刚刚创建的用户,是没有登录权限的。需要设置密码
1 | [root@localhost ~]# passwd kuan1 |
如果是普通用户修改直接输入passwd然后回车即可,普通用户再passwd 后面不能输入用户名。
删除用户
1 | [root@localhost ~]# userdel kuan3 |
这条命令删除用户后还会保存用户的家目录。
1 | [root@localhost ~]# userdel -r kuan3 |
这条命令会删除用户和用户的家目录
修改用户信息
usermod [参数] 用户名
用户组的操作
groupadd 名称
1 | [root@localhost ~]# groupadd demo1 |
在/etc/group文件中,每一行就代表一个用户组,其格式是使用3个分隔号“:”隔开的4列。第一列是用户组名,第二列代表密码(但是并不使用),第三列代表用户组的数字ID,第四列是组成员,这里为空说明还没有任何用户属于这个组。
groupdel 名称
1
[root@localhost ~]# groupdel demo1
如果已有用户属于这个用户组,是不能删除的。
检查用户信息
users
1 | [root@localhost ~]# users |
finger 名称
centos默认没有按照这个命令,先运行yum -y install finger 进行安装
finger后面不加参数,会显示系统登录的用户
1
2
3
4[root@localhost ~]# finger
Login Name Tty Idle Login Time Office Office Phone
kuan CentOS 6_1 tty1 40 Mar 30 22:20 (:0)
kuan CentOS 6_1 pts/0 Mar 30 22:21 (:0.0)
finger后面添加用户名 显示详细信息
1 | [root@localhost ~]# finger user |
切换用户
1 | [kuan@localhost ~]$ su |
1 | [kuan@localhost ~]$ su - |
sudo 命令则是使用其他用户身份来执行命令,运行命令的时候会检查/etc/sudoers,判断用户是否有执行sudo的权限,有执行权限后,需要输入用户的密码,输入正确后则会执行sudo后面的命令。
用户配置文件
查看用户配置文件
1 | [root@localhost ~]# cat /etc/passwd |
这里用“:”分割成七个字段
第一列:用户名
第二列:密码(现已不用,现密码放在/etc/shadow中)注:如果把当前位置X删除,则用户登录就不需要密码验证
第三列:UID 用来区分不同用户的整数
第四列:GID 用来区分不同用户组的整数
第五列:说明 类似”注释”
第六列:家目录 用户登录后,所在的目录就是家目录
第七列:登录后shell 用户登录后所使用的shell
用户密码文件
1 | [root@localhost ~]# cat /etc/shadow |
这里用“:”分割成九个字段
第一列:用户名
第二列:密码(加密后的密码)
第三列:密码最近修改日
第四列:密码不可修改天数(修改密码后,几天内不能修改密码,如果是0,随时可以修改)
第五列:密码重新修改的天数
第六列:密码失效前提前警告天数
第七列:密码失效宽限天数
第八列:账号失效日期
第九列:保留字段
用户组文件
1 | [root@localhost ~]# cat /etc/group |
这里用“:”分割成四个字段
第一列:用户组名称
第二列:用户组是否需要密码验证
第三列:用户组的GID(和/etc/passwd 里面的GID相对应)
第四列:所属用户组的用户