一、基础操作(10条)
# 1. ls - 查看目录内容
ls -l # 长格式显示文件和目录
ls -a # 显示隐藏文件
ls -lh # 带单位显示文件大小
# 2. cd - 切换目录
cd /opt # 进入/opt目录
cd .. # 返回上级目录
cd ~ # 回到用户家目录
# 3. pwd - 显示当前路径
pwd # 输出:/home/user
# 4. mkdir - 创建目录
mkdir project # 创建project目录
mkdir -p a/b/c # 递归创建多级目录
# 5. rm - 删除文件/目录
rm file.txt # 删除文件
rm -rf dir # 强制递归删除目录
# 6. cp - 复制文件/目录
cp src.txt dst/ # 复制文件到目录
cp -r src/ dst/ # 递归复制目录
# 7. mv - 移动/重命名文件
mv file.txt new.txt # 重命名文件
mv src/ dir/ # 移动目录
# 8. touch - 创建空文件或更新时间戳
touch log.txt # 创建空文件
# 9. cat - 查看文件内容
cat config.properties # 显示文件全部内容
# 10. echo - 输出内容或变量
echo "Hello World" # 输出文本
echo $JAVA_HOME # 输出环境变量值
二、文件编辑(8条)
# 11. vim - 文本编辑器
vim app.java # 编辑Java文件
# 进入后按i进入编辑模式,编辑完成后按Esc,输入:wq保存并退出
# 12. nano - 简易编辑器
nano readme.txt # 编辑文本文件
# 13. more/less - 分页查看大文件
less log.txt # 分页查看日志文件
# 按/搜索关键词,n下一个,N上一个,q退出
# 14. head/tail - 查看文件首尾内容
head -n 10 log.txt # 显示前10行
tail -f app.log # 实时监控文件追加内容
# 15. grep - 文本搜索
grep "ERROR" log.txt # 搜索包含ERROR的行
grep -i "java" file.txt # 忽略大小写搜索
# 16. sed - 文本替换
sed -i 's/old/new/g' file.txt # 将文件中所有old替换为new
# 17. awk - 文本处理
awk '{print $1}' file.txt # 打印每行第一列
# 18. diff - 比较文件差异
diff file1.txt file2.txt # 显示两个文件的不同之处
三、权限与用户管理(8条)
# 19. chmod - 修改文件权限
chmod +x script.sh # 添加执行权限
chmod 755 app.jar # 精确设置权限(rwxr-xr-x)
# 20. chown - 修改文件所有者
chown user:group file.txt # 修改所有者和组
# 21. useradd/userdel - 管理用户
useradd dev # 创建新用户
userdel -r dev # 删除用户及其家目录
# 22. passwd - 修改密码
passwd root # 修改root用户密码
# 23. su/sudo - 切换用户/以管理员执行
su - user # 切换到user用户
sudo yum install java # 以root权限安装Java
# 24. id - 查看用户信息
id user # 显示用户ID、组ID等信息
# 25. groups - 查看用户所属组
groups user # 列出用户所属的所有组
# 26. whoami - 显示当前用户
whoami # 输出当前登录的用户名
四、进程管理(10条)
# 27. ps - 查看进程状态
ps -ef # 显示所有进程
ps aux | grep java # 过滤Java进程
# 28. top - 实时监控进程资源
top # 动态显示系统进程资源占用
# 按q退出,按M按内存排序,按P按CPU排序
# 29. htop - 交互式进程监控
htop # 比top更直观的进程监控工具(需安装)
# 30. kill/killall - 终止进程
kill 1234 # 终止进程ID为1234的进程
kill -9 1234 # 强制终止进程
killall java # 终止所有Java进程
# 31. pkill - 按名称终止进程
pkill -f "java -jar app.jar" # 终止包含指定字符串的进程
# 32. nice/renice - 调整进程优先级
nice -n 10 java -jar app.jar # 以较低优先级启动进程
renice 10 1234 # 将进程ID为1234的进程优先级调整为10
# 33. jps - 查看Java进程
jps -l # 显示Java进程ID和主类名
# 34. jstat - 监控JVM统计信息
jstat -gc 1234 # 查看进程1234的GC情况
# 35. jstack - 打印JVM线程堆栈
jstack 1234 > stack.txt # 将线程堆栈导出到文件
# 36. jmap - 生成JVM堆转储
jmap -dump:format=b,file=heap.hprof 1234 # 生成堆转储文件
五、网络操作(12条)
# 37. ping - 测试网络连通性
ping www.google.com # 测试与Google的连接
# 38. traceroute - 追踪网络路径
traceroute www.example.com # 显示到目标的路由路径
# 39. ifconfig/ip - 查看网络接口
ifconfig eth0 # 查看eth0接口信息
ip addr show # 显示所有网络接口信息
# 40. netstat/ss - 查看网络连接和端口
netstat -tulpn # 显示所有监听端口和连接
ss -tulpn # 更高效的网络连接查看工具
# 41. curl - 发送HTTP请求
curl https://api.example.com # 发送GET请求
curl -X POST -d 'data=123' https://api.example.com # 发送POST请求
# 42. wget - 下载文件
wget https://example.com/file.zip # 下载文件
# 43. ssh - 远程登录
ssh user@host # 登录远程主机
ssh -i key.pem user@host # 使用密钥登录
# 44. scp - 远程文件传输
scp local.txt user@host:/path/ # 上传文件
scp user@host:/path/remote.txt . # 下载文件
# 45. sftp - 安全文件传输协议
sftp user@host # 连接到远程主机
# 进入后使用put上传,get下载
# 46. nslookup/dig - DNS查询
nslookup google.com # 查询域名对应的IP
dig +short google.com # 只显示IP结果
# 47. telnet - 测试端口连通性
telnet host 8080 # 测试主机的8080端口是否开放
# 48. nc - 网络工具
nc -z host 8080 # 扫描端口
nc -l 8080 # 监听8080端口
六、系统信息(8条)
# 49. uname - 查看系统信息
uname -a # 显示完整系统信息
# 50. hostname - 查看/设置主机名
hostname # 显示当前主机名
hostnamectl set-hostname newname # 设置新主机名
# 51. date - 显示/设置系统时间
date # 显示当前时间
date -s "2023-01-01 12:00:00" # 设置系统时间
# 52. uptime - 查看系统运行时间和负载
uptime # 显示系统运行时间和负载情况
# 53. df - 查看磁盘空间
df -h # 以人类可读格式显示磁盘空间使用情况
# 54. du - 查看目录大小
du -sh /opt # 显示/opt目录的总大小
du -h --max-depth=1 /opt # 显示/opt下一级目录的大小
# 55. free - 查看内存使用
free -h # 以人类可读格式显示内存使用情况
# 56. vmstat - 查看系统内存、CPU状态
vmstat 1 10 # 每秒采样1次,共采样10次
七、压缩与归档(6条)
# 57. tar - 打包/压缩文件
tar -zcvf archive.tar.gz dir/ # 创建gz压缩包
tar -zxvf archive.tar.gz -C /tmp # 解压到/tmp目录
# 58. zip/unzip - ZIP格式压缩/解压
zip -r archive.zip dir/ # 压缩目录为ZIP
unzip archive.zip -d /tmp # 解压ZIP到/tmp
# 59. gzip/gunzip - GZIP压缩/解压
gzip file.txt # 压缩文件
gunzip file.txt.gz # 解压文件
# 60. bzip2/bzcat - BZIP2压缩/查看
bzip2 file.txt # 压缩文件
bzcat file.txt.bz2 # 查看压缩文件内容
# 61. xz - XZ压缩
xz file.txt # 压缩文件为xz格式
# 62. unrar - 解压RAR文件
unrar x archive.rar # 解压RAR文件
八、软件包管理(8条)
基于RPM(CentOS/RHEL)
# 63. yum - 包管理器
yum install java-11-openjdk # 安装Java 11
yum update # 更新所有软件包
# 64. rpm - 管理RPM包
rpm -ivh package.rpm # 安装RPM包
rpm -e package # 卸载RPM包
基于DEB(Ubuntu/Debian)
# 65. apt-get/apt - 包管理器
apt install openjdk-11-jdk # 安装Java 11
apt update && apt upgrade # 更新软件包
# 66. dpkg - 管理DEB包
dpkg -i package.deb # 安装DEB包
dpkg -r package # 卸载DEB包
通用
# 67. wget/curl安装脚本
curl -sSL https://get.docker.com | sh # 安装Docker
# 68. snap - 软件包管理
snap install postman # 安装Postman
# 69. make/configure - 编译安装源码
./configure # 配置编译选项
make # 编译源码
make install # 安装程序
# 70. pip - Python包管理
pip install requests # 安装Python请求库
九、服务与定时任务(6条)
# 71. systemctl - 管理系统服务
systemctl start nginx # 启动Nginx服务
systemctl enable nginx # 设置Nginx开机自启
systemctl status nginx # 查看Nginx状态
# 72. service - 管理服务(旧系统)
service httpd restart # 重启Apache服务
# 73. chkconfig - 管理服务启动项(旧系统)
chkconfig httpd on # 设置Apache开机自启
# 74. crontab - 设置定时任务
crontab -e # 编辑定时任务
# 添加类似下面的行:0 0 * * * /backup/script.sh (每天0点执行备份)
# 75. at - 一次性定时任务
at 23:00 today # 设置今天23点执行命令
# 输入命令后按Ctrl+D保存
# 76. journalctl - 查看系统日志
journalctl -u nginx.service # 查看Nginx服务日志
journalctl -f # 实时监控日志
十、高级操作(10条)
# 77. find - 文件搜索
find / -name "*.jar" 2>/dev/null # 搜索所有.jar文件
find . -type f -mtime -1 # 查找一天内修改的文件
# 78. xargs - 处理命令输出作为参数
find . -name "*.txt" | xargs rm # 删除所有txt文件
# 79. 管道(|) - 连接多个命令
ps aux | grep java | awk '{print $2}' # 获取Java进程ID
# 80. 重定向(>, >>) - 输出重定向
echo "hello" > file.txt # 覆盖文件内容
echo "world" >> file.txt # 追加内容到文件
# 81. alias - 创建命令别名
alias ll='ls -l' # 创建ll别名
alias grep='grep --color=auto' # 带颜色的grep
# 82. export - 设置环境变量
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk # 设置Java_HOME
# 83. source - 重新加载配置文件
source ~/.bashrc # 重新加载bash配置
# 84. time - 测量命令执行时间
time java -jar app.jar # 测量Java程序执行时间
# 85. watch - 定时执行命令并显示结果
watch -n 1 'ps aux | grep java' # 每秒刷新一次Java进程
# 86. tee - 同时输出到屏幕和文件
ls -l | tee files.txt # 同时显示和保存目录列表
十一、快捷键与技巧(8条)
# 87. Ctrl+C - 终止当前命令
# 在运行命令时按Ctrl+C终止执行
# 88. Ctrl+Z - 暂停当前命令
# 在运行命令时按Ctrl+Z暂停,可用fg恢复
# 89. Ctrl+D - 退出Shell会话
# 在终端中按Ctrl+D退出当前会话
# 90. Tab - 命令/文件名自动补全
# 输入命令或文件名时按Tab自动补全
# 91. ↑/↓ - 浏览历史命令
# 按上/下箭头浏览之前输入的命令
# 92. !! - 执行上一条命令
!! # 执行上一条命令
# 93. history - 查看命令历史
history # 显示所有历史命令
!123 # 执行历史中第123条命令
# 94. man - 查看命令手册
man ls # 查看ls命令的手册页
十二、Java开发专用(4条)
# 95. java - 运行Java程序
java -jar app.jar # 运行JAR包
java -Xmx512m MainClass # 指定最大堆内存为512M
# 96. javac - 编译Java源文件
javac HelloWorld.java # 编译Java文件
# 97. javadoc - 生成Java文档
javadoc -d docs src/*.java # 生成Java文档到docs目录
# 98. jar - 创建/操作JAR包
jar cvf app.jar *.class # 创建JAR包
jar tf app.jar # 查看JAR包内容
十三、Docker相关(6条)
# 99. docker run - 运行容器
docker run -d -p 8080:8080 tomcat:9.0 # 后台运行Tomcat容器
# 100. docker ps - 查看运行中的容器
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器(包括已停止的)
总结
- 基础命令:先掌握ls、cd、mkdir、rm、grep等日常高频命令
- Java开发:重点熟悉jps、jstat、jstack、java等JDK工具
- 运维必备:掌握ps、top、netstat、systemctl等系统管理命令
- 实践为主:通过实际项目练习,遇到问题时查阅对应命令参数
本文暂时没有评论,来添加一个吧(●'◡'●)