我们可以从输出看到,有太多的信息我们并不需要。现在我们需要过滤获得正好需要的信息,而该任务有一个很有用的 grep,句法展示为如下: 修剪 cat 的输出以得到只有行的文件 some_line。 cat file_name | grep some_line Grep 同样能应用于命令行和脚本: 输出只包含误差的字符串 python run_sum_.py | grep error 通过 sshd 滤波器,我们可以打印仅仅和 ssh 相关的授权记录:
我们同样能追踪文件的修订。当我们测试一个网页时,该方法是十分有效的。所以当查询日志或查看新的授权记录时,我们能「抓取」它。 该命令行将打印第三方应用的新纪录到文件中。 tail -f some_web_server_log 该命令同样能连同 grep 一起使用。 打印包含误差的新纪录 tail -f some_web_server_log | grep error 让我们在操作中查看一下 tail。首先,设置追踪文件 /var/log/auth.log 并使用命令行 tail -f /var/log/auth.log | grep sshd 在每一个新连接都通过 ssh 连接到主机后,我们将显示信息和授权记录。 另一个高效的文件文本分析工具是 Awk。在该工具的帮助下,我们能轻易地处理任何文本文件格式。Awk 是一种文本语境搜索工具。现有一些方式运行 Awk 程序。如果程序非常短,那么就很容易将其包含在命令行中来运行 Awk。就如同: awk 'program' input-file1 input-file2 若需要更多的信息,请阅读以下指南: 我们能使用 Awk 查看什么时候用户使用命令行通过 ssh 取得了连接。 $ awk '/sshd/ && /pam_unix/ {print ($1,$2,$3,$8,$11)}' /var/log/auth.log 同样还有一个高效的命令 sed。该命令复制文件(默认标准输入)到标准输出,并通过放置在 (批处理文件或行编辑器 [而不是 shell])中的命令编辑它们。在 flag -f 命令下,采取图像 sfilefile。如果这里只有一个设置 -e ,那么-e flag 就能够省去。 由编辑命令组成,一行一条,并以如下格式: [addr [, addr]] cmd [args] 「Sed」循环地转变一个输入字符串为输出。 例如: 将 report.txt 文件中每一个 John 替换为 Nick。 sed 's/Nick/John/g' report.txt 移除搜索到的行 who | sed '2,4d' 等等 考虑一些有用的命令行帮助远程主机的操作。Tar 和 zip 文档常常用于保存空间和流量(traffic)。下面的命令行都是用来处理这些的: 对于 tar: 在压缩时忽略示值误差(reading errors)。 tar czf new-tar-file-name.tar.gz file-or-folder-to-archive --ignore-failed-read c:创建新的存档。 z:使用 gzip 压缩一个文档。 f:使用文档文件。 对于多目录 tar -czf new-tar-file-name.tar.gz file1 file2 folder1 folder2 tar -xzf tar-file-name.tar.gz x:抽取一个文档 z:使用 gzip 解压缩一个文档 f:使用文档文件 对于 zip: 压缩文件 zip file-or-folder-to-archive new-zip-file-name.zip 解压缩文件 unzip -d new-zip-file-name.zip 其中-d destination_folder 当然,在远程主机上工作不能在没有文件转移(在本地计算机和远程主机间)的情况下完成。为了完成这个,我们能使用以下命令: 下载 tar(从本地机器粘贴) scp -r (recursive) username@server:(remote location) (local location 上传文件到远程服务器中 scp -r (local location) username@server:(remote location) (责任编辑:本港台直播) |