【后端应用的基石】Linux入门教程-后端版(下)

156 阅读13分钟

温馨提示:所有文章中所提及的CentOS相关的案例的安装包和工具,都可以在我的网盘中直接下载并跟着实操:

链接:pan.baidu.com/s/16vTKYRf0…

提取码:aj9p

16.常用设置

16.1 固定虚拟机中的IP地址

在VWware中安装完Centos虚拟机后,我们目前使用的网络连接模式是NAT模式,并且也给配置了网段192.168.177.0,那么虚拟机会给我们随机分配一个在这个网段中的ip地址,但是经常会出现我们更换过网络环境后或是重启过虚拟机后用Xshell就连接不上虚拟机中的Centos系统了,这是因为ip地址发生了变化,可以在VWware虚拟机中用ifconfig 命令来查看变化后的ip地址,然后Xshell更改连接的IP地址就可以重新连上,但这样做显然太麻烦了,所以我们可以在CentOS中配置一个固定的IP地址,无论是否发生网络环境的变更,IP地址都不会发生变化,但前提是配置的固定IP地址也必须满足我们指定的网段192.168.177.0中,且范围要在2~254之间。

#打开ens33网卡的配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
​
#修改配置文件中下列信息
BOOTPROTO="static" #设置静态IP
ONBOOT="yes" #开启网卡#在配置文件末尾添加下列信息
IPADDR=192.168.177.128 #设置固定的IP
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.177.2 #网关,这个需要和虚拟机网关匹配,虚拟网络编辑器里去看
DNS1=114.114.114.114 #DNS
DNS2=8.8.8.8 #DNS#重启网络使其生效,三种方式操作都可以
systemctl restart network
systemctl restart network.service
service network restart
​
#配置完毕后,CentOS的IP地址被固定,不会再发生变化

16.2 设置字符集

如果希望修改当前CentOS7系统的字符集,可以对配置进行更改,zh_CN.UTF-8 表示中文,en_US.UTF-8表示英文

#查看当前的字符集
echo $LANG
Locale
​
#临时修改字符集
export LANG="zh_CN.UTF-8" #修改为中文
export LANG="en_US.UTF-8" #修改为英文#永久修改需要更改/etc/profile配置文件,在文件的最后添加如上修改字符集语句即可
vim /etc/profile
source /etc/profile #让配置文件生效

16.3 日期同步工具

ntpdate工具用于对日期进行同步,如果你正在使用的是Minimal ISO版的CentOS7系统,那么需要先装一下ntpdate工具 yum -y install ntp

#如果安装CentOS系统时没有选择 亚洲 上海 时区,那么我们需要手动配置一下
ls -al  /etc/localtime #查看当前本地时间所指向的时区
ls -al /usr/share/zoneinfo/Asia/Shanghai #查看亚洲上海时区
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #建立时区软链接#执行日期同步
ntpdate ntp4.aliyun.com
​
#Crontab定时同步(30分钟校正一次时间)
*/30 * * * *  ntpdate ntp4.aliyun.com

16.4 Man手册中文化

大部分的CentOS7系统的Man帮助命令都是英文描述,不便于我们阅读,我们可以自行将Man手册进行汉化,GitHub地址: github.com/man-pages-z…,某些命令可能不支持翻译成中文

#安装汉化工具
yum -y install man-pages-zh-CN 
​
#在/etc/profile文件最下面添加配置
vim /etc/profile
alias cman="man -M /usr/share/man/zh_CN"#使环境变量即时生效
source /etc/profile

17.常用软件安装

17.1 安装JDK

  1. 下载JDK,地址:www.oracle.com/technetwork…,(也可以用网盘里我们准备好的)

  2. 在根目录下创建文件夹/soft,并将JDK压缩包上传到CentOS7中

  3. 卸载我们本机自带的openjdk

    yum list installed | grep openjdk
    yum remove java-1.8.0-openjdk.x86_64
    
  4. 解压到/usr/local目录下

    tar -zxvf jdk-8u121-linux-x64.tar.gz -C /usr/local
    
  5. 对解压后的文件进行授权

    chown root:root -R jdk1.8.0_121/
    
  6. 配置环境变量

    #编辑环境变量配置文件
    vi /etc/profile 
    ​
    #在文件末尾加入下面代码,并保存
    export JAVA_HOME=/usr/local/jdk1.8.0_121
    export PATH=$JAVA_HOME/bin:$PATH#使环境变量即时生效
    source /etc/profile
    
  7. 测试环境变量是否生效

    java -version
    

