Linux入门基础之 中

五、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 支持以下参数:
    • -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 : 文件名

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 分别代表用户、组和其他
    • a 可以代指 ugo
    • +、- 代表加入或删除对应权限
    • r、w、x 代表三种权限
  • 模式示例:

    • chmod u+rw linuxcast.net
    • chmod g-x linuxcast.net
    • chmod go+r linuxcast.net
    • chmod a-x linuxcast.net

  • 命令 chmod 也支持以数字方式修改权限,三个权限分别由上数字表示:

    • -r = 4 (2^2)
    • -w = 2 (2^1)
    • -x = 1 (2^0)
  • 使用数字表示权限时,每组权限分别为对应数字之和:

    • rw = 4+2 = 6
    • rwx = 4+2+1=7
    • r-x = 4+1=5
  • 所以,使用数字表示 ugo 权限使用如下方式表示

    • chmod 660 linuxcast.net == rw-rw----
    • chmod 775 linuxcast.net == rwxrwxr-x
  • 实例:

    • 假设 LinuxCast.net 用户、组如下:
    用户
    training nash_su 、 bob
    market alice 、 john
    manage steve 、 david
    • 现要求为各部门、员工建立相应的工作文件夹,要求如下:
      • 所有目录、文件保存在统一的一个文件夹下
      • 每个部门拥有一个独立的文件夹
      • 不同部门之间不可访问各自文件夹
      • 每个员工在所在部门文件夹下拥有一个所属的文件夹
      • 同部门不同员工之间可以查看各自文件夹内容,但不可修改,用户仅能够修改自己的内容
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

根目录下创建文件夹:
mkdir linuxcast.net

cd linuxcast.net

mkdir training
mkdir market
mkdir manage

chgrp manage manage/
chgrp market market/
chgrp training training/

chmod o-rx manage/
chmod o-rx market/
chmod o-rx training/

cd training/
mkdir nash_su
mkdir bob
chown nash_su nash_su
chown bob bob
chgrp training bob
chgrp training nash_su
chmod o-rx bob
chmod o-rx nash_su

cd ..
cd market/
mkdir alice
mkdir john
chown alice alice
chown john john
chgrp market alice
chgrp market john
chmod o-rx alice
chmod o-rx john

cd ..
cd manage
mkdir steve
mkdir david
chown steve steve
chown david david
chgrp manage steve
chgrp manage david
chmod o-rx steve
chmod o-rx david

6.4、Linux 扩展权限

6.4.1 默认权限

  • 每一个终端都拥有一个 umask 属性,来确定新建文件、文件夹的默认权限
  • umask 使用数字权限方式表示,如:022
  • 目录的默认权限是:777-umask
  • 文件的默认权限是:666-umask
  • 一般,普通用户的默认 umask 是002,root 用户的默认 umask 是022
  • 也就是说,对于普通用户来讲:
    • 新建文件的权限是:666-002=664
    • 新建目录的权限是:777-002=775
  • 命令 umask 用以查看设置 umask 值
    • umask 022

6.4.2 特殊权限

  • 除了普通权限以外,还有三个特殊权限
权限 对文件的影响 对目录的影响
suid 以文件的所属用户身份执行,而非执行文件的用户
sgid 以文件所属组身份运行 在该目录中创建的任意新文件的所属组与该目录的所属组相同
sticky 对目录拥有写入权限的用户仅可以删除其拥有的文件,无法删除其他用户所拥有的文件
  • 设置特殊权限

    • 设置 suid : chmod u+s linuxcast.net
    • 设置 sgid : chmod g+s linuxcast.net
    • 设置 sticky : chmod o+t linuxcast.net
  • 与普通权限一样,特殊权限也可以使用数字方式表示

    • -SUID = 4
    • -SGID = 2
    • -Sticky = 1
    • 所以,我们可以通过以下命令设置:
    chmod 4755 linuxcast.net
    

七、Linux 网络基本配置

7.1、网络基础

