常用命令 #
本文描述 shell 内置命令和 coreutils 补充命令的高频用法和常用技巧。
一、文件管理 #
1.1 文件类型 #
| 类型 | 描述 |
|---|---|
| d | 目录 |
| - | 文件 |
| l | link file |
| b | 可随机存取设备 |
| c | 一次性读取设备,键鼠等 |
1.2 文件权限 #

|
|
1.3 文件占用 #
- df(Disk Free)
|
|
- du(Disk Used)
|
|
1.4 文件传输 #
scp: Secure copy. Copy files between hosts using Secure Copy Protocol over SSH.
scp [参数] [原路径] [目标路径]
|
|
二、查找 #
- 查找命令
|
|
- 快速查找文件
|
|
- find 普通查找
|
|
根据变更时间查找
|
|

三、文本处理 #
3.1 常用工具高频命令 #
- 切割文本基础操作
|
|
-
xargs
-
grep
|
|
3.2 日志计算、查询和过滤 #
- 计算日志中重复率最高的 top k
文件大的话非常耗时,注意内存和处理器的波动。以下是计算 access.log 文件中重复日志量最大的前十条,其中日志样本只计算每行的前 50 个字符。
|
|
- 根据 http code 筛选 nginx 相应的访问日志
|
|
- 日志特殊字符转译
><&\u003e\u0026
有时,日志中 > < & 符号会以 \u003e \u0026 的形式打印,为方便阅读需要进行转译操作
|
|
四、进程管理 #
4.1 top
#
4.1.1 示例 #

前五行
| 行 | 描述 |
|---|---|
| 1 | load average: 1min, 5min, 15min loadaverage; (每隔 5s 计算一次活跃进程数) |
| 2 | Tasks: 进程数; zombie: 僵尸进程 |
| 3 | 1.0 us: user 用户态占用; 1.2 sy: system, 内核空间占用cpu百分比; 0.0 ni: 改变过优先级的进程; 97.8 id: 空闲cpu; 0.0 wa: io等待百分比 0.0 hi: 硬中断(Hardware IRQ)占用百分比;0.0 si:软中断(Sofeware Interrupts)占用百分比, 0.0 st: 被强制等待虚拟cpu的时间 |
| 4 | 内存描述; 5924848 buff/cache 缓存的内存量 |
| 5 | 交换分区描述; |
最后一行
| 标识 | 描述 |
|---|---|
| NI | 负值表示高优先级;VIRT:进程使用虚拟内存量 kb VIRT = SWAP+RES |
| RES | 进程使用的、未被换出的物理内存大小 kb |
| SHR | 共享内存大小 kb |
| S | 进程状态: D,不可中断的睡眠状态; R,运行; S,睡眠; T,跟踪/停止; Z,僵尸进程; |
| CPU | 上一次更新到现在 cpu 时间占用比例 |
| MEM | 进程使用物理内存比例 |
| TIME | 进程使用cpu时间总计,单位 1/100s |
| COMMEND | 进程名称 |
4.1.2 交互命令 #
| 命令 | 描述 |
|---|---|
P |
按照cpu排序 |
M |
按照内存排序;1 |
1 |
查看多核;b |
b |
高亮当前运行的进程 |
x |
高亮排序字段 |
< > |
切换排序方式 |
c |
完整命令 |
五、网络调试 #
5.1 telnet #
5.2 curl #
5.3 ping #
netstat -na | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
5.4 nc(netcat) #
用于设置路由器,是网络工具中的瑞士军刀。它能通过 TCP 和 UDP 在网络中读写数据。
语法
|
|
|
|
六、Bash 内置命令 & 保留字 & other #
-
type 检测命令是否为内置命令
-
echo
|
|
- read
|
|
- /dev/null 黑洞,吞噬一切,下面的命令错误输出重定向到 /dev/null,屏幕只会打印标准输出
|
|
-
执行顺序 ;, ||, &&
-
time 展示命令执行耗时
|
|
参考:
《unix 教程》
《CURL 必知必会》