Linux部署java项目

前言

Xshell下载地址

在这里插入图片描述
在这里插入图片描述
点击连接

常见命令

ls

在这里插入图片描述
ls:显示当前目录下的文件
ll:可以显示隐藏文件和非隐藏文件与ls -l一样
在这里插入图片描述
在这里插入图片描述
ls -a -l这两个掌握就可以了

ls --help就可以知道这个后面可以跟什么

在这里插入图片描述
ls -al还可以这样

cd

cd:进入文件夹
cd后面可以跟相对路径,也可以是绝对路径
linux根目录是/
在这里插入图片描述
可以cd …/
这个是上一级目录
如果名称很长,可以按tab,这个是自动补全
如果tab选项只有一个,按tab就自动补偿

在这里插入图片描述
cd .这个是变到上一次cd的地方
cd ~是回到自己的目录

mkdir

这个就是创建文件夹
在这里插入图片描述

如果要创建多个目录,要加上-p

在这里插入图片描述
这个就是创建多级目录

设置

在这里插入图片描述
在工具–》选项里面
设置这个
这样的话,我们要复制的话
就只需要选中这个,然后按右键就可以粘贴了

在这里插入图片描述
这个也是粘贴复制的

pwd

查看当前路径

touch

创建文件
在这里插入图片描述

sz与rz

rz
我们先安装这两个命令

在这里插入图片描述
apt-get install lrzsz
这个命令安装

在这里插入图片描述
rz表示上传
sz表示下载

在这里插入图片描述
在这里插入图片描述
这个就表示下载
就可以下载到windows了

注意我们可以直接在Windows拖动来上传
在这里插入图片描述
权限那一列,分别为自己,别人,组的权限

cat

这个就是读文件
直接在终端显示文件的全部内容

more

只显示一页,敲空格就表示翻下一页
翻上一页就是b建
或者直接鼠标翻
ctrl+c结束查看more这个命令

clear

清屏,但是内容还是在上面的

结束公式

ctrl+c
两次ctrl+c
exit
:q
:q!

less

less也是查看一页
ctrl+c,exit都结束不了
要用:q来结束
不知道用什么来翻页
可以用上下键翻动
less浏览不会留在终端
而前面more和cat会在终端显示
在这里插入图片描述
/+字符串就是查找功能,搜索功能
more也是这样来查找

head

head +文件名也是显示文件
默认显示前十行
在这里插入图片描述
-数字就可以查看前n行了

tail

就是查看最后的
默认查看最后十行
tail -100 pom.xml
就是查看最后n行
在命令行显示

vi或者vim

编辑文件
vi进入文件
i编辑模式
这样就可以写入了
先按esc退出编辑模式
:wq就是保存并退出

:q!强制退出,不保存,如果修改了文件,是不能正常退出的

如果两个用户同时去修改这个文件
同时在修改这个文件
第一个用户正常保存退出了
第二个用户就不能正常保存退出了
只能强制保存退出
:wq!
这个的缺点就是会造成代码的覆盖

-f就是循环读取
就是倒着看

rm

文件的删除
在这里插入图片描述

rm 文件名

这个只能删文件,不能删文件夹

rm -r 文件夹
这样就可以了
在这里插入图片描述
删除多级目录就是要-r,一级目录也要-r
这个是删除文件夹以及里面的文件

-f 就是只读(保护)的文件也是直接删除
在这里插入图片描述
这个就是删除全部

sudo rm -rf /
就是用管理员的权限来试一下

cp

copy
这个就是复制的意思
在这里插入图片描述
这个意思就是把文件复制到哪个文件夹的意思

如果是复制目录也就是文件夹的话,就要加上-r

mv

move
在这里插入图片描述

就是把某个文件移动到某个目录

在这里插入图片描述
这个命令就是直接改名了

grep

这个是查找的命令
在这里插入图片描述
查找的东西
后面跟的是哪个文件

在这里插入图片描述
在这里插入图片描述

ps

这个用于查看当前系统上运行的进程
在这里插入图片描述
在这里插入图片描述
ps -ef 表示也是查看所有进程,就是显示的格式不一样而已
ef显示不全,只显示部分

在这里插入图片描述
这些就是进程
在这里插入图片描述
这个就是查看含有一些字符的指定进程

