Linux常用命令指南

Linux是开发和运维人员常用的操作系统,熟练掌握Linux命令可以极大地提高工作效率。本文将介绍一些常用的Linux命令,并重点讲解如何监控Java程序的运行状态。

1. 文件和目录操作

1.1 ls - 列出目录内容

bash 复制代码
ls -l  # 列出详细信息
ls -a  # 列出所有文件,包括隐藏文件
ls -lh # 以人类可读的格式列出文件大小

1.2 cd - 切换目录

bash 复制代码
cd /path/to/directory  # 切换到指定目录
cd ..                 # 切换到上级目录
cd ~                  # 切换到用户主目录

1.3 pwd - 显示当前目录

bash 复制代码
pwd  # 显示当前工作目录的路径

1.4 cp - 复制文件或目录

bash 复制代码
cp source_file destination_file  # 复制文件
cp -r source_dir destination_dir # 复制目录

1.5 mv - 移动或重命名文件或目录

bash 复制代码
mv old_name new_name  # 重命名文件或目录
mv file /path/to/directory # 移动文件到指定目录

1.6 rm - 删除文件或目录

bash 复制代码
rm file  # 删除文件
rm -r directory  # 递归删除目录
rm -f file  # 强制删除文件,不提示

1.7 mkdir - 创建目录

bash 复制代码
mkdir new_directory  # 创建新目录
mkdir -p parent/child  # 创建多级目录

1.8 touch - 创建空文件或更新文件时间戳

bash 复制代码
touch new_file  # 创建空文件
touch existing_file  # 更新文件时间戳

2. 文件内容查看和编辑

2.1 cat - 查看文件内容

bash 复制代码
cat file  # 查看文件内容
cat file1 file2 > combined_file  # 合并文件

2.2 moreless - 分页查看文件内容

bash 复制代码
more file  # 分页查看文件内容
less file  # 更强大的分页查看工具,支持上下滚动

2.3 headtail - 查看文件头部和尾部内容

bash 复制代码
head -n 10 file  # 查看文件前10行
tail -n 10 file  # 查看文件后10行
tail -f file  # 实时查看文件新增内容

2.4 grep - 文本搜索

bash 复制代码
grep "pattern" file  # 在文件中搜索指定模式
grep -r "pattern" directory  # 递归搜索目录中的文件
grep -i "pattern" file  # 忽略大小写搜索

2.5 vivim - 文本编辑

bash 复制代码
vi file  # 使用vi编辑器打开文件
vim file  # 使用vim编辑器打开文件

3. 系统信息查看

3.1 uname - 显示系统信息

bash 复制代码
uname -a  # 显示所有系统信息
uname -r  # 显示内核版本

3.2 df - 显示磁盘使用情况

bash 复制代码
df -h  # 以人类可读的格式显示磁盘使用情况

3.3 du - 显示目录或文件的磁盘使用情况

bash 复制代码
du -sh directory  # 显示目录的总大小
du -ah directory  # 显示目录中每个文件的大小

3.4 free - 显示内存使用情况

bash 复制代码
free -h  # 以人类可读的格式显示内存使用情况

3.5 top - 实时显示系统进程状态

bash 复制代码
top  # 实时显示系统进程状态

3.6 ps - 显示当前进程状态

bash 复制代码
ps aux  # 显示所有进程的详细信息
ps -ef | grep java  # 查找Java进程

4. 网络操作

4.1 ifconfig - 显示和配置网络接口

bash 复制代码
ifconfig  # 显示所有网络接口信息
ifconfig eth0 up  # 启用eth0网络接口
ifconfig eth0 down  # 禁用eth0网络接口

4.2 netstat - 显示网络连接、路由表、接口统计信息

bash 复制代码
netstat -tuln  # 显示所有监听端口
netstat -anp | grep :8080  # 查找8080端口的连接

4.3 ping - 测试网络连接

bash 复制代码
ping google.com  # 测试与google.com的网络连接

4.4 ssh - 远程登录

bash 复制代码
ssh user@hostname  # 远程登录到指定主机

