帮助命令
man帮助
-- 查看ls命令帮助(第一章时的1可以省略, man ls)# man 1 ls
共9个章节

help帮助
shell(命令解释器)自带的命令称为内部命令, 其他称为外部命令
-- 内部命令使用help帮助# help cd-- 外部命令使用help帮助# ls --help-- 区分内部命令还是外部命令# type cd
- info帮助
info帮助比help更详细, 可以作为help的补充
# info ls
文件管理
查看目录
/ 根目录
/root root用户的家目录
-- 显示当前目录名称pwd-- 更改当前的操作目录cd-- 查看当前目录下的文件ls常用参数:-l 长格式显示文件-a 显示隐藏文件-r 逆序显示-t 按照时间顺序显示-R 递归显示-h 便捷显示文件大小
操作文件
-- 创建目录# mkdir常用参数:-p 创建多级目录-- 删除目录(只能删除空目录)# rmdir-- 删除非空目录# rm常用参数:-r 表示目录-f 不进行提示删除目录-- 复制文件#cp [源目录,文件] [目标位置]常用参数:-r 表示目录-v 显示复制过程-p 保留原有的最后修改时间-a 复制后的文件保留源文件的所有信息, 包括权限,创建用户,用户组,最后修改时间等-- 移动(重命名)文件# mv [源文件] [目标文件]常用参数:通配符 * 匹配所有(一个或多个)字符通配符 ? 匹配单个字符举例:# mv /filea /fileb 将filea重命名为fileb
查看文本
-- 文本内容显示到终端# cat [文件名称]-- 查看文件开头# head [文件名称]常用参数:-5 查看前5行, 默认10行-- 查看文件结尾# tail [文件名称]常用参数:-5 查看前5行, 默认10行-f 文件内容更新后, 显示内容同步更新-- 统计文件内容信息# wc [文件名称]常用参数:-l 统计一共多少行
打包和压缩
-- tar命令# tar [打包后的文件名] [需打包文件]常用参数:c 打包x 解包f 指定操作类型为文件举例:打包文件以tar结尾# tar cf /etc/etc-backup.tar /etc-- 打包并压缩-- 压缩为gzip格式, 以gz结尾# tar czf /etc/etc-backup.tar.gz /etc-- 压缩为bzip2格式, 以bz2结尾, 相比gz的压缩比例更高# tar cjf /etc/etc-backup.tar.bz2 /etc-- 解压文件,-C指定解压到的位置tar xf /tmp/etc-backup.tar -C /roottar zxf /tmp/etc-backup.tar.gz -C /roottar jxf /tmp/etc-backup.tar.bz2 -C /root补充:.tar.gz的缩写为.tgz.tar.bz2的缩写为.tbz2
VIM的四种模式
- 正常模式(Normal-mode)
- 插入模式(Insert-mode)
```shell
— 正常模式进入插入模式
i 进入当前光标所在的位置
I 进入当前光标所在行的行首
a 进入当前光标所在位置的下一个位置
A 进入当前光标所在位置的行尾
o 在光标所在行的下一行新建一行
O 在光标所在行的上一行新建一行
— 正常模式进入可视模式
v
— 正常模式进入命令模式 ctrl+c
— 退出到正常模式 按esc键
— 对光标进行上下左右移动
hjkl按键
— 复制与粘贴
yy 复制整行
y$ 复制从光标位置到该行结尾的内容
3yy 复制3行
p 粘贴
— 剪切
dd 剪切整行
d$ 剪切从光标位置到该行结尾的内容
5dd 剪切5行
— 撤销
u
— 重做 ctrl+r
— 单个字符的删除
x
— 单个字符的替换
r 再输入新的字符
— 显示行数 :set nu
— 不显示行数 :set nonu
— 移动到指定行
11 shift+g 移动到11行行首
g 移动到第一行行首
G 移动到最后一行行首
^ 移动到当前行行首
$ 移动到当前行行尾
- 命令模式(Command-mode)```shell-- 保存并退出# :wq /root/a.txt-- 不保存退出# :q!-- 在vim中临时执行命令# :! 再输出命令-- 查找# /x 查找x# n 查找下一个匹配的x# shift+n 查找上一个匹配的x-- 替换(不带%默认只针对光标所在行进行替换, /g指全局替换)# :s%/old/new/g# :3,5s/old/new/g 在第三行和第5行之间替换
更改vim的配置文件
-- 每次启动都显示行号# vim /etc/vimrc在文末新建一行加上set nu
— 批量插入 先ctrl+v以块的方式选中文本 再I在行首添加内容 再按两次esc完成块中包含的行的行首全部添加了内容
— 批量删除 以块方式选中内容再按d键
---<a name="DksFm"></a>## 用户和权限管理<a name="B31ch"></a>### 用户的增删改新建一个用户后, 系统执行的步骤:- 创建了用户的家目录: /home/username- 在/etc/passwd文件中添加用户的一行记录- 在/etc/shadow中也会添加用户的一行记录- 若没有指定组, 则会创建一个与username同名的组, 组就相当于角色```shell-- 新建用户# useradd username# useradd -g groupname username 指定用户组创建用户-- 验证系统已经存在的用户# id username-- 修改用户密码# passwd username-- 删除用户(-r用于删除用户的家目录)# userdel -r username-- 修改用户# usermod -d /home/w1 testuser 将testuser的家目录更改为/home/w1# usermod -g group1 testuser 将testuser的用户组改为group1-- 修改用户的生命周期# chage-- 创建与删除用户组# groupadd groupname# groupdel groupname-- 临时切换用户# su - username# id 进行验证当前的用户# exit 登出
su和sudo命令的区别
- su 切换用户
- sudo 以其他用户身份执行命令
利用sudo命令可以将某些命令授权给到普通用户操作, 普通用户不必知道root用户密码
演示:
# shutdown -h 30 30分钟后关机(只有root用户有权限操作)# shutdown -c 取消(只有root用户有权限操作)演示步骤:1.root用户设置30分钟后关机2.执行visudo, 在文件末尾添加testuser ALL=/sbin/shutdown -c补充:- 如果是用户组, 则为%groupname- 如果仅允许字符终端, 则为localhost, ALL表示允许所有- 若找不到命令位置, 则:!which shutdown 寻找指令目录- 存在多个指令时使用,分隔3.testuser用户取消关机# sudo /sbin/shutdown -c
root设置关机:
testuser取消关机:
用户和用户组的配置文件
- passwd文件
vim /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash7个字段的释义:1. user1代表用户名称, 新增一个用户就会新增一条记录2. x代表需要密码登录, 删除x(此处为空)则不需要密码登录3. 1001为uid, 用户的唯一标识, 比如root用户为04. 1001位gid, 用户的组id5. 表示注释6. /home/user1, 表示用户的家目录7. /bin/bash, 表示用户登录的用户解释器, 若为/sbin/nologin, 则用户不能登录终端
- shadow文件, 保存用户密码信息
vim /etc/shadow
字段释义1. 用户名称2. 用户加密后的密码
- group文件, 保存用户组相关信息
vim /etc/group
字段释义:1. 组名称2. 是否需要密码验证3. gid4. 其他组设置(比如上图postfix用户既在其他的组中, 也属于mail组中)
文件与目录权限的表示方法

