帮助命令
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 /root
tar zxf /tmp/etc-backup.tar.gz -C /root
tar 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/bash
7个字段的释义:
1. user1代表用户名称, 新增一个用户就会新增一条记录
2. x代表需要密码登录, 删除x(此处为空)则不需要密码登录
3. 1001为uid, 用户的唯一标识, 比如root用户为0
4. 1001位gid, 用户的组id
5. 表示注释
6. /home/user1, 表示用户的家目录
7. /bin/bash, 表示用户登录的用户解释器, 若为/sbin/nologin, 则用户不能登录终端
- shadow文件, 保存用户密码信息
vim /etc/shadow
字段释义
1. 用户名称
2. 用户加密后的密码
- group文件, 保存用户组相关信息
vim /etc/group
字段释义:
1. 组名称
2. 是否需要密码验证
3. gid
4. 其他组设置(比如上图postfix用户既在其他的组中, 也属于mail组中)
文件与目录权限的表示方法
类型: 特别注意对于不同的类型, 权限的表示含义是不一样的
- 普通文件
d 目录文件
b 块特殊文件
c 字符特殊文件
l 符号特殊文件
f 命名管道
s 套接字文件
权限:
前3个, 当前用户对该文件的权限
中间3个, 当前用户组对该文件的权限
后3个, 其他用户对该文件的权限
文件权限的表示方法:
1.字符权限的表示方法
r 读
w 写
x 执行
2.数字权限的表示方法
r=4
w=2
x=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和gruop1
chgrp 可以单独更改属组, 不常用
修改目录时:
x代表进入目录的权限
rx 可进入和查看目录中文件
wx 可进入和删除目录中文件