Linux

Linux
小楼夜听雨Linux操作系统
组成:
Linux系统内核:调控硬件
系统级应用程序:系统自带的应用程序
用户通过第三方应用程序或者系统程序调用内核调度硬件
操作:Linux系统通过命令行的形式进行操作
虚拟机
通过软件:模拟计算机硬件,并给虚拟硬件安装真实的操作系统
软件:VMware
远程控制
电脑Windows系统和虚拟机的Linux系统之间文件交互麻烦,所以需要通过软件在Windows中远程遥控
通过软件 :FinalShell
安装完成之后 在虚拟机中打开终端
输入:ifconfig
在ens33的内容中找到inet 后面的地址为虚拟机的IP地址
打开FinalShell 中左上角的文件夹图标,打击第一个文件夹图标使用SSH连接
在主机位置输入虚拟机IP地址,并填入相关数据完成
双击连接的系统,选择接收并保存即可
注意:虚拟机关闭或者重启之后,IP地址可能改变,需要重新修改FinalShell中的IP地址
虚拟机快照
在使用过程中,Linux系统可能出现损坏,通过快照将虚拟机当前的状态保存下来,之后可以通过快照恢复
虚拟机关机后,右键选择快照,快照拍摄,快照管理选择想恢复的快照,选择转到即可
基础
目录结构
和Windows不同,Linux系统是没有盘符结构的
全部文件都在**根目录/**下面
路径描述为 /XXX/xx.txt 开头的/表示根目录,之后的表示层级关系
命令基础
命令基础格式:command [-options] [parameter]
- **command: ** 命令本身
- -options:[可选,非必填]命令的一些选项,可以控制命令的行为细节
- parameter:[可选,非必填] 命令的参数,多用于命令的指向目标
实例:
ls -l/home/xxxx 以列表的形式,显示/home/xxxx的内容
ls:是命令本身
-l :是选项
/home/xxxx :是参数
cp -r test1 test2 复制文件test1成为test2
cp:是命令本身
-r :是选项
test1 test2 :是参数
命令入门
ls命令
ls [-a -l -h] [路径]
如果不使用选项和参数,直接使用本体ls:表示以平铺的方式,列出当前工作目录的内容
当前工作目录:home目录 终端启动时,默认的路径为home目录下的个人用户目录
home目录 :linux系统的每个操作用户在 /home/用户名 下都有个人用户目录
-a: 表示all 列出所有文件(包括隐藏文件)
-l: 表示以列表(竖向排列)的形式展示内容,并展示更多信息
-h:表示以易于阅读的形式,列出文件大小 如:K,M,G (要和-l一起使用)
选项可以组合使用: ls -a -l ls -al ls -la
cd/pwd命令
cd [参数] 表示切换目录
如果不写参数 ,表示回到用户的home目录
pwd 无选项,无参数,直接执行即可 表示查看当前所在的工作目录
相对路径,绝对路径和特殊路径符
相对路径:以当前目录为起点 如:cd Desktop 表示切换到当前目录下的Desktop目录中
绝对路径:以根目录为起点,以/开头 如:cd /home/yzf522/Desktop
特殊路径符:
. :表示当前目录 如:cd ./Desktop 和cd Desktop 一样表示切换到当前目录下的Desktop目录中
.. :表示上一级目录 如:cd .. 切换回上一级目录 cd ../.. 表示切换到上两级目录
~:表示home目录 如 :cd ~ 表示切换到home目录 cd ~/Desktop 表示切换到home目录下的Desktop
mkdir命令
mkdir [-p] 路径/文件名 表示创造文件夹
-p :表示自动创造不存在的父目录,适用于创造连续多层级目录
案例:mkdir /home/yzf522/001 表示在yzf522中创造001文件
案例:mkdir -p /home/yzf522/001/002/003 表示在001中创造002,在002中创造003
注意:创造文件夹涉及权限问题,无法在home外创建
touch命令
touch 路径/文件 在该路径下创造文件
案例:touch /home/yzf522/001/abc.txt 在001文件夹创造abc.txt文件
小细节:ls -la 的时候,前面为d的就是文件夹,为 - 的就是文件
cat命令
cat 路径 表示查看该路径的文件(全部显示)
案例:cat ./001/abc.txt 查看当前目录下的001文件夹的abc.txt文件
more命令
more 路径 表示查看该路径的文件(支持翻页:如果内容过多,可以一页页展示 )
操作:按空格翻页,按q退出
案例 :more /etc/services 表示查看这个路径下的系统文件
cp命令
cp [-r] 参数1路径 参数2路径 表示将参数1复制到参数1
-r 用于文件夹复制
案例:
cp 001/abc.txt 001/002 表示将001的TXT文件复制到002
cp 001/abc.txt 001/002/abc2.txt 可以改文件的名字
cp -r 001/002 001/003 表示复制002文件夹到003中(会自动创造003文件夹)
mv命令
mv 参数1 参数2 表示移动参数1到参数2
参数1:表示被移动的文件或文件夹
参数2:表示要移动到的地方,如果目标不存在,则进行改名,确保目标存在
rm命令(支持通配符)
rm [-r -f ] 参数1 参数2.......参数n 表示删除文件
-r:删除文件夹
-f:强制删除 通过su - root切换root权限权限用户使用该选项,密码和普通用户默认一样,输入exit 退回普通用户
通配符:
***** 表示通配符,即匹配任意内容(包含空)
如:
test*:表示匹配任何以test开头的内容
*test:表示匹配任何以test结尾的内容
test:表示匹配任何包含test的内容
案例:rm -r *00 表示删除所有00开头的文件夹
注意:rm是一个危险命令 ,不要在root权限下使用rm -rf/和rm -rf /*这相当于在c盘进行格式化
which命令
which 命令 前面的命令本质上是二进制程序,可以通过which查找命令程序的存放位置
案例: which cd
find命令(支持通配符)
find 起始路径 -name "查找的文件名称" 表示按文件名进行查找文件
案例:find / -name "*00*" 在根目录下查找所有包含00的内容
find 起始路径 -size +/-n[kMG] 表示按文件大小进行查找文件
+,-:表示大于和小于
n:表示数字
kMG:表示单位
案例:find / -size +100M表示在根目录下查找大于100MB的文件
grep命令
grep [-n] 关键字 文件路径 从文件中通过关键字过滤文件行 文件路径可作为内容输入端口
-n:表示在结果中显示匹配行的行号
关键字:用于筛选关键行,如果有空格等特殊符号,可以使用“”进行包围
案例:grep yzf522 /hame/yzf522/002/abc.txt 查找abc.txt中包含yzf522的行
grep -n boy /hame/yzf522/002/abc.txt 查找abc.txt中包含boy的行,并显示行号
wc命令
wc [-c -m -l -w ] 文件路径 表示统计文件的行数,单词数等 文件路径可作为内容输入端口
-c:统计字节数
-m:统计字符数
-l:统计行数
-w:统计单词数
如果直接执行wc命令,则显示 行数,单词数,字节数,文件位置
案例:wc /home/yzf522/002/abc.txt 显示abc.txt的行数,单词数,字节数,文件位置
管道符:|
A命令 | B命令 表示将A命令的结果作为B命令的输入
案例:cat /home/yzf522/002/abc.txt | wc -m 表示将查看abc.txt的内容作为wc命令的内容输入
案例:cat /home/yzf522/002/abc.txt | grep yzf522 表示将查看abc.txt的内容作为grep命令的内容输入
案例:ls /home/yzf522 | grep 001 表示将显示yzf522的文件夹作为筛选001的内容输入
注意:管道符可以重复使用,如:A|b|c|d
[照片上传不了,可进入链接看]: “https://bu.dusays.com/2024/07/24/66a10a9702128.png“
echo命令
echo 输出内容 表示在命令行内输出指定内容 带空格等特殊符号时用“ ”包裹
案例:echo "yzf is good boy"
反引号`
1 | `命令` |
搭配echo使用,用反引号包裹的命令字符可以直接执行,而不是输出命令字符
案例:echo ~pwd~ 显示当前文件夹
重定向符>和>>
A命令 > 文件 A命令的结果覆盖写到文件中
A命令 >> 文件 A命令的结果追加写到文件中
案例:echo "yzf522" > /home/yzf522/002/abc.txt 将yzf522覆盖写入abc.txt
案例:echo "good" >> /home/yzf522/002/abc.txt 将good追加写入abc.txt
案例:ls > /home/yzf522/002/abc.txt 将yzf522的文件夹覆盖写入abc.txt
tail命令
tail [-f -数字 ] 路径 查看文件尾部的内容,追踪文件的最新更新
-f:表示持续追踪,如果有多个窗口操作同一个文件,则持续更新,通过CTRL+C结束追踪
-数字:表示查看尾部多少行,不填默认10行
案例:tail -5f /home/yzf522/002/abc.txt 先显示abc.txt的最后5行,并持续追踪
vi、vim编辑器
vim是vi的加强版,一般情况下使用vim
vim有3个模式:
命令模式:初始模式,所有按键都是快捷键,不能对文本进行自由编辑
输入模式:插入模式,可以对文本进行自由编辑
底线命令模式:开始,通常用于文件的保存,退出
vi/vim 文件路径 如果文件存在就打开文件,如果文件不存在,就创建新文件
常见快捷键:
| 模式 | 命令 | 描述 |
|---|---|---|
| 命令模式 | i | 在当前光标位置进入输入模式 |
| 命令模式 | a | 在当前光标位置 之后 进入输入模式 |
| 命令模式 | I | 在当前行的开头,进入输入模式 |
| 命令模式 | A | 在当前行的结尾,进入输入模式 |
| 命令模式 | o | 在当前光标下一行进入输入模式 |
| 命令模式 | O | 在当前光标上一行进入输入模式 |
| 输入模式 | esc | 任何情况下都能通过esc回到命令模式 |
| 命令模式 | PGUP/PGDN | 向上翻页/向下翻页 |
| 命令模式 | 0/$ | 光标移动到开头/结尾 |
| 命令模式 | / | 搜索模式 |
| 命令模式 | n/N | 向下/向上搜索 |
| 命令模式 | dd/ndd | 删除光标所在行,n是数字删除光标向下n行 |
| 命令模式 | yy/nyy | 复制当前行,n是数字复制向下n行 |
| 命令模式 | p | 粘贴 |
| 命令模式 | u | 撤销 |
| 命令模式 | ctrl+r | 反撤销 |
| 命令模式 | gg | 跳到首行 |
| 命令模式 | G | 跳到尾行 |
| 命令模式 | dG | 从当前行开始,向下全部删除 |
| 命令模式 | dgg | 从当前行开始,向上全部删除 |
| 命令模式 | d$ | 从当前光标开始,删除到行尾 |
| 命令模式 | d0 | 从当前光标开始,删除到行首 |
| 底线命令模式 | :w,q,wq | 保存,退出,保存并退出 |
| 底线命令模式 | :q! | 强制退出 |
| 底线命令模式 | :set nu | 显示行号 |
| 底线命令模式 | :set paste | 设置为粘贴模式:确保从外部复制的格式一致 |
进阶
root用户
root用户拥有最大的系统操作权限,普通用户在很多地方的权限是受限的,如:
普通用户只能在home目录内操作,出了home目录,普通用户仅有只读和执行的权限,无修改权限
su命令
su [-] [用户名] 切换用户
-:表示是否在切换用户后加载环境变量
用户名:如果不填,默认切换到root用户
注意:普通用户切换其他用户需要密码(密码不显示),root用户不用
exit命令
exit 表示退回上一个用户
也可以使用 Ctrl键+d
sudo命令(需要配置sudo认证)
sudo 其他命令为其他命令临时赋予root授权
不建议长期使用root用户,避免造成系统损坏
可以使用sudo命令为普通命令授权,临时以root权限运行
但并不是所以用户都能使用sudo命令,需要为普通用户配置sudo认证
配置sudo认证
切换到root用户,执行visudo命令
在文件最后一行添加 用户名 ALL=(ALL) +TAB键+NOPASSWD:ALL
回到命令模式,保存并退出
用户,用户组
Linux系统关于权限管控有2个级别:
- 针对用户的权限控制
- 针对用户组的权限控制
比如:针对某个文件,可以控制用户的权限,也可以控制用户组的权限
用户组管理(root用户执行)
- 创建用户组:
groupadd 用户组名 - 删除用户组:
groupdel 用户组名
用户管理(root用户执行)
创建用户:
useradd [-g -d] 用户名-g:指定用户组,如果不指定,会自动创建同名组并加入,指定需要组存在,如果存在同名组,必须使用-g
-d:指定用户home路径,如果不指定,home目录默认在:/home/用户名
案例:
useradd -g yzf001 -d /home/yzf533 yzf533创建用户yzf533,用户组为yzf001,目录放在/home/yzf533删除用户:
userdel [-r] 用户名-r:删除用户的home目录,如果不填,删除用户时,home目录保留
案例:
userdel -r yzf533查看用户所属组:
id [用户名]如果不填用户名,则查看当前用户的用户组
修改用户所属组:
usermod -aG 用户组 用户名将指定用户加入用户组
案例:
usermod -aG yzf522 yzf533将yzf533加入yzf522组
getent命令
- 查看当前系统中有哪些用户:
getent passwd
共有7份信息
用户名:密码(x):用户id:组id:描述信息(无用):home目录:执行终端(默认bash)
查看当前系统中有哪些用户组:
getent group共有3份信息
组名称:组认证(显示为x):组id
权限控制
查看权限控制
在通过 ls -l 查看内容的时候,会展示权限细节
- 序号1:表示文件,文件夹的权限控制信息
- 序号2:表示文件,文件夹所属的用户
- 序号3:表示文件文件夹所属的用户组
权限控制信息中
r:读权限:对文件或文件夹有查看的权限
w:写权限:对文件或文件夹有修改操作的权限
x:执行权限:对文件有作为程序执行的权限,对文件夹有更改工作目录到此文件的权限,即cd加入权限
修改权限控制
修改文件权限控制:chmod [-R] 权限 文件/文件夹
-R:对文件夹内所有文件进行相同的操作
权限:
- u=?,表示用户所属权限
- g=?,表示组所属权限
- **o=?**,表示其他用户权限
案例:chmod u=rwx,g=rw,o=x /home/yzf522/002/abc.txt 修改用户权限为全部,修改组权限为可读写,修改其他用户权限为可作为程序执行
注意:只有文件所属的用户或root用户可以使用这个命令
除此之外,还有快捷写法:chmod 751 /home/yzf522/002/abc.txt u=7,g=5,o=1
r=4,w=2,o=1;本质上是二进制
修改文件,文件夹的所属用户和用户组:chown [-R] [用户][:][用户组] 文件/文件夹
-R:对文件夹内所有文件进行相同的操作
::用于分隔,修改用户组必须前面带:
案例:chown : yzf001 /home/yzf522/002/abc.txt修改abc.txt的用户组为yzf001
注意:普通用户无法修改所属用户和组,只有root可以
小技巧
| 快捷键 | 功能 |
|---|---|
| Ctrl键+D | 退出,常用于退出账户登录或者某些特定软件的退出 ps:不能退出vim |
| Ctrl键+C | 强制停止,常用于程序强制停止,命令输入错误,重新输入 |
| Ctrl键+R | 历史命令搜索,回车执行,常用于历史久远的命令搜索,不想执行可按←→键获取命令 |
| Ctrl键+a/e/←/→ | 移动光标,a为到命令开头,e为到命令结尾,←为左跳一个单词,→为右跳一个单词 |
| Ctrl键+L | 清空终端屏幕,命令clear效果相同 |
历史命令查看:
history:查看历史命令
!?:历史命令搜索,?是指开头,该命令会自下而上搜索,并匹配最近的一条执行,常用于近期的命令搜索
软件安装
yum命令(需要root权限和联网)
yum [-y] [install | remove | search] 软件名 RPM包软件管理器,自动安装软件并解决依赖问题
-y:自动确认,无需手动确认安装或卸载过程
- install:安装
- remove:卸载
- search:搜索
案例:yum search wget 搜索是否有wget安装包
yum -y install wget安装wget程序
systemctl命令
systemctl start |stop |status |enable |disable 服务Linux有很多软件支持用该命令控制:启动,停止,开机自启,一般能被该命令控制的软件称为 服务
- start :启动
- stop :关闭
- status:查看状态
- enable :开启开机自启
- disable:关闭开机自启
案例:sudo yum install ntp下载ntp时间同步软件
systemctl status ntpd 查看ntpd的状态
systemctl start ntpd 启动ntpd服务(需要root权限)
systemctl enable ntpd 开启开机自启(需要root权限)
注意:有的第三方软件没有自动集成到systemctl中,需要手动添加
软链接(快捷方式)
ln -s 参数1 ~ 参数2 将参数2变成参数1的软链接(快捷方式)
- -s:表示创造软链接
- 参数1:被链接的文件或文件夹
- 参数2:要链接去的地方
案例:ln -s /home/yzf522/002/abc.txt~/home/yzf522/abc.txt 在用户目录创造abc.txt的软链接
注意:软链接会指向原来的地址
时间和日期
通过date 命令可以查看时间
修改时区:东八区
1 | sudo rm -f /etc/localtime |
1 | sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
上面安装的ntp可以联网自动校准时间
IP地址和主机名和域名
IP地址
每一台联网的电脑都会有一个ip地址,用于和其他计算机进行通讯
IP地址有2个版本:v4,v6
IPv4:地址格式:a.b.c.d ,abcd表示0~255的数字 ,如:192.168.88.101就是一个标准的IP地址
可以通过ifconfig
特殊的IP地址:
127.0.0.1:用于代指本机
0.0.0.0:
1.可以用于代指本机
2.可以在端口绑定中用来确定绑定关系
3.在一些IP地址限制中,表示所有IP的意思,如:放行规则设置为0.0.0.0,表示允许任意IP访问
主机名
每一台联网的电脑除了都会有一个ip地址外,也有一个名字,称为主机名
通过hostname命令查看
通过hostnamectl set-hostname 主机名 修改主机名(需要root权限)
域名解析(先查电话簿,没有打114)
由于IP地址难以记忆,我们可以通过主机名或字符地址代替数字化的IP地址
实际上,我们一直通过字符化的地址去访问服务器,很少指定IP地址
字符化的地址我们称为域名 如:www.baidu.com,这是百度的网址
通过域名解析,我们可以拿到IP地址进行访问服务器:
当我们访问一个网址的时候,游览器会先检查本地的hosls文件,查看是否有匹配的IP地址记录
- 如果有,就会打开网站,没有就显示网站不存在
- 如果没有,就会联网访问公开的DNS服务器中是否有记录匹配的IP地址,有就打开,没有就显示网站不存在
DNS服务器一般为:114.114.114.114或者8.8.8.8
配置主机名映射
Windows中:用管理员权限打开Windows/System32/drivers/etc的hosts文件
在下面添加: IP地址 主机名(测试之后发现需要将文件的只读关闭,然后主机名不能使用数字)
配置Linux系统的固定IP地址
用于当前虚拟机的Linux系统的IP地址是通过DHCP服务获取的
DHCP:动态获取IP地址,每次重启设备都会获取一次,可能导致IP地址频繁变更
如果IP地址变更,导致我们连接Linux系统失败,需要修改IP地址适配和主机名映射,比较麻烦,所以需要固定IP地址
第一步:在VM中配置IP地址网关和网段
在VM左上角的编辑中的虚拟网络编辑器中的VMnet8,启动修改设置
修改子网ip为192.168.66.0,66部分可以任意修改,表示66.0~254的网段
子网掩码确认为255.255.255.0
在NAT设置中,网关设置为66.2,66部分和子网上面保持一致
第二步:在Linux系统中修改配置文件,固定IP地址
使用 VIM编辑
/etc/sysconfig/network-scripts/ifcfg-ens33(需要root权限)BOOTPROTO=”dhcp”改为BOOTPROTO=”static”(动态改静态)
新增:
IPADDR="192.168.89.130"(IP地址)NETMASK="255.255.255.0"(子网掩码)GATEWAY="192.168.89.2"(网关)DNS1="192.168.89.2"(域名解析服务器,同网关一样即可,VM会帮我们自动解析域名)第三步
重启网卡:
sudo systemctl restart network
网络传输
ping命令
ping [-c 数字] ip或主机名 检查指定网络服务器是否是可联通状态
-c:检查次数,如果不指定,将会无限次数持续检查,可Ctrl键+C退出
案例:ping yzf522.github.io检查本网站的状态
wget命令
wget [-b] url 文件下崽器,在命令行内下载网络文件
-b:后台下载,下载日志写入到当前工作目录的wget-log
注意:文件下载到当前工作目录,无论是否下载完成,都会产生文件,记得删除
curl命令
curl [-o] url 可以发送网络请求,可用于下载文件,获取信息
-o:用于下载文件,当url是下载链接时,可用此选项保存文件
案例: curl cip.cc cip.cc是一个获取网络信息的网站
本质上就是访问网站,但是获取回来的HTML源码没有办法渲染出来网页
端口
端口是设备与外界交流的出入口,分为:
- 物理端口:又称为接口,可见,如USB接口
- 虚拟端口:指计算机内部的端口,不可见,用来操作系统和外界进行交互
计算机之间可以通过ip地址进行相互访问,但是无法锁定具体的应用程序
通过端口可以锁定计算机上的具体程序,如A计算机的QQ的为(50001端口)B计算机的QQ为(12345端口)
通过端口,两台计算机的QQ可以继续沟通访问
ip地址类似于小区地址,端口类似于住户(程序)的门牌号
Linux系统的端口:
Linux支持65535个端口,分为3类:
- 公认端口(1~1023):给一些系统内置软件和知名软件预留使用的端口,如ssh服务为22端口,非特殊需要,不要占用
- 注册端口(1024~49151):通常可以随意使用,用于松散的绑定一些程序或服务,如自己写的程序
- 动态端口(49152~65535):通常不会固定绑定程序,而是当程序对外进行网络连接时,用于临时使用
查看端口占用
查看全部端口:nmap 被查看的IP地址
安装:sudo yum -y install nmap
案例:nmap 127.0.0.1 查看本机的端口占用
查看指定端口:netstat -anp | grep 端口号
安装:sudo yum -y install net-tools
案例:netstat -anp | grep 111 查看包含111的端口
576为进程号,0.0.0.0为本机,111为使用的端口
进程管理
程序运行在操作系统中,被操作系统管理,
每个程序在运行的时候,被系统注册为系统中的一个进程并分配一个独有的id进程号
查看进程
ps [-e -f] 查看全部进程
-e:显示全部进程
-f:以完成格式化的形式展示全部信息
案例:ps -ef
从左到右分别是:用户ID,进程号,进程的父ID(启动次进程的其它进程),CPU占用率,进程启动时间,启动此进程的终端序号(?为非终端启动),进程占用CPU的时间,进程的启动命令或路径
通过管道符可以查看指定进程:
案例:ps -ef | grep tail 通过管道符筛选包含tail的进程,一般在tail卡住时,复制一个新窗口进行
关闭进程
kill [-9] 进程号ID 不加-9,就是发送信息加进程关闭,送把刀让他自杀
-9:强制关闭,直接刀了
主机状态
查看系统资源占用(类似Windows任务管理器)
通过top命令,按Q或者Ctrl键+C退出(默认5秒刷新一次)
重点:
第一行:负载达到1的话,代表一颗CPU核心使用100%
第三行:us的用户CPU使用率,sy的系统CPU使用率
第四,五行:free我们用了多少,used我们剩余多少
进程中:PID进程号,RES物理内存
选项:**-p PID** 显示进程的信息 ,**-i** 不显示闲置的进程
交互式:P键 根据CPU使用率进行排序
查看磁盘信息监控
通过df [-h]命令
-h:以人性化的单位显示
通过iostat [-x] [数字1] [数字2] 查看CPU和磁盘信息
-x:显示更多信息
数字1:刷新间隔
数字2:刷新次数
查看网络状态监控
通过sar -n DEV [数字1] [数字2]
数字1:刷新次数,不填为1次
数字2:查看次数,不填为无限次
环境变量
简而言之,环境变量就是一个记录的关键信息的变量,用来辅助系统的运行
通过env命令查看系统中记录的环境变量
环境变量:PATH
PATH记录了系统执行任何命令的搜索路径,路径之间以:隔开
执行命令的时候,会搜索每个路径,找到匹配的程序本体执行
所以无论我们在哪个工作目录中都能使用命令
$符号
$ 环境变量名 用于取变量的值,一般搭配echo使用
搭配echo使用时,建议加{},如echo ${PATH} ABC 输出变量值的同时在后面加上ABC
设置环境变量
临时:
export 变量名=变量值 关机之后就无了
永久:
- 针对当前用户:配置在当前用户的:~/.bashrc文件中
- 针对所有用户:配置在系统的:/etc/profile文件中
- 通过语法:
source 配置的文件生效
自定义环境变量PATH
在我们自己写了一个程序之后,我们要把路径写入PATH中,不然无法使用
如:
mkdir /home/yzf522/hahaha 在yzf522中创造一个hahaha文件夹
cd hahaha , vim ha 到hahaha文件夹中创造ha文件
echo "哈哈哈",在文件中写入命令
chmod 755 ha 修改文件权限为可以以程序执行
vim /etc/profile , export PATH=$PATH:/home/yzf522/hahaha 在配置文件中,先取PATH本来的值,再在后面加上新的路径(路径不要包括程序文件)
source /etc/profile 刷新文件
https://bu.dusays.com/2024/07/26/66a38f211b544.png
上传和下载
下载:
在远程操控软件中,在窗口下面有文件管理器,找到需要下载的文件右键下载即可,会下载到桌面
有的文件需要修改软件中登录用户为root才能查看和下载
上传:
直接将文件拖到软件中相应的文件即可
压缩和解压
tar [-c v x f z C] 参数~N命令
.tar方式:
只是简单的封装,没有减少什么体积
.gz方式:
通过压缩算法,极大减少体积
压缩:
组合1:
tar -cvf abc.tar 1.txt 2.txt 3.txt将1,2,3文件压缩为压缩包abc.tar组合2:
tar -zcvf abc.gz 1.txt 2.txt 3.txt将1,2,3文件压缩为压缩包abc.gz
注意: -z一般放在最前,**-f一定放在最后,-C**在命令最后
解压:
组合1:
tar -xvf abc.tar将tar压缩包解压到当前目录组合2:
tar -xvf abc.tar -C 路径将压缩包解压到指定目录组合3:
tar -zxvf abc.gz -C 路径将gz压缩包解压到指定目录
zip [-r] 参数~N 命令压缩
-r :压缩中文件夹
unzip [-d] 压缩包解压到文件夹
-d:同-C一样,指定解压地点
注意:解压时如果有同名文件和文件夹会直接覆盖
提升
MySQL8.0版本
配置yum仓库:
更新秘钥
1
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
安装MySQL的yum库
1
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
使用yum安装MySQL
1
yum -y install mysql-community-server
启动并配置开机自启
1
systemctl start mysqld
1
systemctl enable mysqld
获取MySQL密码 (+开头)
1
grep 'temporary password' /var/log/mysqld.log
登录MySQL数据库系统
1
mysql -uroot -p
修改root密码(数字>8,大写字母,特殊符号)
1
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
[扩展],配置root的简单密码(123456.)
1
2set global validate_password.policy=0: # 密码安全级别低
set global validate_password.length=4; # 密码长度最低4位即可允许root远程登录,并设置远程登录密码
1
2create user 'root'@'%'IDENTIFIED WITH mysql_native_password BY'密码!'; #第一次设置
ALTER USER 'root'@'%'IDENTIFIED WITH mysql_native_password BY'密码'; #修改密码注意:默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统
退出
1
exit或者Ctrl键+d
检查端口
1
netstat -anp | grep 3306
Tomcat
web应用程序托管平台
下载JavaLinux版本并上传root用户的文件夹(在远程软件上使用root登录)
创建文件夹,用来部署JDK,将JDK和Tomcat都安装部署到:/export/server内
1 | mkdir -p /export/server |
- 解压jdk安装文件
1 | tar -zxvf 文件.gz -C /export/server |
- 配置jdk的软链接
1 | cd /export/server/ #转到安装目录 |
- 配置JAVA_HOME环境变量,以及将$JAVA_HOME/bin文件央加入PATH环境变量中
1 | vim /etc/profile |
替换系统Java
1
2
3
4
5which java #找到系统Java的地址
rm -f /usr/bin/java #删除系统Java
ln -s /export/server/jdk/bin/java /usr/bin/java 复制我们的Java到系统Java处
./java -version #查看两个Java版本是否一致
java -version安装并部署Tomcat
建议用非root用户部署,防止网站被黑后,被别人拿到root权限
创造一个Tomcat用户部署
1 | useradd tomcat |
- 下载Tomcat
注意:官方更新后会输出部分版本连接,可官网程查询版本号修改
1 | wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.26/bin/apache-tomcat-10.1.26.tar.gz |
- 解压
1 | tar -zxvf 压缩包.gz -C /export/server |
- 创造tomcat软链接(版本记得核对)
1
2
3
ln -s /export/server/apache-tomcat-10.1.26 /export/server/tomcat
chown -R tomcat:tomcat tomcat #修改用户和用户组
chown -R tomcat:tomcat apache-tomcat-10.1.26 #修改用户和用户组
- 切换tomcat用户
1
su - tomcat
启动tomcat
1
/export/server/tomcat/bin/startup.sh
查看端口
1
netstat -anp | grep 8080
放行tomcat需要使用8080外部访问权限
CentOS系统默认开启防火墙,防止外部网络流量访问内部系统,
如果想要tomcat正常使用,需要对8080端口放行
方法1:关闭防火墙
1
2systemctl stop firewalld #关闭
systemctl disable firewalld #停止自启动方法2:配置防火墙规则,放行8080端口
1
2firewalld -cmd --add-port=8080/tcp --permanent #前面表示放行,--permanent表示永久生效
firewalld -cmd --reload #重新载入防火墙使其生效可以使用192.168.89.130:8080访问查看效果
NGINX
可以托管web应用程序成为网页服务,也可以作为流量代理服务器,控制流量中转
安装yum依赖程序
1
yum install -y yum-utils
手动添加,nginx的yum仓库
1 | # root执行 |
- 通过yum安装最新稳定版的nginx
1 | yum install -y nginx |
- 启动
1 | systemctl start nginx #启动了 |
- 配置防火墙放行
方法1:关闭防火墙
1 | systemctl stop firewalld #关闭 |
方法2:配置防火墙规则,放行80端口
1 | firewalld -cmd --add-port=80/tcp --permanent #前面表示放行,--permanent表示永久生效 |
- 可以使用192.168.89.130:80访问查看效果

































