7.1.1 网络编址

  • 网络编址就相当于身份证上的家庭住址和姓名,功能就是在互联网中唯一的定位一台设备,可以是计算机,可以是服务器,也可以是其他一些网络服务设备等等

7.1.2 IP 编址

  • IP 编址是一个双层编址方案,一个 IP 地址标识一个主机(或一个网卡接口)
  • 现在应用最为广泛的是IPv4 编址,已经开始逐渐向 IPv6 编址切换
  • IPv4 地址为32位长,IPv6 地址为128位长
  • 一个 IPv4 地址分为两个部分:网络部分 和 主机部分
  • 网络部分用来标识所属区域,相当于身份证的地址;主机部分用来标识该区域中的哪个主机,相当于身份证的姓名。

7.1.3 IP 地址

  • IPv4 地址共32位,通常使用点分十进制方式表示
  • 整个 IP 地址分为4个部分,每个部分8位
  • 例如:
    • ​ 192 . 168 . 1 . 1
    • 11000000.10101000.00000001.00000001

7.1.4 子网掩码

  • IPv4 地址的 32bit 分为网络部分和主机部分

  • 我们通过子网掩码来确定网络部分的位数

  • 子网掩码与 IP 地址一样,拥有 32bit ,每一位与 IP 地址中的每一位一一对应

  • IP 地址中相对应子网掩码中为1的部分为网络部分

  • 例如:

    IP: 192 . 168 . 1 . 1

​ 11000000.10101000.00000001.00000001

子网掩码: 255 . 255 . 255 . 0

​ 11111111.11111111.11111111.00000000

  • 证明此 IP 地址前24位是网络部分,也就是说,与此 IP 地址处在同一网络的其他主机的 IP 地址前24位相同,以证明他们在同一网络
  • 例:通过比较网络部分是否相同来判断是否处于同一网络

如上图所示,有三个网段在三个区域,北京地区的网段是 192.168.1.0,/24 是子网掩码的简写,代表前24位是网络部分,写成点分十进制就是 255.255.255.0 ,主机A、B、C 都是属于192.168.1.0 网段,/24 的子网掩码代表A、B、C 或者其他主机只要是在这个网段之内,它的前24位或者前三部分必然都是 192.168.1 ,分别用 .1 、 .2 、.3 去标识这个网段中不同的主机。同样,处于西安地区的网络是 172.16.1.0 ,也是 /24 的网络,表示这个网络当中所有主机的前3部分都是172.16.1 ,分别用 .1 、 .2 、 .3 去标识不同的主机。那上海地区的网络是 10.0.0.0 /8 ,也就是说第一个8位组或者点分十进制的第一部分或者二进制部分的前8位是用来规定网络部分的,这个网络中只要是以 10. 开头的网络都属于同一网段,如 10.0.0.1 , 10.1.1.1 ,10.100.32.45 等都是属于这同一个网段。

7.1.5 同一个网络主机之间的通信

  • 同一个网络内主机之间的通信还需要用到一个编址就是 MAC 地址
  • MAC 地址就是用来在同一个网络之内的主机之间通信的,通常同一个网络之内主机都是直接连接的
  • ARP :地址解析协议

7.1.6 不同网络之间通信

  • 只要是去访问不在同一网段的网络,都需要使用到路由器去转发,路由器就是一个中间人的角色

7.1.7 路由

  • 在不同网络之间传输数据的功能叫做路由功能,一般有多个接口,连接到不同的网络中,并且通过路由表进行数据转发,

  • 路由表
目标网络 子网掩码 出接口
192.168.1.0 255.255.255.0 eth0
172.16.1.0 255.255.0.0 eth1
61.1.1.0 255.255.255.252 eth2
  • 通常指的网关就是路由器的 IP 。

