第 7 章 Utility Programs

目录

7.1. ed, red - text editor
7.2. vim
7.2.1. 查找与替换
7.2.2. 插入文件
7.2.3. 批处理
7.2.3.1. vi 批处理
7.2.4. line()
7.2.5. set fileformat
7.3. awk
7.3.1. 处理列
7.3.2. printf
7.3.3. Pattern(字符匹配)
7.3.3.1. Pattern, Pattern
7.3.4. Built-in Variables (NR/NF)
7.3.4.1. NR
7.3.4.2. NF
7.3.4.3. 练习
7.3.5. Built-in Functions
7.3.5.1. length
7.3.6. 过滤相同的行
7.4. sed
7.4.1. 查找与替换
7.4.1.1. 正则
7.4.1.2. aaa="bbb" 提取bbb
7.4.1.3. 首字母大写
7.4.2. insert 插入字符
7.4.3. 追加字符
7.4.4. 修改字符
7.4.5. 删除字符
7.4.5.1. delete
7.4.6. 行操作
7.4.7. 编辑文件
7.4.8. 正则表达式
7.4.9. 管道操作
7.4.10. perl
7.5. CURL - transfer a URL
7.5.1. 基本用法
7.5.2. data
7.5.3. connect-timeout
7.5.4. max-time
7.5.5. compressed
7.5.6. vhosts
7.5.7. -w, --write-out <format> 输出格式定义
7.5.8. -A/--user-agent <agent string>
7.5.9. referer
7.5.10. -v
7.5.11. -o, --output FILE Write output to <file> instead of stdout
7.5.12. -H/--header <line> Custom header to pass to server (H)
7.5.12.1. Last-Modified / If-Modified-Since
7.5.12.2. ETag / If-None-Match
7.5.12.3. Accept-Encoding:gzip,defalte
7.5.12.4. HOST
7.5.12.5. HTTP 认证
7.5.13. curl-config
7.5.14. 指定网络接口或者地址
7.5.15. Cookie 处理
7.5.16. RestFul 应用 JSON 数据处理
7.5.17. FAQ
7.6. expect
7.6.1. 模拟登录 telnet 获取Cisco配置
7.6.2. 模拟登录 ssh
7.6.3. SCP
7.7. expect-lite - quick and easy command line automation tool
7.8. sshpass - noninteractive ssh password provider
7.9. Klish - Kommand Line Interface Shell (the fork of clish project)
7.9.1. 安装Klish
7.9.2. 为用户指定clish作为默认Shell
7.9.3. FAQ
7.9.3.1. clish/shell/shell_expat.c:36:19: fatal error: expat.h: No such file or directory
7.10. Limited command Shell (lshell)
7.11. wget - retrieves files from the web
7.11.1. Logging and input file
7.11.1.1. -i, --input-file=FILE download URLs found in local or external FILE.
7.11.2. 下载相关参数
7.11.2.1. -O, --output-document=FILE write documents to FILE 保存到文件
7.11.3. HTTP options (HTTP 选项)
7.11.3.1. --post-data=STRING use the POST method; send STRING as the data.
7.11.3.2. header HTTP头定义
7.11.4. Recursive download
7.11.4.1. -r, --recursive specify recursive download.
7.11.4.2. -m, --mirror shortcut for -N -r -l inf --no-remove-listing.
7.11.5. --no-passive-ftp disable the "passive" transfer mode.
7.12. TUI
7.12.1. screen - screen manager with VT100/ANSI terminal emulation
7.12.2. tmux — terminal multiplexer
7.12.3. byobu - wrapper script for seeding a user's byobu configuration and launching a text based window manager (either screen or tmux)
7.12.4. htop - interactive process viewer
7.12.5. elinks
7.12.6. chat
7.13. parallel - build and execute shell command lines from standard input in parallel

7.1. ed, red - text editor

行寻址

.	此选项对当前行寻址(缺省地址)。
number	此选项对第 number 行寻址。可以按逗号分隔的范围 (first,last) 对行寻址。0 代表缓冲区的开头(第一行之前)。
-number	此选项对当前行之前的第 number 行寻址。如果没有 number,则减号对紧跟在当前行之前的行寻址。
+number	此选项对当前行之后的第 number 行寻址。如果没有 number,则加号对紧跟在当前行之后的行寻址。
$	此选项对最后一行寻址。
,	此选项对第一至最后一行寻址,包括第一行和最后一行(与 1,$ 相同)。
;	此选项对当前行至最后一行寻址。
/pattern/	此选项对下一个包含与 pattern 匹配的文本的行寻址。
?pattern?	此选项对上一个包含与 pattern 匹配的文本的行寻址。
	

命令描述

a	此命令在指定的地址之后追加文本。
c	此命令将指定的地址更改为给定的文本。
d	此命令删除指定地址处的行。
i	此命令在指定的地址之前插入文本。
q	此命令在将缓冲区保存到磁盘后终止程序并退出。
r file	此命令读取 filespec 的内容并将其插入指定的地址之后。
s/pattern/replacement/	此命令将匹配 pattern 的文本替换为指定地址中的 replacement 文本。
w file	此命令将指定的地址写到 file。如果没有 address,则此命令缺省使用整个缓冲区。
	

实例,删除passwd中的neo用户

ed -s passwd <<EOF
/neo/
d
wq
EOF
ed -s mfsmetalogger.cfg <<EOF
,s/^# //
wq
EOF		

