本文全部的命令均是在CentOS 7操作系统下执行。

目录结构

/usr/local 重点

另一个给主机额外安装软件所安装的目录,一般通过编译源码方式安装的程序,如nginx.

/bin 重点

存放常用的命令

  • /usr/bin
  • /usr/local/bin

/sbin 重点

存放系统管理员使用的系统管理程序

  • /sbin
  • /usr/sbin

/boo 重点

存放启动图linux是使用的一些核心文件,包括一些连接文件以及镜像文件。

/etc 重点

系统管理所需要的配置文件和子目录

/usr 重点

非常重要的目录,用户的很多应用程序和文件都存放在该目录

/var 重点

该目录不断扩充着东西,喜欢将经常被修改的目录放在这个目录下。

/dev

设备管理目录,所有硬件以文件形式存储。

/opt

给主机额外安装软件所摆放的目录。如安装oracle数据库,默认为空

/tmp

存放临时文件的目录。

/lib

系统开机所需要的最基本的丰台连接共享库。

  1. linux系统有且只有一个根目录/

  2. linux各个目录存放的内容是规划好的,不要乱放文件

  3. linux是以文件的形式管理我们的设备,在linux系统,一切皆为文件

远程登录

ssh连接远程服务器

在终端输入ssh 连接的用户名@服务器IP按下回车并输入服务器密码即可。

1
2
# 举个栗子
ssh root@47.115.29.238

image-20200802001557085image-20200802001645370

sftp上传下载远程服务器文件

在终端输入sftp 连接的用户名@服务器IP按下回车并输入服务器密码即可。

1
2
# 举个栗子
sftp root@47.115.29.238

image-20200802002931955image-20200802002952756

下载文件

输入get 服务器文件 本地目录,将服务器上的指定文件下载大本地的指定目录下。若不指定本地目录,则默认下载到连接sftp前所在的本地目录。即我若在a目录下连接sftp,输入get temp.txt,文件将默认下载至a目录下

image-20200802003703193

上传文件

输入put 本地文件 服务器目录,将本地指定高度文件上传至服务器指定目录。

image-20200802005158557

强推:Mac OS下有一款非常好用但需要付费的数据传输APPTransmit,可7天试用,终身45$。

​ 另外还有一款好用的终端工具iTerm2,比自带的终端强大很多。

Vi和Vim编辑器

Vim的4个模式

  • 正常模式 (Normal-mode) :正常模式一般用于浏览文件,也包括一些复制、粘贴、删除等操作
  • 插入模式 (Insert-mode):在正常模式中按下i, I, a, A等其中一个键
  • 命令模式 (Command-mode):在正常模式中,先按下ESC再按下:(英文冒号)键,会进入命令模式
  • 可视模式 (Visual-mode):在正常模式按下v, V其中一个键可以进入可视模式。

常用快捷键

复制粘贴

正常模式

复制光标所在当前行 yy,复制n行则nyy,粘贴p

可视化模式
  1. 将光标移动到要复制的位置,按V进入可视化模式。
  2. 将光标移动到要复制的结束的位置,按下y,复制。(此时vim自动选中要复制的内容并复制,然后退出可视化)。
  3. 将光标移动到要粘贴的地方,按p粘贴。

显示行号

set nu 显示行号

set nonu 不显示行号

删除相关

首先前提是在正常模式或可视化模式下操作

x 删除当前光标中的一个字符

dd 直接删除当前行

ndd 直接删除当前行开始的n行

撤销和重做

u 撤销上一步的操作(undo)

ctrl+r 重做撤销的步骤(redo)

查找和替换

直接在正常模式下

  • /进入查找模式,后面接要查找的字符串,例如/hello

    vim会跳转到匹配的第一个,然后按下n 查找下一个,按下N查找上一个。

  • 向上搜索,随后的按n命令向上搜索,按N向下搜索,其他和/一样

  • r再按其他一个字符,会将光标所在的字符替换为你输入的字符

  • R再输入一串字符串,最后按下ESC键会将光标所在的字符替换为你输入的字符串