7.1.8 域名

  • IP 地址往往难以记忆,所以我们一般使用域名进行管理,例如:www.baidu.com
  • 域名分为三个部分,用 “ . ” 分隔
    • 类型 :标识此域名的类型,如:com、net、org、edu、gov 等
    • 域名 :域名称,如:baidu
    • 主机名:该域中的某台主机名称,如:www
  • 域名大小写不敏感

  • 主机名是可以随变起的,之所以大家都用 www 是因为约定俗成 www 是网页服务器,网页服务器也可以不叫这个名字,随变叫什么都可以

7.1.9 DNS

  • 每个域名代表一个 IP ,而 DNS 服务就是用来在 IP 与域名之间进行转换的

7.1.10 基本网络参数

  • 要配置一个局域网通信的计算机:

    • IP 地址
    • 子网掩码
  • 要配置一个跨网段通信的计算机:

    • IP 地址
    • 子网掩码
    • 网关
  • 要配置一个可上网的计算机:

    • IP 地址
    • 子网掩码
    • 网关
    • DNS

7.2、Linux 网络基础配置

7.2.1 以太网连接

  • 在 Linux 中,以太网接口被命名为: eth0、eth1 等,0、1代表网卡编号
  • 通过 lspci 命令可以查看网卡硬件信息(如果是 usb 网卡,则可能需要使用 lsusb 命令)
  • 命令 ifconfig 用来查看接口信息
    • ifconfig -a 查看所有接口
    • ifconfig eth0 查看特定接口
  • 命令 ifup 、 ifdown 用来启用、禁用一个接口
    • ifup eth0
    • ifdown eth0

7.2.2 配置网络信息

  • 使用 setup 命令可以配置网络信息,配置一个或多个网卡步骤如下,
    • setup -> Network configuration -> Device configuration -> eth0...(如果是多个网卡,第二次这个页面选择 New Device ) -> 按下键选到 Use DHCP 按空格键,默认选择的* 会消失掉 ,Static IP 输入:192.168.1.210,Netmask 输入:255.255.255.0,Default gateway IP 输入:192.168.1.1,Primary DNS Server 输入:61.134.1.4,还可以配置多个 DNS ,在 Secondary DNS Server 输入:210.30.19.40,设置完成后选择 OK 键,Select A Device 页面选择 Save 保存,再选择 SaveQuit 保存退出,最后选择 Quit 退出。(输入的 IP 地址要根据自己的实际情况输入!)
  • 配置完成后,使用 ifup 启用网卡,并使用 ifconfig 命令查看信息
    • ifup eth0

7.2.3 网络相关配置文件

  • 网卡配置文件
    • /etc/sysconfig/network-scripts/ifcfg-eth0
  • DNS 配置信息
    • /etc/resolv.conf
  • 主机名配置文件
    • /etc/sysconfig/network
  • 静态主机名配置文件
    • /etc/hosts

7.2.4 网络测试命令

  • 测试网络连通性 ( Ctrl + C 结束 )
    • ping 192.168.1.1
    • ping www.linuxcast.net
  • 测试 DNS 解析
    • host www.linuxcast.net
    • dig www.linuxcast.net
  • 显示路由表
    • ip route
  • 追踪到达目的地址的网络路径
    • traceroute www.linuxcast.net
    • traceroute www.douban.com
  • 使用 mtr 进行网络质量测试 (结合了 traceroute 和 ping)
    • mtr www.linuxcast.net

7.2.5 修改主机名

  • 实时修改主机名(重启后会恢复)
    • hostname train.linuxcast.net
  • 永久性修改主机名
    • /etc/sysconfig/network 文件下修改 HOSTNAME = train.linuxcast.net

7.2.6 故障排查

  • 网络故障排查遵循 从底层到高层、从自身到外部 的流程进行
  • 先查看网络配置信息是否正确
    • IP 网址
    • 子网掩码
    • 网关
    • DNS
  • 再查看到达网关是否连通
    • ping 网关 IP 地址
  • 再查看 DNS 解析是否正常
    • host www.linuxcast.net
    • host www.126.com
    • host www.douban.com
posted @ 2019-09-13 09:43  duncan1863  阅读(505)  评论(0编辑  收藏  举报