1.docker相关
1.1.docker容器时间慢八小时
1.进入容器
docker exec -it -u root 24795ac94ae7 /bin/sh
2.查看容器时间
date -R
3.在容器中创建文件
mkdir -p /usr/share/zoneinfo/Asia
4. 回到宿主机 复制宿主机的文件到容器 mynginx为文件名
docker cp /usr/share/zoneinfo/Asia/Shanghai mynginx:/usr/share/zoneinfo/Asia
5.进入容器 复制文件
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
备注:not writing through dangling symlink '/etc/localtime’错误 进到容器的etc文件夹 删除localtime文件 再复制就可以了
1.2.java服务dockerfile指定时区
1.3.docker容器路径
var/lib/docker/containers 可以删除日志文件 清理磁盘
1.4.docker为启动的容器设置为自动启动
docker update --restart=always 容器ID(或者容器名) docker update --restart=no 容器ID(或者容器名) #关闭容器自启动
1.5.docker文件复制
容器id+: 后边,没有空格 复制文件夹 docker cp d65625c68f6b:/home/ /lzp/dockerfile/ 复制文件 docker cp d65625c68f6b:/home/a.txt /lzp/dockerfile/b.txt
1.6.docker容器中下载vim
apt-get install -y vim 下载不成功的话指定源 mv /etc/apt/sources.list /etc/apt/sources.list.bak echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" >/etc/apt/sources.list echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free" >>/etc/apt/sources.list echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free" >>/etc/apt/sources.list echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free" >>/etc/apt/sources.list 然后执行 apt-get update 然后再 apt-get install -y vim 下载就可以了
1.7 查看docker容器状态 cpu 内存占用等
docker stats
2.时间相关
2.1.查看linux时间及时区修改
date
修改时间慢八个小时:etc/profile文件加入 export TZ=‘CST-8’ 重启服务器
2.2.java日志时间慢八小时
timedatectl
设置系统时区为上海 timedatectl set-timezone Asia/Shanghai 强制将时区写入bios clock -w
3.磁盘相关
3.1.查看当前目录中磁盘占用空间情况
du -sh * 查看当前文件下的每个文件夹的大小
du -sh /lzp/* 查看指定文件夹下的磁盘占用
3.2.查看磁盘使用情况
df -h
3.3.查看磁盘分区
lsblk
3.4.新建分区
fdisk /dev/sda
n 新建分区
d 删除分区
p 查看当前分区
w 保存并退出
操作完需要重启虚拟机
3.5.为根目录分区扩容
1.virtualbox修改
从40G调到80G
需要关闭虚拟机
2.改完启动虚拟机
运行lsblk
说明磁盘有80G 但是分区只占用了40G
3.安装growpart扩容工具
yum -y install cloud-utils-growpart
查看文件系统类型: df -TH
当文件系统为xfs类型时:
4.growpart [磁盘名称] [分区编号] growpart /dev/sda 1 #注意有空格 命令表示扩容磁盘的第1个分区(/dev/sda1) 5.xfs_growfs [分区名称] xfs_growfs /dev/sda1
当文件系统为ext*类型时:
resize2fs [分区名称] 例如,对/dev/vda1进行扩容: resize2fs /dev/vda1
这时再使用 df -h查看 空间会扩大
4.网络相关
4.1.查看端口使用情况
netstat -nultp
提示命令不存在的话:yum install -y net-tools
4.2.ping端口
telnet +端口 提示命令不存在 yum install telnet 退出:quit
4.3 访问网站
curl
4.4.修改虚拟机IP
1.cd /etc/sysconfig/network-scripts 2.vi ifcfg-eth1 3.systemctl restart network
5.文件操作
5.1.查看和新建文件
cat 查看 touch 新建
5.2.删除移动文件夹及文件
rm -rf * 删除当前文件夹下的所有文件 删除某一个文件夹 rm -rf ./文件夹名称 // ./代表当前路径 最好加 如果不加则表示根目录 /a就代表根路径下a文件夹 删除文件夹所有内容 文件夹保留 rm -rf ./* 加一个*号 移动文件夹 mv ./test01 ./test02 //test02存在的话 会把test01文件夹整体放到test02下 test02不存在的话 会新建test02文件夹 把test01文件夹中的内容放到test02下,删除test01文件夹 移动文件 mv a.txt /home/b 把当前文件夹的a.txt移动到b文件夹 复制文件夹 cp -r ./a ./b 如果b文件夹存在 则把a放到b 如果b文件夹不存在 则新建b文件夹 把a文件夹内容放到b内 复制文件 cp a.txt b.log 复制一份a.txt变成b.log
5.3.解压和压缩
tar -zxvf 压缩文件名.tar.gz //解压 tar -zxvf +压缩文件名.tar.gz +被压缩文件名 /// 压缩
5.4.查找文件所在位置
find / -name *.rdb find /lzp -name *.txt 在/lzp目录下找
5.5.按行查看文件(查日志)
head -n 5 文件名 //查看前5行 tail -n 5 文件名 //查看结尾5行 tail -f 文件名 //(功能描述:实时追踪该文档的所有更新 查日志) echo '' >文件名 清空日志文件
5.6.链接文件
ln -s xiyou/dssz/houge.txt ./houzi //连接文件 cd -P dssz/ //进入实际路径 pwd -P //显示实际物理路径 而不是链接路径
5.7.linux文件格式问题
1.执行sh脚本报错: invalid option set: -
vim 编辑时 :set ff 可以看到该文件的格式为 fileformat=dos
修改为 :set ff=unix
2.中文乱码
在windows中记事本编辑文件后另存为格式为UTF-8,然后重新打开文件再复制内容到linux即可。
3.检测脚本格式 不执行
5.8.~代表当前用户的路径
如果当前是root用户 cd ~ 代表进入到/root下 / 表示根目录 ./ 表示当前目录 ../ 上一级目录
【1】使用sh命令 (1)-n 只读取shell脚本,检测语法错误,但不实际执行 (2)-x 进入跟踪方式,显示所执行的每一条命令 (3)-c "string" 从strings中读取命令 (4)-v 读取并打印出整个shell脚本,检测语法错误,但不实际执行 #检测语法,但不实际执行 sh -nv 脚本文件 #边执行,边显示结果,遇到错误就停止脚本 sh -xv 脚本文件
6.进程相关
6.1.结束进程
kill -9 pid
6.2.查看进程
方式1:ps -ef | grep redis ppid也就是父进程id
方式2:jps -l #查看java进程
结束时直接 kill-9 23570即可
6.3.查看mysql的安装位置
rpm -qal |grep mysql rpm -qa |grep mysql
6.4.后台运行jar
nohup java -jar -Xmx128m -Xms128m xxx.jar --server.port=9090 & 使用ctrl+c退出 或者关闭窗口都不会中断程序
6.5. 查看已安装的软件
rpm -qa
6.6.查看cpu占用
top 然后大写P cpu ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head 内存 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
查看java程序内存占用排行
top -o %MEM -b -n 1 | grep java | awk '{print "PID: "$1" \t MEM: "$6" \t %CPU: "$9"% \t %MEM: "$10"%"}'
top -o %MEM -b -n 1 | grep java | awk '{print "PID: "$1" \t 虚拟内存: "$5" \t 物理内存: "$6" \t 共享内存: "$7" \t CPU使用率: "$9"% \t 内存使用率: "$10"%"}'
7.服务器相关
7.1.查看服务器架构
uname -m
x86_64 又称为amd64 还有一种是arm64
7.2查看内核版本
7.3.查询系统版本
7.4.ssh连接
ssh -p 2222 root@192.168.0.100
7.5.修改ssh密码
方式1 passwd root 然后输入密码 方式2 echo root:sbhibsdjkh123$ | chpasswd root是用户名 sbhibsdjkh123$ 是密码 $需要使用反斜杠
7.6查询服务器的CPU型号
cat /proc/cpuinfo | grep "model name"
7.7.查询服务器的GPU型号
nvidia-smi
7.8.grep
根据关键词查询
包含my的
不包含my的
docker ps |grep -v my
只打印第一个参数
7.9.修改host文件
vim /etc/hosts 192.168.56.10 www.aaa.com wq保存 然后执行systemctl restart network
7.10.快捷清屏
ctrl+l
7.11.简单压力测试
ab -n 10 -c 10 请求地址
命令不存在的话 yum -y install httpd
参数说明
-A:指定连接服务器的基本的认证凭据; -c:指定一次向服务器发出请求数;并发数 -C:添加cookie; -g:将测试结果输出为“gnuolot”文件; -h:显示帮助信息; -H:为请求追加一个额外的头; -i:使用“head”请求方式; -k:激活HTTP中的“keepAlive”特性; -n:指定测试会话使用的请求数;请求总数 -p:指定包含数据的文件; -q:不显示进度百分比; -T:使用POST数据时,设置内容类型头; -v:设置详细模式等级; -w:以HTML表格方式打印结果; -x:以表格方式输出时,设置表格的属性; -X:使用指定的代理服务器发送请求; -y:以表格方式输出时,设置表格属性。
#ab命令版本 [root@stache34 ~]# ab -V This is ApacheBench, Version 2.3 <$Revision: 1430300 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ [root@stache34 ~]# ab -h Usage: ab [options] [http[s]://]hostname[:port]/path Options are: -n requests #在测试会话中所执行的请求总个数,默认仅执行一个请求 -c concurrency #每次请求的并发数,相当于同时模拟多少个人访问url,默认是一次一个 -t timelimit #测试所进行的最大秒数。其内部隐含值是-n 50000 #它可以使对服务器的测试限制在一个固定的总时间以内 -s timeout #等待每个响应的最大值,默认为30秒 -b windowsize #TCP 发送/接收缓冲区的大小,以字节为单位 -B address #进行传出连接时要绑定到的地址 -p postfile #包含要 POST 的数据的文件,记得还要设置 -T 参数 -u putfile #包含要 PUT 的数据的文件,记得还要设置-T 参数 -T content-type #POST/PUT 数据所使用的Content-type头信息 #例如:application/x-www-form-urlencoded 默认值:text/plain -v verbosity #设置显示信息的详细程度 -4 或更大值会显示头信息 #3或更大值可以显示响应代码(404, 200等),2或更大值可以显示警告和其它信息 -w #以HTML表的格式输出结果,默认时,它是白色背景的两列宽度的一张表 -i #执行HEAD请求,而不是GET -x attributes #以HTML表格格式输出结果时,给 table 标签设置的属性值 #如 -x 'sytle="width=500px"' 输出的html中table标签会加上该属性