服务器

Linux相关命令
基础知识
- Linux系统的文件结构
/bin 二进制文件,系统常规命令 |
- Linux系统命令行的含义
示例:root@app00:~# |
- 命令组成
示例:命令 参数名 参数值 |
基础操作
- 重启系统
(1)立刻关机 |
- 关闭系统
(1)立刻重启 |
- 帮助命令(help)
ifconfig --help //查看 ifconfig 命令的用法 |
- 命令说明书(man)
man shutdown //打开命令说明后,可按"q"键退出 |
- 切换用户(su)
su yao //切换为用户"yao",输入后回车需要输入该用户的密码 |
目录操作
切换目录(cd)
cd / //切换到根目录
cd /bin //切换到根目录下的bin目录
cd ../ //切换到上一级目录 或者使用命令:cd ..
cd ~ //切换到home目录
cd - //切换到上次访问的目录
cd xx(文件夹名) //切换到本目录下的名为xx的文件目录,如果目录不存在报错
cd /xxx/xx/x //可以输入完整的路径,直接切换到目标目录,输入过程中可以使用tab键快速补全查看目录(ls)
ls //查看当前目录下的所有目录和文件
ls -a //查看当前目录下的所有目录和文件(包括隐藏的文件)
ls -l //列表查看当前目录下的所有目录和文件(列表查看,显示更多信息),与命令"ll"效果一样
ls /bin //查看指定目录下的所有目录和文件创建目录(mkdir)
mkdir tools //在当前目录下创建一个名为tools的目录
mkdir /bin/tools //在指定目录下创建一个名为tools的目录删除目录与文件(rm)
rm tools //删除一个名为tools的目录
修改目录(mv)
mv 当前目录名 新目录名 //修改目录名,同样适用与文件操作
mv /usr/tmp/tool /opt //将/usr/tmp目录下的tool目录剪切到 /opt目录下面
mv -r /usr/tmp/tool /opt //递归剪切目录中所有文件和文件夹拷贝目录(cp)
cp /usr/tmp/tool /opt //将/usr/tmp目录下的tool目录复制到 /opt目录下面
cp -r /usr/tmp/tool /opt //递归剪复制目录中所有文件和文件夹搜索目录(find)
find /bin -name 'a*' //查找/bin目录下的所有以a开头的文件或者目录
查看当前目录(pwd)
pwd //显示当前位置路径
文件操作
新增文件(touch)
touch a.txt //在当前目录下创建名为a的txt文件(文件不存在),如果文件存在,将文件时间属性修改为当前系统时间
删除文件(rm)
rm 文件名 //删除当前目录下的文件
rm -f 文件名 //删除当前目录的的文件(不询问)编辑文件(vi、vim)
vi 文件名 //打开需要编辑的文件
--进入后,操作界面有三种模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
命令模式
-刚进入文件就是命令模式,通过方向键控制光标位置,
-使用命令"dd"删除当前整行
-使用命令"/字段"进行查找
-按"i"在光标所在字符前开始插入
-按"a"在光标所在字符后开始插入
-按"o"在光标所在行的下面另起一新行插入
-按":"进入底行模式
插入模式
-此时可以对文件内容进行编辑,左下角会显示 "-- 插入 --""
-按"ESC"进入底行模式
底行模式
-退出编辑: :q
-强制退出: :q!
-保存并退出: :wq
## 操作步骤示例 ##
1.保存文件:按"ESC" -> 输入":" -> 输入"wq",回车 //保存并退出编辑
2.取消操作:按"ESC" -> 输入":" -> 输入"q!",回车 //撤销本次修改并退出编辑
## 补充 ##
vim +10 filename.txt //打开文件并跳到第10行
vim -R /etc/passwd //以只读模式打开文件查看文件
cat a.txt //查看文件最后一屏内容
less a.txt //PgUp向上翻页,PgDn向下翻页,"q"退出查看
more a.txt //显示百分比,回车查看下一行,空格查看下一页,"q"退出查看
tail -100 a.txt //查看文件的后100行,"Ctrl+C"退出查看
文件权限
。。。
打包与解压
说明
.zip、.rar //windows系统中压缩文件的扩展名
.tar //Linux中打包文件的扩展名
.gz //Linux中压缩文件的扩展名
.tar.gz //Linux中打包并压缩文件的扩展名
2. 打包文件
~~~bash
tar -zcvf 打包压缩后的文件名 要打包的文件
参数说明:z:调用gzip压缩命令进行压缩; c:打包文件; v:显示运行过程; f:指定文件名;
示例:
tar -zcvf a.tar file1 file2,... //多个文件压缩打包解压文件
tar -zxvf a.tar //解包至当前目录
tar -zxvf a.tar -C /usr------ //指定解压的位置
unzip test.zip //解压*.zip文件
unzip -l test.zip //查看*.zip文件的内容
其他常用命令
🏎️🛵🛴🚲🏍️
系统管理
防火墙操作
service iptables status //查看iptables服务的状态
service iptables start //开启iptables服务
service iptables stop //停止iptables服务
service iptables restart //重启iptables服务
chkconfig iptables off //关闭iptables服务的开机自启动
chkconfig iptables on //开启iptables服务的开机自启动
##centos7 防火墙操作
systemctl status firewalld.service //查看防火墙状态
systemctl stop firewalld.service //关闭运行的防火墙
systemctl disable firewalld.service //永久禁止防火墙服务修改主机名(CentOS 7)
hostnamectl set-hostname 主机名
查看网络
ifconfig
修改IP
修改网络配置文件,文件地址:/etc/sysconfig/network-scripts/ifcfg-eth0
------------------------------------------------
主要修改以下配置:
TYPE=Ethernet //网络类型
BOOTPROTO=static //静态IP
DEVICE=ens00 //网卡名
IPADDR=192.168.1.100 //设置的IP
NETMASK=255.255.255.0 //子网掩码
GATEWAY=192.168.1.1 //网关
DNS1=192.168.1.1 //DNS
DNS2=8.8.8.8 //备用DNS
ONBOOT=yes //系统启动时启动此设置
-------------------------------------------------
修改保存以后使用命令重启网卡:service network restart配置映射
修改文件: vi /etc/hosts
在文件最后添加映射地址,示例如下:
192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3
配置好以后保存退出,输入命令:ping node1 ,可见实际 ping 的是 192.168.1.101。查看进程
ps -ef //查看所有正在运行的进程
ps -ef | grep xxxxps -ef : 查看本机所有的进程;
grep xxxx代表过滤找到条件xxxx的进程
结束进程
kill pid //杀死该pid的进程
kill -9 pid //强制杀死该进程查看链接
ping IP //查看与此IP地址的连接情况
netstat -an //查看当前系统端口
netstat -an | grep 8080 //查看指定端口快速清屏
ctrl+l //清屏,往上翻可以查看历史操作
远程主机
ssh IP //远程主机,需要输入用户名和密码
Ubuntu
初始化配置
# 设置root密码 |
远程访问主机
sudo apt update |
安装完成后,请确保 OpenSSH 服务器已启动。通过运行以下命令来检查它的状态:
sudo systemctl status ssh |
如果 OpenSSH 服务器尚未启动,通过运行以下命令来启动它:
sudo systemctl start ssh |
设定 OpenSSH 服务器随系统启动而自动启动,运行以下命令:
sudo systemctl enable ssh |
换源
首先,打开终端并运行以下命令来备份源列表文件:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak |
然后,运行以下命令来打开源列表文件:
sudo gedit /etc/apt/sources.list |
在文件中,删除原来的内容,并粘贴以下内容:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse |
保存文件并退出。
最后,运行以下命令来更新源列表:
sudo apt update |
也可以通过运行以下命令来恢复备份的源列表文件:
sudo mv /etc/apt/sources.list.bak /etc/apt/sources.list |
安装与卸载.deb文件
安装
使用默认的软件中心
在命令行中使用
dpkg
安装.deb
文件如果你想对 deb 文件使用 apt 命令,像这样使用它:
sudo apt install path_to_deb_file
如果你想对将要安装的 deb 软件包使用 dpkg 命令:
sudo dpkg -i path_to_deb_file
如果你在安装 deb 软件包的过程中得到一个依赖项的错误,你可以使用下面的命令来修复依赖项的问题:
sudo apt install -f
卸载
使用apt命令移除deb软件包
sudo apt remove program_name
如果不知道安装程序的`program_name`
sudo apt list --installed | grep xxx使用dpkg命令移除deb软件包
你可以使用 dpkg 来找到已安装程序的名称:
dpkg -l | grep edgeii microsoft-edge-stable 116.0.1938.81-1 amd64 The web browser from Microsoft
在上面的命令输出中的 ii 意味着软件包已经被正确地安装。现在,你有了程序名称,你可以使用 dpkg 命令来移除它:
dpkg -r program_name
项目构建
java项目
达成jar
包
mvn clean package |
运行jar
包
java -jar demoa.jar |
后台运行
nohup java -jar demo.jar >temp.txt & |
可通过jobs
查看后台任务
Vue项目
vue3使用Router的history模式,nginx其他页面报错:
location / { |
若依框架实战
RuoYi-Vue: 🎉前后端分离权限管理系统(gitee.com)
搭建好Mysql、redis,将文件中的SQL
导入数据据,在application.yml
中配置好数据据ip地址
将后端打包为jar
包:
mvn clean package |
或者使用IDEA的Maven
打包成功后,将jar
包复制到服务器,使用:
java -jar ruoyi-vue.jar |
前端使用生成模式打包
npm run build:prod |
将打包后的dist
放到服务器
nginx配置
在ngiex
进行配置修改:
server |
./nginx -s -reload #重启nginx |
- 配置nginx让他负载均衡转发
upstream ruoyi{ |
- 静态资源404
在nginx配置后端接口,加上^~
location ^~ /api/ { |
在Windows中安装nginx
从官网进行下载:nginx,下载后放到一个没有空格,没有中文的目录下:
在此处,进入cmd
:输入命令 nginx.exe
,即可启动,如果没有报错,及启动正常,
关闭nginx,关闭当前的命令行窗口,nginx不会停止,关闭有两种方式:
- 在
cmd
中输入:nginx.exe -s stop
即可关闭 - 在任务管理器中进行关闭:
服务器配置代理
需要准备3个文件:
先下载对应版本的clash clash-linux-amd64-v1.17.0.gz
在windows中打开clash,打开配置文件所在的文件夹,将配置文件复制出来改名为
config.yml
- 在上一级目录中,复制
Country.mmdb
将准备好的三个文件放到新建文件夹clash
中,上传到服务器 /opt
中,进入/opt/clash
解压文件 |
将clash设为守护进程
键入
cd /etc/systemd/system
然后vim clash.service
文件内容如下,直接复制粘贴即可(按i进入插入模式,然后shift+Insert粘贴),然后退出保存(ESC +:wq
)
[Unit] |
在终端中启用clash
可将下面两行放入~/.bashrc中,否则仅对当次终端有效。 |
测试
curl -i google.com |
关闭clash
终止clash服务 |
搭建VsCode Web
安装code-server
,可以从GitHub网址进行选择https://github.com/coder/code-server,如果是linux, amd的可以直接点击下面的链接进行下载:code-server-4.16.1-linux-amd64.tar.gz
在服务器宝塔安装Node.js版本管理器
将下载的压缩包复制到路径/www/wwwroot/
下,重名为code_server
,添加node项目,启动选择的命令选择自定义
/www/wwwroot/code_server/bin/code-server --port 9999 --host 0.0.0.0 --auth password |
Jupyter
安装 Anaconda
下载Anaconda最新安装程序 https://www.anaconda.com/products/i
wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh |
运行安装程序:
sh Anaconda3-2021.05-Linux-x86_64.sh |
安装过程中敲回车和输入yes同意许可即可
安装完成重新登录即可
搭建环境
- 安装jupyter包
conda install jupyter |
- 生成默认配置文件
jupyter notebook --generate-config --allow-root |
- 随后我们往配置文件写入一些内容
# 设置可以访问的ip, 默认是localhost, 将其改为 '*' |
- 设置密码
jupyter notebook password |
- 修改好配置文件之后, 运行如下命令启动笔记本
jupyter notebook |
后台运行
nohup jupyter notebook --no-browser --ip=0.0.0.0 --allow-root & |
用&让命令后台运行, 并把标准输出写入jupyter.log中
nohup表示no hang up, 就是不挂起, 这个命令执行后即使终端退出, Jupyter也不会停止运行.
关闭后台运行的Jupyter
- 找到Jupyter进程PID(关闭在前面后台执行的进程的步骤,首先找到其进程PID)
ps -ef | grep xxxx |
ps -ef : 查看本机所有的进程;
grep xxxx代表过滤找到条件xxxx的进程
- kill掉Jupyter进程
kill -9 PID |
kill -9 具体的进程的PID
Minio环境搭建
在Linux下进行安装
下载 MinIO 服务器
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230210184839.0.0.x86_64.rpm -O minio.rpm |
如果报错为:
怎么先安装dnf
yum install dnf |
创建systemd服务文件
.deb或软件包.rpm将以下 systemd服务文件安装到 /etc/systemd/system/minio.service. 对于二进制安装,在所有 MinIO 主机上手动创建此文件:
默认情况下,该minio.service
文件作为minio-user
用户和组运行。groupadd
您可以使用和命令创建用户和组useradd
。以下示例创建用户、组并设置权限以访问旨在供 MinIO 使用的文件夹路径。这些命令通常需要 root ( sudo
) 权限。
groupadd -r minio-user |
创建环境变量文件
创建一个环境变量文件在/etc/default/minio
示例提供了一个起始环境文件:
# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server. |
启动MinIO服务
本地主机上发出以下命令以启动 MinIO SNSD部署作为服务:
sudo systemctl start minio.service |
在docker中安装
docker pull minio/minio |
docker run -p 9000:9000 -p 9001:9001 --name minio -d --restart=always -e "MINIO_ACCESS_KEY=admin" -e "MINIO_SECRET_KEY=admin123" -v /home/data:/data -v /home/config:/root/.minio minio/minio server --console-address ":9000" --address ":9001" /data |
启动:ip:9000
创建密钥
在SpringBoot中使用
配置依赖
<!-- minio --> |
在application.yml中配置
minio: |
需在包config下新建类
import io.minio.MinioClient; |
使用文件处理的工具类
package com.rongmei.mushroomProject.utils; |
在controller层即可调用工具类
上传对象
// 获取桶内所有图片URL |