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
zip
和tar
一样,会留着原文件
# 压缩【会保留原文件】 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
文件传输
网站下载文件
curl
与wget
# 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传输
用于linux
和linux
服务器之间传输文件
注意:
-
接受数据的一方必须开启了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
rz
和sz
# 安装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 |
软件安装
编译安装
有时候安装软件,下载下来的是软件源代码,例如:python
,java
,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/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律