一、ViM
VI 与vim的三个模式

命令模式
光标定位键盘:
hjkl #上下左右
0 $ #行首行尾
gg #页首
G(shift+g) #页尾
3G #进入第三行
/string #查找字符,n下一个,N上一个 (n N 可以循环的)
o #插入下一行
O #插入上一行
文本编辑
yy #复制
3yy #从光标开始复制3行。在最后粘贴
ygg #从当前光标复制到行首
yG #从光标开始复制到行尾
d #剪切一行,p粘贴后原剪切内容才会消失
dd #剪切一行
3dd #从光标开始删除3行
dgg #从光标开始删除到页首
dG #从光标开始删除到页尾
p #粘贴到本行的下一行
大P #粘贴到本行的上一行
x #删除光标所在的字符
D #从光标处删除到行尾
u #undo撤销
r #可以用来修改一个字符
进入其它模式:
a #在当前光标后面进入插入模式
i #在光标所在处进入插入模式
A #在行尾进入插入模式
shift+: #进入末行模式(扩展命令模式)
ctrl+v #进入可视块模式
shift+v #进入可视行模式
扩展命令模式:
:10 #进入第10行
:w #保存
:q #退出
:wq #保存并退出
:q! #不保存并退出
:wq! 强制保存退出
查找替换
语法----> :范围 s/old/new/选项
:1,5 s/nologin/soso/ #从1-5行的nologin 替换为soso
:%s/bin/soso/g #全局
注释:%表示全文 g表示全局
读入文件/写文件(另存为)
语法----> :w 存储到当前文件
:w /tmp/aaa.txt #另存为/tmp/aaa.txt
:1,3 w /tmp/2.txt #从1-3行的内容另存为/tmp/2.txt
设置环境 :
:set nu #设置行号
:set list #显示控制字符
:set nonu #取消设置行号
二、文件基本信息
时间类型
访问时间:atime,查看内容 //RHEL6会延后修改atime
修改时间:mtime,修改内容
改变时间:ctime,文件属性,比如权限,mv改名
查询示例
[root@biudefor ~]# ls -l passwd
-rw-r--r--. 1 root root 839 Oct 31 21:29 passwd
[root@biudefor ~]# stat passwd
File: ‘passwd’
Size: 839 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 33583688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2019-10-31 21:29:40.750993492 +0800
Modify: 2019-10-31 21:29:36.449993550 +0800
Change: 2019-10-31 21:29:36.452993550 +0800
Birth: -
ls -l 文件名 仅看的是文件的修改时间
三、Linux用户管理
1 用户概览
1.1. 用户/组基本概念!
Users and groups:
系统上的每个进程(运行的程序)都是作为特定用户运行的
. Every file is owned by a particular user.
每个文件是由一个特定的用户拥有 .
. Access to files and directories are restricted by user.
访问文件和目录受到用户的限制
2 用户管理
2.1 用户组
[root@biudefor ~]# groupadd hr //创建一个用户组叫hr
[root@biudefor ~]# groupadd market //创建一个用户组叫market
[root@biudefor ~]# groupadd net01 -g 2000 //创建组叫net01,并指定gid为2000
[root@biudefor ~]# grep 'net01' /etc/group //查看/etc/group中组net01信息
net01:x:2000:
[root@biudefor ~]# groupdel net01 //删除组net01
/etc/group ----->查看组的文件
/etc/gshadow --->组的密码文件
/etc/group文件详解:
组名:组名是用户组的名称,由字母或数字构成,组名不应重复。
口令:口令字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是x。
组标识号(gid):组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。别称GID.
组内用户列表:是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。
2.2 用户
创建用户 未指定选项
[root@biudefor ~]# useradd user01 //创建用户
账户为分两类:
系统账户 :uid号码小于1000.
普通账户:uid 大于1000,登陆shell是bin/bash。
任何一个账户在创建的同时都会在系统里面创建一个同名的组。
/etc/passwd ---->查看账户是否存在的文件
/home/ ---->用户的家目录,每创建一个用户会在/home目录下面创建对应的家目录
/etc/shadow --->用户的密码文件
/etc/passwd文件详解--案例:
[root@biudefor ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
分隔符::
第一列:用户名
第二列:密码
第三列:用户标识号--->(uid)是一个整数,系统内部用它来标识用户。一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。通常用户标识号的取值范围是0~65535。0是超级用户root的标识号,1~99由系统保留,
第四列:gid
第五列:描述信息。
第六列:家目录
第七列:是用户登陆到界面的第一个命令,开启一个shell。登陆shell
[root@biudefor ~]# id user01 //查看用户的uid、gid、和所在组
uid=1001(user01) gid=1003(user01) groups=1003(user01)
2.3.创建用户(带有选项)
[root@biudefor ~]# useradd user02 -u 503 //创建用户user02并指定uid为503
[root@biudefor ~]# useradd user05 -s /sbin/nologin //创建用户并指定shell
[root@biudefor ~]# useradd user07 -G hr,it,fd //创建用户,指定附加组
[root@biudefor ~]# useradd user10 -u 4000 -s /sbin/nologin //指定uid和shell
2.4删除用户
[root@biudefor ~]# userdel user10 //删除用户user10,但不删除用户家目录和mail
[root@biudefor ~]# ll -d /home/user10/
drwx------. 2 4000 4000 62 Nov 1 12:05 /home/user10/
[root@biudefor ~]# userdel -r user02 //删除用户user2,同时删除用户家目录和mail
用户密码
[root@biudefor ~]# passwd alice //root用户可以给任何用户设置密码
[root@biudefor ~]# passwd //root用户给自己设置密码
[root@biudefor ~]# su - alice
[alice@biudefor ~]$ passwd //普通用户只能给自己修改密码,而且必须提供原密码
3 组成员管理
注意:只针对已存在的用户
[root@biudefor ~]# usermod -G it user07 //覆盖原有的附加组
[root@biudefor ~]# usermod -aG hr user07 //增加新的附加组
[root@biudefor ~]# usermod -s /sbin/nologin user07 //修改用户的登录shell
[root@biudefor ~]# gpasswd -a tom hr //给组添加用户
Adding user tom to group hr
[root@biudefor ~]# gpasswd -M tom,alice it //-M:指定组成员
[root@biudefor ~]# gpasswd -d user07 hr //-d : 从组删除用户
Removing user user07 from group hr
例子:
目的:修改一些重要文件前一定要先备份,文件结尾用.bak
1.将/etc/sysconfig/network-scripts/ifcfg-ens33 复制到/tmp下并且重新命名为ifcfg-ens33.bak
# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /tmp/ifcfg-ens33.bak
2 在/etc/yum.repos.d/ 下创建 yumlist的文件夹。并且在此文件夹下创建 yum.repo文件
# mkdir /etc/yum.repos.d/yumlist
# touch /etc/yum.repos.d/yumlist/yum.repo
3 进入 yum.repo文件 编辑文件内容 hello world
# vim /etc/yum.repos.d/yumlist/yum.repo
# i
# hello world
4 将 hello world 复制10行后保存文件。
# yy 10p
5 将hello全部替换为 welcome
# %s/hello/welcome/g
6 快捷键删除第二行到行尾的文件内容,操作后不要保存,请直接退出
# 2G
# dG
# q!
7 将yum.repo文件 移动到/tmp下
# mv /etc/yum.repos.d/yumlist/yum.repo /tmp
8 在/tmp/yum.repo里显示行号
# set nu
9./etc/passwd 第二段是干什么的?以什么分割?
# 密码 :
10.给服务器添加3个账号 xiaozhang xiaoli xiaowang
# useradd xiaozhang
# useradd xiaoli
# useradd xiaowang
11.修改普通用户xiaowang 和root的密码
# passwd xiaowang
# passwd
12.创建用户jack和tom属于hr,wc组
# useradd jack -G hr wc
# useradd tom -G hr wc
13.创建用户tony,属于hr,不属于wc组,并且将3个人的密码修改为 qianfeng
# useradd tony -G hr
# passwd jack
# passwd tom
# passwd tony
14.将/etc/passwd前10行 内容写到 /tmp/passwd下。 然后将4-6行的 root换成haha
# 1,10 w /tmp/passwd
# 4,6 s/root/haha
网友评论