Linux下的 head tail grep 命令 查看文件 字符流的一部分

Linux下的 head tail grep 命令 可以帮助我们查看 字符流 的一部分。

Q: 什么是字符流呢?

A: 你可以认为是打印在终端命令行界面上的一串字符。

我们先来看几个实际使用中的例子。


查看日志文件的末尾

我们知道 v2ray有access.log和error.log,查问题的时候会需要看里面的内容。那么你是用什么方式查看呢?

cat命令吗?

cat /var/log/v2ray/access.log

你是不是要等屏幕滚很久才看到末尾?

Shell工具的SFTP文件服务吗?

双击日志文件用文本编辑器打开?


会不会觉得又多出一个窗口,日志刷新了还要关闭文本编辑器再打开一次?

如果日志文件比较大呢?你的SSH连接不快呢?对比HAX或Woiden的免费小鸡与RackNerd或CloudCone的收费小鸡,你也许可以感受到在SSH终端上打字时反馈速度差异。

试试看

cat /var/log/v2ray/access.log | tail


这样的结果会不会让你觉得特别清爽呢?

解释

其中,| 的使用是管道,把它左边的命令执行后输出的字符流 作为右边的命令的输入。

tail 的作用是显示一个字符流的末尾10行。

这一整行的作用是把 cat 文件名 打印出来的字符流灌到 tail 里面去处理,显示末尾的10行。

查看 curl https://域名 是否反代伪装站成功

如果搭了梯子不能用,排错过程中有一步是检查你搭的web服务在你自己的vps上能否正常访问。

curl https://你的域名

取决于你部署/反代的网站的复杂程度,是不是在终端打印了一堆东西?


试试看

curl https://你的域名 | head

如果 curl 下载过程的打印有干扰,可以加 -s 参数

curl -s https://你的域名 | head


上面这样的显示结果感觉如何?

一个常见的排错结果是系统自带的 Apache2 正在运行。


解释

head 的作用是显示一个字符流的开头10行。

查看进程是否在监听端口

我们在排查问题时,常常需要检查某个进程是否已经运行,是否正在监听我们希望的工作端口。

netstat -tunlp | grep 进程名


解释

grep 的作用是在一个字符流中查找字符串,并显示找到的行。


参考:

https://www.runoob.com/linux/linux-comm-head.html

https://www.runoob.com/linux/linux-comm-tail.html

https://www.runoob.com/linux/linux-comm-grep.html


评论

The Hot3 in Last 30 Days

ClouDNS .asia免费域名 托管到CloudFlare开CDN白嫖Websocket WS通道翻墙 / desec.io

无服务器 自建短链服务 Url-Shorten-Worker 完整的部署教程