记录自己经常忘记的 Linux 命令

Linux 的部分命令对于个人来说在工作中很少接触到,同时 MacOS 对于一些命令的附加参数也与 Linux 大相径庭。所以特地在此记录一下自己总是忘记具体用法的一些命令。

sort

​ 对文件进行排序。

选项 说明
-k 指定要分隔的列。 您可以指定多个列
-n 要求进行数字排序。
-o file 将排序结果保存到指定的文件中。
-t 指定分隔符,要求相应文件的内容必须是以规则分隔的列内容,否则无法正确排序。
-r 将结果的顺序颠倒。 与 -n 选项一起使用,按从大到小的顺序进行排序。
-u 排序后删除重复项。 相当于 sort file | uniq

apropos whatis

​ 与 man 的功能类似,都适用于查看相关命令的选项。

unalias

​ 用于解除别名命令,与 alias 相反

type

​ 用于显示指定命令的类型

$ type cd
cd is a shell builtin

xattr

​ 查看文件的额外属性。

​ 例如在 MacOS 中,从互联网上下载的 App 大多数都会被标记上 com.apple.quarantine 的属性,用于隔离非安全的软件。此时需要删掉这个属性,让 App 正常运行:sudo xattr -rd com.apple.quarantine /Applications/xxxx.app

选项 说明
-r 递归操作
-d 删除属性

xargs

​ 将标准输入(stdin)转换为命令行参数。它可以将输入数据传递给其他命令。

$ <command1> | xargs <command2>

​ 例如使用 find 命令与 xargs 结合,将所有日志文件删除:

find . -name "*.log" | xargs rm
# 当然,这里还是要说明一下,`find` 方法自带 `-exec` 参数也可以实现同样的功能:
# find . -name "*.log" -exec rm {} \;
选项 说明
-n 指定每次执行命令时传递的参数数量
-d 使用指定的定界符分隔输入(默认为空格或换行)。
$ cat urls.txt | xargs -n 1 curl -O         # 将文件下载指定文件里面的所有 url 下载
$ echo "file1.txt|file2.txt|file3.txt" | xargs -d '|' rm        # 以 `|` 作为分隔删除这些名称的文件

pstree

​ 以树状样式显示进程

选项 说明
-p 显示进程的 PID
-n 按 PID 对输出进行排序
-h 亮显示正在运行的进程
-u 显示 uid 转换

lsof

​ 用于列出当前系统中打开的文件,平常个人使用最多的还是查看端口号的占用:

$ lsof -i :22

​ 实际上,losf 的功能十分强大,由于在 Unix 和 Linux 系统中,几乎所有东西(包括网络套接字和设备)都被视为文件,因此 lsof 可以用来监视各种系统资源。

选项 说明
-p 显示某个进程打开的文件
-u 显示某个用户打开的文件
-i 显示某个网络协议的连接 tcp
或者是某个网络端口的连接 :22
或者是某个 IP 的连接 @127.0.0.1
+D 显示某个文件夹下打开的文件

To Be Continued

​ 以后随用随补充

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部