目录
VIM文件编辑器
1. vim基础概述
- VIM新建文件
vim filename
2. VIM的三种模式
命令模式:当vim开始文件编辑时,默认进入该模式
在该模式下,通常操作:(上下左右移动光标,删除某个字符、行、多行,复制粘贴)
按键 | 作用 |
---|---|
h 或者向左的←方向键 | 光标向左移动一个字符 |
l 或者向右的→方向键 | 光标向右移动一个字符 |
k 或者向上的↑方向键 | 光标向上移动一个字符 |
j 或者向下的↓方向键 | 光标向下移动一个字符 |
Ctrl+B | 本文页面向前翻一页 |
Ctrl+F | 本文页面向后翻一页 |
0 或者 Shift +6 (即^ ) | 移动到本行行首 |
Shift +4 (即$ ) | 移动到本行行尾 |
gg | 移动到首行 |
G | 移动到尾行 |
nG (n是任意数字) | 移动到第n行 |
- | - |
x 和X | x表示向后删除一个字符,X 表示向前删除一个字符 |
nx | 向后删除n 个字符 |
dd | 删除(剪切)光标所在的行 |
ndd | 删除(剪切)光标所在的行之后的n 行 |
yy ; nyy | 复制光标所在行;向下复制n 行 |
p ; P | 从光标所在行开始,向 (下 ;上) 粘贴以及复制的内容 |
u : undo的意思 | 还原上一步操作 |
v | 按v 后移动光标会选定指定字符,然后可以实现复制(按y 复制)、粘贴等操作 |
Ctrl + v | 块选择 |
Ctrl + ] / Ctrl + t | 跳转到该函数的声明 / 从声明处原路返回 |
输入模式(编辑模式、插入insert模式):
- 在命令模式下,按`i`,进入输入模式
- 在输入模式下,按`ESC键`,进入命令模式
- 除了`i`可以进入输入模式,还可以由以下几种方式进入:
![在这里插入图片描述](https://img-blog.csdnimg.cn/6206fdf541d748aaa2945f6de05e2360.png)
底行模式:执行功能性操作,如保存、退出、查找、替换等
- 在命令模式下,按`:`,进入底行模式
- 在底行模式下,按`ESC`,返回命令模式
命令 | 作用 |
---|---|
/word | 在光标之后,查找第一个字符串word ,按n 向后继续搜索 |
?word | 在光标之前,查找第一个字符串word ,按n 向前继续搜索 |
:n1,n2s/word1/word2/g | 在
n
1
n_1
n1和
n
2
n_2
n2行之间查找字符串word1 ,并替换为word2 ,不加g 则只替换每行的第一个word1 |
:,$s/word1/word2/g | 将文档中所有的字符串word1 ,替换为word2 ,不加g 则只替换每行的第一个word1 |
- | - |
:w | 保存文本 |
:q | 退出Vim |
;w! | 强制保存,在root用户下,即使文本只读,也可以完成保存 |
:q! | 强制退出,所有改动不生效 |
:wq | 保存并退出 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:3,15> | 将第3行,15行整体缩进 |
用户及权限管理
1. 用户管理文件基础
Linux有三种不同类用户:
- 管理用户(root),root用户是在安装OS时,由系统自动创建,具有Linux的所有权限。(黑客的终极目标)
- 一般用户,即前面安装时创建的
aurora
。可以在OS中访问程序,如Vim,数据库,Web浏览器。可以创建保存文件到自己的HOME目录。无法修改系统配置文件 - 服务用户,用于apache、邮件、打印服务等系统服务。这些服务用户与Linux系统用户进行交互,通常不需要我们人为的去更改。
通常我们对Linux的操作过程是:使用普通用户登录进行查看,而需要修改Linux时,切换为root用户或使用root权限进行操作。
用户管理文件(/etc/passwd
文件):
包含每个用户的基本信息。用vim打开该文件,里面存放着用户的基本信息
/etc/passwd
共有7列,以:
隔开,依次解析如下:
username | password | User ID | Group ID | User info | Home Directory | Login Shell |
---|---|---|---|---|---|---|
代表用户名。 可以包含 数字 、- 、· 、_ ,但不能以- 开头,不能大于32 个字符 | 用户口令。 可以是 x 、* 或字母数字的随机组合;1. x :表示实际口令指向/etc/shadow ;2. * :表示禁用的用户;3. 随机字母数字 :表示加密后的口令 | 用户的数字ID; root默认是0, 普通用户默认从1000开始 | 用户所属的组ID。 默认情况下,Linux会给每个用户新建一个用户组,与数字ID匹配 | 类似于用户的备注信息,可以任意输入 | 用户的家目录。 即登陆后,用户默认所处的目录,默认在 /home/用户名 | 表示用户登录的shell。 1. 默认可登录的用户为 /bin/bash ,也可以自己定义一些其他的shell;2. 无法登陆的服务用户,默认为 /sbin/nologin ,表示无法登录 |
/etc/group
文件:在Linux中,每个用户都被分配到一个组名与用户名相同的组中。共有四列,依次解释如下:
Group name | Password | Group ID | Group members |
---|---|---|---|
每个用户都有与用户名相同的组,也是组的唯一名称 | 通常是x ,表示指向/etc/shadow 文件,也可以是字母数字的随机组合 | 同userID ,如果要创建一个特殊的组,表示管理员权限,建议分配一个独立的GID,避免GID滥用 | 表示组内成员,如 postfix 组 属于mail 组 |
/etc/shadow
文件:是/etc/passwd
文件的补充,包含8列信息
Username | Password | Password history | mindays | maxdays | warndays | inactive | disable |
---|---|---|---|---|---|---|---|
用户名 | 加密后的口令,对应在/etc/password第二列需要是x | 口令的最后修改日期 | 用户必须保持该口令的最小天数 | 口令的使用最长天数,在此之后必须更改口令 | 口令过期前,提供警告的天数 | 口令过期后任然可使用口令的天数,在此期间会提示修改口令 | 禁用账户后的天数 |
2. 用户管理命令
Linux(新增、删除)用户,用户组
- 新增用户:
useradd + 用户名
-u
:指定uid-g
:指定GID-d
:指定用户家目录-c
:输入备注信息-M
:表示不建立家目录-s
:自定义shell程序,不使用默认的/bin/bash
-e
:YYYY-MM-DD格式,输入用户的过期日期
- 也可以通过直接编辑
/etc/passwd
文件来添加用户,要确保以下几点- 添加用户的主目录,并确保你想添加的用户和用户组有目录所有权
- 确保编辑文件的格式正确
- 确保用户有与其名称对应的私有组
- 删除用户:
userdel + 用户名
-r
:一并删除用户的家目录
- 新增用户组(以前不存在):
groupadd -g + GID + groupname
- 注意:
groupadd
如果不加-g
指定GID,那系统会默认从1000后开始分配
- 注意:
- 删除用户组:
groupdel + groupname
- 删除时,如果组中由用户的“主要组”是此组,则不能删除,需要先删除用户(可以从password文件中看是否有主要组,即用户ID与组ID相同的就是主要组)
Linux将用户添加到组
- 将现有用户添加到辅助组(G),请使用带有
-G
选项usermod -G + groupname + username
- 将用户添加到多个辅助组
usermod -G + groupname1,groupname2 + username
- 我们必须使用
-g
改变用户的主要组(g)usermod -g + groupname + username
- 使用
id
命令进行验证id + username
Linux修改用户口令
Linux用户创建完成以后,默认是没有密码的,只有设置好密码,才能登录对应账户
passwd + username
3 用户切换
su + username
:切换为指定用户- 当由root切换到普通用户时,不用输入密码
4. 使用root权限
上面的su
命令必须要知道root密码才行。
但是root密码是一个非常敏感的密码,为了保障root密码的安全,Linux OS设计了sudo
这个命令,即用root的身份执行一个命令,而不是切换为root用户。使用sudo
时需要输入当前用户自身的密码
- 普通用户如果需要使用
sudo
,必须经过root的设置(允许)才可以 sudo
通过 visudo 工具来实现,Centos7默认已经安装有 visudo。如果没有sudo命令,可以通过yum install sudo
来安装- 设置方法:
- 使用
root
用户,编辑/etc/sudoers
文件 - 在
/etc/sudoers
中找到如下行: - 在
/etc/sudoers
中找到如下行:
%wheel
:代表用户组- 此行含义是允许
wheell用户组
的用户执行 sudo 中任何命令 - 因此,将我们创建的aurora用户加入到
wheel组
(RECALL前面如何修改用户的组),来用 sudo 执行任意命令
- 使用