用户分为三类:
1.root用户
2.虚拟用户:不具有登录系统的能力,一般系统自身拥有,比如bin,daemon,ftp,mail
3.普通用户
useradd:
-g:指定用户私有组
-G:添加附加组
-d:指定用户家目录,如果不存在可以结合-m创建
-m:如果家目录不存在则自动创建
-u:指定UID,和-o一起可以重复使用其他用户的UID,必须>=100
注意useradd的用户没有密码还不能登录
usermod:修改用户账号
-d[directory]:改变用户登录时的目录,注意不是改变家目录
-e[days]:修改账号的有效期
-g[group]:修改用户所属组
-p[password]:修改用户密码,这里修改密码在/etc/shadow中是明文显示的,所以不推荐
-s[shell]:指定用户登录shell
userdel:删除用户账号,-r连同删除用户家目录
passwd:用户口令管理
-l:锁定用户口令,即禁止使用该用户账号,实质为在/etc/shadow中的密钥部分开头加了!
-u:口令解锁
-d:关闭使用者的密码确认功能,使用者登录时不需输入密码即可登录
groupadd:用户组添加命令
-g:指定GID,除非使用-o,否则GID唯一
-r:加入低于499的GID系统账号
groupmod:组修改
-g:指定新的GID,除非使用-o否则唯一,注意修改后原来属于该组的目录和文件不属于该组而是属于该组的原GID
-n:改名,因为系统用GID标识组的,所以改名不会有任何影响
groupdel:删除组,必须先删除该组的用户
ls:
-a:列出所有目录和文件(包括隐藏和. ..)
-A:列出除了.和..的所有目录和文件(包括隐藏)
-c:按文件的修改时间排序
-d:显示目前所在目录的名称,常与-l一起,显示所在目录的详细信息
-l:显示详细信息
-L:若指定的名称为符号链接文件,则显示链接所指向的文件
-R:递归显示指定目录的各个子目录中的文件
cp:
-a:复制目录,递归复制并且保留拥有人拥有组权限等文件属性
-r:复制目录,递归复制但是文件属性丢失,比如root执行复制那么该目录和目录下的目录和文件的拥有人拥有组都变为root
-p:复制文件,保留修改时间和权限等文件属性
-i:如果复制的目标文件已经存在则提示用户,防止已存在的文件或目录被破坏,默认alias "cp=cp -i"
-f:目标已存在不提醒用户,常用于脚本
mv:
-i:目标已存在则提醒用户
-f:目标已存在不提醒用户,常用于脚本
-p:移动保持权限
rm:
-r:递归删除目录及目录下的文件和子目录
-f,-i同上
mkdir
-m:对新建目录设置权限,如mkdir -m 777 c1
-p:创建目录树,即一串目录
-v:每次创建都显示创建信息
如:
[root@localhost home]# mkdir -pv a1/a2/a3
mkdir: created directory `a1'
mkdir: created directory `a1/a2'
mkdir: created directory `a1/a2/a3'
rmdir
只能删除空目录
-p:删除子目录后如果父目录为空则同时删除父目录
--ignore-fail-on-non-empty:忽略非空目录的错误信息
如:
[root@localhost a1]# touch a1.txt
[root@localhost ~]# rmdir -p /home/a1/a2/a3
rmdir: /home/a1: Directory not empty
cd -:返回上次访问的目录
chmod:改变文件或目录的权限
SUID:当一个设置了SUID位的可执行文件被执行,该文件以拥有者的身份运行,任意使用该文件拥有人能使用的全部资源
SGID:当一个设置了SGID位的可执行文件被执行,该文件以拥有组的身份运行,任意使用该文件拥有组能使用的全部资源;若一个目录设置了SGID,则复制到该目录下的所有文件或目录的拥有组都被改为该目录,除非使用cp -p
chmod u+s a.sh chmod g+s dir1 如果原x位为's'表明有x权限,为'S'表明无x权限
chown:更改文件或目录的拥有人
find
查找文件命令
find [路径] [选项] [操作]
选项:
name 根据文件名查找
perm 根据权限查找
prune 不在当前指定目录查找
user 根据拥有人查找
group 根据拥有组查找
mtime -n +n 根据修改时间查找,-n为n天之内,+n为n天前
nogroup 查找无效拥有组
nouser 查找无效拥有人
-newer file1 !file2 查找修改时间比file1新但比file2旧的文件(修改时间为file2~file1)
type 查找某一类型的文件,b:块设备文件 d:目录 c:字符设备文件 p:管道文件 l:符号链接文件 f:普通文件
size n:[c] 查找长度问n块的文件,有c长度为字节
depth 现在当前目录查找,然后在子目录中查找
操作:
print 输出到标准输出
exec 对匹配的文件执行该参数所给出的shell命令,命令形式为'command' {} \;
ok 同上,只是每执行一个命令(查找到一个文件)都会提示用户是否执行
例:
find . -name 'clc*' -perm 775 -mtime -90 -print
[root@localhost tmp]# find . -name 'a*' -ok rm {} \;
< rm ... ./a3 > ? y
< rm ... ./a2 > ? y
< rm ... ./a1 > ? n
< rm ... ./ssh-MFTFtw4452/agent.4452 > ? n
[root@localhost tmp]# ls | grep a*
a1
gedit:打开gedit图形化文本编辑器