Linux操作系统

Linux操作系统

一、操作系统作用

  1. 部署测试环境
    1. 底层依赖环境
      1. JDK
      2. PHP
      3. Python
      4. NodeJS
      5. c语言的内置库文件
    2. 数据库依赖
      1. MySQL
      2. Oracle
      3. Redis
      4. mongDB
    3. 中间件
      1. 消息队列
      2. memcache
    4. 应用容器
      1. tomcat
      2. IIS
      3. weblogic
      4. nginx

二、本周的工作内容

  1. 部署JDK
  2. 部署MySQL
  3. 部署TOMCAT
  4. 部署woniuboss

三、准备工作

  1. 安装虚拟机,VMware workstation 16.1

  2. 安装Linux操作系统:centos7

    1. [root@localhost ~]#
      

      root:当前登录的用户

      localhost:当前登录的计算机终端ip地址或域名
      :当前用户所处的位置是用户的主目录,家目录

      # : 当前用户是超级管理员root,是$表示是普通用户

  3. 安装终端用来连接centos7? mobaxterm

    • ip :查看ip地址以及路由

      • ip [option] object

        • a :显示所有的ip信息

        • address :查ip地址有关的信息

        • route : 查询路由信息

          image-20220421140753669

    • 如果没有inet这一项,那么问题是什么? 一般来讲,虚拟网卡没有启动

      • vi : Linux用于编辑和查看文件的命令,类似于记事本。
      • 用法
        • vi 文件名 : 如果文件名存在,就是打开文件,如果文件名不存在就是新建文件。
        • 网卡的配置文件位置: /etc/sysconfig/network-scrips/ifcfg-eth0
        • 路径:定位文件或者目录的时候需要目录的排列顺序。这个的一个/代表一层。
          • 第一个/被称为根目录。因为Linux是一个文件操作系统。DOS、windows是磁盘操作系统。
            • 文件操作系统:操作系统把计算机控制所有的对象都视为一个文件。
          • 相对路径:从当前位置进行访问的路径。 ./ 当前目录, …/ 代表当前目录的上一级
          • 绝对路径:从根目录开始路径。使用绝对路径,在任何位置都可以访问的文件。
        • vi /etc/sysconfig/network-scripts/ifcfg-eth0
        • image-20220421142326392
        • vi的概念和用法
          • 模式
            • 命令模式:只能输入命令,不能编辑文件
              • 在该模式下使用 i、I、o、O、a、A
              • i :当前光标位置后面插入字符
              • I:当前光标位置的行首插入
              • o:当前光标的下一行新增空行
              • O:当前光标的上一行新增空行
              • a:当前光标位置的后面追加
              • A:当前光标位置的前面追加
            • 编辑模式:只能编辑不能输入命令
              • ctrl +c :切换命令模式
              • esc :切换命令模式
            • 末行模式:在命令模式下的最底下一行,来输入命令使用
              • 在命令模式下输入冒号,进入到末行模式
          • 常用的操作
            • 保存退出
              • :w 写入文件不退出
              • :wq 写入文件并退出
              • :q 直接退出,如果文件发生变化,则无法退出
              • :q! 强制退出不保存
              • :wq! 强制写入退出
            • 快速位移
              • G:直接到文件最后一行的开始处
              • gg: 回到文件的第一行的开始处
              • $ : 跳到当前行的尾部
              • ^ : 跳到当前行的开始处
              • } : 跳到段落的结尾
              • { : 跳到段落的开始
              • :set nu 显示行号
              • :n 直接到达第n行
            • 常用文本操作
              • dd:剪切当前行
              • p:当前行的下面粘贴
              • P:当前行的上面粘贴
              • yy:复制当前行
            • 查找和替换
              • /keyword 查找文本中keyword,使用n跳到下一个,N跳到上一个
              • :%s/old/new/g 把文本中所有的old替换为new,g的作用表示全文,缺少g只替换当前行的第一个
              • :m,ns/old/new/g 把m行到n的old替换为new
            • 撤销
              • u 撤销历史操作
        • 修改网络之后,必须重启网络服务
          • systemctl 系统控制面板
            • 查看服务状态: systemctl status 服务名(比如:network网络服务,防火墙firewalld,mysqld)
            • 启动服务: systemctl start 服务名
            • 停止服务: systemctl stop 服务名
            • 重启服务: systemctl restart 服务名
            • 设置服务开机启动: systemctl enable 服务名
            • 禁止服务开机启动: systemctl disable 服务名
            • 重启服务器: reboot
            • 关闭服务器: poweroff
          • 重启网络服务: systemctl restart network

四、安装JDK

  1. 准备工作

    1. 常用命令
      • 目录切换:cd 路径
        • cd ~ :回到当前用户的主目录下面
      • pwd :显示当前位置的路径
      • ls(list):显示当前路径下的内容
        • ls -l : 以详情列表的形式显示当前目录下的内容,如果加路径,显示路径下的内容,简写为 ll
        • ls -a : 显示目录下面的所有文件,包括隐藏文件。
        • image-20220421161158783
  2. 安装JDK的步骤

    1. 去网上下周jdk的tar包

      1. 百度一下jdk的tar包
    2. 上传到Linux指定目录

      1. 安装一个上传下载工具 lrzsz ; 推荐:secureCRT里面使用

        1. yum命令: 在线安装软件
        2. 语法: yum -y install 软件包名字 软件包名字
          • -y : 在安装过程会产生一些提示,确认是否继续安装,-y默认选择yes
          • 软件包的名字不是安装后使用的程序名
      2. scp命令: scp 文件位置 用户名@remotehost:/目标位置

        • 该命令执行的时候需要相应用户的密码

        • PS D:\humh\toolss> scp   jdk-8u231-linux-x64.tar.gz    root@172.18.169.193:/mnt
          The authenticity of host '172.18.169.193 (172.18.169.193)' can't be established.
          ECDSA key fingerprint is SHA256:t2XlGN8Lx2+QGEbPh86IsIfrW4phN48tNcIABcpf//Y.
          Are you sure you want to continue connecting (yes/no/[fingerprint])?
          Please type 'yes', 'no' or the fingerprint:
          Please type 'yes', 'no' or the fingerprint:
          Please type 'yes', 'no' or the fingerprint:
          Warning: Permanently added '172.18.169.193' (ECDSA) to the list of known hosts.
          root@172.18.169.193's password:
          jdk-8u231-linux-x64.tar.gz
          
      3. 直接通过终端把文件拖拽上传

    3. 将jdk-xxx.tar.gz解压到指定的目录下面

      1. 解压程序包相关知识

        1. 压缩文件的基本原理
          1. 磁盘存储的时候是使用0101方式。加入使用int类型,分配4个字节,实际使用可能只有1个字节,其他的三个字节使用的00来占位。把用来占位00去掉,把去掉的操作内容记录下来。目的是解压的时候根据这个步骤把扣掉00填回去。
        2. 压缩的标准
          1. 效率:xz>bzip>gzip
          2. 速度: gzip>bzip>xz
        3. 相关的命令
          1. gzip [-cdrvl] 文件
            1. -c:
            2. -d:
            3. -r:
            4. -v:
            5. -l:
            6. -数字:
          2. tar: 归档文件
            1. 归档: tar -zcvf xxx.tar.gz 源 …
            2. 解压: tar -zxvf xxxx.tar.gz [-C 目标路径]
              1. -z:
              2. -c:
              3. -x:
              4. -v:
              5. -f:
              6. -C 目标路径:
        4. 重定向
          1. 作用:把上一个命令的返回结果输出到指定的文件中,如果文件不存在,自动创建。
          2. 两种模式:
            1. > : 覆盖模式,理解为先清空文件,再写入结果。
            2. >> : 追加模式,理解为在原来文件的最后面追加
          3. 语法: 命令 > | >> 文件名
      2. 解压jdk-xxx.tar.gz 到 /opt目录下面

        1. tar -zxvf jdk-8u231-linux-x64.tar.gz -C /opt
          
        2. **【可选步骤】**重命名jdk的目录名,目的为了操作过程中好记

          1. mv  jdk-1.8.0_231  jdk1.8
            
          2. mv(move): 把文件移动到指定位置,同时也可以实现改名,在同一个目录下面移动,或者移动到其他目录的时候没有同名的目录。

            mkdir  demo demo1 # 创建目录,这里同时创建2个
            mv  demo  demo2 # 同级目录移动等于改名
            mv demo2  demo1/demo # 移动其他目录并改名
            
    4. 配置系统的环境变量

      1. jdk的目录结构解释:

        image-20220422110058952

        image-20220422110238039

      2. 环境变量相关概念

        1. 环境变量:操作系统为支撑程序的运行提供变量
          1. 用户变量:只有当前用户能够使用
            1. 位置: 主目录下面的 .bash_profile
          2. 系统变量:所有用户都可以使用,全局变量
            1. 位置: /etc/profile
        2. 如何定义变量
          1. 命令: export 变量名=值
            • 该命令可以用在命令行,也可以在配置文件中使用
        3. 为什么要定义环境变量?
          1. 使用命令启动程序的时候,使用命令的位置不一定在安装程序的目录下面,操作系统首先回去环境变量中查找定位
          2. PATH:路径,所有可执行程序存放的路径,这个路径需要手工或者程序在安装的时候去添加
          3. echo $PATH :该命令用于输出变量的值;用于检查某个环境变量是否正确配置。
      3. 配置JAVA环境变量

        1. 需要让操作系统知道jdk的bin目录的位置

        2. 配置java程序启动和运行依赖的库文件dt.jar,tools.jar

        3. export JAVA_HOME=/opt/jdk1.8
          export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
          export PATH=$PATH:$JAVA_HOME/bin
          
        4. 使用: source /etc/profile 激活环境变量

    5. 检查安装效果

      1. 检查配置结果

      2. [root@localhost ~]# java -version
        java version "1.8.0_231"
        Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
        Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
        

五、部署MySQL数据库服务

1、下载mysql5.7-xxx.tar.gz

  • https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

2、上传到Linux的指定目录

  • scp  mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz  root@ip:/mnt
    

3、解压到Linux指定目录

  • tar  -zxvf   mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz  -C  /opt
    
  • 重命名目录

  • 
    

4、修改mysql的目录权限

  • Linux系统的权限相关概念

    • Linux有三种角色,三种权限

      • 三种角色
        • 所有者,owner: 默认是文件或目录的创建者
        • 所有者同组用户,group: 所有者同组的用户
        • 其他人,other:和所有者不同组的用户
      • 三种权限
        • r(read): 读
        • w(write): 写入
        • x(excute): 执行
    • 查看文件或目录的权限

      • ls -l [文件名/目录名]

        • drwxr-xr-x. 2 10 143     4096 105 2019 bin
          -r--r--r--. 1 10 143     3244 105 2019 COPYRIGHT
          
        • 列表最前面的10个字符就是代表了文件或目录的权限,比如:drwxr-xr-x

      • 权限列表的解读: 10个字符分为四组

        • 第一组:第一个字符,d代表目录,- 代表文件,l 代表软连接
        • 第二组:第一个rwx字符,代表的是owner的权限
        • 第三组:第二个rwx字符,代表的是group的权限
        • 第四组:最后三个字符,代表的是other的权限
        • 在第二组,第三组,第四组中使用-表示去掉该权限。
    • 修改权限

      • 命令: chmod [-R] 权限列表 文件名或目录

        • -R :递归修改 ,主要应用与目录的权限修改

        • 权限列表

          • 字母+权限

            • # 文件demo.txt 的权限是用户可以读写,同组可以读写,其他人可读
              chmod   u+rw,g+rw,o+r   demo.txt
              
            • # 文件demo.txt用户可以读写执行,同组和其他用户只能读
              chmod  u+x,g-w  demo.txt
              
          • 数字表示权限

            • rwx 对于数字和位置 421,每个角色的权限把421加起来,如果-等于0. 最后把三个角色的权限数字挨着放

            • # 文件demo.txt用户具有读写执行权,同组可读写,其他人可读,用数字表达权限是多少?
              #764
              chmod  764  demo.txt
              
              
    • 修改文件或目录的所属用户和组

      • 组: Linux为了方便管理用户使用组的方式,group

      • 查看用户组: cat /etc/group ;查看用户: cat /etc/passwd

        • cat /etc/group
          root:x:0:
          bin:x:1:
          #组的信息使用冒号间隔,一共分成四个部分
          #第一个部分是组名,第二部分是密码,第三部分是组的编号,第四部分是附属成员
          cat /etc/passwd
          root:x:0:0:root:/root:/bin/bash
          bin:x:1:1:bin:/bin:/sbin/nologin
          # 用户信息使用冒号分成7个部分
          # 第一部分是用户名,第二部分密码,第三部分用户编号,第四部分组的编号,第五部分组名,第六部分主目录,第七部分是用户使用解析脚本解析器名字
          
          
      • 修改文件和目录的所有者的命令

        • chown [-R] username[:groupname] 文件名或目录名

        • # 修改mysql57的所有者和组为root
          chown -R root:root  mysql57
          

5、修改MySQL的配置文件,/etc/my.cnf

# mysql的服务器节点
[mysqld]
# mysql主目录
basedir=/opt/mysql57
# mysql数据库文件存放的目录
datadir=/opt/mysql57/data
# mysql服务器提供的连接
socket=/tmp/mysql.sock
# mysql的服务器监听端口
port=3306
symbolic-links=0

# mysql服务安全启动模式
[mysqld_safe]
# mysql错误日志位置
log-error=/opt/mysql57/logs/mariadb.log
# mysql服务器进程信息文件位置
pid-file=/opt/mysql57/mariadb.pid

!includedir /etc/my.cnf.d

  • 创建配置文件中涉及目录

    • 目录相关操作的命令

      • 创建目录:

        • mkdir 目录名 目录名 :在同一个目录下面连续创建多个目录。

        • mkidr -p 目录名/目录名/… :创建多层目录,-p 的作用是自动创建路径中不存在的目录

        •  mkdir -p dir/dir1/dir2/dir3
           mkdir  dir1  dir2  dir3
          
      • 删除目录

        • 删除空目录: rmdir 目录名,作用是删除空目录。
        • 删除非空目录: rm -rf 目录名|文件名
          • -r :递归删除
          • -f :强制删除,缺省的时候,删除操作会提示用户,得到授权之后才能执行删除。
          • rm -rf / : 删库走人
    • mkdir  /opt/mysql57/data  # 创建数据库文件的目录
      mkdir  /opt/mysql57/logs # 创建日志文件的目录
      

6、初始化MySQL数据

  • 修改环境变量,把mysql的主目录和bin加到环境变量中

  • export MYSQL_HOME=/opt/mysql57
    export PATH=$PATH:$JAVA_HOME/bin:$MYSQL_HOME/bin
    
    

    source /etc/profile

    [root@localhost logs]# mysql -V
    mysql  Ver 14.14 Distrib 5.7.31, for linux-glibc2.12 (x86_64) using  EditLine wrapper
    
    
  • 初始化数据库

  • mysqld  --defaults-file=/etc/my.cnf   --initialize-insecure  --user=root
    
    • –defaults-file : 设置mysql服务启动所需的配置文件

    • –initialize: 初始化数据,同时生成一个临时密码 ,–initialize-insecure :初始化之后不设密码

    • –user : 指定初始化操作的Linux用户

    • [root@localhost logs]# mysqld  --defaults-file=/etc/my.cnf   --initialize-insecure  --user=root
      2022-04-22T09:32:31.966689Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
      2022-04-22T09:32:32.206050Z 0 [Warning] InnoDB: New log files created, LSN=45790
      2022-04-22T09:32:32.286954Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
      2022-04-22T09:32:32.308225Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 22ab7e8a-c21f-11ec-9cc0-00155d0c5700.
      2022-04-22T09:32:32.317292Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
      2022-04-22T09:32:33.547579Z 0 [Warning] CA certificate ca.pem is self signed.
      2022-04-22T09:32:34.292050Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
      
      

7、启动MySQL服务

  • [root@localhost logs]# mysqld  --defaults-file=/etc/my.cnf  --user=root &
    
  • 启动成功的显示

  • 2022-04-22T09:34:58.522344Z 0 [Note] Event Scheduler: Loaded 0 events
    2022-04-22T09:34:58.522754Z 0 [Note] mysqld: ready for connections.
    Version: '5.7.31'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server (GPL)
    
  • 检查启动端口监听状态

    • 命令: netstat -anlp|grep 3306

    • [root@localhost logs]# netstat -anlp|grep 3306
      tcp6       0      0 :::3306                 :::*                    LISTEN      17928/mysqld
      
      • -a : 表示所有的端口
      • -n :以数字的方式显示端口信息
      • -l :显示正在监听状态的端口
      • -p :显示监听端口的程序以及PID(进程编号)
    • | : 管道符

      • 什么是管道? 把上一个命令的输出作为下一个命令的输入。
    • grep :作用是从文件中查询是否存在某个字符串,比如这里的3306,该处表示从上一个命令的返回中查找是否存在3306.

8、开启MySQL远处访问权限

  • mysql> grant all on *.* to 'root'@'%' identified by '123321' with grant option;
    mysql>flush privileges;
    

9、通过客户端去连接和使用MySQL

六、部署tomcat

1、下载tomcat8.5的tar

2、上传Linux指定目录

3、解压到指定的目录

  • 目录结构

    • image-20220424095400497
  • 常用的文件

    • 启停类: bin目录下面

      • 前端启动: ./catalina.sh run ,启动之后可以直接看到运行日志,阻塞式。关闭终端会导致tomcat服务停止。
        • 用途:检查部署是否成功使用。
      • 后端启动:./startup.sh ,启动之后进入后台运行,看不到运行日志。关闭终端对tomcat服务没有影响。
        • 建议在调试稳定之后,使用后台启动。
      • 停止tomcat: ./shutdown.sh ,如果8005端口被占用,该脚本就无效。
    • 配置类: conf下面: server.xml

      •  <Connector port="8080" protocol="HTTP/1.1"
                       connectionTimeout="20000"
                       redirectPort="8443" />
        # port 是设置tomcat的启动端口,如果出现端口冲突, 就在这里修改
         <Host name="localhost"  appBase="webapps"
                    unpackWARs="true" autoDeploy="true">
                    
        # name代表是从浏览器访问tomcat的时候,需要的主机地址,appBase指向存放web应用的目录,这个可以修改。
        # unpackWARs为true表示tomcat自动解压war包。 autoDeploy为true表示tomcat会自动发布web应用
        
        
    • 日志类: logs下面

      • tomcat的运行日志的名字:
        • catalina.yyyy-mm-dd.log
        • catalina.out # tomcat的运行应用的日志,定位缺陷的时候用的较多

4、检查tomcat是否可以正常启动

  • 出现错误如下:

    • 地址已在使用 (Bind failed)
      
      • 表示tomcat的端口被占用了

      • 解决办法: 强制结束进程

        • 命令:kill
          • kill PID :正常结束进程,通过PID
          • kill -9 PID : 强制结束进程,通过PID
      • 查看进程是否正在运行

        • 命令 : ps(processor status)

        • 语法: ps -ef [aux ] |grep 程序名(部分程序名)

          • [root@localhost bin]# ps aux|grep mysql
            root     17928  0.1 12.8 1589132 233880 ?      Sl   4月23   2:00 mysqld --defaults-file=/etc/my.cnf --user=root
            root     19966  0.0  0.0 112824   980 pts/0    S+   14:39   0:00 grep --color=auto mysql
            [root@localhost bin]# ps -ef |grep mysql
            root     17928     1  0 4月23 ?       00:02:00 mysqld --defaults-file=/etc/my.cnf --user=root
            root     19968 19574  0 14:41 pts/0    00:00:00 grep --color=auto mysql
            
            
  • 在浏览器中输入: ip:8080

  • image-20220424104944574

七、部署web应用

1、上传web应用的war包文件到Linux的指定目录,推荐直达tomcat的webapps目录

  • scp  woniusales.war  root@172.18.169.193:/opt/tomcat8.5/webapps
    
  • image-20220424142539629

  • 拷贝文件或目录

    • 命令:cp(copy):

      • 语法: cp [-r] 源 目标

      • -r :递归拷贝,拷贝单个文件不需要

      • 拷贝可以修改文件名字,目标目录下如果没有文件名或目录名,等于是复制加改名

      • cp 	/mnt/woniusales.war 	/opt/tomcat8.5/webapps/
        

2、启动tomcat,使其自动解压war文件

3、配置web的数据库,以备web应用访问

4、去webapps里面找到web应用的数据库连接配置文件,修改配置项,使其能够正确定位数据库的位置

  • 不同的web应用它的数据库连接文件名可能不一样 【重点】

    • 企业中,开发工程师发布的安装包里面会带上一个配置说明文档。照着这个文档去做,如果出现问题,在排除自己操作失误的情况下,可以确定为配置错误。这个也称为安装测试。
  • woniusales的数据库连接文件的位置

    • woniusales/WEB-INF/class/db.properties

    • db_url=jdbc:mysql://localhost:3306/woniusales?useUnicode=true&characterEncoding=utf8 
      db_username=root
      db_password=
      db_driver=com.mysql.jdbc.Driver
      

      db_url: 数据库的连接地址,localhost这个是tomcat去访问的数据库的主机地址,3306是数据库监听的端口,woniusales是我们创建的数据库的名字。

5、重启tomcat,检测配置是否完成

  • 在浏览器中输入:ip:8080/woniusales
  • image-20220424113654431

八、命令拾遗

1、文件创建

  • touch 文件名: 创建一个空文件
  • 使用重定向创建: man ls > ls.txt
  • vi 文件名

2、文件查看

  • vi 文件名;
  • cat 文件名:查看文件的全部内容,如果文件行数多的话,不方便查看
  • more 文件名:分屏查看,每次显示一屏
  • less 文件名: 分屏查看
  • tail [-f,-n 数字] 文件名
    • -f : 阻塞式动态查看文件内容
    • -n 数字: 查看文件结尾指定行数,比如: tail -n 100 文件名 ,查看文件的最后的100行,缺省最后10行
  • head -n 数字 文件名:缺省-n,显示前面10行

3、链接文件

  • 硬链接:一个文件被设置为硬链接,就会形成互相之间联动的两个单独文件

    • 语法: ln -d 源文件 连接文件名

    • [root@localhost dir]# ln -d demo.txt ../dir0/demo
      [root@localhost dir]# ls -l ../dir0/demo
      -rw-r--r--. 2 root root 0 424 17:31 ../dir0/demo
      [root@localhost dir]# vi demo.txt
      [root@localhost dir]# ls -l ../dir0/demo
      -rw-r--r--. 2 root root 5 424 17:33 ../dir0/demo
      [root@localhost dir]# cat ../dir0/demo
      1234
      [root@localhost dir]# vi ../dir0/demo
      [root@localhost dir]# cat demo.txt
      1234
      456
      
      
  • 软链接:创建一个标识性文件,用来指向原文件,可以理解快捷方式

    • 语法: ln -s 源文件 连接文件

    • [root@localhost dir]# ln -s demo.txt  ../dir0/demos
      [root@localhost dir]# ll ../dir0/
      总用量 4
      -rw-r--r--. 2 root root 9 424 17:33 demo
      lrwxrwxrwx. 1 root root 8 424 17:36 demos -> demo.txt
      [root@localhost dir]# ll
      总用量 4
      -rw-r--r--. 2 root root 9 424 17:33 demo.txt
      [root@localhost dir]# rm -f demo.txt
      [root@localhost dir]# ll ../dir0/
      总用量 4
      -rw-r--r--. 1 root root 9 424 17:33 demo
      lrwxrwxrwx. 1 root root 8 424 17:36 demos -> demo.txt
      [root@localhost dir]# cat ../dir0/demo
      1234
      456
      [root@localhost dir]# cat ../dir0/demos
      cat: ../dir0/demos: 没有那个文件或目录
      
      
    • 特性:

      • 硬链接文件是独立同时和源文件保持联动,删除任意一方,不影响另外的文件。修改数据是联动的。
      • 软件链接文件类似win快捷方式,只要删除源文件,软链接就失效。修改源文件的内容,不影响软链接。

九、用户管理

    • 查看组
      • cat /etc/group
    • 添加组
      • groupadd 组名
    • 修改组
      • groupmod -n new old
    • 删除组
      • groupdel 组名
  • 用户
    • 新增用户
      • useradd username:买一送二
      • useradd -g 主组 -G 附加组
    • 查询用户
      • cat /etc/passwd
    • 修改用户
      • usermod -g 组名
      • usermod -aG 附加组
    • 删除用户
      • userdel 用户名
      • userdel -f 强制删除用户
      • userdel -rf 删除用户和主组,如果主组里面还有其他用户,该命令会失败

十、挂载

  • 什么是挂载?

    • 是通过文件去映射外部设备,从而可以通过这个文件去访问外部设备的数据
  • 命令

    • mount  [option]      需要挂载的资源 映射文件
      
  • 挂载共享目录

    • mount -t cifs  -o usernmae=Everyone  //ip/share  /mnt/wintools
      

十一、非常有用的命令

  • 命令的别名设置:

    • alias 别名=‘命令’

      • 临时生效
    • 永久生效,修改配置文件,在 主目录的.bash_profile里面去增加

    • alias cls='clear'
      alias hh='history'
      alias ps='ps -ef |grep '
      alias ns='netstat -anlp|grep '
      
  • 查看历史命令

    • history

      •   300  vi .bash_profile
          301  source .bash_profile
          302  cls
          303  hh
          304  ps mysqld
          305  ns 3306
          306  cat .bash_profile
          307  hh
          308  psg mysqld
          309  cat .bash_profile
          310  hh
          
        
      • 第一列为命令编号,第二列是命令的详情

    • !命令编号 : 重复执行指定编号的命令

    • !命令部分字符 : 重复执行最近匹配的命令行

    • 储存命令历史的文件在~/bash_history中。history配置文件为/etc/profile,默认记录1000行,如果修改行数则修改参数HISTSIZE=1000 即可。【重点】

  • 进程查看命令

    • top
    • ps : 当需要确定我们的进程是否启动时。
  • 结束进程的命令: kill -数字 PID

    • 1 (HUP):重新加载进程。
    • 9 (KILL):杀死一个进程。
    • 15 (TERM):正常停止一个进程。
  • 查看端口占用的命令:netstat -anlp|grep port

    • 什么时候用呢?
      • 当我们需要启动某个服务,出现地址被使用的时候
      • 我们去连接某个服务,出现连接不上或连接被拒绝时候

十二、yum的镜像源修改

  1. 安装wget: yum -y install wget

  2. cd /etc/yum.repos.d;备份CentOS-Base.repo

  3. 执行下载aliyun的镜像源命令: 注意版本

    1. wget -O /etc/yum.repos.d/CentOS-Base.repo   https://mirrors.aliyun.com/repo/Centos-7.repo
      
  4. 重新创建yum的缓存

    1. yum  clean  all
      yum  makecache  fast
      

十二、docker技术

  • 概念

    • 什么是docker技术?

      • 虚拟化技术,实现的是应用级的隔离,而不是物理级的隔离
    • 概念图

      image-20220425114402939

    • docker技术和虚拟机技术的相比的优势

      1. 更高效的利用系统资源。
      2. 更快速的启动。
      3. 提供一致的运行环境。
      4. 完成持续交付和部署。
      5. 进行更轻松的迁移。
    • docker技术的核心概念

      • 镜像:把目标系统的特征进行汇总和重构形成的一个文件,依赖docker引擎。
        • 开发人员使用docker引擎提供的命令创建的
      • 仓库:保存镜像文件的地方
        • 全局仓库:docker公司自己维护
        • 私有仓库:企业自己创建的
      • 容器:依据镜像文件使用docker引擎恢复成可运行的系统或应用程序。
        • 用户根据实际需要,使用相关镜像文件启动运行的
  • docker的安装步骤

    • 先安装依赖环境

      • yum install -y yum-utils device-mapper-persistent-data lvm2
        
    • 再添加docker-ce的镜像源

      •  yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
         yum makecache fast
        
    • 安装docker

      • yum -y install  docker-ce
        
    • 检查安装是否成功

      • systemctl start  docker 
        docker info
        
      • 运行结果如下

      •  Name: localhost.localdomain
         ID: TWR2:NLDM:3QFN:IHRF:UWGN:IW4R:L3DC:B3J3:JYJG:GXDF:2YGP:Q7LM
         Docker Root Dir: /var/lib/docker
         Debug Mode: false
         Registry: https://index.docker.io/v1/
         Labels:
         Experimental: false
         Insecure Registries:
          127.0.0.0/8
         Live Restore Enabled: false
        
    • 优化docker的镜像

      • vi /etc/docker/daemon.json

      •  {
                "registry-mirrors": [
                "https://kfwkfulq.mirror.aliyuncs.com",
                "https://2lqq34jg.mirror.aliyuncs.com",
                "https://pee6w651.mirror.aliyuncs.com",
                "https://registry.docker-cn.com",
                "http://hub-mirror.c.163.com"
                ],
                "dns": ["8.8.8.8","8.8.4.4"]
                }
          
        
    • 重载daemon文件

      • systemctl   daemon-reload
        
    • 重启docker服务

      • systemctl restart  docker
        systemctl  enable docker
        
    • 查看新的镜像源是否生效

      • docker info
        
      • 运行结果如下:

      • Registry Mirrors:
          https://kfwkfulq.mirror.aliyuncs.com/
          https://2lqq34jg.mirror.aliyuncs.com/
          https://pee6w651.mirror.aliyuncs.com/
          https://registry.docker-cn.com/
          http://hub-mirror.c.163.com/
         Live Restore Enabled: false
        
  • 使用docker安装部署应用

    • 部署mysql

      • 下载MySQL镜像

        • docker search  mysql:5.7
          docker  pull  idyci/mysql
          
      • 启动MySQL容器

        • docker  run  -d  --name mysql57  -p 3308:3306  --restart=always  --privileged=true -e MYSQL_ROOT_PASSWORD='123321'   idyci/mysql
          
          • -d: 后台启动 , -it :前端启动,送一个命令行界面
          • –name : 容器名,自定义
          • -p 宿主端口:容器端口
          • –restart=always : 伴随docker一起启动
          • –privileged=true : 进入容器使用root权限
          • -e 设置项 :设置环境变量
          • 镜像文件名 : 一般放到命令的最后,要和本地镜像仓库的名字,这里可以镜像id
        • 检查容器运行状态

          • docker  ps  -a  # -a 显示所有状态的容器, 缺省的话只能看到运行中的容器 
            
          • 显示结果如下;

          • [root@localhost yum.repos.d]# docker ps
            CONTAINER ID   IMAGE          COMMAND                  CREATED              STATUS              PORTS                                                  NAMES
            93f9e059ff41   6c3949ffb5c2   "docker-entrypoint.s…"   About a minute ago   Up About a minute   33060/tcp, 0.0.0.0:3308->3306/tcp, :::3308->3306/tcp   mysql57
            [root@localhost yum.repos.d]# ns 3308
            tcp        0      0 0.0.0.0:3308            0.0.0.0:*               LISTEN      21503/docker-proxy
            tcp6       0      0 :::3308                 :::*                    LISTEN      21508/docker-proxy
            
  • 部署tomcat

    • 拉取tomcat的镜像文件

      • docker   search   tomcat:8.5
        docker  pull 	镜像名
        
    • 运行tomcat的容器

      • docker  run  -d  --name  tomcat8  -p 8090:8080  -v 宿主目录:容器目录 [-v 宿主目录:容器目录 ]   镜像名 
        
        • -v 宿主目录:容器目录:挂载目录,这里的作用就是把tomcat的webapps挂载到宿主目录,方便我们在宿主目录操作它。
      • 查看容器的运行日志

        • docker  logs   容器名
          
      • 删除容器的命令

        • docker   rm  [-f]  容器名 		# -f 强制删除容器,即便容器是运行状态
          
      • 删除镜像文件

        • docker  rmi  镜像名 
          
        • image-20220425162443835

    • devops:解决分布式发布的一种思想

      • 流水线自动化解决研发到发布的问题
      • 底层依赖就是docker容器技术
    • docker的常用命令

      • 镜像相关
        • 搜索镜像文件: docker search 镜像文件名:版本
        • 拉取: docker pull 镜像文件名|ID
        • 删除镜像: docker rmi 镜像文件名
        • 提交镜像文件 : docker commit -p -a “作者名” -m “镜像的简洁” 容器名|ID 镜像名:tag
        • 导出本地镜像文件: docker save -o 路径/xxxx.tar 镜像文件
          • 作用:将本地的镜像文件导出Linux目录下,用于备份或者复制
        • 导入tar文件到本地的镜像库: docker load --input xxxx.tar
      • 容器相关
        • 把容器导出成tar包 : docker export -o xxxx.tar 容器名
        • 把上一步tar包导入成镜像: docker import xxxx.tar username/程序名:tag
        • 把镜像文件上传到仓库: docker push 镜像文件名
          • 前提是docker hub的账户
        • 进入容器的内部: docker exec -it 容器名 /bin/bash
        • 在宿主和容器之间拷贝文件:
          • docker cp 宿主目录 容器id|容器名:容器目录

附加

1、解决Linux系统中所有命令无法使用的问题:

  • export PATH=/usr/sbin:/usr/bin:/usr/local/bin:/bin
  • vi /etc/profile
  • 仔细检查文件中哪里被修改错了

2、1>/dev/null 2>&1

  - ```
    docker   rm  [-f]  容器名 		# -f 强制删除容器,即便容器是运行状态
    ```

- 删除镜像文件

  - ```
    docker  rmi  镜像名 
    ```

  - [外链图片转存中...(img-hfAR66KV-1669104745891)]
  • devops:解决分布式发布的一种思想

    • 流水线自动化解决研发到发布的问题
    • 底层依赖就是docker容器技术
  • docker的常用命令

    • 镜像相关
      • 搜索镜像文件: docker search 镜像文件名:版本
      • 拉取: docker pull 镜像文件名|ID
      • 删除镜像: docker rmi 镜像文件名
      • 提交镜像文件 : docker commit -p -a “作者名” -m “镜像的简洁” 容器名|ID 镜像名:tag
      • 导出本地镜像文件: docker save -o 路径/xxxx.tar 镜像文件
        • 作用:将本地的镜像文件导出Linux目录下,用于备份或者复制
      • 导入tar文件到本地的镜像库: docker load --input xxxx.tar
    • 容器相关
      • 把容器导出成tar包 : docker export -o xxxx.tar 容器名
      • 把上一步tar包导入成镜像: docker import xxxx.tar username/程序名:tag
      • 把镜像文件上传到仓库: docker push 镜像文件名
        • 前提是docker hub的账户
      • 进入容器的内部: docker exec -it 容器名 /bin/bash
      • 在宿主和容器之间拷贝文件:
        • docker cp 宿主目录 容器id|容器名:容器目录

附加

1、解决Linux系统中所有命令无法使用的问题:

  • export PATH=/usr/sbin:/usr/bin:/usr/local/bin:/bin
  • vi /etc/profile
  • 仔细检查文件中哪里被修改错了

2、1>/dev/null 2>&1

1>/dev/null 2>&1的解释就是将stdout标准输出重定向到空设备文件/dev/null ,同时将stderr标准错误输出的重定向跟stdout标准输出重定向一致,也输出到空设备文件/dev/null。

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论
Linux是一个多任务、多用户的操作系统,它以其良好的特性和资源的免费性而得到了蓬勃的发展。  本书通过大量的图示和实例,深入浅出的介绍了Linux的基本原理和应用。主要包括Linux的基本概念和操作,Linux的树型结构,Linux的文本编辑,Linux的安装和启动,用户管理,Shell编程技术,进程管理,C编译器,系统扩充,维护与监视,Linux的图形界面,网络的基本概念与设置,Linux在网络资源共享和电子邮件方面的应用,以及DNS、FTP、Web和Proxy服务器等内容。  本书可作为Linux操作系统课程的教材,也可作为电脑爱好者,相关技术人员及参加Linux认证考试人士的参考书。 一、关于Linux Linux是一个正在蓬勃发展的极富生命力的操作系统。芬兰青年Linus Torvalds和其杰作的传奇故事吸引了无数的电脑爱好者尝试去使用Linux,但他们中的大多数人却被Unix类操作系统传统的枯燥的字符界面、艰涩难懂的操作命令和数量庞大的基本概念以及基础知识所吓退。Linux在这几年中迅速地发展,Turbo Linux宣布该公司已经开始盈利了,这说明了Linux正在逐渐大众化。在未来的几年中,Linux在各行各业中的应用将遍地开花,能熟练操作Linux将是每一个系统管理员所需掌握的基本技能。 曾经有一种说法:能熟练操作Linux的人,必定是电脑业界的顶尖高手。本书正是为改变这一种看法而面世的,它主要面向那些对电脑系统有初步认识的初学者,即使读者从未接受过电脑方面的系统训练,甚至连微软的Windows都没有学过,也能从本书中获益。 二、本书特点 1)在介绍过程中,着重于概念的层次性和内容的衔接,使读者更容易进行学习。 2)为了能把深奥、复杂的概念和操作表达明白,本书使用了大量的插图和实际操作例子,使之通俗易懂。例如:在网络应用部分中的很多例子,都在中山大学服务器上运行,每天都在承受巨大的访问量。 3)配置了大量习题。 三、本书结构安排 本书共分19章,遵循由简到繁、由易到难的讲解方式来组织、安排内容。 第1章:Linux基础。本章首先对Unix进行了概述,然后介绍了Linux的技术特点、Linux的版本,以及Linux对中文的支持。 第2章:基本操作。本章主要介绍了Linux的一些基本操作。如:注册、注销、远程登录、更改时间、关闭系统等。 第3章:树型结构。本章主要介绍了Linux的文件结构、目录结构,同时还介绍了链接,并用大量的实例形象生动地说明了Linux下各种文件的操作。 第4章:文本编辑。本章主要介绍了Linux下的文本编辑器,这是使用Linux的一些基本技能。学好本章,有利于以后的学习。 第5章:Linux的安装和启动。本章主要介绍了Linux的安装和启动,其中涉及到一些原理以及其他Unix类操作系统上的原理。 第6章:用户管理。本章主要介绍了Linux下增加用户、删除用户、设置用户组的各种操作,这些操作是进入Linux系统的第一步。 第7章:Shell和Shell编程。本章主要介绍了Shell的基本概念、Shell脚本以及awk的相关知识。 第8章:进程管理。本章主要介绍了在Linux中的进程管理。其中包括了进程、进程数、进程的优先级、定时执行等。 第9章:C编译器—— gcc。本章主要介绍了Linux下面的编译器—— gcc的基本用法以及Make与Makefile的一些基本知识。 第10章:系统扩充。本章主要介绍了在Linux中系统的扩充,包括软件的安装和内核的升级等内容。 第11章:系统维护与监视。本章主要介绍了Linux中的文件系统维护与监视。其中包括交换空间、/proc的信息以及各种日志文件和进程记账等。 第12章:图形界面。本章主要介绍了X Window以及它的配置,并且介绍了在KDE环境下汉化的基本思想,用实例来讲解了Linux汉化的基础知识。 第13章:网络的基本概念与设置。本章主要介绍了网络的基本概念,并在讲解这个概念的同时,讲解Linux中的网络配置。在此同时讲解了Linux的基本的网络命令,这对于理解Linux的网络上面的基本运用有着很大的作用。 第14章:网络资源共享。本章主要介绍了NFS文件系统、NFS文件系统的架设、Samba的资源共享、打印机网络共享等内容。 第15章:电子邮件。本章主要介绍电子邮件系统、Linux下的电子邮件系统,以及建立Linux下的邮件服务器。 第16章:DNS服务器。本章主要介绍DNS工作的原理、Linux下的域名服务器系统以及BIND的安装与配置等内容。详细叙述了主DNS服务器和辅助DNS服务器的配置以及DNS的安全。 第17章:FTP服务器。本章主要介绍了wu-ftp服务器的安装、配置和使用,Proftpd服务器的安装、配置和使用。 第18章:Web服务器。本章主要介绍了Apache的安装和配置。从Apache的最基本配置到它的高级运用,在本章中都有详细的叙述。 第19章:Proxy服务器。本章主要介绍在Linux上比较常用的两个proxy服务器软件的配置。 本书最后还附有参考答案,以供读者对照课后习题进行练习。 四、本书适用对象 本书适合用于大专院校、电脑培训班等作为Linux或UNIX操作系统课程的教材,也可作为电脑爱好者、相关技术人员或准备参加Linux认证的读者的参考书。 本书写作过程中受到广东省自然科学基金和中山大学青年启动基金的帮助,在此特表感谢! Linux发展至今,经历了无数人的努力,是千万人智慧的结晶。最新的Linux发布版,完全安装需要占用1G以上的空间,要完全掌握这样一个庞大的系统,并不是一件容易的事情,这对于作者本身也毫不例外。读者在学习本书的过程中如遇到疑难问题或觉得不妥之处,可到相关网站的论坛进行探讨,网址:http://www.cnbook.net。 尽管作者写这本书时具有良好初衷而且竭尽全力,但由于水平有限和时间仓促,疏漏之处在所难免,敬请读者批评指正和原谅。 编 者 2002年12月 第1章 Linux基础 1 1.1 Unix概述 1 1.1.1 Unix的历史 1 1.1.2 Unix的特点 3 1.1.3 Unix的现状和未来 5 1.2 Linux基础知识 5 1.2.1 Linux的历史 6 1.2.2 Linux的技术特点 6 1.2.3 Linux的版本 7 1.2.4 Linux对中文的支持 8 小结 8 习题一 8 一、思考题 8 二、选择题 9 三、上机操作 9 第2章 基本操作 10 2.1 进入Linux系统 10 2.1.1 开机与系统选择 10 2.1.2 注册 10 2.1.3 控制和终端操作 11 2.1.4 进入图形界面 11 2.1.5 用Telnet方式远程连入 12 2.2 一些基本命令 13 2.2.1 修改密码 13 2.2.2 查询、修改日期与时间 14 2.2.3 观看月历 15 2.2.4 清屏 16 2.2.5 获取注册信息 16 2.2.6 与其他用户作简单通讯 17 2.2.7 观看主机配置情况 18 2.2.8 寻找命令使用方法 18 2.3 退出Linux 19 2.3.1 注销 19 2.3.2 关闭系统 19 小结 20 习题二 21 一、思考题 21 二、选择题 21 三、上机操作 21 第3章 树型结构 23 3.1 文件 23 3.1.1 Linux的文件 23 3.1.2 文件操作相关命令 24 3.2 目录和路径 27 3.2.1 树型结构基础知识 27 3.2.2 路径 30 3.2.3 与树型结构相关的操作 32 3.2.4 通配符与多文件操作 37 3.3 链接 41 3.3.1 硬链接 41 3.3.2 符号链接 42 3.4 文件的属性 43 3.4.1 显示文件的属性 43 3.4.2 权限字与权限操作 46 3.5 设备文件 48 3.6 磁盘的操作 51 3.7 备份 60 小结 62 习题三 62 一、思考题 62 二、选择题 63 三、上机操作 64 第4章 文本编辑 65 4.1 行编辑器ed 65 4.1.1 启动ed 65 4.1.2 输入和修改 65 4.1.3 查找与替换 67 4.1.4 保存与退出 67 4.2 全屏幕编辑器vi 67 4.2.1 进入vi及vi状态 67 4.2.2 光标移动 68 4.2.3 删除与恢复 69 4.2.4 替换 69 4.2.5 保存与退出 70 4.2.6 进入插入状态 70 4.2.7 寻找指定字符或字符串 72 4.2.8 块操作 75 4.3 功能强大的Emacs 76 4.3.1 Emacs是什么 76 4.3.2 Emacs的操作 77 4.4 文本的基本操作命令 87 4.4.1 more与less 87 4.4.2 pr 88 4.4.3 tail与head 89 4.4.4 spell 90 4.4.5 diff与cmp 90 4.4.6 wc 91 4.4.7 find与grep 92 小结 94 习题四 94 一、思考题 94 二、选择题 95 三、上机操作 95 第5章 Linux的安装和启动 96 5.1 安装的基本知识 96 5.1.1 硬件要求 96 5.1.2 硬盘分区 96 5.1.3 Linux的起动与多系统并存 96 5.1.4 安装前的准备 97 5.2 安装的过程 97 5.3 Loadlin方式的引导 105 5.4 安装后Linux系统的构成 107 5.5 引导过程 109 5.5.1 lilo 109 5.5.2 内核 111 5.5.3 init与inittab 112 5.5.4 Shell 114 小结 114 习题五 115 一、思考题 115 二、选择题 115 三、上机操作 115 第6章 用户管理 116 6.1 用户账号的设置 116 6.1.1 增加用户 116 6.1.2 /et/passwd文件与/etc/shadow文件 117 6.1.3 删除用户 119 6.1.4 观看和修改用户资料 120 6.2 用户组的设置 122 6.2.1 /etc/group文件 122 6.2.2 用户组的操作 123 小结 124 习题六 124 一、思考题 124 二、选择题 124 三、上机操作 125 第7章 Shell和Shell编程 126 7.1 什么是Shell 126 7.1.1 Shell的类型 126 7.1.2 为用户指定Shell 127 7.1.3 Shell的环境 128 7.2 Shell脚本 130 7.2.1 Shell脚本的编写 130 7.2.2 控制流 132 7.2.3 here文本 135 7.2.4 几个特别的Shell脚本 135 7.3 awk 141 7.3.1 调用awk 141 7.3.2 awk脚本 142 7.3.3 模式和动作 142 7.3.4 域和记录 142 7.3.5 awk内置变量 143 7.3.6 awk的字符函数 144 7.3.7 数组 144 7.3.8 控制流和循环 145 小结 145 习题七 145 一、思考题 145 二、选择题 149 三、上机操作 149 第8章 进程管理 150 8.1 进程管理的应用 150 8.2 定时执行 155 小结 156 习题八 157 一、思考题 157 二、选择题 157 三、上机操作 157 第9章 C编译器—— gcc 158 9.1 什么是gcc 158 9.1.1 gcc简介 158 9.1.2 gcc的用法 158 9.2 make与Makefile 159 小结 160 习题九 161 一、思考题 161 二、选择题 161 三、上机操作 161 第10章 系统扩充 166 10.1 软件安装 166 10.1.1 传统安装 166 10.1.2 rpm 168 10.2 内核升级 171 10.2.1 获得内核源码 171 10.2.2 配置内核 171 10.2.3 编辑与安装新内核 182 小结 185 习题十 185 一、思考题 185 二、选择题 185 三、上机操作 186 第11章 系统维护与监视 187 11.1 文件系统维护 187 11.2 交换空间 187 11.3 系统监视 189 小结 194 习题十一 195 一、思考题 195 二、选择题 195 三、上机操作 195 第12章 图形界面 196 12.1 X Window 196 12.1.1 什么是X 196 12.1.2 X的结构 196 12.2 Linux下的X——XFrea86 197 12.2.1 配置 197 12.2.2 Xfea86图形界面的功能与操作 199 12.2.3 中文化问题 202 小结 206 习题十二 206 一、思考题 206 二、选择题 206 三、上机操作 206 第13章 网络的基本概念与设置 207 13.1 什么是网络 207 13.1.1 网络的定义 207 13.1.2 网络的分类与结构 207 13.1.3 网络的硬件与软件 208 13.1.4 网络的应用 209 13.2 Internet与TCP/IP协议 210 13.2.1 Internet的历史与现状 210 13.2.2 TCP/IP基础知识 212 13.3 Linux的基本网络配置 213 13.3.1 安装与驱动网卡 213 13.3.2 设定IP地址及TCP/IP 基本参数 213 13.3.3 检测连通性 215 13.3.4 使用MODEM拨号上网 216 13.4 TCP/IP实用程序 218 13.4.1 ping 218 13.4.2 Telnet 219 13.4.3 FTP 220 13.4.4 traceroute 223 13.4.5 ifconfig 224 小结 225 习题十三 225 一、思考题 225 二、选择题 225 三、上机操作 225 第14章 网络资源共享 226 14.1 Linux/Unix系统之间 文件共享——NFS 226 14.1.1 NFS的概念 226 14.1.2 NFS的安装和启动 226 14.1.3 架设NFS文件系统 227 14.2 Linux/Windows系统之间文件 共享——Samba 229 14.2.1 什么是Samba 229 14.2.2 安装与启动Samba 229 14.2.3 Samba的配置 230 14.2.4 在Linux上访问Windows 的共享资源 233 14.3 打印机网络共享 233 14.3.1 建立打印服务器 233 14.3.2 使用远程打印机 234 小结 234 习题十四 235 一、思考题 235 二、选择题 235 三、上机操作 235 第15章 电子邮件 236 15.1 电子邮件系统 236 15.1.1 电子邮件的历史 236 15.1.2 电子邮件的体系结构和服务 236 15.2 Linux下的电子邮件系统 237 15.2.1 Linux下的邮件服务器 237 15.2.2 Linux下的邮件用户代理 242 15.3 mail命令 242 15.4 建立Linux下的邮件服务器 247 15.4.1 sendmail的复杂性 247 15.4.2 sendmail的组成结构和原理 247 15.4.3 编译和配置sendmail 251 15.4.4 技巧和提示 253 小结 256 习题十五 256 一、思考题 256 二、选择题 256 三、上机操作 257 第16章 DNS服务器 258 16.1 DNS的工作原理 258 16.1.1 域名 258 16.1.2 因特网的域名系统 258 16.1.3 DNS的消息格式 260 16.1.4 对象内容与资源记录内容 261 16.2 Linux下的域名服务器系统 261 16.3 BIND的安装与配置 262 16.3.1 BIND的编译与安装 262 16.3.2 Linux下与域名系统相关的 几个配置文件 263 16.3.3 Caching Only域名服务器 的配置 264 16.3.4 主域名服务器的配置 269 16.3.5 从域名服务器的配置 272 16.4 设置chroot的DNS 273 小结 275 习题十六 276 一、思考题 276 二、选择题 276 三、上机操作 276 第17章 FTP服务器 277 17.1 wu-ftp 277 17.1.1 wu-ftp的安装 277 17.1.2 wu-ftp的配置 278 17.1.3 wu-ftpd的启动和测试 285 17.1.4 实用命令 286 17.2 Proftpd 286 17.2.1 Proftpd的安装 286 17.2.2 Proftpd的配置 286 17.2.3 一个实例 289 17.2.4 proftpd的启动和测试 292 小结 292 习题十七 292 一、思考题 292 二、选择题 292 三、上机操作 292 第18章 Web服务器 293 18.1 Apache的安装 293 18.1.1 编辑设置 293 18.1.2 编译和安装 294 18.2 Apache的配置 294 18.2.1 全局设置 295 18.2.2 主服务器设置 297 18.3 虚拟Web服务器 308 18.3.1 虚拟主机的类型与运行方式 308 18.3.2 基于IP的虚拟主机 308 18.3.3 基于域名的虚拟主机 310 小结 312 习题十八 312 一、思考题 312 二、选择题 312 三、上机操作 312 第19章 Proxy服务器 313 19.1 Proxy的概念 313 19.1.1 什么是Proxy 313 19.1.2 Proxy的应用 313 19.2 利用Apache建立Proxy 313 19.2.1 配置前的准备工作 314 19.2.2 建立Proxy服务器 314 19.2.3 建立Cache服务器 315 19.2.4 常用的mod_proxy模块的指令 315 19.3 Squid 316 19.3.1 安装Squid 316 19.3.2 配置Squid 317 19.3.3 更多的配置参数 319 19.3.4 启动和关闭Squid 327 19.3.5 日志文件 327 小结 328 习题十九 328 一、思考题 328 二、选择题 328 三、上机操作 329 参考答案 330

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

qq_36227329

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值