因为grep本身也是一个进程
所以找redis的时候,也会把自己打印出来
而且grep后面的引号也可以不加

netstat

查看系统上的网络状态
在这里插入图片描述
在这里插入图片描述
这个就是显示所有的网络端口那些了

在这里插入图片描述
因为这个是查看网络的端口号,不是查看进程,所以不会显示自己的

管道

在这里插入图片描述

搭建java的部署环境

apt

这个是软件包管理工具,是ubuntu的,不是ctenos的
这个是用来下载东西的,比如jdk
比较方便
但是可能某些软件和某些软件版本没有
当然我们可以用官方的方法去安装

列出

现在开始介绍一些常用命令
apt的命令需要sudo权限,就是root的权限
apt -list
是列出所有的软件包
这个非常多,会卡死的
在这里插入图片描述
直接ctrl+c关闭就可以了

我们可以用grep指定查看

更新

apt-get update
这个是更新软件包数据库,就是相当与更新,我们手动更新

在这里插入图片描述
安装软件时
先更新一下apt数据库
在安装

sudo su可以切换到root用户

安装与移除

sudo apt install package_name

package_name是软件包名
sudo apt remove package_name
这个是移除
remove 是删除二进制文件,会留下配置文件
但是apt purge就可以删除配置文件了
一般用apt remove

我们想要彻底卸载用apt purge

jdk

先更新软件包
在安装
我们先来查找一下
在这里插入图片描述
我们安装jdk17
而且是openjdk
因为这个是免费的
在这里插入图片描述
我们安装这个
apt install openjdk-17-jdk
直接这个就可以安装了
在这里插入图片描述
安装得有点久
java -version
输入这个可以查看自己是否安装成功
在这里插入图片描述
这样就安装成功了

mysql

安装mysql了
还是先要查找
apt list | grep “mysql-server”

我们装这个
apt install mysql-server
然后就可以了

如果已经安装好了mysql需要先卸载
先停止他
systemctl stop mysql
然后卸载
apt-get remove --purge mysql-星

删除mysql配置文件
rm -rf /etc/mysql /var/lib/mysql
清理残存文件和目录
apt-get autoremove
apt-get autoclean
检查是否有残留
dpkg --list | grep -i mysql-*
移除相关包
apt-get purge mysql-星
最后查看版本
mysql --version
如果没有找到这个mysql命令就成功了
反之
在这里插入图片描述
这样就是成功了

部署Web项目到Linux

环境介绍

开发环境:开发人员使用的环境
测试环境:测试人员使用的环境,造一些测试的数据去测试–》f发布到预发布环境
生产环境:真实用户使用的环境
预发布环境:和生产环境一样,就是不对外—》最后变为生产环境
就是外部人员访问不了,无法用www.jd.com访问,但是可以用域名访问
但是这个可以正常使用,正常访问
www.jd.com访问生产环境
灰度发布就是先发布10%这样慢慢的发布

在这里插入图片描述
但是企业中一般是自动化部署
1.打包(从git上拉程序)
2. 上传jar包
3. 3.启动jar包

环境配置

安装jdk和mysql
我们直接sudo mysql就可以操作mysql了
但是不安全

我们先确认一下我们的mysql是不是启动的状态
默认安装之后是启动的状态
在这里插入图片描述
如果出现了running就是在启动中

mysql安全设置

mysql_secure_installation

接下来里面有三个选项
第一个是问你是不是要进行这个安全设置
第二个叫你设置密码强度
但是我们只能选2,最强的强度
第三个就是我们的mysql有一个匿名的用户,要不要删除,直接y删除
第四个是问你当前数据库是不是只允许locallhost链接只能本地连接,y
意思就是我们当前安装的数据库只能在我们这台服务器上连接,不可能用windows去连接 ,如果要连接,就要授权,mysql grant,表示这个用户可以操作哪些表
直接设置y
第五个是mysql上有一个数据库test,所有人都可以访问,要不要删除,y
第六个是问你要不要让你刚刚的修改生效,y
安全设置的目的是,数据库不允许外部连接,因为端口号3306很容易被黑掉
要访问数据库,就只能连接到我们的服务器才可以连接了

直接sudo mysql就可以访问我们的数据库了

在这里插入图片描述
这里就可以写sql语句了
输入exit退出
如果要本地windows来连接,可以用隧道的方式来连接,可以在网上搜

