Linux常用命令-io操作

Linux-io操作

  标准输入和输出

  • 标准输入 stdin 0 默认接受来自键盘的输入
  • 标准输出 stdout 1 默认输出到终端窗口
  • 标准错误 stderr 2 默认输出到终端窗口

  I/O重定向

  把输出和错误重新定向到文件

> 覆盖

  • > 将stdout重定向到文件
  • 2> 把stderr重定向到文件
  • &> 把所有输出重定向到文件

  禁止/允许覆盖

[root@centos ~]#set -C
[root@centos ~]#> a.txt
-bash: a.txt: 无法覆盖已存在的文件
[root@centos ~]#set +C
[root@centos ~]#> a.txt

 

>> 追加

  • >> 将stdout追加到文件
  • 2>> 把stderr追加到文件
  • &>> 把所有输出追加到文件

标准输出和错误输出各自定向到不同的文件

ls b bbbbb > info.log 2> error.log

合并所有输出

  • &> 覆盖重定向
  • &>> 追加重定向
  • command > /path/to/file.out 2>&1
  • command >> /path/to/file.out 2>&1
  • ():合并多个程序的stdout
  • /dev/null 无限接收的无底洞

  tr 替换或者删除字符

tr 'a-z' 'A-Z' </etc/issue
[root@localhost jiangyi]#tr ab 12
ab
12
[root@localhost jiangyi]#tr abc 12  如果后面的位数不足的话,则用最后一位补齐
abc
122
ab
12
tr -d abc < issue > issue2 从定向不能为原来的文件,如果说为原来的文件,则文件情况
-t 用来截断
[root@localhost jiangyi]#tr -t abcd 12
abcd
12cd
cd
cd
-s 压缩 去重
[root@localhost jiangyi]#tr -s abc
abc
abc
aaabbbccccccccccccccccccccccccccccc
abc
-c 取反
[root@localhost jiangyi]#tr -sc abc
aaaaaaaaaaaaaabbbbbbbbbbbbbbbcccccccccccccc
aaaaaaaaaaaaaabbbbbbbbbbbbbbbcccccccccccccc
aaaaaaaaaaaaaaaaaabbbbbbbbbbbbbcccccccccccccccccdddddddddddddeeeeeeeeeeeeffffffffffffff
aaaaaaaaaaaaaaaaaabbbbbbbbbbbbbcccccccccccccccccdef
aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccc1111111111111111222222222222333333333333
aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccc123
[root@localhost jiangyi]#tr -dc abc
aaaaaaaaaaaaabbbbbbbbbbbbccccccccccccccccccdddddddddddddddwqweqweqwqeqwqwqwq
wqqqqqqqqqqqqqqqqqqqqqqqqq
ctrl+d结束
[root@localhost jiangyi]#tr -dc "abc\n"
adsada
aaa
sadasdcxzczx
aacc
asdadwq
aa
[root@localhost jiangyi]#seq 1 10 >f1
[root@localhost jiangyi]#tr -d "\n" <f1
[root@localhost jiangyi]tr "\n" " "<f1
[root@localhost jiangyi] tr " " "\n" <f2

 

  多行输入

[root@localhost jiangyi]#cat >f1 <<EOF
> 1
> 2
> 3
> 4
> 5
> 6
> 7
> 
> 8
> 9
> EOF
[root@localhost jiangyi]# cat > f4
asdas
sad
asd
ctrl+d结束 ctrl+c也可以
两者区别
第一种方式输出结束,文件才会产生
第二方式,回车一次就会写入文件
EOF 约定俗成
(多行重定向 不结束不会生成文件
单行重定向 回车一次就会写入文件)

 

 

  管道

管道使用“|”来连接命令

命令1|命令2|命令3|。。。

  • 将命令1的stdout发给命令2的stdin,将命令2的stdout发给命令3的stdin
  • stderr默认不能通过管道转发,可以使用|&实现
    • [root@centos ~]#ls /daopda|& tr -s 'a-z' 'A-Z' LS: 无法访问/DAOPDA: 没有那个文件或目录
  • 作用一般是用来组合多种工具
    • ls |tr 'a-z' 'A-Z'
[root@localhost jiangyi]#ls /dadadasda|tr -s "a-z" "A-Z"
ls: cannot access /dadadasda: No such file or directory
[root@localhost jiangyi]#ls|tr "a-z" "A-Z"

 

转载于:https://www.cnblogs.com/Xiao_Xu/p/11279624.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些常用的 Linux IO 命令及其示例用法: 1. ls:列出目录内容 ``` ls -l # 列出详细信息,包括权限、所有者、文件大小等 ls -a # 显示所有文件,包括隐藏文件 ls -lh # 以易的方式显示文件大小 ``` 2. cp:复制文件或目录 ``` cp file1.txt file2.txt # 将 file1.txt 复制为 file2.txt cp -r dir1 dir2 # 递归复制目录 dir1 到 dir2 ``` 3. mv:移动或重命名文件或目录 ``` mv file1.txt file2.txt # 将 file1.txt 重命名为 file2.txt mv file1.txt dir1/file1.txt # 将 file1.txt 移动到目录 dir1 ``` 4. rm:删除文件或目录 ``` rm file.txt # 删除文件 file.txt rm -r dir # 删除目录 dir 及其所有内容 rm -rf dir # 强制删除目录 dir 及其所有内容,不进行确认提示 ``` 5. cat:显示文件内容 ``` cat file.txt # 显示文件 file.txt 的内容 cat file1.txt file2.txt # 合并并显示多个文件的内容 ``` 6. head:显示文件的开头部分 ``` head file.txt # 显示文件 file.txt 的前几行(默认为前10行) head -n 5 file.txt # 显示文件 file.txt 的前5行 ``` 7. tail:显示文件的结尾部分 ``` tail file.txt # 显示文件 file.txt 的后几行(默认为后10行) tail -n 5 file.txt # 显示文件 file.txt 的后5行 tail -f file.txt # 实时追踪文件 file.txt 的内容变化 ``` 8. touch:创建空文件或修改文件时间戳 ``` touch file.txt # 创建空文件 file.txt touch -c file.txt # 修改文件 file.txt 的时间戳为当前时间,如果文件不存在则不创建 ``` 这些是常见的 Linux IO 命令及其示例用法。还有其他很多命令和选项可以用于处理文件、目录和IO操作,你可以通过阅读相关文档或使用命令的帮助文档来了解更多详细信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值