Linux基础
一,Vim编辑器三种模式
1、命令模式:在命令模式下,您可以执行Vim命令,例如复制、粘贴、搜索、替换等。
2、插入模式:在插入模式下,您可以插入文本。您可以在命令模式下输入“i”,以进入插入模式。
3、末行模式:在末行模式下,您可以执行命令,例如保存文件、退出编辑器等。您可以在命令模式下输入“:”,以进入末行模式。
二,vim相关操作
1. vim filename 打开或新建一个文件,并将光标置于第一行的首部
vim yunye
2. vim + filename 打开文件,并将光标置于最后一行的首部
vim + yunye
3. vim +n filename 打开文件,并将光标置于第 n 行的首部
vim +5 yunye
4. 进入文件输入gg,光标移动到首行。输入G光标移动到文件末行
5. set nu 显示行号
6. 关键字查询“/关键字”
7. :n1,n2 s/a1/a2/g 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换
8. 保存退出文件
:wq 保存并退出 Vim 编辑器
:wq! 保存并强制退出 Vim 编辑器
:q 不保存就退出 Vim 编辑器
:q! 不保存,且强制退出 Vim 编辑器
:w 保存但是不退出 Vim 编辑器
:w! 强制保存文本
:w filename 另存到 filename 文件
x! 保存文本,并退出 Vim 编辑器
三, Linux中“用户”和“组”分别是什么?OS是如何识别每个用户的?操作系统保存用户和组的信息的方式主要有几种?
linux中的用户:使用操作系统的人,在Linux系统中,每次登录系统都必须以一个用户的身份登录,并且登录后的权限也会根据用户身份来确定。 每一个进程在执 行时,也会有其用户,该用户也和进程所能控制的资源有关。
在Linux系统中,一共有三种类型的用户组即:
1 . root用户:root用户是UID和GID都等于0的用户,在Linux系统中有最大的权限,相当于系统中的上帝;
2 . 系统用户:通常用于运行服务,但是此用户无家目录,也不能用于登录系统。例如,在yum安装apache、nginx等服务后,就会自动创建apache和nginx的用户和同名用 户组。在CentOS6系统中,系统用户的UID范围是1-499,在CentOS7系统中,系统用户的ID是1-999。;
3 . 普通用户:普通用户只能由root用户创建,该用户拥有家目录,并且可以登录,该用户的权限由root分配。普通用户拥有指定的shell环境。
Linux中的用户组:具有相同系统权限的一组用户,可以赋予一组用户想要拥有的权限。
Linux用户和用户组的关系:每个用户都有自己的用户ID,称为UID,每个用户组也有自己的用户组ID,称为GID,UID和GID在Linux系统中是不可重复的。Linux系统就是通过UID和GID来对用户和组进行管理的,而对于管理员来说,往往会设置用户名和组名,这样使得用户和用户组的使用管理更人性化。
OS是识别每个用户: 基于ID的用户身份识别,在Linux系统下不同用户间的身份是靠它拥有一无二的ID来区分,ID是每个用户名称所对应的一个整数数字,这个数字也是用户权限的象征,ID值在一定范围内的用户它们就有相同的权限。
操作系统保存用户和组的信息的方式:
1,以文件的方式保存;
2, 以数据库方式保存;
3, 以ldap协议方式保存。
四,/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow 中各个文件中详细字段,截图演示
1,/etc/passwd 存储用户基本信息
1.1 用户名:一串代表用户身份的字符串;
1.2 密码占位符:”x” 表示此用户设有密码,但这个不是真正的密码,只是用”x“来用作代替,真正的密码保存在 /etc/shadow 文件中;
1.3 UID:用户 ID,每个用户都有唯一的一个 UID,Linux 系统通过 UID 来识别不同的用户;
1.4 GID:全称“Group ID”,简称“组ID”,表示用户初始组的组 ID 号;
1.5 注释信息:没有什么重要的用途,只是用来解释这个用户的意义;
1.5 家目录:用户登录后有操作权限的访问目录,通常称为用户的主目录;
1.6 默认shell:可以把这个字段理解为用户登录之后所拥有的权限。如果这里使用的是 bash 命令解释器,就代表这个用户拥有权限范围内的所有权限。
2. /etc/shadow 存储用户的密码信息,又称为“影子文件”,只有 root 用户拥有读权限,其他用户没有任何权限。
2.1 用户名:同 /etc/passwd 文件的用户名有相同的含义;
2.2 用户密码:这里保存的是真正加密的密码。目前 Linux 的密码采用的是 SHA512 散列加密算法,原来采用的是 MD5 或 DES 加密算法. SHA512 散列加密算法的加密等级更高,也更加安全;
2.3 最近一次密码的修改时间:从1970年1月1号开始至上次修改密码时,中间所经过的天数;
2.4 密码最长使用期限:两次修改密码的最长时间间隔;在密码到期时必须要修改密码,99999表示不需要修改;
2.5 密码最短使用期限:表示用户必须经过多少天才能修改其口令;如果设置成0,则禁用此功能;
2.6 告警时间:提前多少天通知用户口令即将过期,默认提前7天;
2.7 帐号的非活动天数:口令过期后多久禁用此用户,也就是说系统不会再让此用户登录,也不会提示用户过期,而是完全禁用此用户账号;
2.8 账号过期时间:指定的时间到达,即锁定此账号(从1970年1月1号开始的天数),如果这个字段的值为空,表示此账号永久可用;
2.9 保留字段:一般为空,为Linux以后发展保留的字段。
3. /etc/group 存储组的用户信息
3.1 用户组名:用户组的名字;
3.2 组密码:”x” 表示此用户设有密码,但这个不是真正的密码,只是用”x“来用作代替,真正的密码保存在 /etc/shadow 文件中;
3.3 GID:全称“Group ID”,简称“组ID”,表示用户初始组的组 ID 号;
3.4 组内多个用户列表:每个群组包含的所有用户。需要注意的是,如果该用户组是这个用户的初始组,则该用户不会写入这个字段,可以这么理解,该字段显示的用户都是这个用户组的附加用户。
4. /etc/gshadow 存储组的密码信息
4.1 组名称:组的名称;
4.2 组密码:空或!表示没有密码;
4.3 组管理者:可以为空,如果有多个管理者用逗号隔开;
4.4 组成员:如果有多个成员,用逗号隔开;
从用户的角度来说,Linux中的组类型有两种:
1、私有组:也叫“基本组”,创建用户时如果不指明其基本组,则会默认创建与用户同名的基本组;
2、额外组:每个用户可以同时加入多个组,用户另外加入的组称为该用户的额外组(附加组)。
5. 创建下面的用户、组和组成员关系
1)创建名字为admin的组
2)用户xiaoming,使用admin作为附属组
3)用户xiaowang,使用admin作为附属组
4)用户xiaoguang,在系统上不能访问可交互的shell且不是admin成员,xiaoming/xiaowang/xiaoguang密码都是hello ,实现登录效果,并展示详细用户权限截图,附截图。