删除尾随空格

$ cat -vet input.txt

This line has trailing blanks.    $
This line does not.$

$ (echo ',s/ *$//'; echo 'wq') | ed -s input.txt

$ cat -vet input.txt

This line has trailing blanks.$
This line does not.$

原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

时间: 2024-08-01 12:05:08

第 7 章 Utility Programs的相关文章

第 29 章 Utility Programs

29.1. ed, red - text editor 行寻址 . 此选项对当前行寻址(缺省地址). number 此选项对第 number 行寻址.可以按逗号分隔的范围 (first,last) 对行寻址.0 代表缓冲区的开头(第一行之前). -number 此选项对当前行之前的第 number 行寻址.如果没有 number,则减号对紧跟在当前行之前的行寻址. +number 此选项对当前行之后的第 number 行寻址.如果没有 number,则加号对紧跟在当前行之后的行寻址. $ 此选项

闲来无事之-记用BAT实现文件下载功能

目录: 一.写在前面的话 二.故事的起因 三.解决-腹稿 四.解决-实战 五.解决-打造 六.包装 七.小节 八.后记 九,参考文献 正文开始: 一.写在前面的话 这篇文档讲述的并不是什么新鲜的技术,我只是起到将他们混和起来实现了自己需要的功能的作用,如果你对批处理和PE格式相当了解,那我的这篇文档就权且当作浏览温习吧...^_^... 另外,由于我本人废话比较多,这也是不想给杂志写稿子的主要原因,给我干瘪瘪的3000字能讲出什么来,不如这样没有限制的爽快(当然也没什么报酬...一_一..),所

ganglia - distributed monitor system

传统的监控系统, 通常采用agent+server的方式, agent负责收集监控信息, 主动或被动发送给server, server负责向agent请求监控数据(agent被动), server和agent都通常使用TCP来进行连接.  传统监控的主要弊端, 当被监控的主机很多的情况下, server端的压力会很大, 例如要监控2万台主机的30个监控项, 就有60万个监控数据要从agent收集, 假设每分钟收集一次监控数据, 每秒需要上千次的metric get请求.  ganglia的设计思

C++ 100款开源界面库 (10)

(声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系列的教程<2013 duilib入门简明教程>,还有本系列教程,还有前面介绍的CodeProject,基本上都是代码往上面一扔,就不用再怎么维护的.这些都称之为开源代码,其实开源代码对新手的帮助更大,因为很简明的说明了代码用法~O(∩_∩)O~)       前面两个教程已经对制作界面的几种方式进行了

apt-get 和 apt-cache 命令实例展示

apt-get 和 apt-cache 命令实例展示 apt-get和apt-cache是Ubuntu Linux中的命令行下的包管理工具. apt-get的GUI版本是Synaptic包管理器.本篇中我们会展示apt-get和apt-cache命令的15个不同例子. 示例:1 列出所有可用包 linuxtechi@localhost:~$ apt-cache pkgnames account-plugin-yahoojp ceph-fuse dvd+rw-tools e3 gnome-comm

Docker基础之二: Linux快速入门

Linux快速使用教程 (提示:对Docker感兴趣的朋友可以加我的微信ghostcloud2016,然后我把你加到我们的一个Docker爱好者群组里面.) 由于Docker是的容器都依赖于linux 内核,因此这一节主要是快速简单的介绍一下linux,如果你对linux比较熟悉,可略过. 1 为什么要使用linux 本身开源免费 支持众多开源的软件,诸如mysql, apache, mongodb, nodeJS等 基本上90%以上的互联网公司都使用linux作为后端服务器 云主机大多数都是基

GhostScript命令参数详解

本文列出几个常用参数,然后下面附上官方的参数详解: 一.常用参数解释 这是一个测试的命令:gs -dQUIET -dNOSAFER -r300 -dBATCH -sDEVICE=pngalpha -dNOPAUSE -dNOPROMPT -sOutputFile=/opt/shanhy/testpng/%d.png /opt/shanhy/test.pdf Linux 中,到文件gs所在目录执行. Windows 中,到GhostScript安装目录下的bin目录下执行 gswin64c 或者

使用iSCSI Target创建集中式安全存储(一)

使用iSCSI Target创建集中式安全存储(一) iSCSI 是一种块级别的协议,用于通过TCP/IP网络共享原始存储设备,可以用已经存在的IP和以太网如网卡.交换机.路由器等通过iSCSI协议共享和访问存储.iSCSI target是一种由远程iSCSI服务器(target)提供的远程硬盘. 在Linux中安装iSCSI Target 我们不需要占用很大的资源就可以为客户端提供稳定的连接和性能.iSCSI服务器称为"Target(目标器)",它提供服务器上的存储共享.iSCSI客

设置iSCSI的发起程序(客户端)(三)

设置iSCSI的发起程序(客户端)(三) iSCSI 发起程序是一种用于同 iSCSI 目标器认证并访问服务器上共享的LUN的客户端.我们可以在本地挂载的硬盘上部署任何操作系统,只需要安装一个包来与目标器验证. 初始器客户端设置 功能 可以处理本地挂载磁盘上的任意文件系统 在使用fdisk命令分区后不需要重启系统 前置阅读 使用iSCSI Target创建集中式安全存储(一) 在 iSCSI Target 服务器中使用LVM创建和设置LUN(二) 我的客户端设置 操作系统 – CentOS 6.