以下笔记借鉴于黑马Linux视频,记录为个人学习笔记参考。
目录
Linux的安装配置
Linux常用命令
常用命令
命令 | 英文 | 作用 |
---|---|---|
ls | list | 查看当前目录下的内容 |
pwd | print work directory | 查看当前所在目录 |
cd [目录名] | change directory | 切换目录 |
touch [文件名] | touch | 如果文件不存在新建文件 |
mkdir | make directory | 创建目录 |
rm | remove | 删除指定文件 |
Linux命令格式
command [-options] [parameter]
说明:
command:命令名
[-options]:选项,可用来对命令进行控制,也可以省略
[parameter]:传给命令的参数,可以是零个、一个或者多个
[xxx]:可选项
文件目录操作命令
ls
作用:显示指定目录下的内容
语法:
ls [-a]/[-l] [目录名]
#举例
ls -a
ls -l
ls -a -l
ls -a -l /etc
说明:-a显示所有文件及目录(.开头的隐藏文件也会列出)
-l(除文件名称外,同时将文件型态(d表示目录,-表示文件)、权 限、拥有者、文件大小等信息详细列出【 ls -l 等同于 ll】
举例:
cd
作用:用于切换当前工作目录,即进入指定目录
语法:
cd [目录名]
#举例
cd ..
#切换到当前目录的上级目录
cd ~
#切换到用户的home目录
cd /usr/local
#切换到/usr/local目录
说明:
- ~表示当前用户的home目录
- .表示目前所在的目录
- …表示目前目录位置的上级目录
cat
作用:用于显示文件内容
语法:
cat [-n] 文件名
#举例
cat /etc/profile
#查看/etc目录下的profile文件内容
说明:
-n:显示行数
more
作用:以分页的形式显示文件内容
语法:
more 文件名
说明:
- 回车键:向下滚动一行
- 空格键:向下滚动一屏
- b:返回上一屏
- q或者Ctrl+C:退出more
tail
作用:查看文件末尾的内容
语法:
tail [-f] 文件名
#举例
tail /etc/profile
#显示/etc目录下的profile文件末尾10行的内容
tail-20 /etc/profile
#显示/etc目录下的profile文件末尾20行的内容
tail-f /itcast/my.log
#动态读取/itcast目录下的my.log文件末尾内容并显示
说明:
-f:动态读取文件末尾内容并显示,如果该文件有新内容追加自动显示,通常用于日志文件的内容输出
mkdir
作用: 创建目录
语法:
mkdir [-p] 目录名
#举例
mkdir a
#在当前目录下,建立一个名为a的子目录
mkdir -p a/b
#在工作目录下的a目录中建立一个名为b的子目录,若a目录不存在,则建立一个
说明:
-p:确保目录名称存在,不存在的就创建一个。通过此选项,可以实现多层目录同时创建。
rmdir
作用:删除空目录
语法:
rmdir [-p] 目录名
#举例
rmdir itcast
#删除名为itcast的空目录
rmdir -p itcast/test
#删除itcast目录中名为test的子目录,若test目录删除后itcast目录变为空目录,则也被删除
rmdir itcast*
#删除名称以itcast开始的空目录
说明:
-p:当子目录被删除后使父目录为空目录的话,则一并删除
rm
作用:删除文件或者目录
语法:
rm [-rf] 文件或目录名
#举例
rm -r itcast/
#删除名为itcast的目录和目录中所有文件,删除前需确认
rm -rf itcast/
#无需确认,直接删除名为itcast的目录和目录中所有文件
rm -f hello.txt
#无需确认,直接删除hello.txt文件
说明:
- -r:将目录及目录中所有文件(目录)逐一删除,即递归删除
- -f:无需确认,直接删除
拷贝移动常用命令
cp
作用:用于复制文件或目录
语法:
cp [-r] 原文件名 新文件名
#举例
cp hello.txt itcast/
#将hello.txt复制到itcast目录中
cp hello.txt ./hi.txt
#将hello.txt复制到当前目录,并改名为hi.txt
cp -r itcast/ ./itheima/将itcast目录和目录下所有文件复制到itheima目录下
cp -r itcast/* ./itheima/
#将itcast目录下所有文件复制到litheima目录下
说明:
-r:如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件
mv
作用:为文件或目录改名、或将文件或目录移动到其它位置
语法:
mv 原文件名 新文件名
#举例
mv hello.txt hi.txt
#将hello.txt改名为hi.txt
mv hi.txt itheima/
#将文件hi.txt移动到itheima目录中
mv hi.txt itheima/hello.txt
#将hi.txt移动到itheima目录中,并改名为hello.txt
mv itcast/ itheima/
#如果itheima目录不存在,将itcast目录改名为itheima
mv itcast/ itheima/
#如果itheima目录存在,将itcast目录移动到itheima目录中
打包压缩命令
tar
作用:对文件进行打包、解包、压缩、解压
语法:
tar [-zcxvf] 文件名 [files]
#举例
#打包
tar -cvf hello.tar./*
#将当前目录下所有文件打包,打包后的文件名为hello.tar
tar -zcvf hello.tar.gz ./*
#将当前目录下所有文件打包并压缩,打包后的文件名为hello.tar.gz
#解包
tar -xvf hello.tar
将hello.tar文件进行解包,并将解包后的文件放在当前目录
tar -zxvf hello.tar.gz
将nello.tar.gz文件进行解压,并将解压后的文件放在当前目录
tar -zxvf hello.tar.gz-C/usr/local
将hello.tar.gz文件进行解压,并将解压后的文件放在/usr/local目录
说明:
- -z:z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
- -c:c代表的是create,即创建新的包文件
- -x:x代表的是extract,实现从包文件中还原文件
- -v:v代表的是verbose,显示命令的执行过程
- -f:f代表的是file,用于指定包文件的名称
- 包文件后缀为.tar表示只是完成了打包,并没有压缩
- 包文件后缀为.tar.gz表示打包的同时还进行了压缩
文本编辑命令
vim
yum install vim #首先安装vim
作用:对文件内容进行编辑,vim其实就是一个文本编辑器
语法:
vim 文件名
说明:
- 在使用ⅵ命令编辑文件时,如果指定的文件存在则直接打开此文件。如果指定的文件不存在则新建文件。
- vim在进行文本编辑时共分为三种模式,分别是命令模式(Command mode),插入模式(Insert mode) 和底行模式(Last line mode)。这三种模式之间可以相互切换。我们在使用vim时一定要注意我们当前所处的是 哪种模式。
vim命令模式
- 命令模式下可以查看文件内容、移动光标(上下左右箭头、gg、G)
- 通过vim命令打开文件后,默认进入命令模式
- 另外两种模式需要首先进入命令模式,才能进入彼此
vim插入模式
- 插入模式下可以对文件内容进行编辑
- 在命令模式下按下[i,a,o]任意一个,可以进入插入模式。进入插入模式后,下方会出现【insert】字样
- 在插入模式下按下ESC键,回到命令模式
vim底行模式
- 底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作
- 在命令模式下按下[: /]任意一个,可以进入底行模式
- 通过/方式进入底行模式后,可以对文件内容进行查找
- 通过:方式进入底行模式后,可以输入wq(保存并退出)、q!(不保存退出)、setu(显示行号)
查找命令
find
作用: 在指定目录下查找文件
语法:
find 目录名-name(name根据文件名称) 文件名
#举例
find . -name "*.java"
#在当前目录及其子目录下查找。java结尾文件
find /itcast -name "*.java"
#在/itcast目录及其子目录下查找。java结尾的文件
grep
作用:从指定文件中查找指定的文本内容
语法:
grep 文本内容 文件名
#举例
grep Hello HelloWorld.java
#查找HelloWorld.java文件中出现的Helo字符串的位置
grep hello *.java
#查找当前目录中所有.java结尾的文件中包含hello字符串的位置
软件安装
JDK安装
官网地址:JDK
查看并卸载Linux自带JDK
首先连接上你的linux服务器,输入java -version命令,查看当前服务器的jdk安装情况;
#查看版本
java -version
#查询本地安装的JDK
rpm -qa | grep jdk
#卸载 JDK
rpm -e --nodeps xxx.x86_64
将文件导入liunx(mac为例)
- 打开终端,选择新建远程连接
- 选择安全文件传输sftp
- 输入主机名root和sftp root@IP地址
- 在终端输入put + 本地文件路径 + 远程主机路径(/usr/local)
#解压jdk到目录
tar -zxvf jdk-8u60-linux-x64.tar.gz -C /usr/local
#编辑配置文件
vim /etc/profile
#配置环境变量
#用vim编辑器来编辑profile文件,在文件末尾添加一下内容
export JAVA_HOME=/usr/local/jdk1.8.0_341
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#执行命令
source /etc/profile
#查看安装情况
java -version
tomcat安装
官网地址:tomcat
将文件导入liunx(mac为例)
- 打开终端,选择新建远程连接
- 选择安全文件传输sftp
- 输入主机名root和sftp root@IP地址
- 在终端输入put + 本地文件路径 + 远程主机路径
#解压jdk到目录
tar -xvf jdk-8u60-linux-x64.tar -C /usr/local
#创建完软连接后可以直接使用startup.sh和shutdown.sh开启关闭Tomcat
ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin
#验证是否启动成功
#方法一查找启动日志
cat /usr/local/tomcat/logs/catalina.out
#方式二查看进程
ps -ef|grep tomcat
防火墙操作
- 查看防火墙状态(systemctl status firewalld、firewall-cmd --state)
- 暂时关闭防火墙(systemctl stop firewalld)
- 永久关闭防火墙(systemctl disable firewalld)
- 开启防火墙(systemctl start firewalld)
- 开放指定端口(firewall-cmd --zone=public --add-port=8080/tcp)
- 关闭指定端口(firewall-cmd --zone=public --remove-port=8080/tcp --permanent)
- 立即生效(firewall-cmd --reload)
- 查看开放的端口(firewall-cmd --zone=public --list-ports)
注意
- systemctl是管理Liux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作
- firewall-cmd是Linux中专门用于控制防火墙的命令
- 为了保证系统安全,服务器的防火墙不建议关闭
Mysql安装
rpm -qa
#查询当前系统中安装的所有软件
rpm -qa| grep mysql
#查询当前系统中安装的名称带ysql的软件
rpm -qa| grep mariadb
#查询当前系统中安装的名称带mariadb的软件
rpm -e --nodeps 软件名称
#卸载软件
官网地址:mysql
教程:教程地址
#新建mysql文件夹
mkdir /usr/local/mysql
#解压
tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql/
#在安装执行 rpm 安装包之前先下载 openssl-devel 插件,因为 mysql 里面有些 rpm 的安装依赖于该插件。
yum install openssl-devel
#依次安装rpm
rpm -ivh mysql-community-common-8.0.30-1.el7.aarch64.rpm
rpm -ivh mysql-community-client-plugins-8.0.30-1.el7.aarch64.rpm
rpm -ivh mysql-community-libs-8.0.30-1.el7.aarch64.rpm
rpm -ivh mysql-community-libs-compat-8.0.30-1.el7.aarch64.rpm
rpm -ivh mysql-community-devel-8.0.30-1.el7.aarch64.rpm
rpm -ivh mysql-community-client-8.0.30-1.el7.aarch64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.30-1.el7.aarch64.rpm
rpm -ivh mysql-community-server-8.0.30-1.el7.aarch64.rpm
#查询mysql服务状态
systemctl status mysqld
#启动 MySQL 服务:
systemctl start mysqld
#开机启动mysql服务
systemctl enable mysqld
#重启 MySQL 服务:
systemctl restart mysqld
#关闭 MySQL 服务:
systemctl stop mysqld
#登陆mysql
mysql -uroot -p
#查看默认密码
cat /var/log/mysqld.log
#修改密码
alter user 'root'@'localhost' identified by '12345678';
#官网文档搜 validate_password 密码校验策略
# 将密码复杂度校验调整简单类型
set global validate_password.policy = 0;
# 设置密码最少位数限制为 4 位
set global validate_password.length = 4;
#默认的 root 用户只能当前节点localhost访问,是无法远程访问的,我们还需要创建一个新的账户,用于远程访问
CREATE USER <用户名> [ IDENTIFIED ] BY [ PASSWORD ] <口令>
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '12345678';
#无法连接关闭防火墙或放行端口
lrzsz安装
lrzsz是一款在linux里可代替ftp上传和下载的程序。
#查看安装包
yum list lrzsz
#下载
yum install lrzsz
项目部署
手工部署
将项目打包双击package
将jar包上传到Linux服务器
#新建目录
mkdir /usr/local/app
#上传文件
put [jar包名] /usr/local/app
#运行
java -jar [jar包名]
后台运行
#nohup 命令:
英文全称no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行
#语法格式:
nohup Command [Arg][&]
#参数说明:
Command:要执行的命令
Arg:一些参数,可以指定输出文件 &:让命令在后台运行
#举例:
nohup java-jar [jar包名] &>hello.log &
后台运行java -jart命令,并将日志输出到helo.log文件
#查询进程并kill进程
ps -ef | grep java
kill -9 进程号
自动部署
步骤
- 在Linux中安装Git
- 在Linux中安装maven
- 编写Shel脚本(拉取代码、编译、打包、启动)
- 为用户授予执行Shell脚本的权限
- 执行Shell脚本
在linux安装git
git提交:
yum install git
cd /usr/local
#将Git代码克隆到linux
git clone https://gitee.com/rxtiger/hellowrod.git
安装maven
put apache-maven-3.6.3-bin.tar
tar -xvf apache-maven-3.6.3-bin.tar -C /usr/local/
#配置环境变量
vim /etc/profile
#写入文件
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
#更新
source /etc/profile
#创建本地仓库在local里
mkdir repo
#修改配置文件
<localRepository>/usr/local/repo</localRepository>
运行shell文件