Skip to content

Linux 常用命令速查手册

系统管理

命令/操作说明示例
linux镜像网站CentOS 6.9 镜像下载https://mirrors.aliyun.com/centos-vault/6.9/isos/x86_64/
su切换到root用户su
echo $LANG查看当前系统中默认语言环境变量输出 en_US.UTF-8 表示美式英语
export LANG=zh_CN.UTF-8切换系统环境变量为中文export LANG=zh_CN.UTF-8
setup查看所有系统服务,带*的会自启动setup
reboot -w模拟重启但不重启,打印重启的日志reboot -w
cal 月 年打印日历cal 2023(打印2023整年)
date显示当前时间date
useradd / userdel添加用户 / 删除用户useradd zhangsan
wall广播向已登录的用户发送消息wall "系统即将维护"
df -lh查看磁盘空间df -lh
passwd / su修改用户密码 / 切换用户身份passwd zhangsan
scp -p test.txt root@111.1.1.1:/home/ok服务器文件传输把当前目录下的test文件推送到指定服务器
eject弹出光驱eject
bc计算器bc
trace / traceroute 地址网络诊断工具traceroute www.baidu.com
free查看服务器内存free -h
df查看磁盘空间df -lh
du -sh *查看已满磁盘du -sh *
crontab -l列出所有的定时任务crontab -l
iostat硬盘使用状态iostat -x 1
mpstatCPU 使用状态mpstat -P ALL 1
last登入记录last
echo "192.168.0.1 hostname" >> /etc/hosts在 hosts 中添加本机实际 IP 和域名的映射-
vi /etc/resolv.conf配置信赖的 DNS 服务器添加 nameserver 114.114.114.114
w查看系统负载、登录用户等信息w

w 命令输出说明

  • 当前时间:06:31:53
  • 系统运行时间:up 25 days, 9:53
  • 用户数:1 user
  • 负载平均值:1分钟、5分钟、15分钟的平均负载
  • USER:登录用户
  • TTY:登录终端
  • FROM:连接IP
  • LOGIN@:登录时间
  • IDLE:空闲时间
  • WHAT:当前运行的程序

文件与目录操作