17.2 安装Tomcat

  1. 下载Tomcat,地址:tomcat.apache.org/ 或者使用wget命令

    wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.64/bin/apache-tomcat-9.0.64.tar.gz
    
  2. 在根目录下创建文件夹/soft,并将Tomcat压缩包上传到CentOS7中

  3. 解压到/usr/local目录下

    tar -zxvf apache-tomcat-9.0.64.tar.gz -C /usr/local
    
  4. 进入解压好的Tomcat目录中,在conf目录下,配置server.xml

    #打开配置文件
    vim server.xml
    ​
    #修改端口和编码,并保存退出
    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" URIEncoding="UTF-8"/>
    
  5. 启动Tomcat

    #进入tomcat的bin目录下
    ./startup.sh 
    ​
    #然后可以进入tomcat的logs目录下输入
    tail -f catalina.out 打印启动控制台
    
  6. 查看Tomcat是否启动成功

    ps -ef | grep tomcat
    
  7. 测试Tomcat是否可以访问

    在浏览器输入IP地址和端口,出现tomcat的猫即成功,例如:http://192.168.177.128:8080

    如果没有办法访问,可能是防火墙问题,快速关闭下防火墙

    #查看防火墙状态
    systemctl status firewalld 
    ​
    #关闭防火墙
    systemctl stop firewalld
    ​
    #让防火墙禁用
    systemctl disable firewalld
    