开启隧道(简单了解)

在这里插入图片描述
点这里的隧道

在这里插入图片描述
然后添加
在这里插入图片描述
目标端口号,如果是mysql的话就是3306
在这里插入图片描述

改mysql密码

先sudo mysql
然后就是输入修改mysql密码的sql语句

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘@yyds.666’;

最后一个就是密码@yyds.666
然后我们退出之后
再次sudo mysql就进不去了
因为有密码了
我们输入mysql -uroot -p
就可以输入密码了

在这里插入图片描述

数据准备

就是直接在mysql上建立我们以前的数据库

在这里插入图片描述
直接把这个复制过去
在这里插入图片描述
直接粘贴复制

在这里插入图片描述
这样就成功了

在这里插入图片描述
在这里插入图片描述

上传jar包

在这里插入图片描述
这里的密码要改一下,就是刚刚Linux上修改的密码
但是我们本地的时候又要改为123456
就很麻烦
而且Linux上我们可以不用打印mybatisPuls的日志
所以开发环境与我们的日志环境的配置不一样
代码改来改去很麻烦
所以我们讲一下多平台的配置

不同平台的配置文件是不一样的
所以我们可以根据不同的平台弄不同的配置文件
在这里插入图片描述
接下来我们prod这个文件就要改一下了
改一下密码还有不要打印日志

在这里插入图片描述
现在的问题就是到底哪个生效的问题
我们配置端口就可以了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样的话Linux我们用8082端口就可以了

但我们启动默认是8081,就是第一个
而且默认生效的就是只有application.yml这个文件
其他文件是不生效的
如何进行生效呢
我们去掉所有的端口号
在这里插入图片描述

我们写上这个,就可以指定哪个文件去生效了

dev就是我们本地的环境
在这里插入图片描述
这里的dev就说明生效了
默认这里的日志是default
就是application.yml
但是我们这样还是要改代码
我们代码的禁忌就是不要改代码
因为git那里会改来改去的
我们可以把这个变成一个变量
变成一个可以传递的变量
这里就要用maven了

我们在pom.xml文件中
与dependencies和build并列加一个profiles
在这里插入图片描述
这样我们的yml就可以从maven中读取我们配置的一些属性了

怎么拿值呢
在这里插入图片描述
这样就可以拿值了
密码那里可以不用定义到profile中
因为yml中已经定义了

我们使用的是哪个profile
怎么判断呢
在这里插入图片描述
这个就是右边的maven多了两个dev和prod
你要打包谁的,就勾谁
勾谁就是用的谁的profile
勾上之后还要刷新maven

如果要让dev默认生效,还要设置

在这里插入图片描述
加上这个true之后,就是默认的了

这样就成功了
可以正常启动了
这里补充一下
我们可以给在这里插入图片描述
url添加这个
防止报错

这样就可以正常运行了

发布环境

在这里插入图片描述
我们打包,必须要有这个插件
因为这个打包会打第三方的东西
没有的话就不会打第三方的
在这里插入图片描述
点上prod,记得刷新maven
然后点击package
在这里插入图片描述
但是我们出错了
正常来说
我们点击package,会自动执行clean的,就是会自动执行它前面的指令的
还有一个值得注意的就是我的密码是以@开头的
这个开头的话
整个密码还是用字符串的表示两个单引号引起来吧
不然会出错的
在这里插入图片描述
在这里插入图片描述
但是如果我们在测试里面增加一个对mybatis的测试的话
打包就会出错了

在这里插入图片描述
为什么会这样呢
因为我们现在使用的是prod
但是我们这个测试类使用的数据库是我们本地的数据库
但是prod的密码不是本地的密码123456了
所以访问会出错的
我们连的是本地的数据库
密码是服务器的数据库
所以会出错的
报错的话
打包就会出错了

我们点击package的时候
在这里插入图片描述
会把它上面的命令从上往下执行
我们只需要跳过test就可以了
在这里插入图片描述
跳过测试的时候点这个
在这里插入图片描述
或者我们专业版的这个

在这里插入图片描述
这样的话
test就消失了

就可以正常打包了
我们再看一下
为什么我们的prod配置的是127.0.0.1
而不是云服务器的iq地址呢
因为127.0.0.1表示的是本机
没有问题的
在这里插入图片描述
我们打的包在这里
然后我们去打开就可以了
在这里插入图片描述