命令/操作说明示例
>重定向到新文件(覆盖)echo "hello" > file.txt
>>重定向到文件末尾(追加)echo "world" >> file.txt
|把两个命令连起来(管道)ls -l | grep ".txt"
> ok.txt删除文件中的内容,不删除文件> ok.txt
wc统计行数、单词数、字节数wc -l file.txt
touch创建文件touch newfile.txt
mkdir创建一个目录mkdir mydir
tar -zcvf 名字.tar.gz 文件1 文件2压缩文件tar -zcvf backup.tar.gz file1 file2
tar -zxvf 压缩包解压文件tar -zxvf backup.tar.gz
rm 文件删除文件rm test.txt
rm -f 文件强制删除文件rm -f test.txt
rmdir 目录删除目录(需为空)rmdir emptydir
less 文件显示大文件内容less large.log+F 实时跟踪)
cat / nl显示小文件内容nl file.txt(显示行号)
grep -rn --color 关键字 文件搜索关键字(彩色高亮)grep -rn --color "error" *.log
tail -n 4700 aa.log | more -1000多屏显示空格键翻页
ctrl+w删除一个命令-
ctrl+u删除一整行命令-
ctrl+a / ctrl+e光标跳转到首 / 尾-
alias bd='cd /path/to/target/dir'起别名输入 bd 即可进入标记目录
history查看之前的命令操作history
xdg-open .Linux用图形界面操作当前目录xdg-open .
scp 1.txt root@136.39.68.18:/tmp传输文件把1.txt传输到指定服务器
ps -eo pid,lstart,etime | grep pid查看进程的启动时间和运行时间-
jar tf yourfile.jar显示jar里面所有的类名jar tf app.jar | grep '\.class$'
unzip -j xxx.jar 全路径类名.class提取class文件到本地-
jar uf xx.jar -C . 类名.class替换jar包中指定的类文件-
whereis 程序名查找特定程序的安装位置whereis nginx
which 文件名查找命令位置which java
cd / cd .. / cd ../.. / cd - / cd ~目录切换进入/回退/回退两级/回退刚才/回退主目录
lsof -i:端口号查看端口占用情况lsof -i:8080
fuser 端口号/tcp查看端口占用进程fuser 8080/tcp
lsof -a 文件查看文件的进程-
ps -ef|grep java / jps -l快速显示运行中的java进程-
lsb_release -a / cat /etc/*release* / uname -a查看所有linux系统版本-
lsof +d 目录列出目录下所有文件占用进程-
pwdx 进程显示进程所在目录pwdx 12345
netstat -tulnp | grep 进程号根据进程号查看端口-
netstat -a查看网络的连接状态-
ps -ef | grep 端口号查看指定端口号信息-

文本搜索与处理

命令/操作说明示例
grep -i '关键字' 文件 > result.txt把文件中带有关键字的数据输出到result.txtgrep -i 'error' app.log > error.txt
grep -o "关键字" 文件 | wc -l匹配关键字的数量grep -o "Exception" app.log | wc -l
grep -rn --color '关键字' -A10 -B2 文件查看关键字前后相关的内容-A 后10行,-B 前2行,-C 前后n行
grep -C 3 文件查看关键字前后3行日志grep -C 3 "ERROR" app.log
tailf 文件 > 保存的文件把接下来打印的日志传输到指定文件-
sed -n '/2023-01-21,2023-06-11' test.log根据时间范围查询日志-
sed -n '/2022-09-27 14:44/,/2022-09-27 14:54/p' 5003.logs > 1.logs找到对应时间段的日志并保存时间可换成关键字
journalctl --since 1hour ago查看1小时前到现在的日志-
journalctl --since "2016-08-04 20:00:00" --until "2016-08-04 20:15:00"查看指定时间段的日志-
head显示文件的开头几行(默认10行)head -20 file.txt
tail -n 10 nohup.out | grep '文字'查看最后10行并搜索-
tail -fn 100 nohup.out循环实时查看最后100行日志配合 | grep '关键字' 搜索
locate 关键字搜索相关的所有文件locate nginx.conf
locate \*.ps / find / -xdev -name \*.ps寻找以 '.ps' 结尾的文件-
find / -type f -name "*.txt"寻找系统中以 .txt结尾的所有文件-
find /home -type f \( -ctime -10 -o -mtime -10 \) -exec stat -c "%n: Created: %w Modified: %y" {} \;搜索在10天内被创建或者修改过的文件并显示日期-
find / -name httpd.conf使用find搜索所有httpd.conf文件-
find ./test_wl -name *.txt使用find搜索指定目录下的txt文件-
find / -name "syslog"根据文件名查找(可加通配符 *)-
find /var -size +10M根据文件大小查找(大于+ / 小于-)-
find -name "*.txt" -atime -7根据文件最近访问时间查找(7天内访问过)-
find . -name "file" -type f只查找当前目录下的file文件-
find . -name "file" -type d只查找当前目录下的file目录-
find . -type f -name "*.log" -exec grep -H "关键词" {} \;搜索当前目录下所有log文件中的关键字-
du -h *查看当前目录下文件的大小-
df -h查看硬盘使用情况-

Java/JVM 相关

命令/操作说明示例
jstat -gcutil <pid>查看新生代、老年代、堆内存使用情况jstat -gcutil 12345
jmap -histo <pid> | head -20显示进程占用jvm的大小jmap -histo 12345 | head -20
jps -l查看启动的jar进程jps -l

下载与网络

命令/操作说明示例
curl 'https://...' > wenjian.txt从指定URL下载内容并保存到文件-
wget -c http://example.com/file.zip从指定链接下载文件(支持断点续传)-
chmod u+x ~文件赋予权限chmod u+x script.sh
cat A.txt > B.txtA文件复制到B文件-
sftp 用户名@地址登录sftpsftp root@192.168.1.100
ftp 地址登录ftpftp 192.168.1.100
sudo cat /etc/vsftpd/user_listftp查看有哪些用户-
scp root@192.168.1.100:/data/test.txt /home/myfile/从服务器复制文件到本地-
scp /home/myfile/test.txt root@192.168.1.100:/data/从本地复制文件到服务器-
systemctl status firewalld查看防火墙状态-
systemctl start firewalld开启防火墙-
systemctl stop firewalld关闭防火墙-
firewall-cmd --reload防火墙重载-
systemctl restart firewalld重启防火墙-
netstat -tunlp查看端口命令-
firewall-cmd --list-port查看所有已开放的临时端口-
firewall-cmd --add-port=80/tcp添加临时开放端口(如80)-
firewall-cmd --remove-port=80关闭临时端口-
echo > 日志文件名清空日志-
service mysql start启动数据库-
service mysql stop停止数据库-
mysql -P 3306 -h localhost -uroot -p登录MySQL-

网络诊断

命令/操作说明示例
ifconfig显示和配置网络接口信息ifconfig
ping 地址向指定IP或域名发送ICMP回显请求测试网络ping www.baidu.com
traceroute 地址 / tracepath跟踪数据包从源到目的地的路径traceroute www.baidu.com
netstat显示网络统计和连接信息netstat -an
ss显示当前套接字状态ss -tuln
route显示和操作内核IP路由表route -n
nslookup 地址查询DNS记录,获取主机名对应的IP地址nslookup www.baidu.com
wget下载文件或网页wget http://example.com/file.zip
curl通过HTTP、FTP等协议传输数据curl http://example.com/api

Vim 文本编辑器

命令/操作说明
k向上移动一行
j向下移动一行
h向左移动一个字符
l向右移动一个字符
0移动到行首
$移动到行尾
gg移动到文件开头
G移动到文件结尾
i在光标后插入
I在行首插入
o在光标下方新建一行并插入
O在光标上方新建一行并插入
Ctrl+v进入可视化块插入模式
x删除光标所在字符
dd删除光标所在行
dG删除光标所在行及以下所有行
dgg删除光标所在行及以上所有行
yy复制光标所在行
p粘贴到光标下方
P粘贴到光标上方
u撤销上一步操作
Ctrl+r重做上一步撤销的操作
/查找关键字
n向后查找下一个匹配项
N向前查找下一个匹配项

文件比较

命令/操作说明示例
cmp 文件1 文件2比较两个文件是否相同cmp file1.txt file2.txt
diff 文件1 文件2准确比较两个文件的差异diff file1.txt file2.txt
chown 用户 文件名给指定用户所有权chown root file.txt

实用技巧

命令/操作说明
history | awk '{CMD[$2]++;count++;} END { for (a in CMD )print CMD[a] " " CMD[a]/count*100 "% " a }' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10列出你常用的10条命令
tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"终端动画效果
jar xf xx.jar / jar -cfM0 新jar包名字.jar *解压jar包 / 重新打包
history查看之前的命令操作

Logo hello world