Linux 利用的小细节

[复制链接]
发表于 2025-11-23 22:58:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Linux 利用的小细节

1. && 和 &

&&

表现前一条下令实行乐成时,才实行后一条下令。
  1. ls -l && cd ..
复制代码
&

表现任务背景实行,与 nohup 下令功能相似。
  1. java -jar test.jar > log.txt &
  2. # 运行 jar 包,并置于后台执行,执行的日志日志重定向到 log.txt 文件中。
复制代码

2. | 和 ||

|

表现管道,上一条下令的输出作为下一条下令的输入。
  1. ps -aux | grep aux
  2. # 查询全部进程后,过滤包含 "aux" 的进程。
复制代码
||

表现上一条下令实行失败时,才实行下一条下令。
  1. xxx -l || pwd
复制代码

3. > 和 >>

>

表现尺度输出信息重定向输出,内容覆盖写。
  1. echo 'World' > test.txt
复制代码
>>

表现尺度输出信息重定向,内容追加写。
  1. echo 'World' >> test.txt
复制代码

4. &>、2>&1 和 2>1

&>

表现尺度错误(stderr)和尺度输出(stdout)信息重定向输出,覆盖写。
  1. # 示例:
  2. lll &> test.txt
  3. cat test.txt
  4. # 输出:
  5. -bash: lll: command not found
复制代码
2>&1

将尺度错误(stderr)输出重定向到尺度输出(stdout)。
  1. command 2>&1
复制代码
& 指示不要把 1 当作平凡文件,而是文件形貌符(fd=1,即尺度输出)处置惩罚。
2>1

将尺度错误输出重定向到名为 1 的文件,而不是尺度输出。
  1. command 2>1
复制代码
Linux 重定向装备代码:


  • 空装备文件:/dev/null
  • 尺度输入(stdin):代码为 0,实际映射 /dev/stdin -> /proc/self/fd/0
  • 尺度输出(stdout):代码为 1,实际映射 /dev/stdout -> /proc/self/fd/1
  • 尺度错误输出(stderr):代码为 2,实际映射 /dev/stderr -> /proc/self/fd/2

5. command>a 2>1、command>a 2>a 与 command>a 2>&1 的区别

1. command>a 2>&1

等价于:
  1. command 1>a 2>&1
复制代码
寄义:尺度输出重定向到文件 a,尺度错误也重定向到文件 a。
2. command>a 2>a

与 command 1>a 2>&1
不等价,区别如下:

  • command>a 2>a 打开文件两次,而 command 1>a 2>&1
    只打开文件一次。
  • command>a 2>a 会导致尺度输出(stdout)被尺度错误(stderr)覆盖。
  • 从 I/O 服从上看,command 1>a 2>&1
    更高效。
3. command>a 2>1

等价于:
  1. command 1>a 2>1
复制代码
寄义:尺度输出重定向到文件 a,尺度错误重定向到文件 1。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表