1. vi 编辑器
:set number # 显示行号
1.1 移动
gg # 文件首行
G # 文件末行
H # 屏幕首行
L # 屏幕末行
b # 前一个单词首字母
w # 后一个单词首字母
e # 后一个单词末字母
k # 上
l # 右
j # 下
h # 左
n # 查找下一个
N # 查找上一个
Ctrl + f # 向下翻页
Ctrl + b # 向上翻页
Ctrl + d # 向下翻半页
Ctrl + u # 向上翻半页
1.2 输入模式(insert 模式)
i # 光标前一个位置输入文字
a # 光标后一个位置输入文字
I # 行首插入
A # 行尾插入
O # 上方插入新的一行
o # 下方插入新的一行
1.3 命令模式
1.3.1 选择
v # 进入/退出选择模式
1.3.2 复制/粘贴
y0 # 复制到行首
y$ # 复制到行尾
yy # 复制当前行
nyy # 连续复制 n 行
p # 光标所在位置 后面/下方 粘贴
P # 光标所在位置 前面/上方 粘贴
1.3.3 删除
x # 删除当前字符
d0 # 删除至行首
d$ # 删除至行尾
dd # 删除当前行
ndd # 删除当前行开始的连续 n 行
1.3.4 替换
r # 替换当前字符
:s/old_string/new_string # 替换当前行第一个
:s/old_string/new_string/g # 替换当前行所有
:n,$s/old_string/new_string # 替换第 n 行至文件末行中每一行的第一个
:n,$s/old_string/new_string/g # 替换第 n 行至文件末行中每一行的所有
:%s/old_string/new_string # 替换每一行的第一个
:%s/old_string/new_string/g # 替换每一行的所有
1.3.5 撤销
u # 撤销上一个操作
1.3.6 底行模式常用命令
:w # 保存文件
:q # 退出文件
:! # 强制执行命令(例如 :q! )
:ls # 列出当前打开的所有文件
:n 或者 :next # 切换到下一个文件
:N 或者 :prev # 切换到上一个文件
:10 # 光标移动到第10行
/str # 向后搜索
?str # 向前搜索
1.4 打开文件
vi 文件名称 # 打开文件,光标置于首行或上次光标所在位置
vi + 文件名称 # 打开文件,光标置于最后一行
vi +n 文件名称 # 打开文件,光标置于第n行
vi +/字符串 文件名称 # 打开文件,光标置于字符串第一次出现的所在行的行首
vi 文件1 文件2 # 同时打开多个文件
2. 磁盘管理
2.1 查看磁盘分区使用情况
df [选项]
# -l 仅显示本地磁盘(默认)
# -a 显示所有文件系统的磁盘使用情况
# -h 以1024进制计算最合适的单位并显示磁盘容量
# -H 以1000进制计算最合适的单位并显示磁盘容量
# -T 显示磁盘分区类型
# -t 显示指定类型文件系统的磁盘分区情况
# -x 不显示指定类型文件系统的磁盘分区情况
示例:
df -hT # 显示所有本地磁盘的使用情况
df -hT /home # 显示/home文件夹所在分区的磁盘使用情况
2.2 统计磁盘上文件的大小
du [选项]
# -b 以 byte为单位统计文件大小
# -k 以 KB 为单位统计文件大小
# -m 以 MB 为单位统计文件大小
# -h 以1024进制计算最合适的单位并显示
# -H 以1000进制计算最合适的单位并显示
# -s 指定统计目标
# -d 最大深度( max-depth )
示例:
du -h -s /home # 查看/home文件夹的大小
du -h -d 1 /home # 查看/home文件夹及其子文件夹的大小
2.3 分区模式
MBR 分区模式 # 主分区最多4个,单个分区最大2TB(fdisk命令创建的分区就是MBR分区模式)
GPT 分区模式 # 主分区最多128个,单个分区最大18EB
# 1EB = 1024PB, 1PB = 1024TB, 1TB = 1024GB
# 缺点:GPT的主分区中,不适合安装x86架构的系统
2.4 GPT 分区
linux-创建-GPT-分区
https://code.youkuaiyun.com/snippets/619213/master/linux-创建-GPT-分区/raw
相关链接:
https://code.youkuaiyun.com/snippets/592005/master/linux-挂载新硬盘及分区设置/raw
https://code.youkuaiyun.com/snippets/593828/master/linux-将多个硬盘合并到一个挂载点下/raw
2.5 swap 分区
linux-创建-swap-分区
https://code.youkuaiyun.com/snippets/619235/master/linux-创建-swap-分区/raw
3. 用户管理
3.1 用户组
/etc/group # 用户组的配置文件
# 组名称:组密码占位符:组编号:组中用户列表
root组的id固定是0
1~499是系统预留的组id,是给安装在系统中的软件使用的
用户手动创建的用户组,编号是从500开始的
/etc/gshadow # 存储当前系统中用户组的密码信息
# 组名称:组密码:组管理者:组中用户列表
示例:
groupadd -g 500 group1 # 创建一个gid为500的用户组
groupmod -n group2 group1 # 将用户组group1修改为group2
groupmod -g 501 group2 # 将用户组group2的gid修改为501
groupdel group2 # 删除用户组group2
3.2 用户
/etc/passwd # 存储系统中所有用户的信息
# 用户名:密码占位符:用户编号:组编号:注释信息:用户主目录:用户shell类型
/etc/shadow # 存储系统中所有用户的密码信息
示例:
useradd -d /home/user1 -s /bin/bash -g users -m user1 # 创建用户
usermod -u 500 user1 # 修改用户id
usermod -l user2 -d /home/user2 -m user1 # 修改用户名称
usermod -G group1,group2 user2 # 给用户添加附属组
gpasswd -a user2 group1 # 给用户添加附属组
gpasswd -d user2 group1 # 删除用户的附属组
userdel -r user1 # 删除用户
# 禁止普通用户登录(当/etc/nologin这个文件存在时,普通用户被禁止登录)
touch /etc/nologin
passwd # 修改当前用户的密码
passwd user1 # 修改指定用户的密码
passwd -l user1 # 锁定用户
passwd -u user1 # 解锁用户
newgrp group1 # 切换用户组
su - userName # 切换登录用户
whoami # 查询当前登录用户
id # 查询当前用户详细信息(包含当前正使用的用户组)
groups # 查询当前用户的所有组
id userName # 查询指定用户详细信息
groups userName # 查询指定用户的所有组
视频链接: