五、Linux 下获取帮助
- 没必要记住所有东西
- Linux 提供了极为详细的帮助工具及文档,一定要养成查帮助文档的习惯,可以大大减少需要记忆的东西并且提高效率
5.1、HELP
- 几乎所有命令都可以使用 -h 或 --help 参数获取使用方法、参数信息等。
5.2、MAN
- man 命令是 Linux 中最为常用的帮助命令,将要获取帮助的命令作为参数运行 man 命令就可以获取相应的文档帮助
- man 文档分为很多类型
部分 | 类型 |
---|---|
1 | 用户命令 |
2 | 内核参数调用 |
3 | 库函数 |
4 | 特殊文件和设备 |
5 | 文件格式和规范 |
6 | 游戏 |
7 | 规范、标准和其他页面 |
8 | 系统管理页面 |
9 | Linux 内核 API |
- man -k 关键字,可以用来查询包含该关键字的文档
5.3、INFO
- info 与 man 类似,但是提供的信息更为详细深入,以类似网页的形式显示
- info 与 man 一样都可以通过 “/+关键字” 方式进行搜索
5.4、DOC
- 很多程序、命令都带有详细的文档,以 TXT、 HTML、 PDF 等方式保存在 /usr/share/doc 目录中,这些文档是相应程序最为详尽的文档
六、用户及权限基础
6.1、Linux 用户基础
6.1.1 用户、组
- 当我们使用 Linux 时,需要以一个用户的身份登入,一个进程也需要以一个用户的身份运行,用户限制使用者或进程可以使用、不可以使用哪些资源。
- 组用来方便组织管理用户
- 每个用户拥有一个 UserID ,操作系统实际使用的是用户 ID ,而非用户名
- 每个用户属于一个主组,属于一个或多个附属组
- 每个组拥有一个 GroupID
- 每个进程以一个用户身份运行,并受该用户可访问的资源限制
- 每个可登录用户拥有一个指定的 shell
6.1.2 用户
- 用户 ID 为32位,从0开始,但是为了和老式系统兼容,用户 ID 限制在60000以下
- 用户分为以下三种:
- -root 用户:ID 为0的用户为 root 用户
- 系统用户:1~499
- 普通用户:500以上
- 系统中的文件都有一个所属用户及所属组
- 使用 id 命令可以显示当前用户的信息
- 使用 passwd 命令可以修改当前用户密码
6.1.3 相关文件
- /etc/passwd 保存用户信息
- /etc/shadow 保存用户密码(加密的)
- /etd/group 保存组信息
6.1.4 查看登录的用户
- 命令 whoami 显示当前用户
- 命令 who 显示有哪些用户已经登录系统
- 命令 w 显示有哪些用户已经登录并且在干什么
6.1.5 创建一个用户
- 命令 useradd 用以创建一个新用户
- useradd nash_su , 这个命令会执行以下操作:
- 1 在 /etc/passwd 中添加用户信息
- 2 如果使用 passwd 命令创建密码,则将密码加密保存在 /etc/shadow 中
- 3 为用户建立一个新的家目录 /home/nash_su
- 4 将 /etc/skel 中的文件复制到用户的家目录中
- 5 建立一个与用户用户名相同的组,新建用户默认属于这个同名组
- useradd nash_su , 这个命令会执行以下操作:
- 命令 useradd 支持以下参数:
- -d 家目录
- -s 登录shell
- -u userid
- -g 主组
- -G 附属组(最多31个,用 “ , ”分隔)
- 也可通过直接修改 /etc/passwd 的方式实现,但是不建议
6.1.6 修改用户信息
- 命令 usermod 用来修改用户信息
- usermod 参数 username
- 命令 usermod 支持以下参数:
- -l 新用户名
- -u 新 userid
- -d 用户家目录位置
- -g 用户所属主组
- -G 用户所属附属组
- -L 锁定用户使其不能登录
- -U 解除锁定
6.1.7 删除用户
- 命令 userdel 用以删除指定用户:
- userdel nash_su ( 保留用户的家目录 )
- userdel -r nash_su ( 同时删除用户的家目录 )
6.2、组
6.2.1 组
- 几乎所有操作系统都有组的概念,通过组,我们可以更加方便的归类、管理用户。一般来讲,我们使用部门、职能或地理区域的分类方式来创建使用组。
- 每个组有一个组 ID
- 组信息保存在 /etc/group 中
- 每个用户拥有一个主组,同时还可以拥有最多31个附属组
6.2.2 创建、修改、删除组
- 命令 groupadd 用以创建组
- groupadd linuxcast
- 命令 groupmod 用以修改组信息
- groupmod -n newname oldname 修改组名
- groupmod -g newGid oldGid 修改组 ID
- 命令 groupdel 用以删除组
- groupdel linuxcast
- 示例
- 现在有三个部门,每个部门有两个员工,下面分别创建组和用户
先创建组:
groupadd training
groupadd market
groupadd manage
再创建用户:
useradd -G training nash_su
useradd -G training bob
useradd -G market alice
useradd -G market john
useradd -G manage steve
useradd -G manage david
6.3、Linux 权限机制
6.3.1 权限概念
- 权限是操作系统用来限制对资源访问的机制,权限一般分为 读、写、执行。系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户、哪些组可以对特定文件进行什么样的操作。
- 每个进程都是以某个用户的身份运行,所以进程的权限与该用户的权限一样,用户的权限大,该进程拥有的权限就大。
6.3.2 文件权限
- Linux 中,每个文件拥有以下三种权限:
权限 | 对文件的影响 | 对目录的影响 |
---|---|---|
r (读取) | 可读取文件内容 | 可列出目录内容 |
w (写入) | 可以修改文件内容 | 可在目录中创建删除文件 |
x (执行) | 可以作为命令执行 | 可访问目录内容 |
- 目录必须拥有 x 权限,否则无法查看其内容
6.3.3 UGO
- Linux 权限基于 UGO 模型进行控制
- U 代表 User ,G 代表 Group , O 代表 Other
- 每一个文件的权限基于 UGO 进行设置
- 权限三个一组(rwx),对应 UGO 分别设置
- 每一个文件拥有一个所属用户和所属组,对应 UG ,不属于该文件所属用户或所属组的使用 O 权限
- 命令 ls -l 可以查看当前目录下文件的详细信息
- drwxr-xr-- 2 nash_su training 208 Oct 1 13:50 linuxcast.net
- d : 文件类型
- rwxr-xr-- : UGO
- rwx : U 权限
- r-x : G 权限
- r-- : O 权限
- 2 : 链接数量
- nash_su : U 所属用户
- training : G 所属组
- 208 : 大小
- Oct 1 13:50 : 时间
- linuxcast.net : 文件名
- drwxr-xr-- 2 nash_su training 208 Oct 1 13:50 linuxcast.net
6.3.4 修改文件所属用户、组
- 命令 chown 用以改变文件的所属用户
- chown nash_su linuxcast.net
- -R 参数递归的修改目录下的所有文件的所属用户
- 命令 chgrp 用以改变文件的所属组
- chgrp nash_su linuxcast.net
- -R 参数递归的修改目录下的所有文件的所属组
6.3.5 修改文件权限
命令 chmod 用以修改文件的权限
- chmod 模式 文件
模式为如下格式:
- u、g、o 分别代表用户