就是第一个比较大的

然后我们上传到我们的服务器上

直接拖过去

在这里插入图片描述
在这里插入图片描述
欧克了

在这里插入图片描述
改个名字

启动jar包

java -jar blog.jar

在这里插入图片描述
这样就启动了

我们还不能访问
我们还需要开通一下端口号
默认的情况下
我们的端口号别人是不能访问的
还要开通一下

开通端口号

要去我们的服务器那里开通
在这里插入图片描述

在这里插入图片描述
我们点到我们服务器的详情信息那里
然后点击安全组
然后点击添加规则

http协议就是TCP

在这里插入图片描述
这样就可以了
1代表优先级最高
0.0.0.0/0代表接受所有地址、

然后确定就开通这个端口号了

在这里插入图片描述
在这里插入图片描述
这样不要动
我们的程序就可以访问了

在这里插入图片描述
这样我们就成功了
但是我们的数据库还没改
登录不了的

看日志

在这里插入图片描述
我们不可能一直盯着xshell吧
而且关掉xshell,就无法访问http://139.159.230.105:8080/blog_login.html了

因为我们采用的java -jar的方式来启动的
只要我们的会话关掉了
或者ctrl+c了就无法执行了
所以我们要后台执行才行
如何后台启动呢

nohup

这个命令就是后台执行的,其余的命令该是啥还是啥,最后加个&

nohup java -jar blog.jar &
在这里插入图片描述
敲两次回车就可以了
这样就可以正常访问了
关掉xshell,关掉电脑都是可以访问的

日志2

在这里插入图片描述

注意我们的日志就默认在这个目录生成了

接下来我们就要用tail来看日志了
tail -f spring-blog.log
-f是滚动看
就是一直看一直看的意思
在这里插入图片描述
我们登录一下
登录失败
我们的日志就会实时的在这个文件更新了
如果只是cat 日志的话
是不会实时更新的,实时打印出来的
more也是这样
tail -f就是查看滚动日志了

改数据库

现在改一下数据库
在这里插入图片描述
mysql -uroot -p
use java_blog_spring;
select * from user_info;
密码我们在idea中生成拿过来就可以了

update user_info set password = ‘’;
这样就更新了
在这里插入图片描述
这样就成功了
在这里插入图片描述
这样就成功了

可能遇到的问题

程序无法访问

看一下我们启没启动
就看一下8080端口号开没开就可以了
ps -ef|grep java
在这里插入图片描述
看得出来开了的
接下来看端口
netstat -nltp|grep 8080
在这里插入图片描述
我们就可以通过看java程序和服务的端口号就可以了
53298就是进程id
还不行就看端口号是否开发
最后再看程序是否可以访问

我们如何通过自己的云服务器就是linux来访问呢

curl http://127.0.0.1:8080/blog_list.html
这样就可以在本机访问了

在这里插入图片描述
直接返回了一个html页面
说明这个url是通的

还要可能是防火墙的问题
看防火墙是否打开了
默认是关闭的,防火墙是关闭的
可以去网上搜一下Ubuntu的防火墙的打开
sudo ufw status
这个是查看防火墙状态
在这里插入图片描述
显示这个就是没有打开防火墙
显示active就是打开了防火墙
如果防火墙打开了----》还需要再打开防火墙的端口号
可以去网上搜资料,如何打开防火墙或者找客服
如何开放端口号
sudo ufw allow 22----->开放防火墙的端口号,不一定是22
然后重启
最后还可能是到底是不是tcp协议,一般遇不到这个问题
还要可能是服务没启动
看端口号是否正确
第二看是否有错误日志–》数据库等等
在这里插入图片描述
密码纯数字也要加单引号

杀掉进程

如果我们重新又打包一个
同样去启动这个程序
就会发生端口号已被占用的错误

所以我要杀掉进程
可以去日志里面去看
在这里插入图片描述
就是53298这个就是进程id
或者用上面的查看端口号8080的方式
也可以得到进程id

也可以用ps -ef|grep java
都可以得到

kill 53298就可以杀掉了

所以重新发布的时候就要杀掉进程了

修改项目

主要是改图片

