#教育 #cli #系统

bin+lib cli_pipeviewer

pv 工具的教育版本

1 个不稳定版本

0.1.0 2023年11月12日

#38 in #教育

MIT/Apache

15KB
220

* * * * 使用方法 * * * *

生成一个名为 myfile,包含 128kbps 随机数据的文件。

dd if=/dev/urandom bs=1024 count=128 of=myfile

预览文件信息

ls -lh

构建二进制文件

cargo build

使用 cat 命令连接文件,然后将字节通过 pipe-viewer 管道

cat myfile | target/release/pipeviewer > myfile2

使用 'yes' 工具测试损坏的管道错误处理

yes | cargo run | head -n 1 > /dev/null

预览控制台输出

yes | cargo run | head -n 100000000 > /dev/null

使用 cargo run 运行二进制文件

cargo run -- -h

测试命令行参数

cargo run -- somefile --outfile file.out -s

测试命令行参数中的环境变量

PV_SILENT=1 cargo run -- somefile --outfile file.out -s

测试读取器和写入器

echo "some input" | cargo run --

将输出重定向到 /dev/null

echo "some input" | cargo run -- > /dev/null

将输出重定向到 outfile,-o /dev/null

echo "some input" | cargo run -- -o /dev/null

生成输出到 outfile,-o output.txt

echo "some input" | cargo run -- -o output.txt

从文件读取,output.txt -o /dev/null

echo "some input" | cargo run -- output.txt -o /dev/null

从文件读取,output.txt -o /dev/null,静默模式

echo "some input" | cargo run -- output.txt --silent / -s

使用批量输入写入文件

yes | cargo run -- -o yes.txt

从大输入文件读取

cargo run -- yes.txt -o /dev/null

测试 BufReader & BufWriter

cargo run -- yes.txt -o yes2.txt

从文件读取并将输出重定向到指定的输出文件

cargo run -- yes2.txt -- > yes3.txt

将输出管道到 head 并重定向输出到 /dev/null

yes | cargo run -- | head -n 100000000 > /dev/null

依赖

~3MB
~45K SLoC