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 more
和 less
- 分页查看文件内容
bash
more file # 分页查看文件内容
less file # 更强大的分页查看工具,支持上下滚动
2.3 head
和 tail
- 查看文件头部和尾部内容
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 vi
和 vim
- 文本编辑
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进程ID1000
:监控间隔时间(毫秒)10
:监控次数
5.3 jstack
- 生成Java线程快照
bash
jstack <pid> > thread_dump.txt # 生成Java线程快照并保存到文件
<pid>
:Java进程IDthread_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程序时,这些命令和工具可以帮助你快速定位和解决问题。希望本文的内容能为你在实际工作中提供有价值的参考。