光标移动

在正常模式下使用

hjkl 分别对应左下上右键,当然也可以使用↑↓←→方向键。

fa 向后移动到字符a处

Fa 向前移动到字符a处

w 或 shift → 向后移动一个英语单词 注意:中文不生效

b 或 shift ← 向前移动一个英语单词 注意:中文不生效

:123 移动到第123行

^ 移到当前行的第一个非空字符

$ 移到当前行的最后一个字符

gg 移动到文本开头处

G 移动到文本结束处

保存和退出

命令模式下使用

:w 保存文件但不退出vi

:w file 将修改保存在file中但不退出vi

:wq或ZZ或:x 保存文件并退出vi

:q! 不保存文件,退出vi

:e! 放弃所有修改,从上次保存文件开始再编辑

更多可查看vim常用快捷键

关机重启

关机、重启命令

  • shutdown 可用于停止,关闭电源或重新启动计算机。

    • shutdown -h 16:47 下午4点47分关机

    • shutdown -h now 立即关机

    • shutdown -h +n n分钟后关机

    • shutdown -r 16:47 下午4点47分重启

    • shutdown -r now 立即重启

    • shutdown -r +n n分钟后重启

      时间字符串的格式可以是“ hh:mm”,以小时/分钟为单位,以24小时时钟格式指定执行关闭的时间。 替代地,它可以是语法“ + m”,表示从现在起指定的分钟数m。 “ now”是“ +0”的别名,即用于触发立即关闭。 如果未指定时间参数,则表示“ +1”。

  • halt 直接使用,关机。

  • reboot 直接使用,重启。

用户管理

创建用户