17.3 安装MySQL

  1. 下载MySQL,地址:dev.mysql.com/downloads/m…(也可以用网盘里我们准备好的)

  2. 检查CentOS7环境是否安装了mariadb数据库

    yum list installed | grep mariadb 
    ​
    #如果CentOS7中安装了mariadb数据库,先卸载掉,mariadb数据库与mysql数据库会发生冲突
    yum -y remove mariadb-libs.x86_64
    
  3. 在根目录下创建文件夹/soft,并将MySQL压缩包上传到CentOS7中

  4. 解压到/usr/local目录下

    tar -zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz -C /usr/local
    
  5. 将解压好的mysql-5.7.11-linux-glibc2.5-x86_64改名为mysql

    cd /usr/local
    mv mysql-5.7.11-linux-glibc2.5-x86_64 mysql
    
  6. mysql文件夹目录下创建一个/data/3306文件夹

    mkdir -p mysql/data/3306
    
  7. 添加mysql用户及用户组

    groupadd mysql
    useradd -g mysql mysql
    
  8. 切换到mysql/bin目录下执行初始化

    ./mysqld --initialize-insecure --user=mysql --datadir=/usr/local/mysql/data/3306 --basedir=/usr/local/mysql
    ​
    #执行mysqld文件进行初始化,其中:
    --initialize-insecure #指的是在初始化的时候不设置临时密码
    --user #指定用户账mysql
    --datadir #指定mysql的数据存储目录
    --basedir #指定mysql的解压目录
    
  9. 创建SSL安全连接

    #在mysql/bin目录下执行
    ./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data/3306
    ​
    #mysql_ssl_rsa_setup程序用于创建SSL证书和密钥文件以及RSA密钥对文件,以支持使用SSL的安全连接
    
  10. 更改mysql整个文件夹目录权限所属

    chown -R mysql:mysql /usr/local/mysql
    
  1. mysql/data/3306目录下创建my.cnf文件,并添加如下配置

    [client]
    port=3306
    socket=/usr/local/mysql/data/3306/mysql.sock
    default-character-set=utf8
    ​
    [mysqld]
    port=3306
    socket=/usr/local/mysql/data/3306/mysql.sock
    datadir=/usr/local/mysql/data/3306
    log-error=/usr/local/mysql/data/3306/error.log
    pid-file=/usr/local/mysql/data/3306/mysql.pid
    ​
    character-set-server=utf8
    lower_case_table_names=1
    autocommit=1
    ​
    #在上述配置文件中[clinet]代表配置MySQL客户端连接时的相关配置
    port #指定客户端连接服务端时的端口号,默认端口也是3306
    socket #指定套接字文件的所在目录
    default-character-set #设置MySQL客户端连接时的字符集#[mysqld]带表MySQL服务的相关配置
    port #服务端的端口号,默认为3306
    socket #指定套接字文件的所在目录
    datadir #指定mysql的数据存储路径
    log-error #指定错误日志的存储路径
    pid-file #指定进程文件的存储路径
    character-set-server #设置服务端的字符集
    lower_case_table_names #忽略SQL语法大小写检测
    autocommit #开启自动提交
    
  2. 启动MySQL服务

    #在mysql/bin目录下执行
    ./mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf &  #&号表示后台启动#验证mysql是否正常启动 
    ps -ef | grep mysql
    
  3. 使用客户端登录mysql

    #在mysql/bin目录下执行
    ./mysql -uroot -p -P3306 -h127.0.0.1
    ​
    -u #指定登录账号
    -p #指定登录密码
    -P #指定端口号
    -h #指定连接IP地址
    
  4. 修改mysql密码

    alter user 'root'@'localhost' identified by '123456'; #其中123456是我们设置的密码
    
  5. 开启远程访问,默认MySQL是不允许进行远程客户端访问的

    #授权远程访问
    grant all privileges on *.* to root@'%' identified by '123456';
    ​
    #其中*.* 的第一个*表示所有数据库名,第二个*表示所有的数据库表,root@'%' 中的root表示用户名,%表示任意ip地址,%也可以指定具体的ip地址,比如root@localhost,root@192.168.177.128#刷新权限
    flush privileges; 
    
  6. 关闭防火墙

    #查看防火墙状态
    systemctl status firewalld 
    ​
    #关闭防火墙
    systemctl stop firewalld
    ​
    #让防火墙禁用
    systemctl disable firewalld
    
  7. 配置全局mysql命令

    #在/etc/profile文件中添加环境变量
    vim /etc/profile
    export MYSQL_HOME=/usr/local/mysql
    export PATH=$MYSQL_HOME/bin:$PATH#使环境变量生效
    source /etc/profile
    ​
    #之后在任意目录下,都可以使用mysql -uroot -p -P3306 -h127.0.0.1来进行mysql登录
    
  8. 添加开启启动mysql服务

    #拷贝mysql.server服务文件到/etc/init.d/mysqld目录下
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    ​
    #编辑mysqld文件
    vim /etc/init.d/mysqld  
    #在46行添加   
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data/3306
    ​
    #添加开机启动
    systemctl enable mysqld
    ​
    #检查是否添加成功
    chkconfig
    ​
    #取消开机启动
    systemctl disable mysqld
    
  9. 关闭MySQL服务

    #在mysql-5.7.11/bin目录下执行
    ./mysqladmin -uroot -p -P3306 -h127.0.0.1 shutdown
    

17.4 安装FTP服务

