一. Linux介绍
1.1 引言
- 在学习Linux之前, 大家先了解开发环境,生产,测试环境
- 开发环境: 平时大家大多是在Windows或者Mac操作系统下去编写代码进行开发,在开发环境中安装大量的软件 这样会导致环境的稳定性和安全性降低
- 生产环境: 是将程序运行在此环境中, 供用户去使用, 这个环境是有专业的人员去维护的, 一般人没有权限去操作生产环境
- 测试环境: 一般克隆一份生产环境, 会将开发环境中的程序部署到测试环境中. 这个环境的主要目的是去程序进程检测, 收集程序中的各种问题, 并交给开发人员进行修改
- 生产环境中, 常用的操作系统比如有Windows 2003 service, Linux, Unix等等
- Linux操作系统, 在生产环境中占据了大量的市场份额, Linux主要以稳定 , 可靠, 免费的特点成为全球使用最多的服务器操作系统
- Linux操作系统现在已经成为后台开发人员必备的技能
1.2 Linux介绍
- 在Linux操作系统出现之前, 还有一个操作系统叫做Minix, Minix操作系统是由Andrew的大学教授研发出来的, 当时大学教授是为了给学生上课, 买了一套Unix操作系统, 参考Unix自己写了一个操作系统, 并且命名为Minix, 同时将Minix开源, 供学校内部的研究和教学, 到了2000年, Andrew将Minix操作系统完全对外开源
- Minix由于完全对外开源之后, 在互联网上迅速的传播, 但是大家在使用时, 发展Minix不是很完美, 内部存在各种各样问题, 用户将问题解决后, 编写了一个补丁, 将补丁以邮件的方式发给Andrew, 但是Andrew教授最初的目的只是为了教学和研究
- 与此同时, 一位芬兰的大学生Linus Torvalds出现了, 在Minix操作系统基础上, 自己添加了一些补丁和插件, 并将其命名为Linux操作系统, 并且完全对外开源, 而且开始维护Linux操作系统
- 我们学习的Git也是Linus研发的
1.3 Linux的版本
- Linux的发内核版本
- Linux的发行版本
1.4 Linux和Windows区别
- Linux是严格区分大小写的, Windows无所谓
- Linux中一切皆是文件
- Linux中文件是没有后缀的, 但是它有一些约定俗成的后缀
- Windows下的软件一般是无法直接运行在Linux中
- 我们在学习Linux时, 参考Windows下做了什么, 就在Linux中做什么
二. Linux安装
-
安装Linux, 我们需要一个虚拟机, 为了安装虚拟环境: VMware或者Virtual Box (这里我们使用
VMware
)
-
为了安装Linux, 需要一个Linux的镜像文件: CentOS7版本
-
安装一个连接Linux的图形化界面: Xterm, SSH, XShell (我们这里使用
Xterm
)
2.1 安装VMware
2.2 安装Xterm
2.3 在VMware中安装Linux
- 打开VMware, 可以试用30天, 也可以使用密钥永久使用
- ZF3R0-FHED2-M80TY-8QYGC-NPKYF
YF390-0HF8P-M81RQ-2DXQE-M2UT6
ZF71R-DMX85-08DQY-8YMNC-PPHV8
- 上面三个密钥挑选一个使用
- 创建新的虚拟机
- 典型[推荐]
- 稍后安装操作系统
- 客户机操作系统选择Linux,版本选择CentOS 7 64位
- 虚拟机名称和位置可以自定义
- 指定磁盘容量这个界面不用动,直接下一步
- 完成
- 编辑虚拟机设置
- 内存设置为2GB
- 处理器: 每个处理器的内核数量设置为2
- 网络适配器: 设置为桥接模式, 勾选复制物理网络连接状态(如果自己的电脑连接的不是wifi,是手机热点,请选择NAT模式)
- CD/DVD(IDE): 使用ISO映像文件
- 开启此虚拟机
- 用鼠标点进去, 然后使用键盘的上下方向键选中第一个直接安装
- Ctrl+ALt可以返回我们的计算机,就可以正常使用鼠标了
- 选择中文,简体中文(中国),然后点击继续
- 点击系统下的安装位置, 最上方有个完成按钮,我们点击此完成按钮
- 点击系统下的网络和主机名,打开以太网连接, 连接上以后点击最上方的完成按钮
- 开始安装
- Root密码设置, 可以设置为root,比较好记,但是密码较短时需要点击两次完成
- 最后等待安装完成后点击重启按钮进入登陆界面
- login后先输入root, 密码再输入root(密文输入,我们是看不到的,密码输入root后enter回车), 显示[root@localhost ~]#代表登陆成功
- 输入ip a或者ip addr show ens33查询ip地址: 192.168.59.128
2.4 使用Xterm连接Linux
- 使用ip a的命令查看当前Linux的ip地址, 通过Xterm连接
- 打开Xterm, 选择左上角的Session, 再选择SSH, 并且输入Linux操作系统的ip地址, 再输入用户名root,点击ok
- 输入密码后就连接上了Linux操作系统了
三. Linux基本操作
3.1 Linux的目录结构
- Windows的目录结构是带有盘符的: C:,D:,E:
- 在Xterm中输入ls / 查看Linux的顶级目录
- 选中要复制的内容,按住Shift+鼠标右键在Xterm中进行复制
| [root@localhost ~] |
| bin dev home lib64 mnt proc run srv tmp var |
| boot etc lib media opt root sbin sys usr |
- root: 该目录为系统管理员的HOME目录
- bin: 这个目录下存放着经常使用的命令
- boot: 这里存放的是启动Linux时的一些核心文件
- etc: 存放系统管理所需要的配置文件和子目录
- home: 普通用户的HOME目录
- usr: 默认安装软件的目录, 类似Windows中的Program Files目录
- opt: 是主机额外安装软件摆放的目录
3.2 获取Linux中的信息
四. Linux命令
- Linux中命令的基本格式: 命令 [选项] [参数]
- 需要注意, 个别命令是不遵循这个格式的
- 当命令中有多个选项时, 是可以写在一起的, 并且选项也是有简写方式的, 命令 -选项A选项B
4.1 目录的命令
- Linux中的隐藏文件是以.开头的, 当前目录使用.表示, 上一级目录使用..表示
4.2 文件的命令
| |
| |
| |
| set nu |
| to 行号 |
| set nonu |
| |
| /具体内容 |
| |
| |
| cat 文件名 |
| |
| tac 文件名 |
| |
| nl 文件名 |
| |
| more 文件名 |
| |
| less 文件名 |
| |
| head 文件名 |
| |
| tail 文件名 |
| |
| |
4.3 针对压缩包的操作
- Linux中常用的压缩包, 后缀大多数是.tar, .tar.gz, .tgz
- 但是Linux不仅仅针对tar类型的压缩包, 也支持zip, rar这种Windows下的压缩包
4.3.1 针对tar压缩包的命令
| |
| |
| tar [-zxvf] 压缩包名称 [-C 路径] |
| |
| |
| |
| |
| |
| |
| |
| tar [-zcvf] 压缩包名称 文件1 文件2 目录1 目录2... |
| |
4.3.2 针对zip压缩包的命令
- Linux默认是不支持zip压缩包格式的
- 需要安装两个软件
- yum -y install zip
- yum -y install unzip
| |
| unzip 压缩包名称 |
| |
| zip 压缩包名称 文件1 文件2 目录1 目录2... |
4.4 用户&用户组的操作
- Linux是一个多用户的操作系统, 任何一个用户想要操作Linux操作系统, 必须向系统管理员申请一个账号才可以使用, 以这个账号的身份去操作Linux
- 用户的账号一方面可以帮助系统管理员追踪当前用户的操作, 另一方面可以控制当前用户对系统资源访问
4.4.1 用户的操作
| |
| useradd [-cgd] [选项指定的具体内容] 用户名 |
| |
| |
| |
| |
| |
| usermod [-cgd] [选项指定的具体内容] 用户名 |
| |
| |
| |
| |
4.4.2 用户组的操作
| |
| |
| groupmod [-n] [选项指定的具体内容] 用户组名 |
| |
| |
4.5 文件权限的修改
- 在Linux中输入ls -l 或者ll查看文件和目录的详细信息
| [root@localhost ~] |
| 总用量 16 |
| -rw-r--r--. 1 root root 21 6月 3 21:00 aaa |
| -rw-------. 1 root root 1241 6月 3 18:45 anaconda-ks.cfg |
| drwxr-xr-x. 2 root root 6 6月 3 22:00 b |
| -rw-r--r--. 1 root root 227 6月 3 22:12 base.tar.gz |
| -rw-r--r--. 1 root root 712 6月 3 22:31 base.zip |
| drwxr-xr-x. 2 root root 6 6月 3 20:42 bbb |
| -rw-r--r--. 1 root root 0 6月 3 20:47 yyy |
| -rw-r--r--. 1 root root 0 6月 3 20:47 zzz |
- 实例中, b目录的第一个属性用"d"标识, 代表这个b是一个目录
- anaconda-ks.cfg第一个属性用"-"标识, 代表它是一个文件
- 在Linux文件详情的后面属性需要分为三组查看
- rwx: 代表文件拥有者的权限
- rwx: 代表文件所属组用户的权限
- rwx: 代表其他用户对当前文件的操作权限
- r: 代表read,读的权限
- w: 代表write, 写的权限
- x: 代表execute, 执行的权限
- 后续的第一个root: 代表当前文件的拥有者
- 后续的第二个root: 代表当前文件的所属组
- 后续分别为: 文件的大小和最后修改时间
4.5.1 对文件的权限修改
- 使用chmod对文件的权限进行修改, 一种使用数字, 一种使用符号
4.5.2 对文件的拥有者和所属组修改
| |
| chown [-R] 拥有者:所属组 文件|目录 |
| |
| chown [-R] 拥有者 文件|目录 |
| |
| chgrp [-R] 所属组 文件|目录 |
4.6 Linux的其他操作
| |
| ps -ef |
| |
| ps -ef | grep 搜索的内容 |
| |
| |
| kill -9 pid |
| |
| |
| |
| systemctl start|stop|restart|enable|disable|status 服务名称 |
| |
| |
| |
| yum -y install net-tools |
| |
| netstat -naop | grep 端口号 |
| |
| |
| find 路径 -type f | grep 搜索的内容 |
| |
五. Linux下安装软件
5.1 安装JDK
| |
| https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html |
| |
| |
| |
| tar -zxvf jdk-8u291-linux-x64.tar.gz -C /usr/local |
| |
| |
| cd /usr/local |
| |
| mv jdk1.8.0_291 jdk |
| |
| |
| |
| |
| |
| |
| |
| |
| export JAVA_HOME=/usr/local/jdk |
| export PATH=$JAVA_HOME/bin:$PATH |
| |
| source /etc/profile |
| |
| java -version |
| |
5.2 安装MySQL
| |
| |
| yum -y install wget |
| |
| wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm |
| |
| |
| |
| rpm -Uvh mysql80-community-release-el7-3.noarch.rpm |
| |
| rpm -qa | grep mysql |
| |
| rpm -e --nodeps mysql80-community-release-el7-3.noarch |
| |
| |
| |
| yum repolist all | grep mysql |
| |
| vi /etc/yum.repos.d/mysql-community.repo |
| |
| |
| |
| yum repolist all | grep mysql |
| |
| |
| mysql57-community/x86_64 MySQL 5.7 Community Server 启用: 504 |
| mysql57-community-source MySQL 5.7 Community Server - So 禁用 |
| mysql80-community/x86_64 MySQL 8.0 Community Server 禁用 |
| mysql80-community-source MySQL 8.0 Community Server - So 禁用 |
| |
| |
| yum install mysql-community-server |
| |
| |
| |
| systemctl start mysqld |
| |
| grep 'temporary password' /var/log/mysqld.log |
| |
| mysql -u root -p |
| Enter password:刚才查到的密码 |
| |
| |
| musql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root8031.'; |
| |
| |
| mysql> GRANT ALL PRIVILEGES ON *.* TO 'doublez'@'%' IDENTIFIED BY 'Root8031.' WITH GRANT OPTION; |
| mysql> FLUSH PRIVILEGES; |
| |
| |
| |
| |
| |
| |
| |
| ps -ef | grep firewalld |
| |
| systemctl stop firewalld |
| |
| systemctl dsiable firewalld |
5.3 安装Tomcat
| |
| wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.66/bin/apache-tomcat-8.5.66.tar.gz |
| |
| |
| tar -zxvf apache-tomcat-8.5.66.tar.gz -C /usr/local |
| |
| |
| |
| cd /usr/local/apache-tomcat-8.5.66/bin |
| |
| ./startup.sh |
| |
| cd ../logs |
| tail -f catalina.out |
| |
| |
| 04-Jun-2021 05:15:25.093 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 1121 ms |
| |
| |
| ./shutdown.sh |
六. 部署SSM工程
- 部署项目到Linux中需要注意以下内容
- 项目要保证在Windows下是没有问题的, 再考虑部署到Linux
- 将开发环境中的内容更改为测试环境
- 连接数据库的信息(要修改ip地址,用户名,密码)
- 存放文件的路径(只要是写成某某盘符下的,都要修改, 例如String pic = req.getContextPath() + "/static/images/" + newName)
- 日志文件存放的位置(修改为: /usr/local/logs, 同时日志输出级别从DEBUG改为ERROR)
- 项目路径问题(在各个跳转路径的前面加上${pageContext.request.contextPath}, 就没问题了,路径不要写死)
- 将Maven项目打包
- 根据项目路径的不同, 将项目部署到Tomcat中(先把Tomcat服务器打开)
- 将war包扔进Xterm中的Sftp中,也就是root目录下
- 再将war包复制到 /usr/local/apache-tomcat-8.5.66/webapps/
- 在部署到Linux操作系统中后, 一定要查看日志
- cd ../logs
- tail -f catalina.out
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步