4.5 scp - 远程复制文件

bash 复制代码
scp file user@hostname:/path/to/destination  # 复制文件到远程主机
scp user@hostname:/path/to/file /local/destination  # 从远程主机复制文件

5. 监控Java程序

5.1 jps - 列出Java进程

bash 复制代码
jps  # 列出所有Java进程及其PID

5.2 jstat - 监控JVM统计信息

bash 复制代码
jstat -gcutil <pid> 1000 10  # 每1秒监控一次JVM垃圾回收情况,共10次
  • -gcutil:显示垃圾回收统计信息
  • <pid>:Java进程ID
  • 1000:监控间隔时间(毫秒)
  • 10:监控次数

5.3 jstack - 生成Java线程快照

bash 复制代码
jstack <pid> > thread_dump.txt  # 生成Java线程快照并保存到文件
  • <pid>:Java进程ID
  • thread_dump.txt:保存线程快照的文件名

5.4 jmap - 生成Java内存快照

bash 复制代码
jmap -heap <pid>  # 显示Java堆内存使用情况
jmap -dump:format=b,file=heap_dump.hprof <pid>  # 生成Java堆内存快照
  • -heap:显示堆内存使用情况
  • -dump:format=b,file=heap_dump.hprof:生成堆内存快照并保存到文件

5.5 jconsole - 图形化监控工具

bash 复制代码
jconsole  # 启动JConsole,连接本地或远程Java进程进行监控

5.6 jvisualvm - 图形化监控和分析工具

bash 复制代码
jvisualvm  # 启动VisualVM,连接本地或远程Java进程进行监控和分析

6. 其他常用命令

6.1 tar - 打包和解包文件

bash 复制代码
tar -cvf archive.tar file1 file2  # 打包文件
tar -xvf archive.tar  # 解包文件
tar -czvf archive.tar.gz directory  # 打包并压缩目录
tar -xzvf archive.tar.gz  # 解压并解包文件

6.2 find - 查找文件

bash 复制代码
find /path/to/search -name "*.log"  # 查找指定目录下的.log文件
find /path/to/search -mtime -7  # 查找最近7天内修改过的文件

6.3 chmod - 修改文件权限

bash 复制代码
chmod 755 file  # 修改文件权限为755
chmod +x script.sh  # 添加执行权限

6.4 chown - 修改文件所有者

bash 复制代码
chown user:group file  # 修改文件所有者和组

6.5 cron - 定时任务

bash 复制代码
crontab -e  # 编辑当前用户的定时任务
crontab -l  # 列出当前用户的定时任务

结论

掌握这些常用的Linux命令可以极大地提高工作效率,特别是在监控和调试Java程序时,这些命令和工具可以帮助你快速定位和解决问题。希望本文的内容能为你在实际工作中提供有价值的参考。

相关推荐
zhangzeyuaaa16 分钟前
Linux 挂载磁盘操作指南
linux·运维·服务器
wanhengidc21 分钟前
视频网站服务器网络连接不稳定该如何解决?
运维·服务器·网络·小程序
QX_hao1 小时前
事务的四大特性(ACID)详解
linux·运维·数据库
每天敲200行代码1 小时前
Linux 多线程-生产消费者模型&线程池&线程单例模式&其他
linux·c++·单例模式·线程池·生产消费者模型
中科三方2 小时前
什么是权威解析服务器?权威解析服务器有什么用?(国科云)
服务器·git·github
GP9_小怪兽2 小时前
deepseek流数据开发环境可以分批次接收 到服务器上返回的是流但数据一次就返回了
服务器
橙-极纪元2 小时前
2025最新版Ubuntu Server版本Ubuntu 24.04.2 LTS下载与安装-详细教程,细致到每一步都有说明
linux·运维·ubuntu
竹之却2 小时前
CentOS 7 防火墙配置相关指令 + 防火墙开放端口
linux·centos·防火墙·centos 7 防火墙配置
双向332 小时前
MinIO在Linux系统上的安装与部署
linux
双向332 小时前
MinIO在Linux系统上集群的安装与部署
linux