JavaWeb_瑞吉外卖_Day8-Linux
Linux常用命令
Linux命令初体验
// 查看当前目录下的内容
ls
// 查看当前所在目录
pwd
// 切换目录
cd [目录名]
// 如果文件不存在, 新建文件
touch [文件名]
// 创建目录
mkdir [目录名]
// 删除指定文件
rm [文件名]
// 修改乱码
echo 'LANG="en_US.UTF-8"' >> /etc/profile
source /etc/profile // 重新加载
Linux命令格式
commond [-options] [parameter]
- commond: 命令名.
- [-optional]: 选型, 可用来对命令进行控制.
- [parameter]: 传给命令的参数, 任意个.
注意:
- []代表可选
- 命令名, 选型, 参数之间有空格进行分隔
文件目录操作命令
ls
ls -a
: 显示所有文件及目录(.开头的隐藏文件也会列出)ls -l
: 除文件名称外, 同时将文件型态(d表示目录, -表示文件), 权限, 拥有者, 文件大小等信息详细列出.ls /etc
: 查看指定目录下的内容.
注意:
ls -l
可以简写为ll
cd
~
: 表示用户的home目录.
: 当前所在目录..
: 当前目录的上级目录
cat
- 作用: 用于显示文件内容
- 语法:
cat [-n] filename
- 说明:
-n
: 由1开始对所有输出的行数编号
more
- 作用: 以分页的形式显示文件内容
- 语法:
more fileName
- 操作说明:
- 回车键: 向下滚动一行
- 空格键: 向下滚动一屏
- b: 返回上一屏
- q或者Ctrl+C: 退出more
tail
- 作用: 查看文件末尾的内容
- 语法:
tail [-f] fileName
- 说明:
-f
: 动态读取文件末尾内容并显示, 通常用于日志文件的内容输出
- 举例:
tail /etc/profile
: 显示profile文件末尾10行的内容tail -20 /etc/profile
: 显示profile文件末尾20行的内容tail -f /itcast/my.log
: 动态读取my.log文件末尾内容
mkdir
- 作用: 创建目录
- 语法:
mkdir [-p] dirName
- 说明:
-p
: 确保目录名称存在, 不存在的就创建一个. 通过此选项, 可以实现多层目录同时创建
rmdir
- 作用: 删除空目录
- 语法:
rmdir [-p] dirName
- 说明:
-p
: 当子目录被删除后是父目录为空目录的话, 则一并删除
- 举例:
rmdir -p itcast/test
: 删除itcast目录中名为test的子目录, 若test目录删除后itcast目录变为空目录, 则也被删除rmdir itcast*
: 删除名称以itcast开始的空目录
rm
- 作用: 删除文件或者目录
- 语法:
rm [-rf] name
- 说明:
-r
: 将目录及目录中所有文件(目录)逐一删除, 即递归删除-f
: 无需确认, 直接删除
- 举例:
rm -r itcast/
: 删除名为itcast的目录和目录中所有文件,删除前需确认rm -rf itcast/
: 无需确认,直接删除名为itcast的目录和目录中所有文件rm -f hello.txt
: 无需确认,直接删除hello.txt文件
拷贝移动命令
cp
- 作用: 用于复制文件或目录
- 语法:
cp [-r] source dest
- 说明:
-r
: 如果复制的是目录需要使用此选型, 此时将复制该目录下所有的子目录和文件
mv
- 作用: 为文件或目录改名, 或将文件或目录移动到其他位置
- 语法:
mv source dest
打包压缩命令
tar
- 作用: 对文件进行打包, 解包, 压缩, 解压
- 语法:
tar [-zcxvf] fileName [files]
- 说明:
- 包文件后缀为.tar表示只是完成了打包, 并没有压缩
- 包文件后缀为.tar.gz表示打包的同时还进行了压缩
-z
: z代表gzip, 通过gzip命令处理文件, gzip可以对文件压缩或者解压-c
: c代表create, 即创建新的包文件-x
: x代表extract, 实现从包文件中还原文件-v
: v代表verbose, 显示命令的执行过程-f
: f代表的是file, 用于指定包文件的名称
文本编辑命令
vi
- 作用: Linux系统提供的文本编辑工具
- 语法:
vi fileName
vim
- 作用: 文本编辑器
- 语法:
vim fileName
- 说明:
- vim是从vi发展来的功能更强大的文本编辑工具, 可以对文本着色
- 安装vim:
yum install vim
- 指定的文件不存在时, 则新建文件
- 三种模式: 命令模式(Command mode), 插入模式(Insert mode), 底行模式(Last line mode).
- 三种模式
- 命令模式:
- 查看文件内容, 移动光标(方向箭头, gg, G),
- 默认进入, 另外的两种模式要先进入命令模式
- 插入模式:
- 编辑文件内容,
- 命令模式按下[i, a, o]任意一个, 进入插入模式, 按下esc, 回到命令模式
- 底行模式:
- 查找文件内容, 显示行号, 退出
- 在命令模式按下[:, /]任意一个, 进入底行模式
- 通过/方式进入, 查找文件内容
- 通过:方式进入, 可以输入wq(保存退出), q!(不保存退出), set nu(显示行号)
- 命令模式:
查找命令
find
- 作用: 在指定目录下查找文件
- 语法:
find dirName -option fileName
- 举例:
find /itcast -name "*.java"
: 在/itcast目录及其子目录下查找.java结尾的文件.
grep
- 作用: 从指定文件中查找指定的文本内容
- 语法:
grep word fileName
- 举例:
grep hello *.java
: 查找当前目录中所有.java结尾的文件中包含hello字符串的位置.
软件安装
软件安装方式
- 二进制发布包安装
软件已经针对具体平台编译打包发布,只要解压,修改配置即可 - rpm安装
软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题 - yum安装
一种在线软件安装方式,本质上还是rpr安装,自动下载安装包并安装,安装过程中自动解决库依赖问题 - 源码编译安装
译打包软件以源码工程的形式发布,需要自己编译打包
安装jdk
- 上传jdk的二进制发布包到Linux
- 解压安装包:
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local
- 配置环境变量, 修改/etc/profile文件:
JAVA_HOME=/usr/lcoal/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
- 重新加载profile文件:
source /etc/profile
- 检查安装是否成功:
java -version
安装Tomcat
- 上传tomcat的二进制发布包
- 解压到
/usr/lcoal
- 启动tomcat:
./startup.sh
或sh startup.sh
- 检查启动是否成功:
- 检查日志:
more apache-tomcat-7.0.57/logs/catalina.out
- 查看进程:
ps -ef | grep tomcat
注意:ps -ef
: 查看当前运行的所有进程的详细信息|
: 管道符, 将前一个命令的结果作为后一个命令的输入
- 检查日志:
- 停止tomcat服务:
- 停止服务:
./shutdown.sh
或sh shotdown.sh
- 结束进程:
kill -9 进程id // -9表示强制结束
- 停止服务:
注意:
- 访问tomcat, 需要关闭防火墙
防火墙操作
- 查看防火墙状态:
systemctl status firewalld
,firewall-cmd --state
- 暂时关闭防火墙:
systemctl stop firewalld
- 永久关闭防火墙:
systemctl disable firewalld
- 开启防火墙:
systemctl start firewalld
- 开放指定(8080)端口:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
- 关闭指定(8080)端口:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
- 立即生效:
firewall-cmd --reload
- 查看开放的端口:
firewall-cmd --zone=public --list-ports
注意:
- systemctl是管理Linux中服务的命令, 可以对服务进行启动, 停止, 重启, 查看状态等操作
- firewall-cmd是Linux中专门用于控制防火墙的命令
- 为了保证系统安全, 服务器的防火墙不建议关闭
安装mysql
- 检测当前系统是否安装Mysql数据库
rpm -qa
: 查询当前系统中安装的所有软件rpm -qa | grep mysql
: 查询当前系统中安装的名称带有mysql的软件rpm -qa | grep mariadb
: 查询当前系统中安装的名称带有mariadb的软件- 如果系统以安装mysql数据库, 安装会失败. CentOS7自带mariadb, 与mysql数据库冲突.
- RPM(Red-Hat Package Manager): RPM软件报管理器, 是红帽Linux用于管理和安装软件的工具.
- 卸载mariadb数据库:
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
- 上传并解压mysql
- 按顺序安装rpm软件包
rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
yum install net-tools
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
- 安装过程提示缺少net-tools依赖, 使用yum安装
- 可以通过指令升级现有软件及系统内核:
yum update
- 启动mysql服务
systemctl status mysqld
: 查看mysql服务状态systemctl start msyqld
: 启动mysql服务systemctl enable mysqld
: 开机启动mysql服务netstat -tunlp
: 查看已经启动的服务netstat -tunlp | grep mysql
ps -ef | grep mysql
: 查看mysql进程
- 登录MySQL数据库, 查阅临时密码:
cat /var/log/mysqld.log | grep password
- 登录mysql, 修改密码, 开放访问权限
// 登录mysql(使用临时密码) mysql -uroot -p // 修改密码 // 设置密码长度最低位数 set global validate_password_length=4; // 设置密码安全等级低, 便于密码修改为root set global validate_password_policy=LOW; // 设置密码为root set password = password('root'); // 开启访问权限 // 使所有用户可以连接 grant all on *.* to 'root'@'%' identified by 'root'; // 刷新生效 flush privileges;
安装lrzsz
- 搜索lrzsz安装包:
yum list lrzsz
- 安装:
yum install lrzsz.x86_64
注意事项:
Yum (全称为Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
项目部署
手工部署
- 在IDEA中开发SpringBoot项目并打成jar包.
- 将jar包上传到Linux服务器:
mkdir /usr/local/app
- 启动SpringBoot项目:
java -jar HelloWorld-0.0.1-SNAPSHOT.jar
- 检查防火墙, 确保8080端口对外开放
- 改为后台运行SpringBoot程序, 并将日志输出到日志文件
// nohup(no hang up): 不挂断地运行指定命令, 退出终端不会影响程序地运行 // &: 让命令在后台运行 nohup java -jar HelloWorld-0.0.1-SNAPSHOT.jar &> hello.log &
- 停止SpringBoot程序:
kill -9 进程id
Shell脚本部署
- 操作步骤:
- 在Linux中安装Git
- 在Linux中安装maven
- 解压安装
- 配置环境变量
vim /etc/profile // 加入如下内容 export MAVEN_HOME=/usr/local/apache-maven-3.5.4 export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
- 重新加载配置, 检查安装
- 配置maven本地仓库
vim /usr/local/apache-maven-3.5.4/conf/settings.xml <!--修改内容如下--> <localRepository>/usr/local/repo</localRepository>
- 编写Shell脚本(拉取代码, 编译, 打包, 启动)
- 为用户授予执行Shell脚本地权限
- chmod(change mode): 控制用户对文件的权限的命令
- Linux中的权限分为: 读®, 写(w), 执行(x)
- Linux的文件调用权限分为三级: 文件所有者(Owner), 用户组(Group), 其他用户(Other Users)
- 只有文件的所有者和超级用户可以修改文件或目录的权限
- 要执行shell脚本需要有对此脚本文件的执行权限, 如果没有不能执行
chmod 777 bootStart.sh
- 执行Shell脚本
设置静态ip
- 开启网络
vim /etc/sysconfig/network-scripts/ifcfg-ens33 // 修改为 onboot=yes // 重启网络 systemctl restart network
- 修改配置文件(CentOS7)
vim /etc/sysconfig/network-scripts/ifcfg-ens33 # 加入如下内容 BOOTPROTO="static" # 使用静态ip地址, 默认为dhcp IPADDR="192.168.174.133" # 设置的静态ip地址 NETMASK="255.255.255.0" # 子网掩码 GATEWAY="192.168.174.2" # 网关地址 DNS1="192.168.174.2" # DNS服务器
- 重启网络服务:
systemctl restart network
来源
黑马程序员. 瑞吉外卖项目