目录
Linux:
系统安装:
Linux是一款免费试用和自由传播的操作系统
分类 系统 特点
Windows 用户数量多
桌面操作系统 Mac OS 操作体验好,办公人士首选
Linux 用户数量少
Android 基于Linux,开源,主要用智能手机,平板,智能电视
移动设备操作系统 IOS 苹果公司开发,不开源,用于苹果公司的产品
HarmonyOS 华为公司开发,开源,目前用于华为公司的产品
Unix 安全,稳定,付费
服务器操作系统 Linux 安全,稳定,免费,占有率高
Windows Server 付费,占有率低
Linux系统版本:
Linux系统分为内核版和发行版
内核版:
1.由Linux核心团队开发,维护
2.免费,开源
3.负责控制硬件
发行版:
1.基于Linux内核版进行扩展
2.由各个Linux厂商开发,维护
3.有收费版本和免费版本
Linux系统发行版:
Ubuntu:以桌面应用为主,免费
RedHat:面向企业用户,收费
CentOS:RedHat的社区版,免费
Fedora:功能完备,快速更新,免费
openSUSE:对个人完全免费,图形界面华丽
红旗Linux:北京中科红旗软件有限公司开发
安装方式:
linux系统的安装方式:
物理机安装:直接将操作系统安装到服务器硬件上
虚拟机安装:通过虚拟机安装
虚拟机通过软件模拟的具有完整硬件系统功能,运行在完全隔离的完整计算机系统
三种虚拟机安装:
VMWare WorkStation
VirtuaBox
VMLite WorkStation
1.虚拟网络编辑器 -> NAT模式-> 子网IP:设置为192.168.100.0
2.查看IP地址的命令:ip addr
3.如果没有IP地址:执行 start-ens33.sh脚本,手动激活ens33脚本
4.启动/停止/重启 Linux系统:图形化界面/命令(init 0,关闭,init 6,重启)
远程连接:
常用的SSH(Secure Shell,安全外壳协议)远程连接工具:Putty,SecureCRT,Xshell,FinalShell等
目录介绍:
Linux系统中的目录特点:
1./是所有目录的顶点
2.目录结构像一颗倒挂的树
Linux目录结构:
1.bin:存放二进制可执行文件
2.boot:存放系统引导时使用的各种文件
3.dev:存放设备文件
4.etc:存放系统配置文件
5.home:存放系统用户的文件
6.lib:存放程序运行所需的共享库和内核模块
7.opt:额外安装的可选应用程序包所放置的位置
8.root:超级用户目录
9.sbin:存放二进制可执行文件,只有root用户才能访问
10.tmp:存放临时文件
11.usr:存放系统应用程序
12.var:存放运行时需要改变数据的文件,例如日志文件
Linux系统中的路径/iteheima和itheima的区别:
/itheima是绝对路径,是指根目录/下的itheima目录
itheima是相对路径,是指当前目录下的itheima目录
Linux常用命令:
Linux命令初识:
Linux命名格式:command [-options] [parameter]
说明:
command:命令名
[-options]:选项,可用来对命令进行控制,也可以省略(可选)
[parameter]:参数,可以是零个,一个或多个(可选)
使用技巧:
Tab键自动补全
连续两次Tab键,给出操作提示
使用上下箭头快速调出曾经使用过的命令
使用clear命令或Ctrl+l快捷键实现清屏
目录操作命令:
ls:
作用:显示指定目录下的内容
语法:ls [-al] [dir]
选项:
-a显示所有文件及目录(.开头的隐藏文件也会列出)
-l:出文件名外,同时将文件类型(d表示目录,-表示文件),权限,拥有者,文件大小等详细信息列出
提示:由于我们使用ls命令时经常需要加入-l选项,所以Linux为ls -l命令提供了一种简写方式,即ll
cd:
作用:用于切换当前工作目录,即进入指定目录
语法:cd[dirName]
说明:
. 表示目前所在的目录
.. 表示目前目录位置的上级目录
~ 表示用户的home目录
举例:
cd .. 切换到当前目录的上级目录
cd ~ 切换到用户的home目录
cd/usr/local 切换到/usr/local目录
cd - 切换到上一次所在目录
mkdir:
作用:创建目录
语法: mkdir [-p] dirName
说明:
-p:确保目录名称不存在,不存在就创建一个,通过此选项,可以实现多层目录同时创建
举例:
mkdir itcast 在当前目录下,创建一个名为itcast的子目录
mkdir -p itcast/test 在itcast目录中创建的test子目录,若itcast目录不存在,则创建一个
rm:
作用:删除文件或目录
语法:rm [-rf] name
说明:
-r: 将目录及目录中所有文件(目录)注意删除,即递归删除
-f: 无需确认,直接删除
举例:
rm -r itcast/ 删除名为itcast的目录和目录中所有文件,删除前需确认
rm -rf itcast/ 无需确认,直接删除名为itcast的目录和目录中所有文件
rm -f hello.txt 无需确认,直接删除hello.txt文件
文件操作命令:
cat:
作用:用于显示文件的所有内容
语法:cat [-n] fileName
说明:
-n :由1开始对所有输出的行数编号
举例:
cat/etc/profile: 查看/etc目录下的profile文件内容
more:
作用:以分页的形式显示文件内容
语法: more fileName
操作说明:
回车键 向下滚动一行
空格键 向下滚动一屏
b 返回上一屏
q或Ctrl+c 推出more
举例:
more/etc/profile 以分页方式显示/etc目录下的profile文件内容
head:
作用:查看文件开头的内容
语法: head [-n] fileName
说明:
-n:输出文件开头的n行内容
举例:
head 1.log 默认显示1.log文件开头的10行内容
head -20 1.log 显示1.log文件开头的20行内容
tail:
作用:查看文件末尾的内容
语法:tail [-nf] fileName
说明:
-n:输出文件末尾的n行内容
-f:动态读取文件末尾内容并展示,通常用于日志文件的内容输出
举例:
tail 1.log 默认显示1.log文件末尾的10行内容
tail -20 1.log 显示1.log文件末尾的20行内容
tail -f 1.log 动态获取1.log文件末尾内容并展示(实时刷新)
拷贝移动命令:
cp:
作用:用于复制文件或目录
语法:cp [-r] source dest
选项:
-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目录下所有文件复制到itheima目录下
mv:
作用:为文件或目录重命名,或将文件或目录移动到其他位置(第二个参数是已存在的目录执行移动)
语法:mv source dest
举例:
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/ ithema/ 如果itheima目录不存在,就把itcast目录改为itheima,如果itheima目录存在,就把itcast目录移动到itheima目录中
打包压缩命令:
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,用于指定包文件的名称
打包:
tar -cvf hello.tar hello 将当前目录下所有文件打包,打包后的文件名为hello.tar
tar -zcvf hello.tar.gz hello 将当前目录下所有文件打包压缩,打包后的文件名为hello.tar.gz
解包:
tar -xvf hello.tar 将hello.tar文件进行解包,并将解包后的文件放在当前目录
tar -zxvf hello.tar.gz 将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录
tar -zxvf hello.tar.gz -C/usr/local 将hello.tar.gz文件进行解压,解压到指定的/usr/local目录中
文本编辑命令:
vi/vim
作用:vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本
语法:vi fileName
说明:
1.vim是vi发展来的一个功能更加强大的文本编辑工具,在编辑文件时可以对文本内容进行着色(更常用)
2.要使用vim命令,需要我们自己安装,可以使用下面的命令来安装:yum install vim
查找命令:
find:
作用:在指定目录下查找文件
语法:find dirName -option fileName
举例:
find . -name "*.log" 在当前目录及其子目录下查找.log结尾文件
find /itcast -name "*.log" 在/itcast目录及其子目录下查找.log结尾的文件
grep:
作用:从指定文件中查找指定的文本内容
语法:grep [-inAB] word fileName
选项:
-i:检索的关键字忽略(ignore)大小写
-n:显示关键字所在的这一行的行号
-A:输出关键字所在行及之后(After)的几行记录(如:-A5 表示输出关键字所在行之后的五行记录)
-B:输出关键字所在行及之前的几行记录(如:-B5 表示输出关键字所在行之前的五行记录)
举例:
grep Hello HelloWorld.java 查找HelloWorld.java文件中出现的Hello字符串的位置
grep hello *.java 查找当前目录中所有.java结尾的文件中包含hello字符串中的位置
find和grep的区别:
find命令是根据文件的属性(如:文件名)来查找文档的
grep命令是根据指定的关键字,来查找文件内容的
安装方式介绍:
二进制发布包安装:
软件已经针对具体平台编译打包发布,只要解压,修改配置即可
rpm安装:
软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题
yum安装:
一种在线的软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题
源码编译安装:
软件以源码工程的形式发布,需要自己编译打包
Linux软件安装:
安装JDK:
操作步骤:
1.使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux
2.解压安装包,命令为 tar -zxvf jdk-17.0.1._linux-x64_bin.tar.gz -C/usr/local
3.配置环境变量,使用vim命令修改/etc/profile文件,在文件末尾加入如下配置
exprot JAVA_HOME=/usr/local/jdk-17.0.10
export PATH=$JAVA_HOME/bin:@PATH
4.重新加载profile文件,使更改的配置立即生效,命令为source/etc/profile
5.检查安装是否成功,命令为 java -version
安装MySQL:
1.准备工作:卸载Linux系统中自带的mysql/mariadb安装包,否则MySQL将安装失败
rpm -qa | grep mariadb
rpm -e -nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
2.下载并上传mysql安装包
3.解压安装包到当前目录,并将解压后的文件夹移动到/usr/local目录下,改名为mysql
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
4.配置环境变量(编辑/etc/profile,追加内容)
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL——HOME/bin:$PATH
5.注册MySQL为系统服务
cp/usr/local/mysql/supportfile/mysql.server /etc/init.d/mysql
chkconfig --add mysql
6.初始化数据库
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化完毕后,日志会输出mysql的root用户的临时密码,记得复制记录下来
7.启动服务登录MySQL
systemctl start mysql
mysql -uroot -pxxxxx
8.配置MySQL的root用户密码,授权远程访问
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';
CREATE USER 'root'@'%' IDENTIFIED BY '1234';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
防火墙操作:
防火墙操作:
查看防火墙状态(systemctel status firewalld,firewall-cmd --state)
关闭防火墙(systemctl stop firewalld)
开启防火墙(systemctl start firewalld)
永久关闭防火墙(systemctl disable firewalld)
开放指定端口(firewall-cmd --zone=public --add-port=8080/tcp --permanent)
关闭指定端口(firewall-cmd --zone=public --remove-port=8080/tcp --permanent)
立即生效(firewall-cmd --reload)
查看开放的端口(firewall-cmd --zone=public --list-ports)
注意:
1.systemctl是管理Linux中服务的命令,可以对服务进行启动,停止,重启,查看状态等操作
2.firewall-cmd是Linux中专门用于控制防火墙的命令
3.为了保证系统安全,生成服务器的防火墙不建议关闭
安装Nginx:
1.安装nginx运行时需要的依赖:yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel
2.上传nginx的源码包
3.解压源码包到当前目录:tar -zxvf nginx-1.20.2.tar.gz
4.进入到解压目录(cd nginx-1.20.2)后,执行指令:./configure --prefix=/usr/local/nginx
5.执行编译nginx的指令:make
6.执行安装nginx的指令,安装到上述指定的 /usr/local/nginx 目录:make install
7.进入到nginx安装目录/usr/local/nginx,启动nginx服务:sbin/nginx
项目部署:
前端项目部署:
1.将打包好的静态资源上传到nginx的html目录中
2.配置nginx的配置文件,在conf/nginx.conf 中配置反向代理服务器及路径重写规则‘
3.在nginx的安装目录中,执行sbin目录下的nginx命令启动nginx服务:sbin/nginx 或 sbin/nginx -s reload
nginx启动操作:sbin/nignx
nginx停止操作:sbin/nignx -s quit
nginx重新加载:sbin/nignx -s reload
后端项目部署:
1.执行maven的父工程的package生命周期,对项目进行打包【打包之前,先连接上服务器数据库,先测试通过】
2.在linux服务器的/usr/local目录下,创建一个目录tlias-app,将jar包上传到服务器的 /usr/local/tlias-app目录中
3.然后在命令执行命令,运行jar包: java -jar xxxxxx.jar
上述运行jar包之后,会占用前台窗口,窗口关闭服务就停了,可以使用 nohup指令,后台运行服务,执行指令:
nohup java -jar xxxxxx.jar &> tlias.log &
查看进程:ps -ef | grep xxxx
Linux中的特殊符号:
|:管道符,将前面的命令的输出,作为后面的命令的输入
> 与 >>:重定向符号,将前面的文本内容,输出到后面的文件中(>:覆盖重定向>>:追加重定向)
查看系统的进程:ps -ef | grep java
杀死系统的进程:kill -9 xxxx