Linux基础(二)

Linux基础(二)

Linux基础(二) 4、vim编辑器 5、运行级别 6、用户与用户组管理


Linux基础

一、Linux基础(一)

​ 1、linux简介

​ 2、Linux基本目录结构

​ 3、Linux基本指令

二、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为1

    init 0:关机

    init 3:切换到不带桌面的模式

    init 5:切换到图形界面

    init 6:重启

    runlevel:查看当前运行级别

    注意:init指令需要超级管理员的权限,普通用户无法执行。且只能临时切换运行级别,重启失效,如需持久改变运行级别,需将/etc/inittab文件中的initdefault值设置成3(或者其他运行级别),然后重启操作系统。

  • CenOS7

    第一个启动的进程:systemd,进程id为1

    systemctl 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文件的更新。

三个主要配置文件。

  1. /etc/passwd:配置用户的关键信息


    存储格式:用户名:用户密码:用户ID:用户组ID:注释:家目录:解释器shell

    • 用户名:创建新用户名称,后期登录的时候需要输入
    • 用户密码:此密码位置一般情况都是“x”,表示密码的占位
    • 用户ID:用户的识别符
    • 用户组ID:该用户所属的主组ID
    • 注释:解释该用户是做什么用的
    • 家目录:用户登录进入系统之后默认的位置
    • 解释器shell:等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,传递给内核处理
  2. /etc/group:配置用户组的关键信息


    存储格式:用户组名:用户组密码:用户组ID

    • 用户组名:用户组的名称,有字母或数字构成

    • 用户组密码:此密码位置一般情况都是“x”,表示密码的占位

    • 用户组ID:用户组的识别符

    • 组中的用户:列出

  3. /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 用户组名:不加任何选项,删除用户组,如果用户组是用户的用户主组,则需先将用户移除用户组再删除。


学习所得,资料、图片部分来源于网络,如有侵权,请联系本人删除。

才疏学浅,若有错误或不当之处,可批评指正,还请见谅!


 
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×