一、文件处理
1. ls 显示目录文件
-
a 显示所有文件,包括隐藏文件
-
l 详细信息展示
-
d 查看目录属性
2. mkdir 创建新目录
-p 递归创建
3. cd 切换目录
4. pwd 显示当前目录
5. cp 复制文件或目录
-
r 复制目录
-
p 保留文件属性
6. mv 剪切文件、改名
7. rm
-
r 删除目录
-
f 强制执行
8. touch 创建空文件
9. cat 显示文件内容
-
n 显示行号
10. tac 显示文件内容(反向列式)
11. more 分页显示文件内容
(空格)或f 翻页
(
Enter) 换行
q或Q 退出
12. less 分页显示文件内容(可向上翻页)
13. head 显示文件前面几行
-n 指定行数
14. tail 显示文件后面几行
-
n 指定行数
-
f 动态显示文件末尾内容
15. ln 生成链接文件
语法:ln
-s [原文件] [目标文件]
-s 创建软链接
二、权限管理
1. chmod 改变文件或目录权限
语法:chmod[
{ugoa}{+-=}{rwx}][
文件或目录]
[mode=421][文件或目录]
-R 递归修改
2. chown 改变文件或目录的所有者
示例:
chown filename user1l
改变文件filename的所有者为user1
3. chgrp 改变文件或目录的所属组
语法:chgrp [
用户组][
文件或目录]
示例:chgrp group1 filename
改变文件filename的所属组为group
4. umask 显示、设置文件的缺省权限
-
S 以rwx形式显示新建文件缺省权限
5. ACL权限
ACL:除所有者、所属组、其他人之外的用户权限
1> 查看分
ACL权限是否开启
语法:
dumpe2fs -
h /
dev/
sda1
#
dumpe2fs 命令是查询指定分区详细文件系统信息的命令
选项:-
h 仅显示超级块中信息,而不显示磁盘块组的详细信息
2> 临时开启分区
ACL权限
语法:
mount -
o remount,
acl /
# 重新挂载根分区,并挂载加入
acl权限
3> 永久开启分区
ACL权限
vim /
etc/
fstab
UUID=
dd5cb476-
816f-
44ed-
a390-
cbab278792b8 /
boot ext4 defaults,
acl 1 2
mount -
o remount /
# 重新挂载文件系统或重启系统,使修改生效
4> 查看
ACL命令
getfacl 文件名
# 查看
acl权限
5> setfacl 设定
ACL权限命令
语法:
setfacl 选项 文件名
选项:
-
m 设定
ACL权限
-
x 删除指定的
ACL权限
-
b 删除所有的
ACL权限
-
d 设定默认的
ACL权限
-
k 删除默认的
ACL权限
-
R 递归设定
ACL权限
示例:
setfacl -
m u:st:
rx /
project/
# 给用户
st赋予
r-
x权限,使用“
u:用户名:权限”格式
6> 给用户组设定
ACL权限
setfacl -
m g:tgroup:
rwx /
project/
# 为
tgroup分配
ACL权限。使用“
g:组名:权限”格式
7> 最大有效权限
mask
#
mask是用来指定最大有效权限的。如果我给用户赋予
ACL权限,是需要和
mask的权限“相与”
# 才能得到用户的真正权限
语法:
setfacl -
m m:rx 文件名
# 设定
mack权限为
r-
x,使用“
m:权限”格式
8> 删除
ACL权限
语法:
setfacl -
x u:用户名 文件名
# 删除指定用户的
ACL权限
setfacl -
x g:组名 文件名
# 删除指定用户组的
ACL权限
setfacl -
b 文件名
# 会删除文件的所有的
ACL权限
9> 递归
ACL权限
语法:
setfacl -
m u:用户名:权限 -
R 文件名
10> 默认
ACL权限
语法:
setfacl -
m d:u:用户名:权限 文件名
6. 文件特殊权限
1> SetUID
只有可以执行的二进制程序才能设定
SUID权限
命令执行者要对该程序拥有
x(执行)权限
命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效
passwd命令拥有
SetUID权限,所以普通可以修改自己的密码
a> 设置
SUID
语法:
chmod 4755 文件名 或者
chmod u+
s 文件名
b> 取消
SUID
语法:
chmod 755 文件名 或者
chmod u-
s 文件名
c> 注意:
关键目录应严格控制写权限
2> SetGID
只有可执行的二进制程序才能设置
SGID权限
命令执行者要对该程序拥有
x(执行)权限
命令执行在执行程序的时候,组身份升级为该程序文件的属组
SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效
a> 设置
SGID
语法:
chmod 2755 文件名 或者
chmod g+
s 文件名
b> 取消
SUID
语法:
chmod 755 文件名 或者
chmod g-
s 文件名
c> 注意:
关键目录应严格控制写权限
3> Sticky BIT (粘着位)
粘着位目前只对目录有效
普通用户对该目录拥有
w和
x权限,即普通用户 可以在此目录拥有写入权限
如果没有粘着位,因为普通用户拥有
w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一但赋予了粘着位,
除了
root可以删除所有文件,普通用户就算拥有
w权限,也只能删除自己建立的文件但是不能删除其他用户建立的文件
a> 设置粘着位
语法:
chmod 1755 目录名
chmod o+
t 目录名
b> 取消粘着位
chmod 777 目录名
chmod o-
t 目录名
7、文件系统属性chattr权限
1> 设置
chattr属性
语法:
chattr [+-=] [选项] 文件或目录名
+ 增加权限
- 删除权限
= 等于某权限
选项:
i 如果对文件设置
i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置
i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。
a 如果对文件设置
a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置
a属性,那么只允许在目录中建立和修改文件,但是不允许删除
2> 查看
attr属性
语法:
lsattr 选项 文件名
选项:
a 显示所有文件和目录
d 若目标是目录,仅列出目录本身的属性,而不是子文件的
8、系统命令sudo权限
1> sudo权限
root把本来只能超级用户执行的命令赋予普通用户执行。
sudo的操作对象是系统命令
2> sudo 使用
实际修改的是/
etc/
sudoers 文件
root ALL=(
ALL)
ALL
#用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
#
#
示例:
授权
sc用户可以重启服务器
visudo
sc ALL= /
sbin/
shutdown –
r now
三、文件搜索
1. find 文件搜索
语法:find [搜索范围][匹配条件]
-
name 根据文件名查找
-
iname 根据文件名查找不区分大小写
-
size 根据文件大小查询
+n 大于 -n 小于 n 等于
-
user 根据文件所有者查询
-
group 根据所属组查询
-
amin 根据访问时间查找
-
cmin 根据文件属性修改时间查找
-
mmin 根据文件内容修改时间查找
示例:find /etc -cmin
在 /etc下查找五分钟内被修改过属性的文件和目录
-
a 两个条件同时满足
-
o 两个条件满足任意一个即可
-
exec/-ok {} \; 固定格式,对搜索结果执行操作
-
type 根据文件类型查找
-
inum 根据i节点查找
2. locate 在文件资料库中查找文件
语法: locate filename
updatedb 更新文件资料库
3. which 搜索命令所在目录及别名信息
4. whereis 搜索命令所在目录及帮助文档路径
1:命令的帮助
5:配置文件的帮助
5. grep 在文件中搜寻字串匹配的行并输出
-
i 不区分大小写
-
v 排除指定字串
四、帮助命令
1. man 获得帮助信息
语法:
man [命令或配置文件]
2.whatis 命令的简短信息
3.apropos 配置文件的简短信息
2. help
语法:
help 命令
五、用户管理
1. 用户配文件
a>
/etc/passwd 用户信息文件
语法:
account:password:UID:GID:GECOS:directory:shell
示例:
1 2 3 4 5 6 7
root:x:0:0:root:/root:/bin/bash
字段释义:
1. 用户名
2. 密码标志
3.
UID(用户
ID)
0: 超级用户
1-
499: 系统用户(伪用户)
500-
65535: 普通用户
4.
GID(用户初始组,用户又出现就有的组)
5.用户说明
6.家目录
普通用户:/home/用户名
超级用户:/root/
7.登录之后的
Shell
b>
/etc/shadow 影子文件
示例:
1 2 3 4 5 6789
root:xxx:17501:0:99999:7:::
字段释义
1.用户名
2.加密密码
加密算法升级为
SHA512散列算法加密
如果密码是“!!”或“*”代表没有密码,不能登录
3.密码最后一次修改时间
使用
1970/
1/
1作为标准日期,每过一天时间戳加
1
4.两次密码的修改时间间隔(跟第三个字段相比)
5.密码有效期(和第三个字段相比)
6.密码修改到期前的警告天数(和第五个字段相比)
7.密码过期后的宽限天数,(和第五个字段相比)
8.账号失效时间(要用时间戳表示)
9.保留
c>
/etc/group 组信息文件
示例:
1 2 3 4
root:x:0:
字段释义:
1.组名
2.组密码标志
3.
GID
4.组中附加用户
d>
/etc/gshadow 组密码文件
示例:
1 2 3 4
root:::
字段释义:
1.组名
2.组密码
3.组管理员用户名
4.组中附加用户
2.用户管理相关文件
a> 用户的家目录
普通用户:/home/用户名/,所有者所属组都是次用户,权限
700
超级用户
:/root/,所有者所属组都是root用户,权限
550
b> 用户的邮箱
/var/spppl/mail/用户名/
c> 用户的模板目录
/etc/skel
3. useradd 添加新用户
语法:
useradd [选项] 用户名
选项:
-u UID:手工指定用户的UID号
-d 家目录:手工指定用户的家目录
-c 用户说明:手工指定用户的说明
-g 组名: 手工指定用户的初始组
-G 组名:指定用户的附加组
-s shell 手工指定用户的登录shell,默认是/bin/bash
用户默认文件
/etc/default/useradd
GROUP=
100
HOME=/home
INACTIVE=-
1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
/etc/login.defs
PASS_MAX_DAYS
99999
PASS_MIN_DAYS
0
PASS_MIN_LEN
5
PASS_WARN_AGE
7
UID_MIN
500
UID_MAX
60000
ENCRYPT_METHOD SHA512
4. passwd 设置用户密码
语法: passwd [选项] 用户名
选项:
-
S 查询用户密码的密码状态,仅root用户可用
-
l 暂时锁定用户。仅root用户可用
-
u 解锁用户。仅root用户可用
-
-stdin 可以通过管道符输出的数据作为用户的密码
5.usermod 修改用户信息
语法:usermod [选项] 用户名
选项:
-
u UID:手工指定用户的UID号
-
d 家目录:手工指定用户的家目录
-
c 用户说明:手工指定用户的说明
-
g 组名: 手工指定用户的初始组
-
G 组名:指定用户的附加组
-
s shell 手工指定用户的登录shell,默认是/bin/bash
-
L 临时锁定用户(Lock)
-
U 解锁用户锁定(Unlock)
6、chage 修改用户密码状态
语法: chage [选项] 用户名
选项:
-
l 列出用户的详细密码状态
-
d日期: 修改密码最后一次更改日期(shadow3字段)
-
m天数: 两次密码修改间隔(4字段)
-
M天数: 密码有效期(5字段)
-
W天数: 密码过期前警告天数(6字段)
-
I天数: 密码过后宽限天数(7字段)
-
E日期: 账号失效时间(8字段)
常用:
chage -d 0 username
#把密码修改日期归0了(shadow第三字段)
#用户一登录就需要修改密码
7、userdel 删除用户
语法:userdel [-r] username
-r:删除用户的同时删除用户家目录
手工删除用户:
需要修改的配置文件
/etc/passwd
/etc/shadow
/etc/
group
/etc/gshadow
rm -rf /
var/spool/mail/username
rm -rf /home/username/
8、 su 切换用户身份
语法: su [选项] 用户名
选项:
-
: 选项只使用“-”代表连带用户的环境变量一起切换
-
c: 仅执行一次命令,而不切换用户身份
9、groupadd 添加组
语法: groupadd [选项] 组名
选项:
-
g GID: 指定组ID
10、groupmod 修改用户组
语法:groupmod [选项] 组名
选项:
-
g GID: 修改组ID
-
n 新组名: 修改组名
示例:
groupmod -n newgrp group1
#把组名group1修改为newgrp
11、 groupdel 删除组
groupdel groupname
12、gpasswd 把用户添加入组或从组中删除
语法: gpasswd 选项 组名
选项:
-
a 用户名: 把用户添加入组
-
d 用户名: 把用户从组中删除
13、who 查看登录用户信息
示例:
USER TTY
FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/
0 192.168.174.1 11:
57 0.00s
0.06s
0.00s w
root pts/
1 192.168.174.1 17:
22 7.00s
0.02s
0.02s -bash
tty 本地登录
pts 远程登录
14、w 查看登录用户详细信息
六、压缩解压
1. gzip 压缩文件
语法:
gzip [filename]
2. gunzip 解压缩.gz格式的压缩文件
语法:
gunzip [filename]
3. tar 打包目录
语法: tar 选项[-zcf] [压缩后文件名] [目录]
选项:
-
c 打包
-
x 解包
-
v 显示详细信息
-
f 指定文件名
-
z 打包同时压缩
4. zip 压缩文件或目录
语法: zip 选项[
-r][
压缩后文件名][
文件或目录]
选项:
-r 压缩目录
示例: zip filename.zip filename
压缩文件
zip -r dirname.zip dirname
压缩目录
5. unzip 解压 .zip的压缩文件
6. bzip2 压缩文件
语法:bzip2 选项[
-k][
文件]
选项:
-k 产生压缩文件后保留原文件
7. bunzip2 解压缩
语法: bumzip2 选项[
-k][
压缩文件]
选项:
-k 解压缩后保留原文件