欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux入门基础之 中

程序员文章站 2022-04-03 16:37:25
五、Linux 下获取帮助 没必要记住所有东西 Linux 提供了极为详细的帮助工具及文档,一定要养成查帮助文档的习惯,可以大大减少需要记忆的东西并且提高效率 5.1、HELP 几乎所有命令都可以使用 h 或 help 参数获取使用方法、参数信息等。 5.2、MAN man 命令是 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 网络编址

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

Linux入门基础之 中

7.1.2 ip 编址

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

Linux入门基础之 中

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位相同,以证明他们在同一网络
  • 例:通过比较网络部分是否相同来判断是否处于同一网络

Linux入门基础之 中

如上图所示,有三个网段在三个区域,北京地区的网段是 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 同一个网络主机之间的通信

Linux入门基础之 中

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

7.1.6 不同网络之间通信

Linux入门基础之 中

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

7.1.7 路由

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

Linux入门基础之 中

  • 路由表
目标网络 子网掩码 出接口
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
  • 域名大小写不敏感

Linux入门基础之 中

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

7.1.9 dns

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

Linux入门基础之 中

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