命令Linux\MySQL\Java
Linux
文本命令
-- 指定要进入的data目录
cd /data
- 查看文本
cat 文件
- 修改文本
vim 文件
-- vim使用后默认进行【命令模式】
-- 输入i进入【输入模式】 再按esc返回【命令模式】
-- 输入:进入【编辑模式】 输入wq回车即完成保存并退出
:wq 保存并退出
:q 不保存退出
:w 保存不退出
- 查日志
- 持续输出日志
tail -f 文件名
tail -f game.log |grep INFO
- 打印最后20行
tail -n 20 game.log
- grep 用于搜索文件中匹配指定模式的文本行
- 搜索文件filename中包含模式pattern的行。
grep 'pattern' filename
- n显示匹配行的行号
grep -n 'pattern' filename
- i搜索时忽略大小写
grep -i 'pattern' filename
- c统计匹配行的数量
grep -c 'pattern' filename
-- less模式
less game.log
- q退出
- 空格键 滚动一页(同f)
- 回车键 滚动一行(同j)
- G-移动到最后一行 定位到文档最尾部
- g-移动到第一行 定位到文档头部
j 下一行
k 上一行
f 向下滚动一屏幕
b 向上滚动一屏幕
进入less模式后,键入F,即实时滚动文档
F 实时滚动文档
Ctrl + c 退出实时滚动模式
类似效果:
tail -f xxx.log
-- 查找关键字内容时,常用向下查找、向上查看
/keyword 向下查找
n 向下匹配下一处匹配文本
N 向上匹配下一处匹配文本
?keyword 向上查找
n 向上匹配下一处匹配文本
N 向下匹配下一处匹配文本
-- 统计数量
grep -c "修复p_summary属性字段" game.log
less game.log | grep -c "修复p_summary属性字段"
-- grep -v 反向查找
-- 就是查找不含有 hello 字段的行
grep -v "hello"
- 复制
cp fgqj_ad_test_11/clear.sh fgqj_ad_testpvpops_1/
cp 源文件 目标文件
- 剪切 移动 将source_file文件剪切到destination_directory目录中
mv source_file destination_directory/
-- 删除binlog目录里的所有文件 f表示不询问
rm -f binlog/*
其他删除:
- 删除文件:
rm 文件 删除当前目录下的文件
rm -f 文件 删除当前目录的的文件(不询问)
- 删除目录:
rm -r aaa 递归删除当前目录下的aaa目录
rm -rf aaa 递归删除当前目录下的aaa目录(不询问)
- 全部删除
rm -rf * 将当前目录下的所有目录和文件全部删除
vim命令模式:


时间命令
- 时间
date
- 调时间
date -s "2022-11-11 10:00:00"
- 重置时间到当前时间
hwclock -s
监视和故障排查命令
-- 查看所有文件的大小 查看磁盘空间使用情况:-h参数表示以人类可读的格式(例如GB、MB)显示信息。
df -h
-- 查看当前目录的大小
du -sh
-- 相当于Windows的"总大小"
lsblk # 查看物理容量
-- 相当于Windows的"已使用空间"
df -h # 查看文件系统使用情况
-- 查看内存和交换分区的使用情况:-m参数表示以MB为单位显示内存使用情况。-g为GB,-k为KB,-b为Byte
free -m
-- 查看内存和交换分区的使用情况:-h参数表示以人可读的方式显示内存使用情况。即自动换算成GB、MB等单位表示
free -h
-- 查看内存占用前十的进程,且能看到内存占用多少
ps aux --sort=-%mem | head -n 11 | awk '{print $2, $4, $6/1024 " MB", $11}'
-- 查看所有运行中的进程pid
ps aux
ps aux | grep java
-- linux 强制关闭进程pid
kill -9 pid
-- 显示所有进程的CPU和内存占用情况
top
-- 显示进程号的所有的线程CPU和内存占用情况
top -Hp 进程号
查看CPU型号和基本信息
# 查看CPU型号和基本信息
cat /proc/cpuinfo | grep "model name" | uniq
# 物理核心数
grep "cpu cores" /proc/cpuinfo | uniq
# 逻辑处理器数(线程数)
grep -c "processor" /proc/cpuinfo
# CPU 的详细信息
lscpu
其他命令
- 运行.sh文件
sh xxx.sh
- 查看历史命令,过滤出命令中有mysql字样的
history |grep mysql
- 用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行,会输出一个名叫 nohup.out 的文件到当前目录下
- Command:要执行的命令。Arg:一些参数,可以指定输出文件。&:让命令在后台执行,终端退出后命令仍旧执行。
nohup Command [ Arg … ] [ & ]
-- 解压缩
tar -zxvf test.tar.gz
-- 压缩
tar -czvf 压缩后文件名.tar.gz 要压缩的文件名
-- 重启端口 远程debug内网外网时,连不上端口可以重启端口
systemctl stop iptables
-- 连不上外网,查看端口是否打开,没打开就不能访问
-- 运行 iptables -nL 可以查看当前系统的 iptables 防火墙规则(即使 firewalld 未运行,iptables 仍可能生效)。
iptables -L -n
-- 打开16001端口 打开后用iptables -L -n 查看是否已经打开
sudo /sbin/iptables -I INPUT -p tcp --dport 16001 -j ACCEPT
-- 检查当前系统中是否有 Java 进程正在监听 TCP/UDP 端口,通常用于确认 Java 应用(如 Tomcat、Spring Boot、JDWP 调试服务等)是否正常运行并绑定了预期的端口。
sudo netstat -tulnp | grep java
-- 重启MySQL服务命令 修改了mysql的配置等情况需要重启服务
sudo systemctl restart mysql
-- 变成以MB为单位 $3/1024/1024
jmap -histo 进程号 | head -20 | awk '{ print($1, $2, $3, $3/1024/1024, $4) }'
-- 结果格式化 变成以MB为单位 $3/1024/1024
jmap -histo 进程号 | head -20 | awk '{ printf("%-10s %-10s %-10s %-10s %-10s\n", $1, $2, $3, $3/1024/1024, $4) }'
管道符
在Linux中,管道符(|)是一个特殊字符,它用于连接两个或多个命令,将第一个命令的输出作为第二个命令的输入。这使得用户能够将多个命令组合在一起,以实现更复杂的任务。基本的管道符语法如下:
command1 | command2
其中,command1表示第一个命令,其输出将成为command2的输入。管道可以连接任意数量的命令,形成长串的命令管道。
Shebang 符号(#!)
释伴:Linux 上的 Shebang 符号(#!)-CSDN博客
常见 Shebang 示例
| Shebang | 用途 |
|---|---|
#!/bin/bash |
使用 Bash(最常用) |
#!/bin/sh |
使用标准 Shell(兼容性更好,但功能较少) |
#!/usr/bin/env bash |
通过 env 查找 Bash(兼容不同系统) |
#!/usr/bin/python |
用 Python 执行脚本 |
#!/usr/bin/perl |
用 Perl 执行脚本 |
MySQL
-- 登录mysql
mysql -uroot -proot
-- 展示所有数据库
show databases;
-- 使用qj4数据库
use qj4;
-- 展示所有表
show tables;
-- 查询
select * from p_role;
-- 新建数据库
CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 删除数据库
DROP DATABASE my_database;
导入
mysql -uroot -proot qj4 < qj4_import.sql
导出
-- 导出数据和表结构
mysqldump -uroot -proot qj4 > qj4_export.sql
-- 只导出表结构
mysqldump -uroot -proot -d qj4 > qj4_export.sql
-- 只导出数据
mysqldump -uroot -proot -t qj4 > qj4_export.sql
-- 导出特定表数据和结构
mysqldump -uroot -proot qj4 表名 > qj4_export_表名.sql
-- 只导出特定表结构
mysqldump -uroot -proot -d qj4 表名 > qj4_export_表名.sql
-- 只导出特定表数据
mysqldump -uroot -proot -t qj4 表名 > qj4_export_表名.sql
Java
- java命令,-m是输出传给main方法的参数,-v是输出启动JVM进程时传递给JVM的参数,-l是输出main方法所在类的完整路径或者JAR包的完成路径
jps -ml
jps -vl
- 显示这个进程的运行的java程序的信息
jinfo 进程号
- 显示内存每块区域占用的大小
jstat -gc 进程号
- 每 时间(ms)显示当前内存每块区域占用的大小
jstat -gc 进程号 时间
- 显示内存每块区域占用的百分比
jstat -gcutil 进程号 时间
- 显示进程号里所有的线程信息
jstack 进程号
-- jmap命令会STOP THE WORLD停止整个jvm内存情况保持不变。
-- 导致程序卡死(直接查看还是生成dump文件都会卡死),不能在线上使用啊!!!!
jmap
- 生成当前jvm所有对象的 创建数量 和 占用内存数量
jmap -histo 进程号
-- 显示前20行 结果是bytes为单位
jmap -histo 进程号 | head -20
-- 生成内存情况转储文件20241117.hprof,用工具去分析
jmap -dump:format=b,file=20241117.hprof 进程号
jmap -dump:live,format=b,file=heap.hprof <PID>
-- 变成以MB为单位 $3/1024/1024
jmap -histo 进程号 | head -20 | awk '{ print($1, $2, $3, $3/1024/1024, $4) }'
-- 结果格式化 变成以MB为单位 $3/1024/1024
jmap -histo 进程号 | head -20 | awk '{ printf("%-10s %-10s %-10s %-10s %-10s\n", $1, $2, $3, $3/1024/1024, $4) }'
-- 手动触发full gc 别在生产环境使用!
jcmd <pid> GC.run
浙公网安备 33010602011771号