FTP 是一种指的文件传输协议,用于Internet上的文件的双向传输,它也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用过程中,主要是实现“下载”和"上传"

  1. 安装FTP

    Linux下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpdProftp等,Red Hat Enterprise Linux中默认安装的是vsftpd. 所以这里我们也采用vsftpd

    yum -y install vsftpd
    ​
    #主程序:/usr/sbin/vsftpd
    #主配置文件:/etc/vsftpd/vsftpd.conf
    #数据根目录:/var/ftp
    #安装完成后,配置文件位于/etc/vsftpd 目录下#FTP服务器主要有三个配置文件,都位于/etc/vsftpd目录下
    ​
    ftpusers 
    #用来指定哪些用户不能访问 ftp 服务器;(黑名单)
    ​
    user_list
    #该文件中的用户是否可以登录到FTP服务器取决于vsftpd.conf文件中的userlist_enable和userlist_deny两个选项
    ​
    vsftpd.conf  
    #该文件为FTP服务器的主配置文件
    
  2. 配置匿名用户访问FTP

    #打开 vsftpd.conf
    vim /etc/vsftpd/vsftpd.conf
    ​
    #将如下选项设置为YES,这样便实现匿名用户上传和下载文件
    anonymous_enable=YES
    anon_umask=022
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    

    采用匿名开放模式登录FTP开放的参数说明:

    参数作用
    anonymous_enableYES允许匿名访问,NO不允许匿名访问
    anon_umask匿名用户上传文件的umask值
    anon_upload_enableYES允许匿名用户上传文件,NO不允许匿名用户上传文件
    anon_mkdir_write_enableYES允许匿名用户创建目录,NO不允许匿名用户创建目录
    anon_other_write_enableYES允许匿名用户修改目录名称或删除目录,NO不允许匿名用户修改目录名称或删除目录

    下面单独说明下anon_umask=022这里的含义,umask指的是我们在创建一个目录或者文件时候赋予它们的初始权限。umask的权限计算规则如下:

    在Centos中,新增的目录的最大权限为777,那么减去022,就得到755的权限

    新增的文本文件最大权限为666,那么减去022,就得到644权限

    其中:r代表读权限,用数字4表示,w代表写权限,用数字2表示,x代表执行权限,用数字1表示

    那么目录文件最终的权限表示为:rwxr-xr-x,文本文件最终权限表示为:rw-r--r--

    如果我们不指定匿名用户的umask值为022的话,ftp默认就会给匿名用户设置umask值为077,也就是说最终匿名用户上传的文件的权限会变为600,即为:rw-------,那么我们就没有办法使用匿名用户来下载ftp中的文件了,因为没有读取权限

  3. 设置SELinux服务

    SELinux是Linux的一个安全子系统,其作用是最大限度地减小系统服务进程可访问的资源,即最小权限原则

    #查看SELinux状态,如果SELinux status参数为enabled即为开启状态
    /usr/sbin/sestatus -v
    ​
    #关闭SELinux,修改/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled
    vim /etc/selinux/config
    ​
    #修改配置文件需要重启系统
    reboot
    
  4. 重启FTP服务

    重启过系统之后,我们需要重新启动FTP服务

    #检查FTP状态
    systemctl status vsftpd.service
    ​
    #启动FTP服务
    systemctl start vsftpd.service
    ​
    #重启FTP服务
    systemctl restart vsftpd.service
    ​
    #停止FTP服务
    systemctl stop vsftpd.service
    ​
    #让FTP服务可用
    systemctl enable vsftpd.service
    ​
    #让FTP服务禁用
    systemctl disable vsftpd.service
    
  5. 在Windows上测试FTP功能

    #在Windows任意电脑磁盘中,输入如下地址
    ftp://192.168.177.128/
    

    如出现pub文件夹说明访问成功,如没出现就要看下防火墙问题

    #查看防火墙状态
    systemctl status firewalld 
    ​
    #关闭防火墙
    systemctl stop firewalld
    ​
    #让防火墙禁用
    systemctl disable firewalld
    

    尝试在Windows电脑上传一个文件到Linux的FTP服务中,如果上传失败,则是权限不足

    #修改ftp目录的所属权,安装好ftp服务后,默认会给我们创建ftp用户和组
    chown -R ftp:ftp /var/ftp/pub/
    ​
    #赋予/var/ftp/pub目录读写权限
    chmod -R 777 /var/ftp/pub
    
  6. 在另一台CentOS7上访问FTP服务

    #安装FTP命令
    yum -y install ftp
    ​
    #连接FTP
    ftp 192.168.177.128
    ​
    #输入连接用户名,密码不用输入,直接回车
    ftp
    ​
    #切换到pub目录下
    cd pub
    ​
    #ftp中用lcd切换本地路径,用cd切换远程服务器的路径:
    cd 目录名(进入服务器目录)   lcd目录名(进入本机目录)
    cd \(退到服务器根目录)      lcd \(退到本机根目录)
    cd ..(退回到上一级目录)     lcd ..(退回到上一级目录)
    ​
    #上传文件
    put 文件名
    ​
    #下载文件
    get 文件名
    
  7. 配置非匿名用户访问FTP

    #修改配置文件
    vim /etc/vsftpd/vsftpd.conf
    ​
    #先将匿名用户访问关掉
    anonymous_enable=NO 
    ​
    #在配置文件末尾开启白名单访问
    userlist_enable=YES 
    userlist_deny=NO
    local_root=/var/ftp/pub
    

    采用系统用户登录FTP的参数说明:

    参数作用
    userlist_enableYES代表启用user_list文件功能,NO代表user_list文件功能无效
    userlist_denyYES代表user_list文件中的用户不能访问(该配置不配置时默认也为YES),NO代表user_list文件中的用户才可以访问
    local_root设置用户登录时,默认的访问目录(如不设置,默认访问的是登录用户的home目录)
  8. 配置白名单用户

    #修改白名单列表
    vim /etc/vsftpd/user_list
    ​
    #在文件末尾添加白名单访问账号
    test
    anonymous
    ​
    #注意这里的test代表的是添加的白名单用户,而anonymous代表的是匿名用户,但这里的匿名用户指的不是所有用户,而是指代的任何所有用户访问ftp服务时,都可以正确弹框要求输入用户账号和密码来进行ftp访问,如不配置此选项,则在windows系统或其他linux系统中访问ftp服务时将无权访问,也不能输入用户账号和密码。
    
  9. 使白名单生效

    #重启ftp服务即可
    systemctl restart vsftpd.service
    

