我的 Linux 基础命令速查表
前言(Intro)
这是一份随时更新的列表,列出了一些常用的命令组合,供自己日常使用查阅,欢迎交流。
本文内容整合在我的命令速查表 中,可以使用 chrisallenlane/cheat 来快速查询命令。
用户
ls
1 |
|
管道、流
|
> (重定向)
当采用 >>
符号做输出重定向时,新的内容会追加在目标文件的尾部
<
从右到左输出。
重定向里用到的数字被称作文件描述符 (File Descriptor)。文件描述符与一个具体的文件相关联,它的作用就是给相应的文件操作函数提供一个目标即操作哪个文件。在 POSIX 标准中,文件描述符都是一个数字,并且有三个特殊的文件描述符他们是:
- 0,Standard Input,stdin 中文名称是标准输入
- 1,Standard Output,stdout 中文名称是标准输出
- 2,Standard Error,stderr 中文名称是标准错误输出
1 |
|
1 |
|
tee
sed
awk
grep
xargs
系统
wc
1 |
|
realpath
Mac 用户需要安装
coreutils
来获得realpath
。
查看文件(真实)完整路径。意味着软链接将输出真实路径。
1 |
|
lsof
查看任何文件信息(注意 Linux 里一切皆文件)
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
你甚至可以使用它来找到被删除的文件!(前提是有某个进程正在使用这个文件)
当 UNIX 计算机受到入侵时,常见的情况是日志文件被删除,以掩盖攻击者的踪迹。管理错误也可能导致意外删除重要的文件,比如在清理旧日志时,意外地删除了数据库的活动事务日志。有时可以恢复这些文件,并且 lsof 可以为您提供帮助。
当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录条目。[1]
Linux 的优点在于,它保存了文件的名称,甚至可以告诉我们它已经被删除。在遭到破坏的系统中查找相关内容时,这是非常有用的内容,因为攻击者通常会删除日志以隐藏他们的踪迹。[1:1]
题外话,其实 lsof
大部分信息都来自于 /proc/
目录,然而 /proc/
目录并非 unix/linux 标准,像 Mac OSX、FreeBSD 等系统,都没有 /proc/
。
网络
nc (netcat)
C/S 模式的网络工具,通常用于查看端口,但还能做其他事情。
1 |
|
1 |
|
1 |
|
编辑
less
is more
nl
给文件插入行号
1 |
|
1 |
|