原文:https://blog.csdn.net/qq_54219272/article/details/124432402
Linux
前言:
说一下 Linux 的 notion,Linux 是一个操作系统,Linux 表示一个 “操作系统的内核”;内核包含了操作系统最核心的功能:
- 1、管理各种的硬件设备
- 2、给各种软件程序提供一个稳定的运行环境
一个完整的操作系统 => 操作系统内核 配置的应用程序 Linux 的发行版非常的多,现在公司大多最主要使用的发行版,叫作 Radhat(红帽),但是红帽是收费的,但是可以用 CenOs 来代替(Redhat)红帽, 这两个事情只是换了一个 logo,其他无本质差别。
一、使用 [Xshell]
1、先要买一个云服务器获取外网 ip,可以在打折的时候买
2、选镜像要选 centOs 的镜像
3、在官方下载 Xshell ,官网地址:(https://www.xshell.com/zh/xshell/),下载的时候可以选择免费版的。
4、在 Xshell 中顶部新建会话,然后设置一些属性
5、然后就是设置用户名和填写密码;
6、最后在打开会话目录中点击自己要选的会话,然后连接即可
7、成功连接云服务器;
二、常用命令操作
1、ls(罗列文件)
代码语言:javascript复制ls
ls
----> 罗列出当前目录的文件和目录 (也可以理解成 list)
类似于 Windows 里面的 “文件资源管理器”
这种类似于 “文件资源管理器” 中的大缩略图显示项,只显示名称
ls -l
------> 这里按照列表的方式来显示,会显示详细信息,也可以简写ll
,这里的每个结果都占一行,然后显示的信息就更详细了。
文件名的地方:
- 1、白色的是普通文件
- 2、蓝色的是目录
- 3、红色的是压缩包文件
- 4、绿色的是可执行文件
ll /
这里就能看到/
目录中的内容,/
也叫作 “根目录” , /
也相当于Windows上的此电脑
2、cd(切换)
cd(change directory)命令:切换目录
cd 后面跟一个具体的目录,这个目录就表示要切换到哪里,cd 往往是跟 ls 搭配使用,两个结合,就可以完成 Windows 一样的查看文件和目录效果了。
代码语言:javascript复制cd /
这个操作就是切换 /
的目录,然后命令提示服里面的 ~
就变成了 /
,cd 后面可以填写任意的目录
cd 后面填写可以绝对路径,也可以是相对路径!
- 1、在 Linux 上,认为以 / 开头的就是一个绝对路径,从根目录往下数,获取到完整的路径
- 2、以 . 或者 … 开头的就是相对路径,从当前目录开始往下找,找到的一个不太完整的目录
当前命令行所在的目录就称之为工作目录,指定相对路径,都是以工作目录为基准的,如果当前的工作目录不同,要找一个文件的相对路径,也是不同的
./ —> 当前目录../ ----> 上级目录
小技巧:
按 tab 可把其他的单词补全
3、pwd(查看当前目录)
pwd
----> 是用来查看当前目录的绝对路径的
前面这三个命名是常用命令,搭配使用就可以完成 “windows” 上的“文件资源管理” 这样的程序效果
双击:cd
查看列表:ls -l
目录:pwd
接下来就会还会实现常用的功能。
1、创建文件 touch
2、查看文件内容 cat(concatenate)
3、创建目录mkdir
4、删除 rm(remove)
4、touch(创建空文件)
touch
文件名 -----> 就会创建出一个空的文件出来
5、cat(查看)
cat
------> 通过 cat 文件名,来查看文件里面的内容
6、echo(编辑简单内容)
echo
----> 通过 echo 操作就能在文件中简单写入一些内容
echo "java hello" > java101.txt
这里的意思就是把 "java hello" 写入 java101.txt 的文件中
这里的 >
叫做重定向,Linux 的重定向意思又是另外的意思了,也就是把内容写到指定的文件中
echo "java hello"
这里只会显示在屏幕上
7、mkdir (创建目录)
mkdir
(make directory) 创建目录
mkdir
后面填写的目录也可以是绝对路径,也可以是相对路径
8、rm(删除)
rm
(remove) 删除
在删除的时候可能会有提示,输入 y(yes)表示确认,输入其他的值都表示取消
rm
不仅可以删除文件,也可以删除目录;因为目录中有很多的文件,此时需要递归所以要加上-r
这个选项,完整命令“rm -r”
-r 表示递归,删除的目录里面可能还有文件,或者有其他的目录,要删除这个目录,就要先删除到目录中的子目录
- 这里出现了一个问题,如果这个目录中 子目录有很多,难道要手动输入多次 y 吗?
所以我们更常用的情况就是,在加上
-f
选项,-f
就表示直接跳过确认,直接删除(强制删除,f 表示 force)。完整命令“rm -rf 目录名”
。删除的时候一定要小心小心再小心,一旦删掉,Linux 是没有回收站的,删掉就无法恢复了!!!!,尤其是有一个命名
“rm -rf / ”
的时候,这就删除了这个系统,“ / ”
这个就是此电脑,如果收入这个命名“rm -rf / ”
那么就全删了在公司一定不能用
“rm -rf / ”
!!!删除的情况都是无意的,可能要删除某个文件用绝对路径的时候,可能会写成”rm -rf / root/aaa", 这里的 “空格 / 空格”
rm
就会以为你要删除两个目录,rm
支持删除多个目录或者文件,多个文件之间使用空格分割的。
”rm -rf / root/aaa"
这里表示第一个目录就是 “ / ”
; 第二个目录就是相对路径 “root/aaa”
,这里的“ / ”
就表示删除了 “此电脑”!
9、mv(移动)
mv(move)-----> 进行移动
mv 源目录 目标路径
mv
这个操作可以边移动边改名字
所以说 mv 不仅仅可以移动还可以 重命名 。
10、cp(拷贝)
cp
(拷贝)用法和 mv 一致 只是没有重命名功能。
cp
复制一个目录并移动 需要用到递归,要加上“-r”
;完整命令“cp -r 源目录 目标目录”
在 Linux 中有个 man 命令可以查看命令的手册,说明,输入 “man XX” 就可以看到.
下面就要介绍重要的编辑和查看操作了!!!虽说
cat
可以用来查看,echo
可用来编辑但是在现在已经不流行了。
11、less
这是查看文件,一般是用来查看大文件的时候用的命令,当使用 less 打开文件的时候用上下箭头来翻页,q 是退出,最大的优势在于可以秒开大文件,less 打开的时候显示多少就从磁盘读多少出来,不会太吃内存,在很多编辑器中是要把文件读完才显示出来,特别是大文件,读的慢,而且还浪费内存。
12、vim(查看编辑文件)
相当于电脑上面的记事本
直接在 Xshell 中输入
vim
, 就会进入 vim 页面主页面,就是以下这个页面。
vim 文件名
,就会打开一个具体文件,然后进入编辑页面
(1)、如何编辑
vim
中用两种模式,当我们刚进入vim
时是Normal Mode(普通模式)
这时是不能编辑的,需要却换到Insert Mode(插入模式
)才能编辑,按下小写字母 i 就会进入 insert 模式,做下角也会显示INSERT
提示,进入到插入模式键可以想记事本一样编辑了。
(2)、如何保存退出
1、先要回到 Normal Mode,按下键盘上的 esc 键就会回到 Normal Mode
2、看到 Insert 没有了说明回到了 Normal Mode
3、保存退出,需要先按下 :
然后在输入 wq
回车,就能保存退出
- w : write 保存
- q : quit 退出
13、date
查看,设置,格式化时间
1、在 Linux 机器上,没有显示的时间,可以直接date
命令获取当前时间指定的格式
2、也可以灵活的设置时间的格式
代码语言:javascript复制date "%Y/%m/%d %H:%M:%S"
date "%Y-%m-%d %H:%M:%S"
date "%H:%M:%S"
date "%H:%M"
//注意这里 后面是没有空格的!!!!
这里用 date 命令再 上时间日期的格式化符号,就可以获得自己自定义的时间,这种时间日期格式化的符号在很多编程语言中都是用这种类似的符号体系来表示,而他们的作用是用来是以时间作为后缀,防止文件名重复,更好的辨认文件
3、借助 date 可以用来转换时间戳
代码语言:javascript复制date %s
(1)、这个表示就是查看当前时间戳
(2)、也可以用时间戳转换为可读时间
代码语言:javascript复制date -d@时间戳
14、ps
ps(process show)展示进程,相当于 windows 上的 “任务管理器”
代码语言:javascript复制ps aux
这是这个命令的常用选项,是个固定搭配,用来看当前主机上面的进程
图片就不展示了,进程太多,懒得截图。
(1)、grep
代码语言:javascript复制正因为进程多,当我们要查找指定进程的时候,就要用
grep
来进行操作查找了,grep
是对输出的结果进行筛选(按字符串来查找)
ps aux | grep xxx
中间的 “|” 叫做 管道,也是跟 grep 命令 搭配这使用的,这个管道的作用,相当于通过 ps aux 把所有的进程都通过管道传递给 grep 这边,grep 就根据后面的关键字来进行查找,此时关键字是 vim,那么就把包含了 vim 的字符串的行都留下。
15、netstat
查看网络的状态的,通常也是跟 管道和 “grep” 来搭配着使用,他的作用主要是来查看服务器上面的端口号是不是被占用了。
代码语言:javascript复制netstat -anp | grep xxxx
此时查看的是 3306 端口,这里什么都没有出现,说明就没有被占用,如果出现了东西,并且有提示说明,那你的端口号就被占用了。
三、认识 Linux 中的权限
代码语言:javascript复制r ---------> read (可读)
w ---------> write (可写)
x ---------> execute (可执行)
开头是 “d” 表示是一个目录
开头是 “-” 表示是一个普通文件
权限中的可执行,是指这个文件是否可以被操作系统加载并运行(当成一个进程来运行),授予了这个权限才能运行,为什么要设置是这个机制,主要还是防止黑客,运行一个程序是可能存在风险的,黑客可能会在程序里面搞破坏。
以第一个
“drwxr-xr-x”
为例,d 说明是一个目录,后面的 rwx 是 能读 能写 能执行,后面的 r-x 是 能读 不能写 能执行,依次为例。这里就有一个疑问了,这里的为什么会出现 三次的
rwx
尼?所谓权限就指,Linux 针对用户就分成了三类,然后这三类用户就可以设置不同的权限。
1、文件的拥有者
可读可写可执行 2、文件的拥有者的同组的用户 可读 不可写 3、其他用户 不能读 不能写,不能执行
但是还有一个特例,就是管理员,管理员拥有最高权限,可以无视上面的规则!!!
四、在 Linux 上部署 Web 程序
部署 Web 程序需要搭建环境
1、JDK 2、Tomcat 3、MySQL
环境代建好了基本上把程序部署在 Web 上面就轻松了。
1、安装 JDK:
在 Linux 中一个类似于应用商店的东西加做
yum
,yum
叫做包管理器,需要下载什么直接搭配grep
这个关键字来查找就行
现在我们使用命令来查找 jdk
代码语言:javascript复制yum list | grep jdk
筛选出来有很多 jdk 安装包,这里我们选自 1.8 版本的,后面带有 devel(软件开发包),后缀 x86_64 就表示 64 位系统软件包,如果后缀是 i686,表示是 32 位系统的软件包
选中过后输入命令安装等待即可:
代码语言:javascript复制yum install java-1.8.0-openjdk-devel.x86_64
2、安装 Tomcat
这里推荐手动安装,因为 yum 里面的 tomcat 一般版本太老了,有些 Servlet 的功能可能不支持。
1、这里可以去 tomcat 的官网把 tomcat 下载好,(https://tomcat.apache.org/download-80.cgi) 2、找到本地下载好的 tomcat 压缩包,拷贝到 Linux 上就行了,直接拖拽的方式拷贝,因为 tomcat 可以跨平台,然后在通过 unzip apache-tomcat-8.5.72.zip
即可,如果不能,则需要 yum install unzip
。
这样就说明安装解压成功了。
接下来就是启动 tomcat 了,启动 tamcat 需要进入 bin 目录,在 bin 目录中找到
startup.sh
然后打开就行,在 Linux 中.sh
是 Linux 使用的,在 Windows 中.bat
是 Windows 使用的,但是默认情况下不能直接运行,需要给 .sh 赋予可执行权限,
命令:
代码语言:javascript复制chmod x *.sh
这个命令就是赋予 .sh
可执行权限。
这里显示绿色说明后缀是
.sh
的就可以执行了。看前面的权限也可以看出来文件是可执行的。
执行命令:
代码语言:javascript复制sh startup.sh
// 或者
./startup.sh
这两个命令任意一个都行
看到这里说明已经打开了 tomcat,我们去网页上再看看,使用外网 ip 然后端口号输入 8080,出现 tomcat 欢迎的画面就说明你已经成功打开了 tomcat
注意:第一次访问是访问不了的,还需要配置自己云服务器后台,如果是 ECS 服务器配置就是安全组,如果是轻量应用服务器就要配置防火墙,配置里面添加规则,添加一个 8080 端口就能访问了!!因为在云服务器是在外网上面的,非常的危险,所以云服务器厂商为了报复我们的云服务器,所以就默认把你机器的端口都给屏蔽了,这样黑客在外网上面无法访问你的服务器的各种端口了,要用端口需要自己打开端口才行。
3、安装 Mysql
这里通过 yum 的方式来下载,但是安装的不是正版的
Mysql
,而是MariaDB
,这两个是差不多一样的功能,因为安装MariaDB
相对正宗的Mysql
来说要简单一点,正宗的 Mysql 要更复杂,也没必要。这里推荐一篇帖子,可以按照帖子上面的来,更详细和基础一些
使用:
mysql -uroot
命令的时候,看到如下内容说明就启动服务器成功了。
帖子后面会提示说没有密码不安全需要设置密码,但是这里的结论可以说不太准确,由于我们数据库用的是 3306 端口,云服务器石灰包 3306 端口隐藏在安全组 / 防火墙里面的,黑客访问不了,因此我们可以不用设置密码,然后默认的密码就是 “”,空字符串。
五、部署 Web 程序
a、构造数据库
之后我们访问的是云服务器里面的东西,所以要保证数据库的表要部署在 Linux 上面,构造表的操作就是 建表,添加数据…
b、微调本地代码
这里的微调本地代码,是保证的 Servlet 代码能够连上 Linux 的数据库。
c、重新打包
这里的打包可能默认情况下不一定符合我们的需求,打包出来是一个
jar
包,但是我们需要打的包是war
包,取名字尽量也是要取短一点的名字。所以在 pom.xml 中配置文件代码
当看到 target 目录下后缀有
.war
包就可以了
d、部署程序
这一步是最简单的了,直接把 war
包拖到 tomcat 的 webapps
的目录下即可。
拖拽完,tamcat 就是自动解压缩
最后的最后再检验下可不可以在浏览器中登录成功