使用useradd [可选参数] 用户名命令创建用户。

  • useradd xiaoming

    创建用户xiaoming,同时创建xioaming的家目录(即/home/xiaoming),并将xioaming放入该用户组中。

  • useradd -d /home/xiaojun xiaojun

    创建用户xiaojun,同时创建不存在的家目录(即/home/dog),并将xiaojun放入该用户组中。

  • `useradd -g test junjun

    创建用户junjun,同时创建一个已存在的test用户组并将junjun放入该用户组。

指定用户密码或修改密码

使用passwd 用户名对指定用户进行指定密码或修改密码。

删除用户

  • userdel 用户名 删除用户但保留家目录(即 /home/用户名) 推荐方式
  • userdel -r 用户名 删除用户及其家目录

查看用户

id 用户名 查询指定用户名的信息(用户uid,所在用户组id)

切换用户

su 用户名 切换至指定的用户

exit 退出切换的用户,返回到原来的用户

当从低权限用户切换至高权限用户需要密码

当从高权限用户切换至低权限用户不需要密码

查看当前用户

whoamiwho am i 查看当前登录的用户

用户组

创建用户组

groupadd 组名 创建指定组名的用户组

修改用户所属的组

usermod -g 用户组名 用户名 修改指定用户名的用户将其所属的用户组更改为指定的用户组。

用户和组的配置文件

  • /etc/shadow 口令的配置文件。

    每行含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

  • /ect/passwd 用户的配置文件,记录用户的各种信息。

    每行含义:用户名:口令:用户标识符:组标识符:注释性描述:家目录:登录shell

    举个栗子:junjun:x:1002:1002::/home/dog:/bin/bash 口令的值为x代表加密了。

  • /etc/group 组的配置文件,记录linux包含组的信息。

    每行含义:组名:口令:组标识符:组内用户列表

常用命令

运行级别

init level systemctl target comment
0 shutdown.target 关机
1 emergency.target 单用户(用于找回密码)
2 rescure.target 多用户无网络
3 multi-user.target 多用户有网络 常用
4
5 graphical.target 图形界面 常用
6 reboot.target 重启

设置运行级别

CentOS 6及之前的版本中,系统运行级别通过/etc/inittab文件进行设置和控制,但在CentOS 7中,对这个文件的设置将不会对系统运行级别产生影响。

1)语法:systemctl [command] [unit.target]
2)命令及参数:

  • command部分

    get-default :获取当前的target;

    set-default :将默认运行级别设置为指定的target;

    isolate :切换至指定的运行级别。

  • unit.target部分:为上面表格中给出的运行级别

1
2
3
4
5
6
7
8
# 举个栗子
systemctl get-default:获取当前的运行级别;
systemctl set-default multi-user.target:将默认运行级别设置为mulit-user;
systemctl isolate multi-user.target:不重启系统的情况下,将运行级别切换至mulit-user;
systemctl isolate graphical.target:不重启系统的情况下,将运行级别切换至图形模式。
# 其他
runlvel:返回结果中,第一个数为之前运行级别,后一个数为当前运行级别;
init 5:将当前运行级别切换至5(图形模式)。

参考博客: centos7系统运行级别简介

man

基本语法:man [命令或配置文件]

1
man pwd   # 查看pwd命令的用法
image-20200803150910591

⚠️注意:CentOS7下使用要查的命令 --help可以查看该命令的中文帮助文档!!

例如:ls –help

pwd

显示当前工作目录的绝对路径

基本用法:pwd [options]

ls

查看当前目录下的所有内容信息

基本用法:ls [options] [目录或文件]

常用选项:

​ -a 显示当前目录所有文件和目录,包括隐藏文件

​ -l 以长列表的形式显示信息

1
2
3
4
# 举个栗子
ls -a
ls -la
ls -l *.mp3 # 显示当前目录下所有以.mp3文件结尾的文件

cd

切换目录

基本用法:cd [参数]

常用参数:

  • 绝对路径

    1
    cd /home/root/  # 切换到root的家目录,从根目录 ‘/’ 开始写
  • 相对路径

    1
    2
    3
    4
    5
    cd ~         # 切换到当前用户的家目录
    cd ~/a/ # 切换到当前用户家目录的a目录下
    cd ../ # 切换到当前目录的上一级目录
    cd ../b/ # 切换到当前目录的上一级目录的b文件夹下
    cd .. # 等价cd ../

mkdir

用于创建目录

基本用法:mkdir [options] 要创建的目录

1
2
mkdir a           # 在当前目录下创建一个a目录
mkdir -p a/b/c # 在当前目录下创建多级目录 即在a目录下创建b,b目录下创建c目录

rmdir

用于删除空目录

基本用法:rmdir [options] 要删除的目录

rmdir删除的目录下有内容的话,是无法删除的!!!

若需要删除非空目录,请使用rm -rf 要删除的非空目录

touch

用于创建一个空文件

基本用法:touch 文件名称

1
touch test.txt   #创建一个空的test.txt文件

cp

用于拷贝文件至指定目录

基本用法:cp [options] source dest

常用选项:

​ -r 表示递归复制整个文件夹下的所有内容

​ -f 覆盖已存在的同名文件,不在提醒是否确认删除。

1
2
3
4
5
# 举个栗子
cp test.txt ../ # 将test.txt复制到当前目录的上一级目录
cp -r /a/ /b/ # 将a目录拷贝到b目录下
cp -r /a/* /b/ # 将a目录下的全部文件拷贝到b目录下
cp -rf /a/* /b/ # 强制将a目录下的全部文件拷贝到b目录下,若存在同名文件夹则覆盖。

rm

用于删除文件或目录

基本用法:rm [options] 要删除的的文件或目录

常用选项:

​ -r 表示递归删除整个文件夹下的全部文件

​ -f 表示强制删除,不提醒是否确认删除。

1
2
3
rm test.txt        # 删除test.txt文件
rm -r /a/ # 删除a目录及其子目录的全部文件
rm -rf /a/* # 强制递归删除a目录下及其子目录的全部文件,但a目录仍存在。

mv

用于移动文件和目录以及重命名文件

基本用法:

- `mv 文件1 文件2`                     将文件1重命名为文件2
- `mv 文件或目录  目录2`        将文件或目录移动至目录2处
1
2
3
4
# 举个栗子
mv a.txt b.txt # 将a.txt重命名为b.txt
mv a.txt /home/a # 将a.txt移动至/home/a目录下
mv /home/a /home/b # 将/home/a目录移动至/home/b目录下

cat

以只读的方式查看文件内容

基本用法:cat [options] 要查看的文件

常用选项:

​ -n 显示行号

1
2
3
# 举个栗子
cat -n a.txt # 查看a.txt,并显示行号
cat -n a.txt |more # 分页显示a.txt

more

more 是基于vim编辑器的文本过滤器,以全屏幕的形式按页显示文件的内容。more 中还内置的很多快捷键。

基本用法:more 要查看的文件

  • 空格键: 逐页查看文件内容
  • b键: 返回上一页查看文件内容
  • enter键:逐行查看文件内容
1
2
# 举个栗子
more a.txt

less

与more命令功能类似,但是kess并不是一次将整个文件的内容全部去取出来,而是根据显示的内容进行按需加载,对于显示大型文件有较高的效率

> 和 >>

>: 输出重定向只指定文件,文件不存在则创建。(覆盖写,即文件内有内容则被覆盖)

>>:追加内容至指定文件的尾部

1
2
3
4
5
# 举个栗子
ls -l >> a.txt # 将执行ls -l命令后输出的结果追加到A.txt内
ls -l > a.txt # 将执行ls -l命令后输出的结果覆盖写入到A.txt内
echo "Hello World" >> a.txt # 将"Hello World"字符串追加到a.txt文件的尾部
echo "Hello World" > a.txt # 将"Hello World"字符串覆盖写入到a.txt文件,a.txt中原来的内容被覆盖

cal

用于显示当前日期

image-20200803223759553

echo

用于输出内容到控制台

基本用法:echo [options] 要输出的内容

1
2
3
4
5
# 举个栗子
echo $JAVA_HOME # 输出Java的环境变量
echo $PATH # 输出全部的环境变量
echo "Hello" # 输出Hello字符串
echo World # 输出World字符串

用于查看文件的头部,默认显示文件前10行内容

基本用法:head [options] 要查看的文件

1
2
3
4
# 举个栗子
head a.txt # 显示a.txt的前10行内容
head -n 5 a.txt # 显示a.txt的前5行内容,5可任意变化
head -c 10 a.txt # 显示a.txt的钱10个字节的内容

tail

用于查看文件的尾部,默认显示文件后10行内容

1
2
3
tail a.txt                    # 显示a.txt的后10行内容
tail -n 5 a.txt # 显示a.txt的后5行内容,5可任意变化
tail -f a.txt # 显示a.txt的尾部,并实时追踪该文档的所有更新

ln

软链接,也叫符号链接。类似Windows下的快捷方式,Mac OS下的替身。用于连接到另外一个文件的路径和名称。

基本用法:ln [源文件或目录] [软链接名]

1
2
# 举个栗子
ln -s /home/a/b linktob # 将/hoem/a/b目录软链接到linktob

删除软链接:rm -rf linktob

另:当我们进入软链接,使用pwd查看当前目录时,会发现我们还是在软链接目录下

history

用于查看曾经执行过的命令

基本用法:history [options] 参数

1
2
3
4
# 举个栗子
history # 查看全部执行过的命令
history n # 查看最近执行过的前n条命令
!历史执行命令id # 会直接执行指定编号的命令

date

用于显示当前日期即时间

1
2
3
4
5
6
date              # 显示标准时间
date +%Y # 显示年份
date +%m # 显示月份
date +%d # 显示天
date +%Y-%m-%d # 显示日期
date +"%Y-%m-%d %H:%M:%S" # 显示yyyy-MM-dd HH:mm:ss格式的日期时间
image-20200804135727811

cal

用于显示日历

基本用法:cal [options]

1
2
3
4
5
6
# 举个栗子
cal # 显示本月日历
cal -3 # 显示上月/本月/下月日历
cal -m # 以周一为一周的第一天显示本月日历
cal -s # 以周日为一周的第一天显示本月日历
cal 2020 # 显示2020年一整年日历

find

用于从指定目录下递归遍历其各个子目录,将满足条件的文件或目录显示在终端上。

基本用法:find [搜索范围] [options]

常用选项:

​ -name 按照指定的文件名查找文件

​ -user 按照指定定的用户名查找该属于该用户名的文件

​ -size 按照指定的文件的大小查找文件

1
2
3
4
5
6
# 举个栗子
find . -name *.txt # 查找当前目录及其子目录下的全部txt文件
find . -user hmj # 查找当前目录及其子目录下的属于hmj的全部文件和目录
find . -size 20k # 查找当前目录及其子目录下等于20k的全部文件和目录
find . -size +20k # 查找当前目录及其子目录下大于20k的全部文件和目录
find . -size -20k # 查找当前目录及其子目录下小于20k的全部文件和目录

size模式下文件单位如下:

image-20200804213815001

locate

可以快速定位文件路径,locate指令利用实现建立系统中的文件名称和路径的locate数据库,实现快速定位文件。

locate无需遍历整个文件系统,查询速度快,为了保证查询结果的准确度,管理员需要定时更新locate数据库。

基本用法:locate 要搜索的文件

1
2
3
# 举个栗子
updatedb # 更新数据库
locate *.mp3 # 查找全部的mpp3文件

第一次运行lcoate指令前,需要使用updatedb建立数据库。之后需定时更新数据库以确保查询结果的准确性。

grep

用于过滤查找,管道符|,表示将前一个命令的处理结果输出传递给后面的命令处理。

基本用法:gerp [options] 查找内容 源文件

常用选项:

​ -n 显示匹配行及行号

​ -i 忽略字母大小写进行查找

1
2
# 举个栗子
cat a.txt | grep -ni hello
image-20200805223124773

组管理

  1. 用户配置文件(用户信息)位置:/etc/passwd
  2. 口令配置文件(密码和登录信息)位置:/etc/shadow
  3. 组配置文件(组信息)位置:/etc/group

在 linux 中的每个用户必须属于一个组,不能独立于组外。

在 linux 中每个文件所有者所在组其它组的概念。

创建组

创建组:groupadd 组名

1
2
# 举个栗子
groupadd guest # 创建一个guest组

所有者

一般为文件/目录的创建者,谁创建了该文件,就自然的成为该文件的所有者。

查看所有者

查看文件/目录的所有者:ls -ahl

image-20200807205747254

修改所有者

修改文件/目录所有者:chown 用户名 文件名/目录

⚠️ 注意:chown命令只能改变文件/目录的所有者,无法改变其所在组

1
2
3
# 举个栗子
chown guset a # 将a目录的所有者改成guset,但是其所在组并没有改变。
chown guest a.txt # 将a.txt文件的所有组改成guset,但是其所在组并没有改变。
image-20200807211952051

所在组

查看所在组

查看文件/目录的所有者:ls -ahl

修改所在组

修改文件/目录所在组:chgrp 用户组 文件名/目录

1
2
3
# 举个栗子
chgrp guest a # 将a目录的所在组改成guset
chgrp guest a.txt # 将a.txt文件的所在组改成guset

其他组

即除去文件的所有者和所在组的用户外,其他用户的文件都是属于其他组。

改变用户所在组

基本用法:

  • usermod -g 用户组 用户 修改用户的所在组
  • usermod -d 目录 用户 改变用户登录后的初始所在目录

权限管理

文件类型

image-20200807222009755

第 0 位表示的是文件类型(d, - , l , c , b)

  • - 表示是普通文件
  • d表示是目录
  • l表示是软链接
  • c表示字符设备,如鼠标、键盘等。
  • b表示块文件,如硬盘等。

文件所有者权限

image-20200807222749615

第 1-3 位表示的是该文件的所有者拥有该文件的权限。

  • -表示没有权限
  • r表示有读权限,可用数字4表示
  • w表示有写权限,可用数字2表示
  • x表示对文件夹进入目录的权限,对文件可执行的权限,,可用数字1表示

文件所在组的用户的权限

image-20200807223740382

第 4-6 位表示的是文件所在组的用户拥有该文件的权限

-rwx分别所代表的含义同上。

其他用户拥有该文件的权限

第 7-9 位表示的是其他用户组的用户拥有该文件的权限

-rwx分别所代表的含义同上。

rwx权限详解

rwx 作用到文件

[ r ]代表可读(read):可以读取,查看

[ w ]代表可写(write):可以修改,但不代表可以删除该文件

[ x ]代表可执行(execute):可以被执行

⚠️注意:拥有对文件的写权限时,不一定就代表可以删除该文件

删除一个文件的前提条件对该文件所在的目录有写权限,才能删除该文件.

rwx 作用到目录

[ r ]代表可读(read): 可以读取,ls 查看目录内容

[ w ]代表可写(write): 可以修改,目录内文件的创建+删除+重命名目录

[ x ]代表可执行(execute):可以进入该目录

ls -l命令输出结果的含义详解

这里只介绍红框内的内容,其余的前面已介绍过。

image-20200807225326024

以第一行a目录为例:

  • 2 表示对于目录表示该目录下的子目录数,对于文件表示是硬链接
  • tom 表示文件/目录的所有者
  • hmj 表示文件/目录的所在组
  • 4096 表示对于文件表示文件的大小,单位字节。目录都是用固定值4096表示
  • 8月 3 22:50 表示最后对文件的修改时间
  • a 表示文件/目录名

修改权限

使用chmod命令可以修改我呢间或目录的权限。

基本用法:

  • 使用+增加,-减少,=变更权限

    1
    2
    3
    4
    5
    6
    7
    8
    # 举个例子
    # u 表示文件的所有者
    # g 表示文件所在组的其他用户
    # o 表示其他组的用户
    # a 表示所有用户
    chmod u=rwx,g=r,o=r a.txt # 修改a.txt文件的权限,只有文件所有者能读写执行,其他用户都只读。
    chmod u+x a.sh # 增加a.sh文件所有者对其的执行权限。
    chmod u-x a.sh # 删除a.sh文件所有者对其的执行权限。
  • 使用数字变更权限

    1
    2
    3
    4
    5
    6
    7
    8
    # 举个例子
    # 4 表示读权限
    # 2 表示写权限
    # 1 表示可执行或可进入目录权限
    # 0 表示无权限

    chmod 744 a.txt # 修改a.txt文件的权限,只有文件所有者能读写执行,其他用户都只读。
    chmod 700 a.sh # 修改a.sh文件权限,只有文件所有者能读写执行,其他用户无权限。

修改文件所有者和所在组

  • chown 用户 文件 修改文件的所有者
  • chgrp 组名 文件 修改文档的所在组
  • chown 用户:所在组 文件 同时修改文件的所有者和所在组
1
2
3
4
5
6
# 举个栗子
chown junjun b.sh # 将b.sh文件的所有者改为junjun
chown junjun:junjun a.txt # 将a.txt的所有者和所在组全都修改为junjun
chown -R junjun a/* # 将a目录下的所有文件的所有者递归修改为junjun
chgrp -R junjun a/* # 将a目录下的所有文件的所在组递归修改为junjun
chown -R junjun:junjun a/* # 将a目录下的所有文件的所有者和所在组全都递归修改为junjun

任务调度

定时任务调度

使用crontab命令让系统在某个时间执行的特定的命令或程序,如数据库的备份等。

基本用法:crontab [options]

常用选项:

  • -e 用于编辑crontab定时任务

  • -l 用于查询crontab定时任务

  • -r 用于删除crontab定时任务

crontab文件的格式

crontab文件的格式为:M H D m d command

其中:

  • M 表示分钟,取值范围为0-59
  • H 表示小时,取值范围为0-23
  • D 表示一月中的第几天,取值范围为1-31
  • m 表示月,取值范围为1-12
  • d 表示 一周中的星期几,取值范围为0-7
  • command 表示要执行的命令,如echo,cd等等。

这里的d的取值中0和7均为星期天

设置定时任务

1
2
3
# 举个栗子
*/1 * * * * echo "hello world" >> a.txt # 每分钟输出hello world到a.txt
20 8 1 * ? echo `cal` >> b.txt # 每月1号8:20输出日历到b.txt

进程管理

查看进程

使用ps指令查看系统中正在执行的进程信息。

基本用法:ps [options]

常用选项:

  • ps -ef 用于显示全部的进程信息。Unix语法

  • ps aux 用于显示全部的进程信息。BSD语法

  • ps -ef|grep name管道符同用,过滤进程信息,只查看name相关的进程信息

    1
    2
    3
    4
    # 举个栗子
    ps -ef # 查看全部信息
    ps aux # 查看全部信息
    ps -ef|grep nginx # 只查看nginx相关的进程信息

终止进程

使用kill指令通过进程ID强制终止系统中正在执行的进程。
使用killall指令通过进程名称强制终止系统中正在执行的多个进程。

基本用法:

  • kill [options] PID 用于将指定的进程PID强制终止。
  • killall [options] PName 用于将指定名称的进程强制终止。

常用选项:kill -9 PID 立即将指定的PID的进程强制杀死。

1
2
3
# 举个栗子
kill -9 8081 # 立即强制杀掉进程ID为8081的进程
killall nginx # 杀掉全部的ngxin进程

系统与服务管理

查看服务

方式一

第一步,在终端输入setup后回车
image-20200812003005260
第二步,进入系统服务

image-20200812003100236

第三步,使用上下箭头移动服务,空格键选择/取消自启动的服务

image-20200812003206324

第四步,使用tab键切换菜单,按下enter确认后退出

方式二 已弃用

可以查看/etc/init.d/目录下,但目前我使用的CentOS7.3已明确提示我改传统的脚本初始化方式已被弃用,并由 systemctl代替。

image-20200812004130592

service指令

服务本质就是在后台运行的进程监听某个端口等待其他程序的请求,故亦称为守护进程

service指令基本用法:service 服务名 [reload,stop,start,status]

1
2
3
4
5
6
# 举个栗子
service sshd stop # 停止sshd服务
service sshd start # 开启sshd服务
service sshd status # 查看sshd服务的状态
service mysqld status # 查看mysqld服务的状态
service mysqld reload # 重启mysqld服务

systemctl

systemctl指令 可用于检查和控制系统与服务管理器的状态

systemctl [options] [reload,stop,start,status] 服务名

1
2
3
# 举个栗子
systemctl status sshd # 查看sshd服务的状态
systemctl stop mysqld # 停止mysqld服务

防火墙

查看防火墙状态

1
2
firewall-cmd --state     # 查看防火墙状态
firewall-cmd --version # 查看防火墙版本

查看防火墙开启的端口

1
firewall-cmd --zone=public --list-ports   # 查看防火墙开启的端口

开放端口

--permanent表示永久开放该端口,否则机器重启后配置失效。

1
2
firewall-cmd --zone=public --add-port=80/tcp --permanent  # 永久开放80端口
firewall-cmd --reload # 重新加载防火墙,使配置生效

重新加载防火墙

1
firewall-cmd --reload   # 重新加载配置

⚠️注意:我们在对防火墙更改后一定要重新加载防火墙,否则配置将不会生效