Linux初入门扉 ( 二 )
一、I/O 重定向与管道
重定向
一般情况下命令从标准输入(stdin)读取输入,并输出到标准输出(stdout),默认情况下两者都是你的终端。使用重定向可以让命令从文件读取输入/输出到文件。
1 |
|
管道
管道(pipe),操作符 |,作用为将符号左边的命令的 stdout 接到之后的命令的 stdin。管道不会处理 stderr。
筛选 ls 输出中所有包含msg的字符串的行

二、网络下载
通过以下内容讲述的 wget (wget) 和 cURL (curl) 工具,我们可以 Linux 上进行轻量的下载活动。
Wget
1 |
|
常用选项:
| 选项 | 含义 |
|---|---|
| -i, –input-file=文件 | 下载本地或外部文件中的 URL |
| -O, –output-document=文件 | 将输出写入文件 |
| -b, –background | 在后台运行 wget |
| -d, –debug | 调试模式,打印出 wget 运行时的调试信息 |
cURL
cURL (curl) 是一个利用 URL 语法在命令行下工作的文件传输工具,其中 c 意为 client。由于可自定义各种请求参数,所以在模拟 web 请求方面更擅长;
用法同wget
常用选项
| 选项 | 含义 |
|---|---|
| -o | 把远程下载的数据保存到文件中,需要指定文件名 |
| -O | 把远程下载的数据保存到文件中,直接使用 URL 中默认的文件名 |
| -I | 只展示响应头内容 |
| -s, –silent | 启用静默模式,抑制不必要的输出 |
| -S, –show-error | 甚至在静默模式下显示报错 |
三、文本处理
文本统计:wc
wc(word count)是文本统计的常用工具,它可以输出文本的行数、单词数与字符(字节)数。

例子所示,有5行、9个单词
文本比较:diff
diff 工具用于比较两个文件的不同,并列出差异。
1 | $ echo hello > file1 |
参数 -w 可忽略所有空白字符, -b 可忽略空白字符的数量变化。假如比较的是两个文本文件,差异之处会被列出;假如比较的是二进制文件,只会指出是否有差异。
文本开头与结尾:head & tail
顾名思义,head 和 tail 分别用来显示开头和结尾指定数量的文字。
以 head 为例,这里给出共同的用法:
不加参数的时候默认显示前 10 行
- -n
指定行数,可简化为 - - -c
指定字节数
除此以外,tail 还有一个非常实用的参数 -f:当文件末尾内容增长时,持续输出末尾增加的内容。
文本查找:grep
grep 命令可以查找文本中的字符串
文本替换:sed
sed 命令可以替换文本中的字符串:
1 | $ sed 's/hello/world/g' file # 将文件 file 中的 hello 全局(global)替换为 world 后输出 |
对于大多数用户来说,最常用 sed 的场合是替换软件源的时候。
参考资料:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 漩葵学习笔记!
