Linux Shell

Linux Shell

shell是什么呢?

shell就是内核的一个外壳,用户通过shell来控制内核进而驱动硬件做事情

类似我们和朋友打电话,shell就充当电话的作用,通过命令向操作系统传递指令,告知它你想做什么,比如创建文件、管理程序等

1.命令

# 修改主机名【注意:修改完之后退出重新登录才能显示修改后的主机名】
hostname jaden
logout
# 查看主机名
hostname
# 查看主机的信息
hostnamectl

2.快捷键

Ctrl + a    #光标跳转至正在输入的命令行的首部
Ctrl + e    #光标跳转至正在输入的命令行的尾部
Ctrl + c    #终止前台运行的程序,比如ping指令
Ctrl + d    #在shell中,ctrl-d表示推出当前shell。
Ctrl + z    #将任务暂停,挂至后台, 执行fg命令继续运行
Ctrl + l    #清屏,和clear命令等效。
Ctrl + k    #删除从光标到行末的所有字符
Ctrl + u    #删除从光标到行首的所有字符
Ctrl + r    #搜索历史命令, 利用关键字搜索
ctrl + w    #光标往前删除一个参数,以空格为分割。

3.history

# 查看历史指令
history
# 查看历史命令后通过某个数字调用命令
!数字
# 自动匹配执行过的最近的一条命令
!某个命令的开头 然后回车
#清除历史记录【清除内存中的历史指令】
history -c
# 查看默认记录最近的指令条数
echo $HISTSIZE
# 修改默认记录最近的指令条数
vi /etc/profile
# 注意:
1.退出登录之后,内存中的历史指令才会同步到硬盘文件中
2..bash_history默认记录最近的1000条指令

注意:

对于history,操作系统的机制是执行各种各样的命令都是存储在内存中的,当清除了内存,退出登录后,内存中的记录会同步到硬盘中,当重新登录后,内存会从硬盘中读取记录,然后放到内存中

4.别名

# 查看别名
alias
# 添加别名【临时】
# alias 别名 = '指令'
alias ip='ip a|head -9|tail -1'
# 取消别名
unalias ip
注意:alias别名的优先级高于系统命令 别名一定要是可执行的,不能随便定义别名
# alias永久生效
cd /root
vi .bashrc
# 空白处,增加一行
alias ip='ip a|head -9|tail -1'
# 重新登录就生效了

vi 编辑器

1.光标

1.1 移动

进入编辑模式有三个按钮

  • i ——> 在光标位置编辑
  • o ——> 换行编辑,即新起一行编辑
  • a ——> 在光标后一位编辑
vi /etc/services
:set number ——> 显示行号
# 快捷键
G(shift+g) ——> 跳到最后一行
gg ——> 跳到第一行
10gg/10G/:10 ——> 跳到第10
$(shift+4) ——> 快速跳行尾
^ ——> 快速跳行首【第一个字符】
) ——> 快速跳行首【最前面】
ctrl+f 下翻一页
ctrl+b 上翻一页
ctrl+u 上翻半页
ctrl+d 下翻半页

1.2 删除复制

x删除单个字符【往后删】
10x删除10个字符
dd 删除光标所在行 # 其实dd是剪切的操作
6dd 从光标开始往下删除6
dw 删除一个单词(word)
小p 粘贴粘贴板的内容到当前行的下面,比如将dd剪切的行黏贴到下面
大P 粘贴粘贴板的内容到当前行的上面
yy 复制行
5yy复制5行,复制的内容可以通过p\P来黏贴
# 恢复
u

1.3 搜索替换

搜索

/搜索内容 # 表示向后搜索字符串pattern 继续按小n向下和大N向上

替换

# 替换单个关键字
# 将第35行的qotd替换为xinyi
:35s/qotd/xinyi/g # :35s/旧的/新的/g
# 同时替换多行中的关键字
# 将第35行到40行之间的qotd替换为xinyi
:35,40s/qotd/xinyi/g # :35,40s/旧的/新的/g
# 从某行开始到末尾找到所有的关键字并替换掉
# 将第35行到末尾之间的qotd替换为xinyi
:35,$s/qotd/xinyi/g # :35,$s/旧的/新的/g
# 全文替换
# 搜索整个文件,将所有的old替换为new
:%s/old/new/g  
# 全文替换【带有确认按钮】
# 搜索整个文件,将所有的old替换为new,每次都要你确认是否替换(y/n/a/..),
# y表示确认替换一个、n表示不替换、a表示全部替换
:%s/old/new/gc