改文字那些东西
还可以加上注册的功能—》就是单独的一个注册界面
还有文章和分类那些东西
还有头像上传的功能
在这里插入图片描述
头像上传就是文件上传的知识了
要有url–》图片内容–》直接上传到服务器,所有的图片都放在服务器的一个文件夹中
上传文件在springmvc那里讲过的

在这里插入图片描述
这个就是上传文件到指定的路径----》以/为根目录
我们这个还是要去网上搜资源来实施

文章和分类也可以拓展
文章和分类不存储,还是实时查询的
添加一个sql就可以了
还可以添加分页的操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果不认识这个@该怎么办呢
可能是要刷新一下maven就可以了

总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/71535.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用 Python+Flask+win32print 实现简易网络打印服务1

Python 实现网络打印机:Flask win32print 在工作场景中,我们可能需要一个简单的网页接口,供他人上传文档并自动打印到指定打印机。 本文将演示如何使用 Python Flask win32print 库来实现这一需求。 代码详见:https://github.…

Java接口(3)与图书管理系统

抽象类与接口的区别 1.抽象类包含普通类和抽象方法,子类可以直接调用普通类方法不用重写。接口包含抽象方法和全局变量。 2.抽象类有各种权限,接口只有pubilc。 3.子类使用抽象类用extend,使用接口用implement。 4.一个抽象类可以实现若干…

基于Matlab的多目标粒子群优化

在复杂系统的设计、决策与优化问题中,常常需要同时兼顾多个相互冲突的目标,多目标粒子群优化(MOPSO)算法应运而生,作为群体智能优化算法家族中的重要成员,它为解决此类棘手难题提供了高效且富有创新性的解决…

Python 爬取唐诗宋词三百首

你可以使用 requests 和 BeautifulSoup 来爬取《唐诗三百首》和《宋词三百首》的数据。以下是一个基本的 Python 爬虫示例,它从 中华诗词网 或类似的网站获取数据并保存为 JSON 文件。 import requests from bs4 import BeautifulSoup import json import time# 爬取…

美股回测:历史高频分钟数据的分享下载与策略解析20250305

美股回测:历史高频分钟数据的分享下载与策略解析20250305 在金融分析和投资决策的精细化过程中,美股历史分钟高频数据发挥着至关重要的作用。这些数据以其详尽性和精确性,记录了股票每分钟的价格波动和成交量变化,为投资者提供了…

辛格迪客户案例 | 深圳善康医药科技GMP培训管理(TMS)项目

01 善康医药:创新药领域的探索者 深圳善康医药科技股份有限公司自2017年创立以来,便扎根于创新药研发领域,专注于成瘾治疗药物的研究、生产与销售。公司坐落于深圳,凭借自身独特的技术优势与研发实力,在行业内逐渐崭露…

【长安大学】苹果手机/平板自动连接认证CHD-WIFI脚本(快捷指令)

背景: 已经用这个脚本的记得设置Wifi时候,关闭“自动登录” 前几天实在忍受不了CHD-WIFI动不动就断开,一天要重新连接,点登陆好几次。试了下在网上搜有没有CHD-WIFI的自动连接WIFI自动认证脚本,那样我就可以解放双手&…

Vue+el-upload配置minIO实现大文件的切片并发上传、上传进度展示、失败重试功能

vue3el-upload实现切片上传 效果图 初始界面 上传中的界面 上传完成的界面 上传失败的界面 <template><div><el-uploadclass"BigFileUpload"ref"uploadRef"action"#"drag:show-file-list"false":on-change"…

Kubespray部署企业级高可用K8S指南

目录 前言1 K8S集群节点准备1.1 主机列表1.2 kubespray节点python3及pip3准备1.2.1. 更新系统1.2.2. 安装依赖1.2.3. 下载Python 3.12源码1.2.4. 解压源码包1.2.5. 编译和安装Python1.2.6. 验证安装1.2.7. 设置Python 3.12为默认版本&#xff08;可选&#xff09;1.2.8. 安装pi…

无人机端部署 AI 模型,实现实时数据处理和决策

在无人机端部署 AI 模型&#xff0c;实现实时数据处理和决策&#xff0c;是提升无人机智能化水平的关键技术之一。通过将 AI 模型部署到无人机上&#xff0c;可以实现实时目标检测、路径规划、避障等功能。以下是实现这一目标的详细方案和代码示例。 一、实现方案 1. 硬件选择…

