Linux 基本使用和 web 程序部署
目录
Linux 常用命令
ls
cd
认识 Linux 目录结构
绝对路径 vs 相对路径
使用 tab 键补全
使用 ctrl + c 重新输入
pwd
touch
cat
echo
vim
1) 创建文件 / 打开文件
编辑
2) 进入插入模式
3) 保存
4) 退出
mkdir
rm
mv
cp
man
grep
ps
netstat
搭建 Java 部署环境
JDK
Tomcat
MySQL
部署 Web 项目到 Linux
什么是部署
Linux 常用命令
ls
语法: ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
例如:
1.查找根目录下的文件:ls /
2.按照列表的方式显示根目录下的文件:ls -l / 或 ll /
注:第一列:该文件的权限(当前用户是否可读可写可执行);第三第四列:文件的拥有者是谁;第五列:文件的大小(只对普通文件有意义);第六列:最近一次修改的时间;最后一列:文件名字;
cd
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
语法: cd 目录名
功能: 改变工作目录。将当前工作目录改变到指定的目录下.
举例:
认识 Linux 目录结构
几个特殊的目录:
/ 称为根目录
. 称为当前目录
.. 称为当前目录的上级目录
1.来到了根目录
这步操作相当我我们在Windows系统中点击了一下此电脑;
2.进入etc目录
3.经过多次的cd操作进入到了一个很深的目录
如上图所示,我们已经进入到了sources.list.d这个目录里面了
4.一路cd .. 回到根目录
绝对路径 vs 相对路径
形如: /usr/share/tomcat/logs/ 以根目录开头的, 称为绝对路径.
形如: ./logs 以 . 或者 .. 开头的, 称为相对路径.
使用 tab 键补全
我们敲的所有的 Linux 命令, 都可以使用 tab 键来尝试补全, 加快效率.
注意:你当前输入的内容必须是唯一的,按下tab就不能直接补全了。但是按两次tab就能列出所有可以补全的选项
如上图所示,就会把所有在etc这个目录下以a开头的目录给展现出来
使用 ctrl + c 重新输入
如果命令或者目录敲错了, 可以 ctrl + c 取消当前的命令.
pwd
语法: pwd
功能:显示用户当前所在的目录
举例:
如上图所示,我们当前所在的目录是/etc/apt/sources.list.d【路径的绝对路径】
touch
语法: touch [选项]... 文件...
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
举例:
如上图所示,我们在初始目录在创建了一个新文件test.txt,此时该文件是一个空文件
cat
语法:cat [选项] [文件]
功能: 查看目标文件的内容
常用选项:
如上图所示,当我们查看我们上一步刚刚创建的test.txt文件,因为这个文件是空的,所以在控制台上什么也没返回。
echo
功能:打印内容到控制台上/把内容写到文件里
如上图所示
如上图所示,当我们在控制台上输出此echo 'hello' > test.txt命令的时候就会把hello重定向我们刚刚创建好的test.txt文件中,当我们再次查看test.txt文件时就会显示我们刚刚重定向hello内容了。
注:> 就是重定向
如上图所示,这个内容并不会保存在文件中,只是重定向到了这个文件中,随着每一次重定向的内容不同,查看文件中的内容也是不相同的。
如上图说是当我们把”>“改成了”>>“,就是把内容写进文件里头了。
但是,这里的echo只能写一些简单的字符串的内容,如果我们所需要写的东西太多了就不太方便,更不方便修改.
vim
vim 是一个知名的文本编辑器. 前面学习的 cat, less, head, tail 等命令只能查看文本, 不能编辑文本. 使用 vim 就可以进行编辑了.
1) 创建文件 / 打开文件
如上图所示,当我们输入一个”vim test.txt“的命令,就进入到了这个文本编辑器中,我们从上图也可以看出前四行是我们刚刚通过echo命令重定向进这个文件的内容。
2) 进入插入模式
vim 打开文件后默认是普通模式. 普通模式下键盘的按键表示一些特殊功能的快捷键. (例如按下 j 并不是输入字母 "j", 而是表示光标往下移动一行). 需要进入插入模式才能进行文本编辑.
使用 i 键可以进入到插入模式. (左下角提示 --INSERT-- ) 然后就可以像记事本一样正常编辑了.
如第一幅图,当我们摁下i键之后,就会进入这个”INSERT“模式
如第二幅图,就是我们进行编辑的内容
3) 保存
在插入模式下不能保存文件, 需要先回到普通模式 . 按下 Esc 回到普通模式.
在普通模式下输入 :w , 再按下回车, 即可保存文件.
如上图所示,当我们保存并退出之后,我们再输入"cat test.txt"这个命令就可以看到我们我们刚刚在vim的文本编辑器所保存的内容了。
4) 退出
在插入模式下不能退出, 需要先回到普通模式.
在普通模式下输入 :q , 再按下回车, 即可退出.
mkdir
语法:mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
举例:
如上图,目录里面就会多了一个"java109"的目录;
如上图所示,进入java109这个目录之后还可以再创建目录
如上图所示,我们建立多级目录,但是要加上一个-p,上图我们也演示这个多级目录就创建成功了
rm
语法:rm [-f-i-r-v] [dirName/dir]
功能:删除文件或目录
常用选项:
举例:
如上图所示,这是删除文件的操作
如上图所示,这是删除目录的操作
mv
移动:剪切、粘贴
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
常用选项:
举例:
如上图,我们发现这个目录之下,有一个”test.txt“文件,还有一个”aaa“的目录,此时如果我们想把这个文件移动到这个目录之下应该怎么做?
如上图1所示,我们在原来的目录里面找不到这个文件了,但是在”aaa“这个目录里面找到了这个文件。【不光是可以移动我们的文件,也可以移动一整个目录,如图2所示】
mv针对文件/目录进行重命名
如上图所示,我们把”test.txt'这个文件移动到上级目录,并改名未“123.txt”
cp
复制(复制、粘贴)
cp 要复制的源【要复制的东西】 要复制的目录[要复制到的地方]
如上图所示,我们在根目录下创建了两个目录,一个是123.txt,一个是456.txt。当我们把123.txt复制到456.txt这个目录下后,根目录和456.txt目录都有123.txt目录。
注意:拷贝普通文件和拷贝目录是不一样的,拷贝目录要加一个-r
man
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。
语法: man [选项] 命令
常用选项 :
举例:
图一是命令,图二是命令执行的结果。按q键就可以退出。
以上这些命令都是围绕着目录和文件来展开的
grep
语法:grep [参数]... [文件]...
功能:用于查找文件中是否包含指定字符串, 并显示对应的行.
选项:
举例:
如上图所示,我们先利用cat命令看一下这个test.txt文件里面有那些内容,再通过查找“bbb”,既可以查找是否存在该内容,又可以得到该信息再文件中的位置。
grep不仅仅可以在文件中查找,还能搭配其他命令,完成更复杂的操作
ps
语法:ps [参数]...
功能:用于查看当前系统上运行的进程
选项:
举例:
这里是可以直接看到整个linux的进程,很多。想要看得具体一点就要搭配grep来进行使用。
如上图所示,我们通过这个命令查看mysql进程的进程id
netstat
语法:netstat [参数]...
功能:查看系统上的网络状态.
查看某个端口号是否被某个进程使用
查询某个进程使用了哪个端口
选项:
举例:
如上图所示,如果直接输出netstat命令,会跳出来很多信息。
如上图所示,如果输入了netstat -anp 这个命令,就会跳出更完整的东西.
搭建 Java 部署环境
JDK
a)使用apt命令查看服务器有哪些软件包 apt list | grep jdk(这个操作需要确保当时是处于root用户)[如果不是管理员,需要使用 sudo su 切换到管理员]
因为小编在电脑Windows上安装的是JDK21,为了使程序部署不出错,两个系统还是安装同一个JDK的版本。
b)使用apt安装软件包 apt install 软件包的名字(软件包的名字不要手动敲,直接复制粘贴就可以了)【复制:ctrl + insert, 粘贴:shift+insert[集体的快捷键可以看你们Xshell中的快捷键管理器中的内容]】
如上图所示即为安装成功了。【输入javac,如果出现以上内容】
Tomcat
由于小编是JDK21版本的,所以对应的tomca-9.0.97版本的【小编Windows上安装的也是这个版本】
1. 下载 Tomcat 压缩包
下载路径可以参考官网 https://tomcat.apache.org/download-80.cgi
小编这里由于之前已经在Windows里面有下载过这个安装包,所以直接将这个安装包给拖过来就好了
1).安装lrzsz
2)拖文件
3)在根目录下查看是否拖动成功
2. 解压缩 Tomcat
3. 修改可执行权限
1)进入bin目录中
2)chmod +x *.sh
如上图所示,所有的.sh文件都变绿了
4. 启动 Tomcat
验证启动成功
5. Tomcat 的目录结构
Linux 的 Tomcat 目录结构和 Windows 完全一致. (就是同一个 zip 包解压缩出来的)
MySQL
a)查找所有MySQL版本
b)找到要安装的MySQL
c)复制粘贴:apt install mysql-server-8.0
4)查看MySQL是否启动:service mysql status
5)进入MySQL客户端,进行MySQL操作
linux上关于MySQL的操作【执行命令的语句】喝Windows是一样的
部署 Web 项目到 Linux
什么是部署
工作中涉及到的 "环境"
开发环境: 程序猿写代码用的机器.
测试环境: 测试人员测试程序使用的机器. 一般是退役的部署机器.
生产环境(线上环境): 最终项目发布时所使用的机器. 对稳定性要求很高.
把程序拷贝安装到生产环境上, 这个过程称为 "部署". 也叫 "上线".
这个过程需要拷贝对应的 .class 文件和依赖的资源文件(各种配置文件, html等)
一旦程序部署成功, 那么这个程序就能被外网中千千万万的普通用户访问到.
部署过程至关重要, 属于程序开发中最重要的一环. 一旦部署出现问题, 极有可能导致严重的事故(服务器不可用之类的).
为了防止部署出错, 一般公司内部都有一些自动化部署工具(如 Jenkins 等). 当前我们先使用手工部署的方式来完成部署.
步骤:
1.把数据库/数据表都在云服务器上创建好【把程序放在云服务器上执行,程序访问的就是云服务器上的数据库了,需要确保数据库里面有数据(有表有库)】
2.针对程序进行打包【打成war包】(打包之前,还需要确认一下MySQL相关的配置需不需要修改)
3)把这个war包上传到Linux的tomcat的webapps目录中。【当我们把这个war包拖到Linux的这个目录的时候,tomcat会自动针对这个war进行解压缩(解压缩成功意味着部署成功了)】
4)通过浏览器来进行访问了