二、文件编辑器
打开文件
[root@qfedu.com ~]# vim 文件名
工作模式
vi与vim的四个模式
进入编辑模式
i #在光标所在处进入编辑模式
a #在当前光标后面进入编辑模式
o #在光标的下一行进入编辑模式
I #在光标所在处行首进入编辑模式
A #在光标所在处行尾进入编辑模式
O #在光标的上一行进入编辑模式
# 从编辑模式进入命令模式:ESC
命令模式
光标定位键盘:
0 $ #行首行尾
gg #页首--文本顶端
G(shift+g) #页尾--文本底部
3G #进入第三行 拓展:vim hello.txt +2(进入后光标直接在第二行)
:数字 #:5 就是进入第五行
/string #查找字符,n下一个,N上一个 (n N 可以循环的)
文本编辑
yy #复制
3yy #从光标开始复制3行。在最后粘贴
ygg #从当前光标复制到页首
yG #从光标开始复制到页尾
dd #剪切一行
3dd #从光标开始剪切3行
dgg #从光标开始剪切到页首
dG #从光标开始剪切到页尾
d^ #剪切当前光标之前的内容
p #粘贴到本行的下一行
大P #粘贴到本行的上一行
x #删除光标所在的字符
D #从光标处删除到行尾
u #undo撤销 ----------- 撤销完之后,如果想回滚,也就是想恢复上一步撤销,可以输入CTRL+r
r #可以用来修改一个字符
扩展命令(尾行)模式:
shift+: #进入尾行模式(扩展命令模式)
:10 #进入第10行
:w #保存
:q #退出
:wq #保存并退出
:q! #不保存并退出
:wq! 强制保存退出
:set mouse=a #进入鼠标模式,可以用鼠标操作 (大佬不屑于用,小白不会用)
进入其他模式
ctrl+v #进入可视块模式
要注释很多行时(也就是杰哥经典操作)---------- 首先第一步:ctrl+v,进入可视块模式
第二步:按住shift+i,进入编辑模式
第三步:进行修改
第四步:按两次esc,可以完成修改
shift+v #进入可视行模式
查找替换
语法----> :范围 s/old/new/选项
:s/world/nice/ #替换当前光标所在行的world改为nice
:3s/sbin/nice/ #替换指定行的sbin改为nice
:1,5 s/nologin/soso/ #从1-5行的nologin 替换为soso
:%s/bin/soso/ #替换所有行,但是一行如果有多个,只会默认修改每行第一个,除非在后面加一个g
:%s/sbin/nice/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,查看内容
修改时间:mtime,修改内容
改变时间:ctime,文件属性,比如权限,mv改名
查询示例
[root@qfedu ~]# ls -l passwd
-rw-r--r--. 1 root root 839 Oct 31 21:29 passwd
[root@qfedu ~]# 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用户管理
理解用户和组的意义
Linux的一大特性:
多用户、多任务。
所谓多用户多任务就是指可以在同一时间,有多个用户登录同一个系统执行不同的任务而互不影响。
假设现在有三个用户:root、lbb、mvv,三个用户同一时间登录了同一个系统,root去修改配置文件了,lbb去创建目录了,mvv去访问数据库了,每个用户互不干扰的独立执行自己的任务,并且每个用户不能够越线去访问其他用户正在操作的目录或执行其他用户下的任务,由此可见,不同的用户是拥有各自不同的权限的,Linux通过权限的划分和管理来实现多用户、多任务的运行机制。
Linux中的用户及其角色划分
账户为分三类:
超级用户(管理员):享有最高权限,具备系统中的所有权限(一般为root),UID为0
系统用户 :别称“伪用户”,无法登录系统,其主要作用是支撑系统运行,方便系统管理。uid号码小于1000.
普通用户:有权限限制,只能对自己目录下的文件进行操作,可以登录系统。uid 大于1000,登陆shell是bin/bash。
任何一个账户在创建的同时都会在系统里面创建一个同名的组。
用户概览
用户/组基本概念!
Users and groups:
系统上的每个进程(运行的程序)都是作为特定用户运行的
. Every file is owned by a particular user.
每个文件是由一个特定的用户拥有 .
. Access to files and directories are restricted by user.
访问文件和目录受到用户的限制
用户管理
用户组
创建组
[root@qfedu ~]# groupadd hr #创建一个用户组叫hr
[root@qfedu ~]# groupadd it #创建一个用户组叫it
[root@qfedu ~]# groupadd net01 -g 2000 #创建组叫net01,并指定gid为2000
[root@qfedu ~]# grep 'net01' /etc/group #查看/etc/group中组net01信息
net01:x:2000:
删除组
*[root@qfedu ~]# groupdel net01 #删除组net01
注意:用户的主属组不能删除
/etc/group ----->查看组的文件
/etc/group文件详解:
查看组
*[root@qfedu ~]#cat /etc/group
查看组之后 以:为分割,每个空代表着----> 组名:代表组密码:gid:组员
用户
==创建用户 未指定选项==
*[root@qfedu ~]# useradd user01 //创建用户
/etc/passwd ---->查看账户是否存在的文件
/home/ ---->用户的家目录,每创建一个用户会在/home目录下面创建对应的家目录
/etc/shadow --->用户的密码文件
/etc/passwd文件详解–案例:
此文件里面除了密码字段能删除不能直接修改之外,其他字段全部都能直接修改
*[root@qfedu ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
分隔符::
第一列:用户名
第二列:密码
第三列:用户标识号--->(uid)是一个整数,系统内部用它来标识用户。通常用户标识号的取值范围是0~65535。0是超级用户root的标识号
第四列:gid
第五列:描述信息。
第六列:家目录
第七列:是用户登陆到界面的第一个命令,开启一个shell。登陆shell
1.判断用户是否存在:
[root@qfedu ~]# id user01 //查看用户的uid、gid、和所在组
uid=1001(user01) gid=1003(user01) groups=1003(user01)
主属组 附属组
uid 系统用来识别账户的user identify
gid 系统用来识别组的group identify
2.查看现在所使用的的账户:
[root@qfedu ~]# whoami 查看我现在所使用的账户
创建用户(带有选项)
[root@qfedu ~]# useradd user02 -u 503 #指定uid为503
*[root@qfedu ~]# useradd user05 -s /sbin/nologin #创建用户并指定shell
[root@qfedu ~]# useradd user07 -G it,fd #创建用户,指定附加组
[root@qfedu ~]# useradd user07 -g it #创建用户,指定主属组
useradd user07 -aG it,fd #追加进it和fd组 (在G前加了a)
[root@qfedu ~]# useradd user10 -u 4000 -s /sbin/nologin
删除用户
*[root@qfedu ~]# userdel -r user02 //删除用户user2,同时删除用户家目录
用户密码
*[root@qfedu ~]# passwd alice #root用户可以给任何用户设置密码
[root@qfedu ~]# passwd #root用户给自己设置密码
[root@qfedu ~]# su - alice
[alice@qfedu ~]$ passwd #普通用户只能给自己修改密码,而且必须提供原密码
用户操作
1.修改UID
-u
[root@qfedu ~]# usermod -u new_id jack
[root@qfedu ~]# id jack
uid=1005(jack) gid=1004(jack) groups=1004(jack)
2.修改用户的登录shell
-s
[root@qfedu ~]# usermod -s /sbin/nologin user07 #修改用户的登录shell
3、修改用户的组
suermod -G wc user07 ------>用于已经创建了的用户进行修改组,如果要创建用户时就添加想要的组直接输入:useradd - G wc user07
*usermod -aG - if user07 ------>追加到if组里
组成员管理
注意:只针对已存在的用户
1.给组添加账户
-a
[root@qfedu ~]# gpasswd -a user10 grp2
Adding user user10 to group grp2
2.同时添加多个用户到组
-M:members成员的缩写
[root@qfedu ~]# gpasswd -M tom,alice it
3.从组删除用户1
-d
*[root@qfedu ~]# gpasswd -d user07 hr
Removing user user07 from group hr
另一种方式的修改普通用户密码