## Linux系统优化一般情况,我们都会使用Linux来进行MySQL的安装和部署,Linux系统在使用的时候,也需要进行相关的配置,以提高MySQL的使用性能,这里列举以下几点:避免使用Swap交换分区,因为交换时是从硬盘读取的,速度很慢。将操作系统和数据分区分开,不仅仅是逻辑上,还包括物理上,因为操作系统的读写会影响数据库的性能。把MySQL临时空间和复制日志与数据放到不同的分区,数据库后台从磁盘进行读写时会影响数据库的性能。避免使用软件磁盘阵列。在Linux中设置swappiness的值为0,因为在数据库服务器中不需要缓存文件。使用 noatime 和 nodirtime 挂载文件系统,因为不需要对数据库文件修改时间。使用 XFS 文件系统,一种比ext3更快、更小的文件系统。调整 XFS 文件系统日志和缓冲变量 – 为了最高性能标准。使用64位的操作系统,这会支持更大的内存。删除服务器上未使用的安装包和守护进程,节省系统的资源占用。把使用MySQL的host和你的MySQL host放到一个hosts文件中## **==Linux 相关命令==**### Linux 再生产环境有没有用过 用过常用命令 :ls查询 top看进程 top-Hp 进程ID 查询进程得线程 ps-ef | grep java 查询进程ID rm -rf * 删除所有数据 tail -n 查看文件tar -zxvf 解压 chmod -R 777 设置权限Vi 编辑器pwd 查看当前位置得全路径 ls -a 查询所有### 基础命令:clear:清屏(置顶,并不是真正的清屏,滚轮可以看到之前的历史记录)ctrl+d:退出当前用户cd .. :返回上一级目录### 账号相关:1.创建用户:useradd (选项) 用户名注意点:需要root权限2.用户口令:passwd 用户名注意点:1. root用户可以更该所用用户密码,其余用户只能更改自己密码
2. 简单密码无法一次设置成功(回文,过短,过简单等),需要再次输入3.修改用户: usermod 选项 用户名选项:usermod可以查看选项,如 -l 表示修改登录名,-L锁定用户账号等注意点:修改用户名时如果该用户正在使用无法修改需要先退出当前用户4.删除用户:userdel (选项) 用户名注意点:若用户正在使用无法直接删除需要先退出,可以用-r(删除主目录和邮件池)-m(强制删除) 用户名 强制删除### 用户组相关:1.创建用户组: groupadd (选项) 用户组名注意点:需要root权限2.修改用户组: groupmod (选项) 用户组名groupmod -n 旧组名 新组名:更改组名3.查询用户所属组: groups 用户名注意点:如果未添加组,查询组名与用户名一致4.删除用户组: groupdel 用户组名### 用户组管理相关:示例:添加/删除/指定管理员/..用户:gpasswd -a/-d/-A/.. 用户名 组名### 系统管理相关:##### 日期:示例:date:没有参数显示系统当前时间,以年月日星期时分秒时区展示date -d "2020-12-12 11:11:11":展示字符串时间(格式与无参一致)date -s "2020-12-12 11:11:11":设置系统时间注意点:需要root权限需要查看其他命令时可通过 date --help查看##### 显示用户:
logname[–help][–vesion] 显示登录账号信息
–help:帮助
–vesion:显示版本信息
##### 切换用户:```java
su [选项] 用户名
-c 命令:切换用户执行-c 之后的命令再切换回原用户
id命令:
id:直接使用,查看用户所有的详细信息
sudo命令:
sudo -u root 命令
使用root用户执行命令
进程相关:
top命令:监控进程
pid:进程id
user:进程所属用户
pr:进程优先级
ni:进程优先级(负数高优先级)
virt:虚拟内存消耗量
res:
s:进程状态,s睡眠r运行
command:进程名字
注意点:实时监控,按Q退出
top -c:实时显示所有进程信息(显示完整命令)
top -p 进程pid:监控特定线程
ps命令:显示进程
ps:显示当前时刻正在运行的进程信息
ps -A:显示所有进程的简单信息
ps -ef:显示所有进程的详细信息
ps -u 用户名:显示指定用户的进程信息
kill命令:
kill 进程PID:直接杀死进程
kill -9 进程PID:强制杀死进程
kill -9 $(ps -ef |grep 用户名):过滤指定用户的进程并全部强制杀死
killall -u 用户名:杀死指定用户全部进程
系统管理其他命令:
关机和重启:
shutdown:立即或者1分钟后关机(根据OS版本)
shutdown -c:取消关机计划
shutdown -h now:立即关机
shutdown +n “警告信息”:显示警告信息,并在n分钟后关机
shutdown -r +n “警告信息”:显示警告信息,并在n分钟后重启
reboot:立即重启
目录管理命令:
ls命令:
ls -al:显示所有文件的详细信息
pwd命令
psw:查看当前所在目录
cd命令:
cd (相对路径或绝对路径) :切换目录
相对路径:相对当前目录而言(…/表示上一层目录)
绝对路径:由根目录/开始
文件管理命令:
mkdir命令:
mkdir [-p] 文件夹名称:在当前创建单层目录(-p确保目录名称存在,不存在的就建一个,用于直接创建多层文件夹)
rmdir命令:
rmdir 文件夹名称:删除指定文件夹,只能删除非空文件夹
rmdir -p bbb/ccc:删除ccc,如果删完之后bbb也是空的,bbb也一起删除
rm命令:
touch 文件名:创建文件
rm [选项] 文件 :删除文件(无法删除目录)
rm -r 目录:删除目录和目录中的所有内容
目录管理命令:
复制cp命令:
cp [选项] 数据源 目的地:文件复制(只能拷贝文件)
cp -r 数据源 目的地:文件及目录复制(cp -r a/* b)将a文件夹下全部拷贝到b文件夹中
剪切mv命令:
mv [选项] 数据源 目的地 (同目录改名),移动到目的地
文件属性相关:
第一位描述文件:d目录,-文件,I链接文档;
2-10位权限描述:r可读,w可写,x可执行,-没有权限
2-4位属主权限,5-7位属组权限,8-10位:其他用户权限
更改属主,数组命令:
-chgrp [选项参数 -v:带提示语句] [所属群组] [文件或目录]:更改属主(需要root权限)
chown命令:
chown 属主名 文件名 :更改属主
chown [参数选项 -R处理目录下所有] 属主名:属组名 文件名 : 更改属主和属组
chmod命令:
更改权限:chmod [参数选项 -R] 数字/符号权限 文件或目录
1.数组修改: r-4,w-2,x-1,-:0;rwxrwxrwx:777
2.符号修改:u-属主 g-属组 o-其他全选 a-全部
示例:chmod u=rwx,g=rx,o=r 文件
文件管理:
touch命令:
touch [参数选项] 文件名 (如果文件不存在,创建空文件,如果存在,修改最后修改时间属性)
批量创建:touch a{1…10}.txt 创建a1,a2…a10文件
stat 文件名:查看文件的详细信息
vi/vim(文本)编辑器:
打开新建文件:
vim 文件名:如果文件已存在,会直接打开如果不存在会打开临时文件,保存退出后新建文件
编辑模式进入命令模式:
命令模式:进入末行模式
vim定位行:
vim 文件名 +n:打开文件,并将光标定位在n行
文本文件操作相关命令:
查看命令:
cat [参数选项] 文件名:查看小文件内容,查看大文件无法显示全部
-n:显示行号
less [参数选项] 文件名:显示大文件内容,上下键查看未显示,q退出
-N:显示行号
head-n 文件名:查看文件的前一部分(与tail参数基本一致)
tail [参数选项] 文件名: 查看文件的最后十行
-n:显示最后n行,-f:动态显示最后十行(实时刷新,ctrl+c退出)
-n+a,从a行开始显示至最后一行,-c n :显示最后n个字符
grep [关键词] 关键字 文件名 : 根据关键字搜索文本文件内容或进程
-n:显示行号,-i:忽略大小写,-v展示不包含结果
ps -ef | grep 关键字 | grep -v “grep”
展示包含关键字进程并不展示查找进程(自己)
ps -ef | grep -c 关键字 :统计包含关键字的进程数目
文件管理echo:
echo 字符串:展示文本
echo 字符串 > 文件名:将字符串写到文件中(覆盖文件中内容)
echo 字符串 >> 文件名:将字符串写到文件中(不覆盖文件中内容)
cat 不存在的目录 &>> 文件名 将命令的失败结果追加到指定文件后面
软连接(快捷方式):
ln -s 目标文件路径 快捷方式路径
查找find命令:
find [参数选项]<指定目录><指定条件><指定内容> 在指定目录下查找文件
. 当前文件,**适配符 : find . -name "*.*txt"查找当前目录的txt文件
<指定条件>:
-name 文件名 根据文件名查找
-ctime -n或+n :按时间来查找文件,-n指n天以内,+n指n天以前
备份压缩-gzip,gunzip命令:
gzip命令:(压缩不保留源文件,解压不保留解压文件)
gzip 文件名 压缩文件(不保留源文件),*目录下文件全部单独压缩
注意点:压缩后文件无法二次压缩
gzip -dv * 解压文件并列出详细信息
gunzip命令:(压缩不保留源文件,解压不保留解压文件)
gunzip [参数] [文件] 解压文件(不保留压缩文件)
tar命令:
tar本身不具有压缩功能,调用压缩功能实现
tar [必要参数] [选择参数] [压缩/源文件] [源/压缩文件] :打包,压缩和解压(文件/文件夹)
常用组合:
zip,unzip命令:
zip [必要参数] [选择参数] [文件] : 压缩
压缩后会另外产生.zip后缀的压缩文件
-q 不显示执行过程,-r递归:将指定目录下的所有文件及子目录一并处理
unzip [必要参数] [选择参数] [文件] : 解压
只能解压.zip文件
-l:显示压缩文件内所包含的文件
-d<目录> 解压文件并存储到目录
网络命令:
ifconfig:展示网络设置信息;
ifconfig 网卡名 down/up:关闭/开启指定网卡(需要root权限)
ifconfig 网卡名 ip地址:更改指定网卡的ip地址
ifconfig 网卡名 ip地址 netmask 255.255.255.0:更改指定网卡的ip地址和子网掩码
ping [参数选项] ip地址或网址:测试是否连通
-c n:指定n次测试
netstat [参数选项]:显示网络状态
-a:显示系统中详细的连接情况
-i:显示网卡列表
安装插件:
yum:需要root权限
更改yum源:
yum -y install wget:下载下载工具
cd /etc/yum.repos.d/
mv CentOS-Base.rep CentOS-Base.repo.back :备份yum设置
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo:更改下载源为阿里云
yum clean all:清除原yum缓存
yum makecache:加载当前yum缓存
Docker 相关命令
1.docker 有没有用过
用过,模拟环境
常用命令:
docker ps 查看容器
docker image 查看镜像
docker search 搜索镜像
docker pull 拉取镜像
docker run xx 运行并创建容器
docker logs 查看容器日志
Docker面试题
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
- DockerClient客户端
- Docker Daemon守护进程
- Docker Image镜像
- DockerContainer容器
基本命令
systemctl start docker --启动docker
systemctl stop docker --关闭docker
systemctl restart docker --重启docker
systemctl enable docker --docker设置随服务启动而自启动
docker 镜像命令
docker version -- 查看docker版本号
docker --help --docker帮助命令
docker pull --help --拉取命令 不知道可以带哪些参数 咱可以这样使用
docker images --查看自己服务器中docker 镜像列表
搜索镜像
docker search 镜像名
docker search --filter=STARS=9000 mysql 搜索 STARS >9000的 mysql 镜像
拉取镜像
– 不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
docker pull 镜像名
docker pull 镜像名:tag
运行镜像
docker run 镜像名
docker run 镜像名:Tag
强制删除镜像
docker image rm 镜像名称/镜像ID
加载镜像
任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像
docker load -i 镜像保存文件位置
docker容器命令
docker ps 查看正在运行容器列表
docker ps -a 查看所有容器 -----包含正在运行 和已停止的
docker容器日志
# 查看redis容器日志,默认参数
docker logs tomcat
# 查看redis容器日志,参数:-f 跟踪日志输出;-t 显示时间戳;--tail 仅列出最新N条容器日志;
docker logs -f -t --tail=20 redis
# 查看容器redis从2021年08月10日后的最新10条日志。
docker logs --since="2021-08-10" --tail=10 redis