18.部署SpringBoot项目

我们在安装完毕JDK,MySQL,Tomcat等软件后,可以尝试部署一个单体SpringBoot项目,项目的源码和打包后的文件都附在了资料中,通常我们部署SpirngBoot项目有两种方式,第一种方式是将SpringBoot项目打包成jar包来进行部署,利用其内嵌的tomcat来运行项目。第二种方式是将SpringBoot项目打包成war包,利用自己安装的Tomcat来进行部署,并运行项目

18.1 jar包部署项目

  1. 将项目进行打包(也可以使用打包好的jar包)

    将项目pom.xml文件中的打包方式修改为jar

    <groupId>com.java</groupId>
    <artifactId>JXC</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    

    点击右上角Maven按钮,选择Lifecycle->package进行打包,出现BUILD SUCCESS即为打包成功

    image-20220725112449337.png

    image-20220725100501843.png

  2. 上传打包好的jar包

    target目录下找到打包好的JXC.jar,鼠标右键,选择Open In->Explorer就可以找到我们磁盘上的JXC.jar包了

    image-20220725100739350.png

    image-20220725100841659.png

  3. 上传JXC.jar到CentOS系统中

    创建/usr/local/java文件夹,并将JXC.jar上传到文件夹中

    #创建文件夹
    mkdir -p /usr/local/java
    
  4. 确保JDK安装完毕,MySQL应用正常启动

    可以参考文档17.1、17.3章节安装JDK和MySQL数据库

  5. 导入数据库数据

    在Windows中使用SQLyog连接CentOS7系统中的数据库,并将jxc.sql文件中的数据库语句进行导入,出现数据库db_jxc和具体的表即导入成功

    image-20220725102145019.png

    image-20220725102333865.png

    image-20220725102409410.png

    image-20220725102448872.png

  6. 启动Java程序

    /usr/local/java中运行JXC.jar

    #进入java目录
    cd /usr/local/java
    ​
    #运行jar包
    nohup java -jar JXC.jar > JXC.log &
    ​
    #上面的参数的含义如下:
    nohup  #代表不挂断启动
    java -jar #执行java程序,需要jdk的支持
    JXC.jar #要启动的jar包
    > JXC.log #将Tomcat的启动日志,重定向输出到JXC.log文件中
    & #后台启动#查看启动日志
    tail -f JXC.log#查看进程
    ps -ef | grep java
    ​
    #关闭程序
    kill -9 进程号
    
  7. 在Windows浏览器中进行访问测试

    访问如下地址,访问后如出现如下登录页面,则部署成功,登录账号:admin,登录密码:admin123

    http://192.168.177.128:80/login.html
    

    image-20220725112942347.png

    image-20220725113050836.png