审批流AntV框架蚂蚁数据可视化X6饼图(注释详尽)

大家好&#xff0c;这次使用的是AntV的蚂蚁数据可视化X6框架&#xff0c;类似于审批流的场景等&#xff0c;代码如下&#xff1a; X6框架参考网址&#xff1a;https://x6.antv.vision/zh/examples/showcase/practices#bpmn 可以进入该网址&#xff0c;直接复制下方代码进行调试…

用于管理 Elasticsearch Serverless 项目的 AI Agent

作者&#xff1a;来自 Elastic Fram Souza 由自然语言驱动的 AI 代理&#xff0c;可轻松管理 Elasticsearch Serverless 项目 - 支持项目创建、删除和状态检查。 这个小型命令行工具让你可以用简单的英语管理你的无服务器 Elasticsearch 项目。它通过AI&#xff08;这里是 Ope…

通过计费集成和警报监控 Elasticsearch Service 成本

作者&#xff1a;来自 Elastic Alexis Charveriat 使用 Elasticsearch 服务计费集成来跟踪、定制和提醒 Elasticsearch 服务费用。 监控和管理你的Elasticsearch服务&#xff08;ESS&#xff09;使用情况和成本对高效运营至关重要。 Elasticsearch服务计费集成提供了一种简化的…

【第12节】C++设计模式(结构型模式)-Proxy(代理)模式

一、问题背景 使用 Proxy 模式优化对象访问 在某些情况下&#xff0c;直接访问对象可能会导致性能问题或安全性问题。Proxy 模式&#xff08;代理模式&#xff09;通过引入一个代理对象来控制对原始对象的访问&#xff0c;从而解决这些问题。以下是几种典型的应用场景&#xf…

​DeepSeek:如何通过自然语言生成HTML文件与原型图?

在当今快节奏的开发与设计环境中&#xff0c;快速生成HTML文件或原型图是每个开发者与设计师的迫切需求。虽然DeepSeek无法直接生成图片&#xff0c;但它却能够通过自然语言生成流程图、原型图以及交互式页面&#xff0c;甚至可以直接输出HTML代码。本文将详细介绍如何与DeepSe…

Python-07PDF转Word

2025-03-04-PDF转Word DeepSeek等大模型从来都不是简单的写一个静态博客这么肤浅&#xff08;太多博主都只讲这个内容了&#xff09;借助全网大神的奇思妙想&#xff0c;拓展我狭隘的思维边界。 文章目录 2025-03-04-PDF转Word [toc]1-参考网址2-学习要点3-核心逻辑4-核心代码 …

【全栈开发】---- 一文掌握 Websocket 原理,并用 Django 框架实现

目录 介绍 底层原理 握手环节详解&#xff1a; 收发数据&#xff08;加密&#xff09; Django 中配置 channels 1、注册 channels 2、在 settings.py 中添加 asgi_application 3、修改 asgi.py 文件 4、routing 5、consumers 实现 聊天室 介绍 WebSocket是一种先进的通信协议&…

XTDrone+Mavros+Gazebo仿真——配置与控制不同的无人机

参考资料为XTDrone官方文档&#xff1a; 配置与控制不同的无人机 语雀XTDrone目前支持多旋翼飞行器&#xff08;multiroto...https://www.yuque.com/xtdrone/manual_cn/vehicle_config# 1、修改无人机机型为solo 以outdoor3.launch为例&#xff0c;讲解如何配置不同的机型 …

快速熟悉JavaScript

目录 1.js的基本认知 2.js的基本语法 2.1 变量的声明 三个关键字的区别 2.2数据类型 2.2.1 基本数据类型 2.2.2 复杂数据类型 2.3对象的属性和方法 2.3.1属性 2.3.2访问方式 2.4.3动态操作 2.4.4方法 2.4字符串的常用属性和方法 2.5运算符 2.6逻辑控制语句 2.7函…

perl初试

我手头有一个脚本&#xff0c;用于从blastp序列比对的结果文件中&#xff0c;进行文本处理&#xff0c; 获取序列比对最优的hit记录 #!/usr/bin/perl -w use strict;my ($blast_out) ARGV; my $usage "This script is to get the best hit from blast output file wit…