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 @ 2024-10-26 02:00  清风拂山岗(小高同学)  阅读(39)  评论(0)    收藏  举报