以下内容整理自《鸟哥的Linux私房菜》
用户、用户组相关
# 添加用户(该命令为用户创建相应的帐号和用户目录/home/username)
useradd -m username
# 设置密码
passwd username
# 删除用户(-r选项会将/home/username也完全删除)
userdel -r username
# 切换用户
su username
# 查看当前用户所属组(默认添加用户会增加一个同名的组)
groups
# 一个用户可以属于多个组,将用户加入到组
usermod -G groupname username
# 变更用户所属的根组(将用加入到新的组,并从原有的组中除去)
usermod -g groupname username
# 查看所有用户组及权限
vim /etc/group
# 查看所有用户及权限
vim /etc/group
# 修改所有用户对文件的权限
chmod -R 777 ./*
# 修改文件或目录的所有者
chown -R username dirOrfile
# 修改文件或目录的所属组
chgrp -R groupname dirOrfile
目录、文件权限
drwxr-xr-x 5 root root 47 7月 13 16:55 home
第一个字符的含义
- d表示目录
- -表示文件
- l表示连接文件
- b表示设备文件里面的可供存储的接口文件
- c表示设备文件里面的串行端口设备,例如键盘、鼠标等
权限对文件的意义
- r可读取文件的内容
- w可以编辑、新增或修改文件的内容,但不能删除该文件
- x该文件具有可以被系统执行的权限
权限对目录的意义
- r表示具有读取目录结构列表的权限,你可以使用ls来列出该目录的内容
- w可以在目录中新建文件或目录、删除目录中已经存在的文件或目录、将已存在的文件或目录重命名、转移目录中的文件或目录的位置
- x目录并不能被执行,x表示用户能否进入该目录
文件时间
mtime (modification time) 当文件内容数据变更时,更新这个时间。内容数据指的是文件的内容,而不是文件的属性、权限
ctime (status time) 当文件的状态变更时,更新这个时间。如文件的属性、权限等
atime (access time) 当文件的内容被读取时,更新这个时间。如果 cat 某个文件。
ls 默认显示的是文件的 mtime ls -al --time=mtime --full-time
能显示完整的时间,并指定时间类型
touch可以修改文件的时间 touch [-acdmt]
find根据时间过滤,以 mtime为例
- -mtime n: n为数字,在 n 天之前的"一天之内"的被更改过的文件
- find / -mtime 0 0代表当前时间,所以是从现在开始到24小时前被更改过的文件
- -mtime +n: 列出在 n 天之前(不含 n 天本身)被更改过的文件名
- -mtime -n: 列出在 n 天之内(包含 n 天本身)被更改过的文件
- -newer file: file 为一个存在的文件,列出比 file 还要新的文件名
一些命令
# 备份的时候一般用 -a参数,保留文件的熟悉、权限
cp -a
# 输出非纯文本文件 -t后面的参数如下
# a默认字符 c使用ASCII d十进制 f浮点数 o八进制 x十六进制
od -t c /usr/bin/passwd
# 文件默认权限设置
umask
# 文件隐藏属性 有些文件如果root也无法修改或删除的话,看看这个
chattr
lsattr
# 文件特殊权限
SUID SGID SBIT
#文件查找相关
which
where is
find
locate
目录规范