一.vim编辑器
1.编辑器介绍
vi/vim是visual interface的简称,是Linux中最经典的文本编辑器,同图形化界面中的文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择,粗暴理解相当于windows下的记事本。
vim是vi的加强版本,兼容vi的所有指令,不仅能编辑文本,而且还具有shell程序编辑的功能,可以不同颜色的字
体来辨别语法的正确性,极大方便了程序的设计和编辑性。我们现在一般都有vim了,不再提vi。
2.编辑器工作模式
命令模式( Command mode ):命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。此模型下,不能自由进行文本编辑。
输入模式(Insert mode ):也就是所谓的编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑。
底线命令模式(Last line mode ):以:开始,通常用于文件的保存、退出。
文件进入即为命令模式,三种状态的切换如下所示:
3.使用语法
vi
文件路径
vim 文件路径
如果文件路径表示的文件不存在,那么此命令会用于在该路径创建一个新文件并编辑它;如果文件路径表示的文件存在,那么此命令用于编辑已有文件。
4.命令模式下的常用快捷键
序号 快捷键 描述
1 i 进入插入模式
2 a 在光标后插入
3 A 在行尾插入
4 o 在当前行下面新建一行并插入
5 O 在当前行上面新建一行并插入
6 w 光标向前移动一个词
7 b 光标向后移动一个词
8 0 移动到行首
9 $ 移动到行尾
10 yy 复制当前行
11 p 粘贴
12 u 撤销
13 ctrl + r 重做
14 :w 保存文件
15 :q 退出 Vim
16 :q! 强制退出 Vim,不保存修改
命令模式下的快捷键非常多,这里只是列出几个,更多的快捷键大家可以自己探索。
5.底线命令模式下的常用快捷键
序号 快捷键 描述
1 :w 保存文件
2 :q 退出 Vim
3 :q! 强制退出 Vim,不保存修改
4 :wq 保存文件并退出 Vim
5 :x 保存文件并退出 Vim
6 :set nu 显示行号
7 :set nonu 取消显示行号
8 /string 搜索字符串 string(按 n 键查找下一个匹配项)
9 ?string 反向搜索字符串 string(按 N 键查找上一个匹配项)
10 :s/old/new/g 替换每一行中的所有 old 字符串为 new 字符串
11 :help 打开 Vim 帮助文档
12 :set number 显示行号
13 :set nonumber 隐藏行号
6.演示
这个是一个动态的连续过程,不好用一张图表达,大家自己尝试。
二.用户权限
1.基本认知
首先,哪怕你没学习,也应该知道我们普通用户在很多地方是受限的,提示需要管理员用户权限,在Linux中,我们把管理员用户称为root用户,其拥有操作系统的最大权限。
普通用户的权限,一般在其HOME目录内是不受限的。一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限。
2.su-exit
1.基本认知
- 语法1: su [-] [用户名]
- 作用:用于账户切换
- [-] : 符号是可选的,表示是否在切换用户后加载环境变量
- 参数:用户名,表示要切换的目标用户,也可以省略,省略表示默认切换到root
2.情况说明
- 切换用户后,可以通过exit命令回到上一个用户,也可以使用快捷键ctrl+d
- 使用普通用户,切换到其它用户需要输入密码,如切换到root用户
- 使用root用户切换到其它用户,无需密码,可以直接切换
3.sudo
1.作用
我们虽然可以切换到root用户,但是一般不建议长期使用root用户,避免带来系统损坏。一般我们使用普通用户,在执行某个命令权限不够时,可以使用sudo为命令授权,临时以root用户权限执行。
2.运用
- 语法:sudo 其他命令
- 作用:为这条命令授予root用户权限
但是并不是所有的用户都有权利使用sudo,为普通用户配置sudo认证才行。
4.配置sudo认证
流程:
- 切换到root用户,执行visudo命令
- 在打开的文件最后一行添加 用户名 ALL=(ALL) NOPASSWD:ALL
- 通过:wq保存
- 切换回普通用户即可
NOPASSWD:ALL的意思是普通用户使用sudo命令时不需要输入密码。
三.用户与用户组
1.个人理解
用户我们应该都知道,但是在Linux中也是支持用户组的,用户组即多个用户构成的一个小组。就类比于一个班级,老师就是root用户,ABC普通用户构成一小组,DEF普通用户构成二小组,同时有GHF三个普通用户没有构成小组,这种情况也是允许的,每个小组各包含三个普通用户。
这里需要补充一点,有可能分组时有某个用户特殊,它既是一小组也是二小组,这种情况在Linux中也是允许的。
所以理解用户与用户组之后,我们可以知道Linux中关于权限的管控级别有2个级别,分别是:
针对用户的权限控制
针对用户组的权限控制
比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限。
2.用户组管理
首先我们需要知道,只有root用户才能进行用户组管理哦,root用户通过以下命令来管理用户组:
- groupadd 用户组名:创建用户组
- groupdel 用户组名:删除用户组
3.用户管理
1.创建用户
语法:useradd [-g -d] 用户名
选项1:-g 用来指定用户组,如果不使用-g会自动创建一个和用户同名的组并加入。例如useradd text表示建立一个text用户并使他加入一个叫text的组中。
选项2:-d 用来指定用户的home路径,如果不使用那么创建的用户默认的home路径就是/home/用户名。
2.删除用户
- 语法:userdel [-r] 用户名
- 选项:-r 用来删除用户的home目录,不使用-r删除用户时home目录会保留
3.查看用户所属组
- 语法:id [用户名]
- 参数:如果不填用户名,表示查看自己
补充:root用户可以使用该命令查看所有普通用户的组,普通用户也可以使用该命令但仅可查看自己。
4.修改用户所属组
- 语法:usermod -aG 用户组 用户名
- 作用:使指定用户加入指定用户组
注意:用户加入指定用户组后,它也还是它原来用户组的。
5.getent
1.基本认知1
- 语法:getent passwd
- 作用:查看当前系统中有哪些用户
注意:getent passwd用来查看哪些用户,聪明如你应该知道getent还可以查看其他内容,这里的语法仅仅使查看用户的命令,没有系统的解释getnet用法,可以自己探索。
2.补充2
如果你使用过getent passwd,你会发现它每行输出一个用户但还有其他信息,那么其他信息到底是什么呢?格式如下:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
3.基本认知2
- 语法:getent group
- 作用;显示当前系统有哪些组
4.补充2
输出信息有三组,格式如下:组名称:组认证(显示为x):组ID
6.结果演示
四.权限信息
1.权限信息位置
2.认知权限细节
通过1我们知道权限控制信息的位置,下面来详细认识权限信息:
下面通过一个例子来详细了解:现在有 drwxr-xr-x,表示
这是一个文件夹,首字母d表示
所属用户权限是:rwx,可读,可写,可执行
所属用户组权限:r-x,可读,不可写,可执行
其他用户权限:r-x,可读,不可写,可执行
补充:rwx,大家或多或少都接触一点,rw好理解,就是x可能有点难以理解,x表示可以将文件作为程序执行或可以将工作目录改到此文件夹。
五.修改权限信息
前面我们知道可以查看文件或文件夹的权限信息,现在学习怎么修改权限信息
1.修改权限
只有文件、文件夹的所属用户和root用户可以进行修改
2.chmod
- 语法:chmod [-R] 权限 文件或文件夹
- 选项:-R 表示对文件夹的全部内容应用同样的操作
示例:
chmod u=rwx g=r-x o=–x hello.txt 表示把hello.txt文件的权限修改为 u=rwx g=r-x o=–x
chmod -R u=rwx g=r-x o=–x text 表示把文件夹text及其里面全部内容权限修改为 u=rwx g=r-x o=–x
3.数字序号表示权限
权限可以用3位数字来代表,第-位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。
数字的细节如下: r记为4, w记为2, x记为1,可以有:
0:无任何权限, 即—
1:仅有x权限,即–x
2:仅有w权限,即-w-
3:有w和x权限 即-wx
4:仅有r权限,即r–
5:有r和x权限,即r-X
6:有r和w权限,即 rw-
7:有全部权限,即 rwx
所以我们之前的命令chomd u=rwx g=r-x o=--x hello.txt 可以修改为chowd 751 hello.txt
4.chown
通过前面学习,知道可以使用chmod修改序号1部分的文件控制信息,同时也可以使用chown命令修改序号2、3部分的用户、用户组信息。
语法:chown [-r] [用户]:[用户组] 文件或文件夹
选项:-R,同chmod,对文件夹里面的内容应用相同规则
:用于分隔用户和用户组
补充:如果 [用户]:[用户组] 的参数只有一个表示只修改用户信息。
只有root用户才能使用这个命令修改用户、用户组的信息。
六.说明
新星计划:Linux运维@刘晨阳导师创作打卡2!