1.4 保存退出

:w 将缓冲区写入文件,即保存修改到硬盘上,如果没保存,数据都只是在内存中
:wq 保存修改并退出
:x 保存修改并退出,和wq一样的效果。
:q 退出
:q! 强制退出,放弃修改
:wq! 强制保存修改并退出

2. vi原理

vi一个文件的时候,磁盘在创建该文件的时候,将会再一个创建.文件名.swp隐藏文件,我们这个时候在进行编辑都是在内存中进行的,当:wq保存后,磁盘将会删除源文件,然后把隐藏文件命名为源文件

输入输出重定向

输出重定向

不管用>还是>>,如果文件不存在,就自动创建

> 将命令执行结果不输出到屏幕上,输出到文件里,会清空原文件

# 将/etc/services中的前5行打印出来并写入到data.txt文件中
head -5 /etc/services > data.txt
echo 123 > data1.txt

>>输出追加重定向,不会清空原文件

echo 111 >> data.txt
# 标准正确输出重定向
head -5 /etc/services > data.txt
# 标准错误输出重定向
head -5 /etc/services 1>right.txt 2>error.txt
# 清空文件内容
> data.txt

输入重定向

两者的区别在于
"""
前者直接把文件传递给cat命令
后者直接把文件内容传递给cat命令,即cat 仅接收到了内容,而不是文件本身
"""
cat data.txt
cat < data.txt
# 将data.txt中的数据输入过来并写入data1.txt中【写入data1.txt先将里面的数据清除掉】
cat < data.txt > data1.txt
# 基于cat实现不断的输出值【值都是打印到屏幕上】 直到0停止
cat << 0
# 基于cat实现不断的输出值并保存到data3.txt中【值都是打印到屏幕上】 直到0停止
cat << 0 > data3.txt

压缩和解压缩

tar

tar:能够解压的文件格式是xx.tar.gz

# 压缩:tar -zcf 压缩包路径 目标1 目标2 目标3【压缩到当前路径】
tar -zcf package.tar.gz data1.txt data2.txt data3.txt
# 压缩到指定路径
tar -zcf /tmp/package.tar.gz data1.txt data2.txt data3.txt
# 解压:tar -zxf 压缩包路径 -C 解压路径
# 注意:解压到指定路径必须要带-C参数;但是当前路径不需要带-C参数
tar -zxf package.tar.gz -C /tmp
# 归档并不压缩【和压缩的区别在于大小的区别】
tar -cf package.tar.gz data1.txt data2.txt
# 查看压缩包内容
tar -tf package.tar.gz

gzip

gzip压缩文件,会自动删除原文件,和tar不同,tar会留着原文件

# 压缩【会自动删除原文件】
gzip 文件/目录
# 解压【会自动删除原压缩包】
gzip -d 压缩包

zip

ziptar一样,会留着原文件

# 压缩【会保留原文件】
zip -r 压缩路径 文件/目录
# 解压【会保留原压缩包】
unzip data.zip

rar

windows上常见的rar格式的压缩包,在linux上其实比较难解压,需要安装专业的工具:

# 安装软件
yum install epel-release -y
yum install unar -y
# 解压rar包
unar -o 解压路径 被解压文件路径
eg: unar -o /opt 456.rar

文件传输

网站下载文件

curlwget

# cur【自带】
curl -o ./utils https://github.com/atom/atom/archive/refs/heads/master.zip
# wget【需要自行安装】
yum install -y wget
wget 文件网址
wget https://github.com/atom/atom/archive/refs/heads/master.zip

scp传输

用于linuxlinux服务器之间传输文件

注意:

  • 接受数据的一方必须开启了ssh服务端

    # 检查是否开启了ssh服务端
    systemctl status sshd
  • linux默认开启,mac默认ssh服务端是没有开启的,可以自行开启

linux

# 推送到远程服务端【上传】
# 格式:scp 本地文件路径 远程主机用户@远程主机ip地址:远程主机某个目录
scp typora-setup-x64.exe root@10.0.0.128:/tmp
# 从远端服务文件拉取文件【下载】
# 格式:scp 远程主机用户@远程主机ip地址:远程主机某个文件路径 本地路径
scp root@10.0.0.128:/tmp/typora-setup-x64.exe .

