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