Linux
一、简介
1.1 介绍
-
Linux:是一种开源、免费的操作系统,安装在计算机硬件上,用来管理计算机硬件和软件资源的系统软件
-
Linux 比较安全、稳定性、高并发处理能力
- 但是没有优异的可视化界面 大多数都是基于终端命令使用Linux指令操作系统
-
windows用于个人计算机 linux主要是用于企业服务器上
1.2 发行版本
- linus在1991年开发,linux的内核程序,在基础上陆续推出了:Ubunt(乌班图)、RedHat(红帽)、CentOS
1.3 安装Linux系统
1.3.1 虚拟机:VMware Workstation Pro
- 可以用软件模拟出一套具有完整硬件系统功能、运行在一个完全隔离的环境中
1.3.2 安装系统 映像文件:CentOS-7-x86_64-DVD-2009.iso
1.3.3 设置管理员密码 用户账号:zheng密码 :root
1.4 目录结构
-
bin ->usr/bin : 存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何目录下执行。
-
usr/local/bin:存放用户自己的可执行文件,同样这里存放的可执行文件可以在系统的任何目录下执行。
-
etc: 这个目录存放所有的系统管理所需要的配置文件。
-
home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名,叫作用户的根目录;用户登录以后,默认打开自己的根目录。
-
opt: 这是给linux额外安装软件所存放的目录。比如你安装一个Oracle数据库则就可以放到这个目录下,默认为空。
1.5 远程操作
-
Xshell:Linux的终端模拟软件
- 免安装但要破解:先运行卸载.bat 在运行绿化.bat
- 启动并远程连接Linux系统:创建会话
-
Xftp:文件传输软件
- 免安装但要破解:先运行卸载.bat 在运行绿化.bat
- 启动并远程连接Linux系统:创建会话
- Linux查看ip:ifconfig
二、指令
2.1 vi和vim Linux的文本编辑器
-
vim是vi的增强版 vi绝大多数用法都可以在vim适用
-
创建 查看 编辑文本文件
-
vi vim使用:
-
在opt下创建目录 命令 【mkdir 文件名】
-
进入目录 使用命令 【vim 文件名.txt】
1)一般模式:上下左右键查看文件 不能编辑
- 【按a/i键进入编辑】
- 【按shift + :进入命令行】
2)编辑模式:编辑文件 不能保存
3)命令行模式:
- 【q!】不保存强制退出编辑器
- 【wq】保存并退出编辑器
- 【q】退出编辑器
-
-
vi vim快捷键:
一般模式:
- yy复制当前行
- 数字+yy 复制几行
- dd 删除当前行
- 数字+dd 删除几行
- p粘贴下一行
- u 撤销
命令行模式:
-
set nu 显示行号
-
set nonu 取消行号
-
/+关键字 查找 然后按n 为下一个关键字
2.2 用户管理
-
使用任何Linux的系统资源的用户,必须有一个合法的账号密码
-
账号密码一般都是向系统管理员申请、
-
添加用户:【useradd 用户名】
- 创建一个用户 会在home目录下创建根目录 目录名与用户名一致
- 任何用户至少会属于一个组 不指定会新建一个组 组名和用户名一致 并添加进该组
- 指定home下的根目录【useradd -d /home/xxx 用户名】
-
设置密码:【passwd 用户名】
-
删除用户:【userdel 用户名】*只能用管理员
- 删除用户的同时删除主目录【userdel -r 用户名】
-
查看用户的信息:【id 用户名】
-
切换用户:【su 用户名】* 权限高切权限低不需要密码 反之则需要
2.3 组管理
-
组相当角色的概念,可以对有共性的用户进行统一管理
- 每个用户最少属于一个组 可以属于多个组 不能独立组外存在
- 有一个主组在用户创建时指定的 不能改
- 一个副组
-
添加组【groupadd 组名】
-
删除组 【groupdel 组名】
-
用户添加进组 【gpasswd -a 用户名 组名】
-
用户从组移除 【gpasswd -d 用户名 组名】
-
添加用户时 指定所属的组【useradd -g 组名 用户名】
2.4 系统操作命令
-
关机
- 立即关机【shutdown now】
- 定时关机【shutdown -h xxx】
- 立即重启【shutdown -r now】【reboot】
-
同步数据库:sync
2.5 帮助命令 【man 命令名】【help 命令名】
-
按【q】退出
-
【空格】翻页
-
【回车】翻一行
2.6 文件 目录的操作命令
2.6.1 【ls命令】
- 查看当前所在目录路径【pwd】
- 查看当前目录下的子目录【ls】
- 查看指定目录下子目录【ls /目录名】
- 列表形式展现【ls -l /目录名】
- 也要显示虚拟目录【ls -a /目录名】
- 列表展示并也要显示虚拟目录【ls -al /目录名】
2.6.2【cd命令】
- 绝对目录 【cd /详细路径】
- 相对目录 【cd 当前路径下】
- 进入当前用户的根目录【cd ~】
- 当前目录的上级目录【cd …】
- 当前目录【cd .】
2.6.3 创建目录【mkdir 目录名】
- 绝对目录
- 相对目录
- 只能创建一个 创建多级目录【mkdir -p 目录路径】
2.6.4 删除非空目录【rmdir 目录】
2.6.5 创建文件【vi vim】
2.6.6 创建一个或者多个文件【touch 文件名.xxx】
- 多个文件用空格隔开
- 文件名前可以有绝对路径或相对路径
2.6.7 复制文件或目录【cp 源 目标】
- 只能复制空目录 如若【cp -r 源 目标】
- 如果重复有提示
2.6.8 删除文件或目录【rm 名】
- 提示删除【rm 名】
- 强制删除【rm -f 名】
- 删除目录 【rm -r 目录名】提示递归删除文件
- 强制删除目录 【rm -rf 目录名】
2.6.9 移动目录或文件【mv 源 目标】
- 文件也可以是重命名【mv 文件.xxx 新文件名.xxx】
2.6.10 查看系统常量或变量【echo $名】
2.6.11把前面一个查看命令输出到终端的结果写入文件【查看命令 > 文件.txt】
-
如果文件不存在 则新建
-
如果文件存在 则覆盖
-
查看文件内容输出到终端【cat 文件名】
2.7 关于日期和时间的操作命令
2.7.1 查看时间【date】
-
当前年份【date +%Y】
-
当前月份【date +%m】
-
当前日期【date +%d】
-
当前日期格式【date ‘+%Y-%m-%d %H:%M:%S’】
-
设置当前系统时间【date -S ‘2020-10-20 10:20:30’】
-
查看当前日历【cal】
-
查看年份日历【cal 年份】
2.8 搜索文件或目录
2.8.1【find 关键字】
- 通配符*
- 可以指定目录【find /目录路径 关键字】 可以当前路径下
- 可以按文件大小 【find -size +5M】+大于 -小于 =等于 M兆 K
- 可以搜索目录下所有者是用户的【find \目录路径 -user 用户名】
2.8.2 搜索文件或目录【locate 关键字】
- 会在整棵树目录中寻找 但是搜索前要更新树【updatedb】
- 不会到磁盘去寻找 效率更快
2.8.3 【查看命令 搜索命令|grep 过滤条件】
-
严格区分大小写
-
不区分大小写【查看命令 搜索命令|grep -i 过滤条件】
-
可以显示行号【查看命令|grep -ni 过滤条件】
2.9 压缩 解压命令
-
压缩 解压单个文件
- 【gzip 文件名】压缩 :生成【.gz】后缀压缩包 会删除原文件
- 【gunzip 压缩包名】解压:解压也会删除原文件
-
打包多个文件和目录
- 【zip 目标压缩包名.zip 文件名或目录】:通常使用【.zip】压缩包 不会删除原文件
- 【unzip 压缩包名】
- 【unzip 压缩包名 -d 目录】解压到指定目录 不会删除原文件
-
压缩 打包多个文件和目录 但只有一个命令:
【tar - zcvf xxx.tar.gz 文件或目录】多文件空格隔开 压缩
【tar - zxvf xxx.tar.gz -C 目录】解压
- 选项【tar -c 目标压缩包名.tar.gz 打包的文件或目录】打包
- 选项【tar -x 压缩包名.tar.gz -C 指定解压目录】解压
三、组
3.1 文件或目录 组
- 每个文件或目录必须属于一个组 也只能属于一个组
- 文件通过组判断哪些用户能对它进行操作 既文件的访问权限
3.2 查看文件所有者和所在组【ls -l】
- 当前目录下的所有文件
- 也可以指定
3.3 修改文件所有者【chown 新所有者 文件】
- 【chown 新所有者:新的组 文件】
- 【chown -R 新所有者:新的组 文件】递归修改目录下所有文件
3.4 只修改组【chgrp 组 文件】
四、文件目录权限
4.1 在文件看来 用户分为三类:
- 所有者:默认情况下,文件的创建者 可以修改
- 同组用户:跟文件属同一个组
- 其他组用户:既不是文件所有者 也不是同组用户
4.2 文件或目录都有三种权限:
- 文件而言:
- 读(Read)查看 读取文件的内容 比如【cat】
- 写(Write)可以修改文件内容 比如【vi vim】
- 执行(Execute)如果文件是可执行文件 【.sh】直接运行 比如【./xxx.sh】
- 目录而言:
- 读(Read)查看 读取目录下的内容 比如【ls】
- 写(Write)可以修改目录中内容 创建、修改、删除、重命名 文件或目录
- 执行(Execute)能不能进入目录 比如【cd】
4.3 权限控制:
-
三部分控制:
- r、w、x分别表示:读、写、执行
- 【ls -l】三部分 分别代表 所有者 同组用户 其它组用户权限
- root拥有超级权限 所有者权限
-
查看文件、目录的权限【ls -l】
-
一、修改文件、目录的权限 【chmod u=rwx,g=rwx,o=rwx,a=rwx 文件】
- 用r w x:读 写 执行
- u g o a:所有者 同组用户 其他组用户 所有用户 修改权限
- +、-、= :增删 设置权限
-
二、使用数字的方式修改文件权限【chmod 777 文件】
- 数字对应421:读写执行
- 每部分分别对应一个数字 权限的和
五、网络配置
-
在linux配置文件中修改【vim /etc/sysconfig/network-scripts/ifcfg-ens33】
-
每次使用静态IP:BOOTPROTO=“static”
-
每次启动加载一次该文件:ONBOOT=“yes”
-
设置的IP地址:
//虚拟机上编辑>>虚拟网络编辑器>>NAT模式>>DGCP设置查看IP地址范围
//虚拟机上编辑>>虚拟网络编辑器>>NAT模式>>NAT设置查看网关IP 下面两个一样
IPADDR=192.168.75.129
GATEWAY=192.168.75.0
DNS1=192.168.75.0
六、进程管理
-
线程:一个程序的线路
-
进程:一个程序的执行,一个进程会占用一个端口
-
查看进程【ps】显示应用进程
-
查看进程【ps -e】显示所有进程
-
查看进程【ps -ef】显示所有详细进程
- 查看某些软件是否是启动状态
- 查看指定进程【ps -ef|grep 名】
-
关闭进程【kill -数字 PID】
七、服务管理
-
服务介绍:服务是支持Linux运行一些必要的程序 本质也是进程 叫守护进程
-
操作服务【systemctl [start启动|stop停止|restart重启|reload加载数据|status查看当前状态|enable设置] 服务名称】
-
firewalld 防火墙名称
-
比较老的 service 命令 逐渐淘汰
八、软件包管理
软件安装包
8.1 RPM包管理(了解)
- 一种Linux的软件包的打包安装的工具,操作的软件包都是【.rpm】结尾
- 查看系统中已安装的 rpm软件包【rpm -qa】
- 卸载rpm软件包【rpm -e 软件包名】
- 安装rpm包【rpm -ivh 软件包】 将软件包放在/opt下安装
8.2 YUM包管理 改进
- 基于RPM的软件管理工具 它能从指定服务器自动下载 安装 处理软件包之间的依赖
- 查看系统中已安装的 rpm软件包【yum list installed|grep 名】查看并过滤
- 卸载rpm软件包【yum remove 软件包】
- 安装rpm软件包【yum install 软件包】必须有外网
九、安装JDK
-
在/opt下放 jdk包.tar.gz文件 然后【tar -zxvf jdk包.tar.gz】解压
-
在【/etc vim profile 】在etc下编辑 添加环境变量
-
在export下添加 最后输入export 变量名 变量名
JAVA_HOME=/opt/jdk1.8.0_121 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=$JAVA_HOME/lib:.
-
加载一下Linux 【source】
-
测试【java -version】
十、安装Tomcat服务器
-
在/opt下放 Tomcat包.tar.gz文件 然后【tar -zxvf Tomcat包.tar.gz】解压
-
在安装的Tomcat下bin 执行【./startup.sh】启动Tomcat
-
127.0.0.1:8080 访问 如果是外人访问
需要关闭防火墙【systemctl start启动|stop停止 firewalld 】
-
192.168.75.129:8080
十一、安装mysql
-
检查是否安装mariadb
检查命令【yum list installed|grep mariadb】
卸载命令【yum -y remove mariadb-libs.x86_64】参数 -y 不需要确认直接卸载
-
在/opt下放 mysql包.tar.gz文件 然后【tar -zxvf mysql包.tar.gz】解压
-
重命名 【mv mysql-5.7.18-linux-glibc2.5-x86_64/ mysql-5.7.18】
-
在安装的目录 创建数据文件夹data存放数据库文件的【mkdir data】
-
创建执行mysql命令的Linux用户
创建组名 【groupadd mysql】
创建用户指定组名【useradd -g mysql mysql】
-
bin下初始化数据库并指定data
【./mysqld --initialize --user=mysql --datadir=/opt/mysql-5.7.18/data --basedir=/opt/mysql-5.7.18】
- 账号root 初始化密码:;n2*7g1/.OV&
-
bin下启动安全功能
【./mysql_ssl_rsa_setup --datadir=/opt/mysql-5.7.18/data】
-
opt下修改mysql-5.7.18目录权限【chown -R mysql:mysql /opt/mysql-5.7.18/】
-
启动mysql/bin下启动【./mysqld_safe &】&是表示后台启动
不加& 会占领一个DOS窗口给mysql 要在创一个DOS才可以
查看启动成功【ps -ef |grep mysql】
-
bin下客户端登录mysql【./mysql -uroot -p】临时密码
-
修改密码【alter user ‘root’@‘localhost’ identified by ‘root’;】
-
授权远程访问
【grant all privileges on . to root@’%’ identified by ‘root’;】
更新权限信息,执行flush刷新权限 【flush privileges;】
关闭防火墙:【systemctl stop firewalld】
远程连接数据库:Navicat软件远程连接
-
关闭mysql【./mysqladmin -uroot -p shutdown】
十二、部署项目
- 启动Linux数据库 加载数据库信息 关闭防火墙
- 打包java项目 war
- 将war 放/opt/apache-tomcat-8.5.35/webapps下
- http://192.168.75.129:8080/xxx