18.2 war包部署项目

  1. 将项目进行打包(也可以使用打包好的war包)

    将项目pom.xml文件中的打包方式修改为war

    <groupId>com.java</groupId>
    <artifactId>JXC</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    

    点击右上角Maven按钮,选择Lifecycle->package进行打包,出现BUILD SUCCESS即为打包成功

    image-20220725112449337.png

    image-20220821222720493.png

  2. 上传打包好的jar包

    target目录下找到打包好的JXC.jar,鼠标右键,选择Open In->Explorer就可以找到我们磁盘上的JXC.war包了

    image-20220821223118326.png

    image-20220821223241894.png

  3. 确保JDK安装完毕,Tomcat安装完毕,MySQL应用正常启动

    可以参考文档17.1、17.2、17.3章节安装JDK、Tomcat和MySQL数据库

  4. 上传JXC.war到CentOS系统中

    将JXC.war上传至/usr/local/apache-tomcat-9.0.64/webapps目录下

  5. 修改Tomcat配置文件

    #打开server.xml配置文件
    vim /usr/local/apache-tomcat-9.0.64/conf/server.xml
    ​
    #修改端口号为80
    <Connector port="80" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" URIEncoding="UTF-8"/>
                   
    #在文件末尾指定上下文访问路径
    <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
            <Context path="/" docBase="JXC" debug="0" reloadable="true" crossContext="true"/>
            <!-- SingleSignOn valve, share authentication between web applications
                 Documentation at: /docs/config/valve.html -->
            <!--
            <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
            -->
    ​
            <!-- Access log processes all example.
                 Documentation at: /docs/config/valve.html
                 Note: The pattern used is equivalent to using pattern="common" -->
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>
    
  6. 导入数据库数据

    在Windows中使用SQLyog连接CentOS7系统中的数据库,并将jxc.sql文件中的数据库语句进行导入,出现数据库db_jxc和具体的表即导入成功

    image-20220725102145019.png

    image-20220725102333865.png

    image-20220725102409410.png

    image-20220725102448872.png

  7. 启动Tomcat程序

    #进入到tomcat安装目录的bin目录下
    cd /usr/local/apache-tomcat-9.0.64/bin
    ​
    #执行启动命令
    ./startup.sh
    ​
    #查看启动日志
    cd /usr/local/apache-tomcat-9.0.64/logs
    tail -f catalina.out
    ​
    #查看进程
    ps -ef | grep tomcat
    ​
    #关闭程序
    kill -9 进程号
    
  8. 在Windows浏览器中进行访问测试

    访问如下地址,访问后如出现如下登录页面,则部署成功,登录账号:admin,登录密码:admin123

    http://192.168.177.128:80/login.html
    

    image-20220725112942347.png

    image-20220725113050836.png

19.运行机制介绍

19.1 init系统

Linux系统启动的时候,会先从BIOS开始,接下来引导程序将内核加载到内存,进行内核初始化,内核初始化最后一步就是启动PID为1的init进程,这个进程负责产生其他所有用户进程,仅仅将内核启动起来是毫无用途的,因此需要一个系统能够定义,管理,和控制init进程,这个系统就是init系统,在CentOs中默认采用systemd来管理系统,systemd是init系统的进化版。

19.2 runlevel到target的改变

Windows中有安全模式和正常运行模式,同样Linux也有运行级别之分,sysinit用“runlevel”来定义系统的运行级别,CentsOS的运行级别定义为:0表示关机,1表示单用户模式,6表示重启,2表示多用户模式,不支出文件共享,3表示完全多用户模式,支持文件共享,默认登录到系统字符界面,4表示基本不用的用户模式,5表示完全多用户模式,支出文件共享,默认登录到图形界面,这些运行级别均在/etc/inittab文件中指定,程序通过查看文件中是否含有initdefault项来决定启动哪一个运行级别,在CentOS中由于采用了systemed管理体系,runlevel的概念就被target概念所取代,例如runlevel3对于新的多目标用户为multi-user.target,通过软链接来实现

19.3 修改默认target

#查看默认的target
ls -l /etc/systemd/system/default.target
​
#查询运行级别与target的对应关系
ls -l /lib/systemd/system/runlevel*.target
​
#根据查询的对应关系,来修改系统默认的target,可以先删除存在的软链接,然后重新建立软连接指向到其他target即可,例如我们把运行级别修改为3,即多完全多用户模式,默认登录到字符界面
rm -rf /etc/systemd/system/default.target
ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target
​
#重启系统生效
reboot