Linux基础(二) 4、vim编辑器 5、运行级别 6、用户与用户组管理
Linux基础
1、linux简介
2、Linux基本目录结构
3、Linux基本指令
4、vim编辑器
5、运行级别
6、用户与用户组管理
4、vim编辑器
vim简介
vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
vim的配置
在文件打开的时候在末行模式下输入的配置(临时的)
个人配置文件(~/.vimrc,如果没有可以自行新建)
全局配置文件(vim自带,/etc/vimrc)
配置文件配置如下,后续打开文件将默认显示行号
如果针对同一个配置项,个人配置文件中存在,则以个人配置文件为准,如果个人配置文件中不存在这一项,则以全局配置文件为准
vim的三种模式
- 命令模式:在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(删除行,复制行,移动光标,粘贴等等,打开文件之后默认进入的模式)。
- 编辑模式:又称输入模式,在该模式下可以对文件的内容进行编辑。
- 末行模式:又称底线命令模式可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等)。
实际上还有一种模式称之为可视化模式,可由命令模式进入(Ctrl + V进入可视块模式,单独V进入可视行模式,单独v进入可视模式,Esc可退回命令模式)
三种模式间的切换
vim打开文件的方式
- vim 路径:打开指定路径的文件,文件默认维持原来的状态(包括光标位置、高亮字符等)。
- vim +数字 路径:打开指定路径的文件,并且将光标移动到指定数字行。
- vim +/字符 路径:打开指定路径的文件,并且高亮显示指定字符。
- vim 路径1 路径2:同时打开多个指定路径的文件。
vim退出文件的方式(末行模式)
:w: 保存文件但不退出vim。
:w 路径:将修改另外保存到指定路径文件中,不退出vim。
**:w!**:强制保存,不推出vim。
:x:保存文件并退出vim,如果文件没有被修改,文件修改时间不会被更新。
:wq:保存文件并退出vim,如果文件没有被修改,文件修改时间会被更新。
**:wq!**:强制保存文件,并退出vim。
:q:不保存文件,退出vim。
**:q!**:不保存文件,强制退出vim。
**:e!**:放弃所有修改,从上次保存文件开始再编辑。
命令模式
光标移动
光标移动到首行
按键:^ ( 即shift + 6)
光标移动到行尾
按键:$( 即shift + 4)
光标移动到首行
按键:gg
光标移动到尾行
按键:G
快速将光标移动到指定行
按键:数字G(先按数字指定行数再按G)
以当前光标为准向上/向下移动n行
按键:数字↑(先按数字指定行数再按方向键↑指定向上移动)
按键:数字↓(先按数字指定行数再按方向键↓指定向下移动)
以当前光标为准向左/向右移动n字符
按键:数字←(先按数字指定字符数再按方向键←指定向左移动)
按键:数字→(先按数字指定字符数再按方向键→指定向右移动)
翻屏
按键:Ctrl + B(快捷键) 或者 PgUp(向上翻屏)
按键:Ctrl + F (快捷键) 或者 PgDn(向下翻屏)
复制粘贴
粘贴
按键:p(配合复制或者剪切使用)
复制光标所在行
按键:yy
以光标所在行为准,包括当前行,向下复制指定行数
按键:数字yy(先按数字指定行数再按yy)
可视化复制(可视化模式命令)
按键:Ctrl + V(进入可视块模式,单独V进入可视行模式,单独v进入可视模式) ,然后按下↑↓←→方向键来选中,配合y键复制
剪切/删除
剪切/删除光标所在行
按键:dd(删除之后下一行上移,严格意义上说是剪切命令,但是如果剪切了不粘贴就是删除的效果)
剪切/删除光标所在行为准(包含当前行),向下剪切/删除指定的行
按键:数字dd(删除之后下一行上移,先按数字指定行数再按dd)
剪切/删除光标所在的当前行之后的内容,但是删除之后下一行不上移
按键:D(删除之后当前行会变成空白行)
可视化删除(可视化模式命令)
按键:Ctrl + V(快捷键) ,然后按下↑↓←→方向键来选中,配合y键剪切/删除
撤销/恢复
撤销
按键u
恢复
按键:Ctrl + R(快捷键)
末行模式
以下命令需要按下回车键后才会生效
光标移动到指定行
输入::数字
撤销
输入::u
调用外部命令
输入::!外部命令(如“:!ls -a /”,列出“/”目录下的所有文件)
搜索/查找
输入:/关键词(关键词将高亮显示,通过按键N/n切换上/下一个结果)
关闭高亮
输入::nohl
显示、取消行号
输入::set nu(临时显示行号)
输入::set nonu(取消行号)
显示、关闭代码着色
输入::syntax on(显示代码着色)
输入::syntax off(关闭代码着色)
替换
替换光标所在行的第一处符合条件的内容
输入::s/搜索的关键词/替换的内容
替换光标所在行的全部符合条件的内容
输入::s/搜索的关键词/替换的内容/g
替换整个文档中每行第一个符合条件的内容
:%s/搜索的关键词/替换的内容
替换整个文档的符合条件的内容
:%s/搜索的关键词/新的内容/g
查看当前已经打开的文件名称
输入::files(“%a”标识正在打开的文件;“#”标识上一个打开的文件)
切换已打开的文件
输入::open 文件名称
切换上一个文件/下一个文件
输入::bn(切换到下一个文件)
输入::bp(切换到上一个文件)
编辑模式
进入方式
按键:i(在光标所在字符前开始插入)
按键:a(在光标所在字符后开始插入)
按键:o(在光标所在行的下面另起一行插入)
按键:I(在光标所在行的行首开始插入,如果行首有空格则在空格之后插入)
按键:A(在光标所在行的行尾开始插入)
按键:O(在光标所在行的上面另起一行插入)
按键:S(删除光标所在行并开始插入)
调用计算器
按键:Ctrl + R + =(先按Ctrl + R,再按等号,输入需要计算的信息后按回车返回结果)
5、运行级别
管理机制
CentOS 6 的服务管理机制是 systemv,采用 service 命令来管理所有的服务。
从 CentOS 7 开始,服务从原来的由 systemv 管理机制升级到了systemd,统一采用 systemctl 命令来管理所有的服务。因此以前运行级别(runlevel)的概念被新的运行目标(target)所取代,target的命名类似于“multi-user.target”这种形式,比如原来的运行级别3(runlevel3)对应于新的多用户目标“multi-user.target”,运行级别5(runlevel5)对应于“graphical-user.target”。因为 systemd 机制不再使用 runlevel 的概念,所以 /etc/inittab 也不再被系统使用。
init | systemd | 说明 |
---|---|---|
0 | poweroff.target | 关机 |
1 | recure.target | 单用户模式(用于维护,无需用户名、密码登录) |
2 | multi-user.target | 多用户模式(不启用网络功能) |
3 | multi-user.target | 多用户模式(启用网络),命令行界面 |
4 | multi-user.target | 未定义 |
5 | graphical.target | X11 图形界面 |
6 | reboot.target | 重启 reboot |
CentOS6
第一个启动的进程:
init
,进程id为1init 0:关机
init 3:切换到不带桌面的模式
init 5:切换到图形界面
init 6:重启
runlevel:查看当前运行级别
注意:init指令需要超级管理员的权限,普通用户无法执行。且只能临时切换运行级别,重启失效,如需持久改变运行级别,需将/etc/inittab文件中的initdefault值设置成3(或者其他运行级别),然后重启操作系统。
CenOS7
第一个启动的进程:
systemd
,进程id为1systemctl isolate multi-user.target:临时切换运行级别,重启失效
systemctl get-default multi-user.target:查看当前默认运行级别
systemctl set-default multi-user.target:设置默认运行级别,持久有效
注意:CentOS7中
init
仍有效,但配置文件无效
CentOS 6 的服务管理机制是 systemv,采用 service 命令来管理所有的服务。
6、用户与用户组管理
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个唯一的用户名。用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的主目录。用户的管理涉及用户的添加、删除和修改以及用户密码的设置。用户的增加、删除和修改实际上就是对/etc/passwd文件的更新,用户名的设置实际上就是对/etc/shadow文件的更新。
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
三个主要配置文件。
/etc/passwd:配置用户的关键信息
存储格式:用户名:用户密码:用户ID:用户组ID:注释:家目录:解释器shell- 用户名:创建新用户名称,后期登录的时候需要输入
- 用户密码:此密码位置一般情况都是“x”,表示密码的占位
- 用户ID:用户的识别符
- 用户组ID:该用户所属的主组ID
- 注释:解释该用户是做什么用的
- 家目录:用户登录进入系统之后默认的位置
- 解释器shell:等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,传递给内核处理
/etc/group:配置用户组的关键信息
存储格式:用户组名:用户组密码:用户组ID用户组名:用户组的名称,有字母或数字构成
用户组密码:此密码位置一般情况都是“x”,表示密码的占位
用户组ID:用户组的识别符
组中的用户:列出
/etc/shadow:配置用户的密码信息
存储格式:用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段- 用户名:创建新用户名称,后期登录的时候需要输入
- 加密密码:这里保存的是真正加密的密码。目前 Linux 的密码采用的是 SHA512 散列加密算法,原来采用的是 MD5 或 DES 加密算法(所有伪用户的密码都是 “!!” 或 “*”,代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,那么它的密码项也是 “!!”,代表这个用户没有密码,不能登录。)
- 最后一次修改时间:此字段表示最后一次修改密码的时间(单位为天,距离1970-01-01的天数)
- 最小修改时间间隔:下一次可修改密码的间隔时间(如果为10,代表“最后一次修改时间”过去10天后才能再次修改密码)
- 密码有效期:密码有效时间(如果为10,代表“最后一次修改时间”之后的10天内密码有效,失效后密码将进入过期阶段)
- 密码需要变更前的警告天数:可以设定密码过期前进行警告提醒(如果为10,代表“密码有效期”的最后10天,每次登录系统都会向该账户发出 “修改密码” 的警告信息)
- 密码过期后的宽限时间:在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用
- 账号失效时间:该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!
- 保留字段:这个字段目前没有使用,等待新功能的加入
忘记密码怎么办?
对于普通账户的密码遗失,可以通过 root 账户解决,它会重新给你配置好指定账户的密码,而不需知道你原有的密码(利用 root 的身份使用 passwd 命令即可)。
如果 root 账号的密码遗失,则需要重新启动进入单用户模式,系统会提供 root 权限的 bash 接口,此时可以用 passwd 命令修改账户密码;也可以通过挂载根目录,修改 /etc/shadow,将账户的 root 密码清空的方法,此方式可使用 root 无法密码即可登陆,建议登陆后使用 passwd 命令配置 root 密码。
用户管理
useradd:添加用户。
useradd 用户名:不加任何选项,创建一个用户,创建同名的家目录,创建同名的用户组。
useradd 选项 选项值 用户名:根据选项创建一个用户。
useradd -g 用户组ID/用户组名 用户名:创建用户时指定用户的用户主组,选项的值可以是用户组的id,也可以是组名。
指定用户主组,将不会额外创建跟用户同名的用户组。
useradd -G 用户组ID/用户组名 用户名:创建用户时指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名。
指定用户附加组,将会额外创建跟用户同名的用户组。
useradd -u 用户ID 用户名:创建用户时指定用户的用户ID。系统默认会从500之后按顺序分配用户ID,如果不想使用系统分配的,可以通过该选项自定义。
useradd -c 注释 用户名:创建用户时指定注释。
usermod:修改用户。
usermod 选项 选项值 用户名:根据选项修改一个用户。
usermod -g 用户组ID/用户组名 用户名:修改用户的用户主组,选项的值可以是用户组的id,也可以是组名。
usermod -G 用户组ID/用户组名 用户名:修改用户的用户附加组,选项的值可以是用户组的id,也可以是组名。
usermod -u 用户ID 用户名:修改用户的用户ID。
usermod -c 注释 用户名:修改用户的注释。
usermod -l 新用户名 用户名:修改用户的用户名。
userdel:删除用户。
userdel 用户名:不加任何选项,删除用户,如果同名用户主组下没有其他用户将会同时删除同名用户主组。
userdel 选项 用户名:根据选项删除用户。
userdel -r 用户名:删除用户的同时,删除其家目录。
passwd:设置用户密码。
passwd 用户名:设置用户密码。Linux不允许没有密码的用户登录到系统,因此前面创建的用户目前都处于锁定状态,需要设置密码之后才能登录计算机。
用户组管理
groupadd:添加用户组。
groupadd 用户组名:不加任何选项,创建一个用户组。
groupadd 选项 用户组名:根据选项创建一个用户组。
groupadd -g 用户组ID 用户组名:创建用户组时指定用户组的用户组ID。如果自己不指定,则默认从500之后递增。
groupmod:修改用户组。
groupmod 选项 选项值 用户组名:根据选项修改一个用户组。
groupmod -g 用户组ID 用户组名:修改用户组的用户组ID。
groupmod -n 新用户组名 用户组名:修改用户组的用户组名。
groupdel:删除用户组。
groupdel 用户组名:不加任何选项,删除用户组,如果用户组是用户的用户主组,则需先将用户移除用户组再删除。
学习所得,资料、图片部分来源于网络,如有侵权,请联系本人删除。
才疏学浅,若有错误或不当之处,可批评指正,还请见谅!