类型: 特别注意对于不同的类型, 权限的表示含义是不一样的- 普通文件d 目录文件b 块特殊文件c 字符特殊文件l 符号特殊文件f 命名管道s 套接字文件权限:前3个, 当前用户对该文件的权限中间3个, 当前用户组对该文件的权限后3个, 其他用户对该文件的权限文件权限的表示方法:1.字符权限的表示方法r 读w 写x 执行2.数字权限的表示方法r=4w=2x=1目录权限的表示方法:x 进入目录rx 显示目录内的文件名wx 修改目录内的文件名

文件权限的修改方法和数字表示方法
注意: 当属主与属组权限冲突时, 以属主权限为准
如下图, group1的可以操作bfile, 但是user1不能, 以user1为准, 因此user1写入失败, group1中的user2写入成功
chmod 修改文件, 目录权限u 用户权限 g 用户组权限 o为其他用户权限 a 用户以及用户组权限+,-,= 易理解, 就是直接对权限的加减和赋值r为4,w为2,x为1, 因此最大为7例:- chmod u+x /tmp/testfile- chmod 755 /tmp/testfile (这个等同于 u=rwx,g=rx,o=rx)chown 更改属主, 属组- chown user1:group1 /test/bfile 更改bfile的属主和属组为user1和gruop1chgrp 可以单独更改属组, 不常用修改目录时:x代表进入目录的权限rx 可进入和查看目录中文件wx 可进入和删除目录中文件

