Linux常用命令
文件操作
- ls:列出目录内容
- cd:进入指定文件目录
- pwd:显示当前目录完整路径
- find:寻找符合条件的文件
- cp:复制文件(cp -r 复制目录)
- mv:移动或重命名文件
- rm:删除文件(rm -r 递归删除目录)
- mkdir:创建新目录
- cat:查看文件内容
文本处理(例如查看日志)
- 查看
- cat:显示整个日志文件内容(注意大文件会输出所有内容),cat + 日志文件
- more和less:分页显示日志文件(类似vim),more / less + 日志文件
- head和tail:查看日志文件前几行或后几行,head / tail + 日志文件
- 统计
- sort / uniq:排序和去重,这两个命令经常一起使用
下面这个命令输出nginx日志的ip和每个ip的pv,展示pv最高的前10 awk -F"|" '{print $3}' access.log | sort | uniq -c | sort -nk1 -r | head -n10
- 过滤
- sed:可以完成基本的文件编辑任务,sed 's/old/new/g' 文件名(将文件中的old替换为new,但是不修改文件本身,s表示替换,d删除,i插入,a追加)
- diff:比较两个文件的差异并显示不同之处,diff 文件1 文件2
grep
:对内容进行过滤- 搜索文件中包含指定文本的行:grep "指定文本" 文件名(-i忽略大小写,-n显示行号)
- 搜索日志文件中的错误信息:grep "error" 日志文件(看某个异常前后相关的内容,可以使用ABC参数,A after 内容后n行 B before 内容前n行 C count? 内容前后n行,例如grep -rn --color Exception -A10 -B2 error.log)
- grep搭配管道使用:ps aux | grep "进程名"
awk
:强大的文本处理工具,主要作用是对复杂文本文件中的数据进行筛选、提取和处理。基本格式:awk '模式 {动作}' 文件名
- 打印每行:awk '{ print }' 文件名 - 打印每行第一个字段:awk '{ print $1 }' 文件名 - 模式匹配,打印包含pattern的行:awk '/pattern/ { print $0}' 文件名
vim工具
- 插入模式:i
- 普通模式:在插入模式中按Esc
- 保存:w,保存并退出:wq,强制退出(不保存):q!
- 复制一行:yy,删除一行:dd
- 粘贴:p,撤销:u
系统管理
ps
:显示所有进程的详细信息top
:增强版ps,实时查看系统资源使用情况包括CPU使用率,平均负载,内存,交换空间,进程列表(PID,用户,CPU占用率,内存占用率,进程状态等)- free:查看内存和交换空间使用情况
- df:显示磁盘使用情况
- kill:终止进程
- chmod:更改文件或目录权限(例如"chmod 777 文件名"表示赋予文件所有权限,7=4+2+1分别表示读写执行)
- chown:修改文件或命令所有者和所属组
- useradd / groupadd:创建用户/用户组
- reboot:重启系统
- shutdown:关机
- systemctl restart network:重启服务,例如网络
进程管理
- 查看所有进程信息:top
- 查看进程的堆栈信息:pstack+PID 或 gdb调试器(附加到运行中的进程并打印堆栈跟踪)
- 查看僵尸进程:top界面按z可以高亮僵尸进程 或 ps -aux | grep Z
- 僵尸进程指执行完成但是父进程未读取其状态信息的进程,它进程描述符仍存在于系统中,但是它不会消耗CPU。僵尸进程通常出现在父进程没有调用wait系统调用来获取子进程状态时。
- 孤儿进程指父进程已经结束,但它自己还在运行的进程,OS会为孤儿进程分配一个新的父进程来避免它成为僵尸进程。
网络管理
- ping:检查网络连接
- ifconfig / ip addr:查看网络配置
- wget:从网络上下载文件
netstat
:查看网络连接,TCP/UDP连接,路由表、监听端口状态等。- netstat -a:查看所有网络连接(ip+端口)
- netstat -t/-u/-l:查看所有TCP/UDP/监听状态的连接
- netstat -p:显示在使用socket的进程信息
- netstat -r:查看路由表
- netstat -tnlp | grep pid或进程名:查看指定进程监听了哪些端口
- ss:netstat的增强版
- ss -ta:查看所有TCP连接
- ss -atr:查看正在监听的TCP连接
- ss -s:查看TCP连接信息(包括TIME_WAIT等)
- tcpdump或wireshark:实现网络抓包。
- ssh:登录到指定主机
压缩解压缩
- tar:压缩/解压.tar文件
- gzip:压缩/解压.gz文件
- zip:压缩/解压.zip文件