本文收录了 linux 常用指令,这里面有个小技巧,基本上所有指令后面跟上 --h 可以显示其使用方法。故不必死记硬背,知其意乃通其形。(推荐:[Linux视频教程](http://www.php.cn/course/list/33/type/2.html))
分类如下:
● 文件 & 目录操作(16 个)
● 查看文件 & 内容处理(18 个)
● 文件压缩 & 解压缩(3 个)
● 信息显示(11 个)
● 搜索文件(4 个)
● 进程管理(11 个)
● 用户管理(7 个)
● 网络操作(11 个)
● 磁盘 & 文件系统(7 个)
● 系统权限(3 个)
● 关机重启(5 个)
● 其他(6 个)
显示当前操作者名字信息
● whoami
文件 & 目录操作(16 个)
**ls**
● ls -a 查看所有文件,包含隐藏文件
● ls -l 简写 ll,查看详细信息
● ls -h 文件大小以易读的方式显示
**cd**
● cd ../ 返回上级目录
● cd ~ 前往家目录
● cd - 返回上一次所在目录
**cp**
● cp -r 复制目录及目录下文件
**find**
● find / -name 'target' 查询根目录下面文件名为 target 的文件
**mkdir**
● mkdir -p /tmp/test 递归创建目录
**mv**
● mv -f source destination 强制
**pwd**
● pwd 显示当前路径
**rm**
● rm -rf / 强制删除根目录及目录下的文件,就是我们通常所说的删库跑路
**touch**
● touch target 创建 target 文件,若文件存在则改变文件时间戳
**tree**
● tree 功能是以树形结构显示目录下的内容
**basename**
● basename /tmp/1 显示文件名
**dirname**
● dirname /tmp/1 显示路径
**chattr**
● chattr +i /tmp/1 加 i 属性,防止文件被修改
**lsattr**
● lsattr /tmp/1 查看文件的扩展属性
**file**
● file /tmp/1 显示文件类型
**md5**
● md5 /tmp/1 显示文件 MD5 值
查看文件 & 内容处理(18 个)
**cat**
● cat -n 显示行号
● cat file1 file2 打开文件 1 和 2
**more**
● more file1 逐页显示
**less**
● less file1 也是逐页显示,与 more 方向相反
**head**
● head -n file 显示文件头 n 行
**tail**
● tail -n file 显示文件尾 n 行
● tailf file 实时显示文件尾 10 行,常用于跟踪日志信息
**cut**
● who|cut -b 1-3,5 输出每行的 1 至 3 个字节和第 5 个字节
● who|cut -c -3 输出每行的 1 至 3 个字符
● who|cut -c 3- 输出每行的第 3 个字符到行尾
● who|cut -d ' ' -f 1 以空格为分隔符,输出第一个域
**split**
● split -b 10k date.file 将文件分割为 10k 的多个子文件
● split -b 10k date.file split\_file 指定子文件前缀为 split\_file
**paste**
● psate file1 file2 file3 将 3 个文件按列合并
**sort**
● sort -n 按照数值大小排序
● sort -r 倒序排序
● sort -t 指定分隔符
● sort -u 忽略相同行
**uniq**
● uniq -c 显示出现次数,只有相邻的才算重复
● uniq -d 只显示重复的行
● unqi -u 只显示不重复的行
**wc**
● wc -l 显示列数
**diff**
● diff file1 file2 比较两个文件差异
**rev**
● rev file 反向输出文件内容
**grep**
● grep 'target' file 过滤输出文件中包含 target 的行
● grep -v 'target' file 过滤输出文件中不包含 target 的行
● grep -c 'target' file 过滤输出文件中包含 target 的行数
● grep -i 'target' file 忽略大小写
● egrep '\[1-9\]|a' file 过滤输出正则匹配到的行
● seq 10 | grep "5" -A 3 显示匹配某个结果之后的 3 行
● seq 10 | grep "5" -B 3 显示匹配某个结果之前的 3 行
● seq 10 | grep "5" -C 3 显示匹配某个结果的前三行和后三行
**join**
● join file1 file2 将两个文件中,指定栏位内容相同的行连接起来
**tr**
● cat text | tr '\\t' ' ' 将制表符替换成空格
**vim**
**三种模式:**
● 编辑模式(命令模式)
● 输入模式
● 末行模式
**模式的转换**
编辑 -> 输入
123456i: 在当前光标所在字符的前面,转为输入模式;a: 在当前光标所在字符的后面,转为输入模式;o: 在当前光标所在行的下方,新建一行,并转为输入模式;I:在当前光标所在行的行首,转换为输入模式A:在当前光标所在行的行尾,转换为输入模式O:在当前光标所在行的上方,新建一行,并转为输入模式;
输入 -> 编辑
1ESC
编辑 -> 末行:
1:
末行 -> 编辑:
1ESC,ESC
**打开文件**
123vim +# :打开文件,并定位于第#行vim +:打开文件,定位至最后一行vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首
**关闭文件**
12345:q 退出:wq 保存并退出:q! 不保存并退出:w 保存:w! 强行保存
**移动光标(编辑模式)**
* 逐字符移动
12345h: 左l: 右j: 下k: 上#h: 移动#个字符
* 以单词为单位移动
1234w: 移至下一个单词的词首e: 跳至当前或下一个单词的词尾b: 跳至当前或前一个单词的词首#w: 移动#个单词
* 行内跳转
1230: 绝对行首^: 行首的第一个非空白字符$: 绝对行尾
* 行间跳转
123#G:跳转至第#行gg: 第一行G:最后一行
**翻屏**
1234Ctrl+f: 向下翻一屏Ctrl+b: 向上翻一屏Ctrl+d: 向下翻半屏Ctrl+u: 向上翻半屏
**删除单个字符**
12x: 删除光标所在处的单个字符#x: 删除光标所在处及向后的共#个字符
删除命令: d
12dd: 删除当前光标所在行#dd: 删除包括当前光标所在行在内的#行;
**撤消编辑操作**
1234u:撤消前一次的编辑操作#u: 直接撤消最近#次编辑操作连续u命令可撤消此前的n次编辑操作撤消最近一次撤消操作:Ctrl+r
**查找**
1234/PATTERN?PATTERNn 下一个N 上一个
文件压缩 & 解压缩(3 个)
**tar**
● tar zxvf FileName.tar.gz 解压
● tar zcvf FileName.tar.gz DirName 压缩
**zip**
● zip -r html.zip/home/html 递归压缩
**unzip**
● unzip test.zip -d /tmp 解压到指定目录下
信息显示(11 个)
**uname**
● uname -a 显示系统全部信息
**hostname**
● hostname 显示主机名
**dmesg**
● dmesg 显示开机信息
**uptime**
● uptime 显示系统运行时间及负载
**stat**
● stat 显示文件的状态信息
**du**
● du -sh 显示路径下所有文件大小
● du -sh local 显示路径下 local 目录文件大小
● du -sh \* 显示路径下所有目录文件大小
**df**
● df -h 显示系统磁盘空间的使用情况
**top**
● top 实时显示系统资源使用情况
**free**
● free -m 以 M 为单位查看系统内存
**date**
● date +"%Y-%m-%d" 2019-05-28
● date -d "1 day ago" +"% Y-% m-% d" 输出昨天日期
● date <
读:4 写:2 执行:1
权限类型:
0: 没有权限
1: 执行
2: 写
3: 写、执行
4: 读
5: 读、执行
6: 读、写
7: 读、写、执行