windows

windows只能上传文件到linux中,命令如下:

scp typora-setup-x64.exe root@10.0.0.128:/tmp

rzsz

# 安装lrzsz软件包
yum install lrzsz  -y
# 从windows——> linux
直接从windows拖到linux中/rz -E
# 从 Linux ——> Windows
sz /root/test3.tar.g

xftp上传下载

总结

方式 linux——> windows windows——>linux linux<——> linux
xftp scp scp
rz sz
xftp

软件安装

编译安装

有时候安装软件,下载下来的是软件源代码,例如:pythonjava,c等高级语言编写的,不能直接运行,需要编译之后才能运行,需要将这些编译成二进制机器码才能 运行,windows中的有些软件是从源代码编译打包之后才生成exe程序,大家安装的软件都是基本别人编译好的,但是对应Linux中的是二进制可执行文件,不是```exe``程序

用一个网站服务程序来感受一下这个编译的过程!

1.下载源码包

cd /opt/
curl -o nginx.tar.gz http://nginx.org/download/nginx-1.20.1.tar.gz

2.解压安装包

tar xf nginx.tar.gz
cd nginx-1.20.1/

3.配置编译参数

对该名词的解释:软件给我们提供了很多功能,我们在编译的过程中可以自己选择哪些功能要,哪些功能不要,比如qq精简版

./configure --prefix=/usr/local/nginx --without-pcre --without-http_rewrite_module --without-http_gzip_module
# 解释
--without就是去掉的意思
--prefix=/usr/local/nginx是指定软件的安装目录 【目录不存在的话会自动创建】
./是用相对路径来执行这个configure文件,用绝对路径也可以执行这个文件
该命令执行后,会自动检查各种依赖环境是否满足软件运行的要求,检查通过之后会生成一个叫做Makefile的文件。

4.编译

会找当前目录中的Makefile文件来进行编译

这个编译过程一般是比较长的。到底多长时间,取决于两点

  • CPU性能
  • 软件功能复杂度
# 已经在这目录就不用cd了
cd nginx-1.20.1/
make

执行完会发现objs目录里面其实多了好多东西, 其中nginx文件就是我们的二进制可执行的命令文件。它是可执行的程序了

查看nginx的版本

cd nginx-1.20.1/
./objs/nginx -v

5.安装

其实安装就是将这个程序的某些文件放到对应的目录中去,在上面的编译参数中已经指定好了--prefix=/usr/local/nginx,要安装到/usr/local/nginx目录中去

cd nginx-1.20.1/
make install

查看安装目录

ls /usr/local/nginx/

如果不清晰就通过tree这个工具来进行目录查看

yum install tree -y
tree /usr/local/nginx/
[root@localhost nginx-1.20.1]# tree /usr/local/nginx/
/usr/local/nginx/
├── conf # 该软件的配置文件所在目录
│   ├── fastcgi.conf
│   ├── fastcgi.conf.default
│   ├── fastcgi_params
│   ├── fastcgi_params.default
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types
│   ├── mime.types.default
│   ├── nginx.conf
│   ├── nginx.conf.default
│   ├── scgi_params
│   ├── scgi_params.default
│   ├── uwsgi_params
│   ├── uwsgi_params.default
│   └── win-utf
├── html  # 网站源代码存放目录,这个nginx其实主要是用来部署网站的,网站的代码可以放到这个目录中
│   ├── 50x.html
│   └── index.html
├── logs # 这个软件自带日志记录功能,记录的日志存放在这个目录中
└── sbin
└── nginx  # 这个是软件的关键性的启动程序,类似于我们windows安装的qq目录中的QQ.exe

6.运行

由于没有配置环境变量,所以要用完整路径来运行

# 在运行之前一定要先关闭防火墙,也是在装好系统之后第一步要做的事情
# 关闭防火墙
systemctl stop firewalld
# 取消防火墙的开机自启
systemctl disable firewalld
# 启动
/usr/local/nginx/sbin/nginx
# 使用浏览器访问http://<虚拟机的ip地址> 地址根据自己的来填写
http://192.168.34.41/
就可以看到网站了

访问成功

rpm安装

通过上面的编译安装还是比较繁琐的,为了方便使用者,一般都会编译之后发给使用者,用起来不需要编译,就方便多了

做系统的厂商将自己的软件也打包一下,供用户下载使用,下载软件需要用到对应系统的包管理工具

# 手动安装rpm包
# 使用wget下载rpm包
# 安装wget
yum install wget -y
# 使用wget下载rpm包
# 如果没有wget,可以先用curl下载:
# 安装rpm包 #rpm -i是安装,vh是显示安装进度条的意思。
rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
# 卸载
rpm -e tree
# 升级
rpm -Uvh xxx.rpm
# 查看已安装的软件
rpm -qa|grep httpd

缺点:安装软件,会提示安装失败,需要各种依赖包,需要先去安装依赖包

yum解决了这个问题,会自动下载安装需要的依赖包

yum安装

#yum安装扩展yum仓库
yum install epel-release -y
#yum安装nginx
yum install nginx -y
#yum移除nginx
yum remove nginx -y
#查看仓库rpm的数量
yum repolist
# 查看全部可用仓库
yum repolist all

安装方法总结

编译安装:
优点: 自由定制
缺点:难度高,步骤繁琐
rpm安装:
优点:安装简单  
缺点:需要自己解决依赖,不支持定制
yum安装:
优点:自动解决依赖,默认安装最新版
痛点:不支持定制

find文件查找

根据文件来查找

命令   目录...   查找深度     类型   文件名称包含  
find   /etc   -maxdepth 1  -type f  -name "Cour*"
# 在root目录下查找所有以Cour开头的文件【默认区分大小写】
find /root -type f -name "Cour*"
# 在root目录下查找所有以Cour开头的文件【区分大小写】 -iname
find /root -type f -iname "gao*"
# -type文件类型:f表示文件,不指定类型的话,文件和目录都会查找
# -maxdepth查找深度:目录层级的意思,不指定的话,就按照最大深度来查找
# "pa*": *表示匹配任意pa开头的内容,*号还可以写在开头

根据文件大小来查找

"""
注意单位:
k要小写
M/G要大写
不带单位就按照B单位来查找
"""
# 在root目录下查找大于10k的文件
find /root -type f -size +10k
# 在root目录下查找小于2k的文件
find /root -type f -size -2M
# 在root目录下查找大于50M同时小于100M的文件
find /root -type f -size +50M -and -size -100M

根据修改时间查找文件

stat data.txt
# time是按照天来查找,min是按分钟查找
# 时间参数:
atime :文件最后被访问的时间。每当文件被读取时,atime 会更新
mtime :文件内容最后被修改的时间。当文件的内容发生变化(例如,写入数据或编辑文件)时
ctime :文件的元数据(如权限、所有者等)最后被更改的时间。它是在文件内容或属性发生变化时更新的,但不包括文件内容的修改
amin :文件最近一次访问时间距离当前时间的分钟数
mmin :文件最近一次修改内容的时间距离当前时间的分钟数
cmin :文件的元数据最近一次更改的时间距离当前时间的分钟数
# 时间单位为天【-1代表一天以内,+1一天以前】
# 在opt目录下查找一天以内修改过的文件
find /opt -type f -mtime -1
# 在opt目录下查找1天之前,10天之内,修改过的文件
find /opt -type f -mtime +1 -and -mtime -10
# 时间单位为分钟
# 在opt目录下查找1f分钟以内修改过的文件
find /opt -type f -mmin -1

取反

# 在root目录下查找以.txt结尾的文件【正向】
find /root -type f -name "*.txt"
# 在root目录下查找非以.txt结尾的文件【取反】
find /root -type f ! -name "*.txt"
# 在root目录下查找除了文件外的所有【正向】
find /root ! -type f

根据用户/组来查找文件

# 查找属于alex用户的所有目录和文件
find / -user alex
# 根据用户组来查
find / -group alex

对找出的文件进行处理

# 格式:正常的find语句+操作exec
# 比如我们查找到了一些病毒文件,想直接删除
"""
{}表示我们找到的那些文件
注意:
正常exec语句最后要分号结尾,但是分号在linux中有特殊的意义
比如一次性执行两个指令可以 ls -lh; echo 123,这样执行,所以要对;进行转义,意思是不要将;作为shell指令的分隔符,\就是转义符号
"""
find /tmp -type f -size +10K -exec rm rf {} \;

进程管理

进程命令

程序:安装到电脑或者手机上的程序文件

进程:正在运行的程序

# 当前会话的进程
ps
# 查看所有进程及其详细信息的情况
ps -ef
"""
参数介绍:
pid :进程编号
ppid:父进程
uid :进程所属用户 切换个用户执行一下sleep 20,就可以看到效果
CMD中看到[]括起来,都是系统级别的进程【千万不要动】 不带[]的都是用户级别的
"""
# 关闭进程
kill pid号
kill  7851  #使用进程id号,来终止进程
# 强制关闭进程【慎用!!】
kill -9 pid号
# 批量关闭进程
pkill CMD命令名称
# 强制关闭多个进程【慎用!!】
kill -9 CMD命令名称
# 断开某个连接【一定要断开连接sshd】

pstree安装

# 安装
yum install psmisc -y
# 使用——> 用于查看进程与进程之间的关系
pstree

查看计算机硬件信息

# 查看cpu
lscpu
# 查看内存命令
free -h
# 查看硬盘命令【h表示人类可读】
df -h  
# 查看计算机的cpu,内存,进程等信息(和windows的任务管理器很像)
top
[root@localhost ~]# top
top - 16:09:14 up 52 min, 4 users, load average: 0.00, 0.01, 0.05
Tasks: 226 total, 1 running, 225 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 4026160 total, 1239188 free, 841944 used, 1945028 buff/cache
KiB Swap: 4063228 total, 4063228 free, 0 used. 2918900 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1776 root 20 0 262768 1580 1104 S 0.3 0.0 0:09.08 pcscd
2336 root 20 0 640816 26192 19360 S 0.3 0.7 0:04.45 vmtoolsd
2386 root 20 0 151604 3520 2648 S 0.3 0.1 0:04.34 escd
3630 root 20 0 162128 2384 1580 R 0.3 0.1 0:00.09 top
1 root 20 0 128392 6996 4192 S 0.0 0.2 0:01.97 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
# top - 16:09:14 up 52 min 表示系统当前时间,开机了52分钟,如果看到3:20,表示开了3小时20分钟,看到10 days表示10天了,
# 4 users:表示当前只有4个用户在使用
# load average: 0.00, 0.01, 0.05:平均负荷,指的是CPU的负载高不高,CPU负载高,那么平均负荷就比较大,如果这几个值很大的时候,服务器会变得很卡。如果发现服务器卡了,就是异常情况,这三个值表示:1分钟、5分钟、15分钟的负载情况
# Tasks: 226 total, 1 running, 225 sleeping, 表示进程数量,总共226个,1个正在运行,225个在睡眠状态
0 stopped:表示停止的进程,一般都是0,进程结束之后会自动从内存中释放
0 zombie : 表示僵尸进程数量,僵尸进程是杀不死的,就是由于各种原因,系统无法自动释放的进程,僵尸进程也消耗系统资源,除非kill -9,但也容易产生僵尸进程
# %Cpu(s): 100.0 id:表示100%空闲,因为现在CPU使用率很低,所以显示了100%空闲
# KiB Mem : 4026160 total, 1239188 free, 841944 used, 1945028 buff/cache 即内存
total表示总内存量,free表示可用剩余量,userd表示已经使用的量,buff/cache表示用作缓存,是和磁盘进行读写时的缓存区域
# KiB Swap表示虚拟内存,这是硬盘分配给内存的一部分空间,为了当内存不足时,临时将硬盘当作内存使用

定时任务

我们会发现,有些病毒杀了之后, 过段时间又启动起来了,可能是做了定时任务,定期执行某个指令!

时间命令

# 查看当前时间【年月日 星期几 时分秒】
date
# 年月日
date +%F
# 时分秒
date +%T
# 查看当前时间【年月日 时分秒】
date +%F\ %T
# 修改时间和日期
date -s '20200723 14:40:00'
# 修改时间
date -s '14:40:00'
# 同步时间,如果时间和当前时间不一致,可以做一下时间同步,来让时间准确起来【执行完是有延迟的,等待大概6秒才看到准确时间,前提是有网】
systemctl restart chronyd

定时任务

# 查看定时任务
crontab -l
# 编辑定时任务
crontab -e
"""
# 定时任务的格式
* * * * *   cmd
分 时 日 月 周 命令
分:0-59
时:0-23
日:0-31
月:1-12
周:1-7
# 几个符号的意思
# * 每分钟
# */5 每5分钟
# 05 第5分钟
"""
# 每5分钟执行一次
*/5 * * * *
# 每1小时的01分执行一次
01 */1 * * *
# 每半个小时执行一次,下面的意思是每小时的00分和30分各执行一次
00,30 */1 * * *
# 每天晚上8:00执行一次
00 20 * * *
# 每个月1号晚上8:00执行
00 20 1 * *
# 每年1月1号晚上8:00执行
00 20 1 1 *
# 每周1、周三、周五晚上8:00执行一次
00 20 * * 1,3,5
# ############################案例#############################
# 编辑定时任务:每一分钟都要给time.txt中写入一次时间
crontab -e
*/1 * * * * date >> /tmp/time.txt
# 监测这个文件的输出
tail -f /tmp/time.txt

优化系统

1.优化ssh,以防连接过慢

# 做好备份
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 修改配置文件
vi /etc/ssh/sshd_config
79行:GSSAPIAuthentication no
115行:UseDNS no  # 别忘了删除前面的注释符号#
# 重启sshd
systemctl restart sshd

2.优化selinux

# 永久生效【需要重启生效】
# 修改配置文件,永久关闭
vi /etc/selinux/config
#第7行修改为
SELINUX=disabled
#立即生效【不用重启】,临时的 #有时候有些服务器不让重启,就可以先这样临时用一下
setenforce 0
# 查看selinux状态
"""
修改前:enforcing
修改后:disabled
"""
sestatus

修改前

修改后

3.关闭firewalld【即防火墙】

systemctl stop firewalld
systemctl disable firewalld

4.安装常用软件

yum install lrzsz vim tree wget net-tools screen bash-completion tcpdump -y

关于软件解释

# lrzsz 用于上传,方便将windows中的文件拖拉到linux中
# vim 更加强大的编辑工具
# tree 进行目录查看
# wget 从网站下载文件
# net-tools 网络相关工具
关于这个工具常用的一些命令有:
# 只看某个网卡的ip
ifconfig
ifconfig ens33
# 查看安装了哪些rpm包
rpm -qa
# 查看这个软件有哪些命令
rpm -ql net-tools
# 查看已经安装的软件包的个数
rpm -qa|wc -l
# sreen:屏幕工具 用于创建虚拟终端会话,使得用户可以在远程连接中运行程序,即使连接断开后也能保持程序继续运行,方便后续重新连接和查看执行结果
# 使用方法
# 开启一个终端
screen
sleep 100
# 然后断开连接,在重新连接回来,还可以通过screen恢复到之前的窗口状态,发现程序还在继续执行着。
# 再次连接成功后, 执行
screen -ls
# 我的如下
[root@localhost ~]# screen -ls
There is a screen on:
1846.pts-0.localhost (Detached)
1 Socket in /var/run/screen/S-root.
# 恢复窗口
screen -r 1846
# bash-completion 即超级自动补全,是tab键的加强版,这个包安装完之后,要重新登录一下才行
特点:双击tab可以看到提示信息更全了
# tcpdump:这是个抓包指令,可以抓取网络传输的数据包

服务管理

服务的操作:开机自启、重启服务、启动服务、停止服务等等。

# systemctl是centos7上专门管理服务的命令
# 安装服务
# 安装httpd(网站服务程序,叫做apache,类似nginx)
yum install httpd
# 查看所有服务列表
systemctl list-unit-files
# 启动服务(这两条命令都可以)
systemctl start httpd
systemctl start httpd.service
# 停止服务
systemctl stop httpd
# 重启服务
systemctl restart httpd
# 查看服务状态
systemctl status httpd
# 把服务设置为开机启动
systemctl enable httpd.service
# 取消服务的开机自启
systemctl disable httpd.service

httpd是一个网站服务软件,我们通过浏览器访问:

测试一下

# 启动服务(这两条命令都可以)
systemctl start httpd
systemctl start httpd.service
# 查看服务状态【状态为Active: active (running)则成功】
systemctl status httpd
# 进入/var/www/html目录下
cd /var/www/html

[root@localhost html]# ll
总用量 246112
drwxr-xr-x 12 root root 159 3月 24 2023 youxi
-rw-r--r-- 1 root root 252016479 10月 29 00:58 youxi.tar.gz
[root@localhost html]# ls youxi
ceshi games icon index index0 index1 index2 index3 index4 index5 index.html
# 查看本机ip
ip a
# 在物理机进行访问【虚拟机ip以及文件夹目录】
http://192.168.129.145/youxi/

posted @   清风拂山岗(小高同学)  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示