● 用户和群组
查看当前用户所属的组:groups。若该用户属于多个群组,列出的第一个为初始群组。从结果可以看出,root 用户的初始群组为 root 组,但 root 用户不仅仅属于 root 组,它还隶属于 bin, daemon, sys, adm, disk 和 wheel 这几个群组。
[root@localhost ~]# groups
root bin daemon sys adm disk wheel
查看某人或与自己相关的 UID/GID 信息:id
[root@localhost ~]# id root
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
假设当前用户为 root,我们查看 /etc/passwd,结果说明:root 用户的 UID 为 0,初始群组的 GID 为 0。一般情况下,大于 500 的 UID 和 GID 是提供给一般用户和组的。
[root@localhost ~]# cat /etc/passwd
root:x:0:0:......
那么 GID 为 0 的组到底是什么组?需在 /etc/group 中查看,结果说明:root 组,GID 为 0,属于该组的用户有 root, ua, ub 和 uc。
[root@localhost ~]# cat /etc/group
root:x:0:root,ua,ub,uc
因此,root 用户的初始群组为 root 组,root 登录后,建立新文档,那么此文档的拥有者为 root 用户,所属组为 root 组。如果想使得 root 用户新建立的文档的所属组是 bin,我们需要改变 root 用户的初始群组:newgrp。通过这个命令,root 用户建立的文档所属的组就是 bin 组了。使用该命令的前提是 root 用户是属于 bin 组!
[root@localhost ~]# newgrp bin
使用 exit 命令,root 用户就退出 bin 的初始群组了,root 用户的初始群组又变成 root 组了
[root@localhost ~]# exit
如果想使得某个用户属于某个组,或改变某个用户所属的组别,需要使用 root 登录并修改 /etc/group 文件来达到此目的。此种方式仿佛并不凑效,可以使用下面讲的 usermod 命令。
新增用户:useradd
[root@localhost ~]# useradd [options] LOGIN_NAME
这里面有几个选项说明下:
-m 强制建立使用者的 home 目录
-M 强制不建立 home 目录
-d 建立 home 目录时,可以使用 -d 来指定 home 目录
-g 初始群组的 GID 或群组的名称,必须存在
-G 该用户还隶属的其它群组的名称,以逗号分割,不能有空白符
删除用户:userdel
[root@localhost ~]# userdel [options] LOGIN_NAME
修改用户:usermod,使用方式类似于 useradd,这里不再赘述
[root@localhost ~]# usermod [options] LOGIN_NAME
新增/修改/移除 群组,注意,移除群组时,必须确保没有用户是隶属于这个要被删除的群组
[root@localhost ~]# groupadd/groupmod/groupdel [options] GROUP_NAME
修改密码:passwd
[root@localhost ~]# passwd username
● 修改档案权限
改变档案的属性:chmod。r, w, x 分别以 4, 2, 1 表示
[root@localhost ~]# chmod [options] FILE
改变档案所属群组:chgrp。被改后的组必须存在于 /etc/group
[root@localhost ~]# chgrp [options] GROUP FILE
下面的命令表示,将 /home/hello 目录及其子目录所属的群组改为 world 组
[root@localhost ~]# chgrp -R world /home/hello
改变档案的拥有者:chown。被改后的拥有者必须存在于 /etc/passwd。此命令还可以用来修改所属群组
[root@localhost ~]# chown [options] OWNER[:GROUP] FILE
将 /etc/hello 目录及其子目录的拥有者改为 user123,所属群组不变
[root@localhost ~]# chown -R user123 /home/hello
将 /etc/hello 目录及其子目录的拥有者改为 user123,所属群组改为 world345
[root@localhost ~]# chown -R user123:world345 /home/hello
● 查看某个目录下各个文件和子目录占用的空间
[root@localhost ~]# du -sh *
● 查看磁盘空间
[root@localhost ~]# df -h
● 查看指定的端口号被哪个进程占用
lsof -i:端口号
以 8080 端口为例,查看 8080 端口被哪个进程占用,可以看出 PID,即进程号。此命令只有 root 才能执行。
[root@localhost ~]# lsof -i:8080
● 命令的别名
以停止 nginx 为例,在 /etc/profile 文件中写入以下片段,以后直接输入 nginx-stop 并回车,就如同发起 kill -QUIT `cat /usr/local/nginx/logs/nginx.pid` 命令一样
[root@localhost ~]# alias nginx-stop="kill -QUIT `cat /usr/local/nginx/logs/nginx.pid`"
● 下载文件(不仅仅用于 ftp 下载,同样适用于 http 下载)
从 http 站点下载,或匿名下载某个 ftp 站点的文件。文件将被下载到当前目录
[root@localhost ~]# wget ftp://...filename
[root@localhost ~]# wget http://...filename
以指定用户名和密码从 ftp 站点下载文件。文件将被下载到 -P 所指定的目录下。该目录若不存在,将会创建该目录。若没有 -P 参数,将会下载到当前的工作目录
[root@localhost ~]# wget -P 下载到目的机器的路径 --ftp-user=username --ftp-password=password ftp://...filename