Linux中&&、&、|、||等特殊符号
&& 和 &
& 表示任务后台执行,与nohup命令功能差不多。
# 运行jar包,并且置于后台执行,执行的日志重定向到当前默认的log.txt文件中
[root@localhost local]$ java -jar test.jar > log.txt &
&& 表示前一条命令执行成功时,才执行后一条命令。
# 执行ls -l成功后,执行cd ..
[root@localhost tmp]$ ls -l && cd ..
总用量 4
-rw-r–r–. 1 root root 2252 1月 4 22:25 log.txt
-rw——-. 1 root root 0 1月 3 23:23 yum.log
[root@localhost /]$
| 和 ||
| 表示管道,上一条命令的输出,作为下一条命令参数(输入)。
# 查询全部进程后输出结果在进行过滤跟 进行中包含aux的进程。
[root@localhost ~]$ ps -aux | grep aux
Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQ
root 53 0.0 0.0 0 0 ? S 16:33 0:00 [ata_aux]
root 2379 4.0 0.1 110224 1172 pts/2 R+ 22:55 0:00 ps -aux
root 2380 0.0 0.0 103316 868 pts/2 D+ 22:55 0:00 grep aux
|| 表示上一条命令执行失败后,才执行下一条命令。
[root@localhost tmp]$ als -l || cd ..
-bash: als: command not found
[root@localhost /]$
> 和 >>
表示stdout标准输出信息重定向输出,覆盖写。
[root@localhost ~]$ cat test.txt
Hello
[root@localhost ~]$ echo 'World' > test.txt
[root@localhost ~]$ cat test.txt
World
表示内容追加写。
[root@localhost ~]$ cat test.txt
Hello
[root@localhost ~]$ echo 'World' >> test.txt
[root@localhost ~]$ cat test.txt
HelloWorld
&> 、2>&1 和 2>1
&> 表示stdout标准输出和stderr错误输出信息,重定向输出,覆盖写。
[root@localhost ~]$ cat test.txt
World
[root@localhost ~]$ lll
-bash: lll: command not found
[root@localhost ~]$ lll > test.txt
[root@localhost ~]$ cat test.txt
# 由于这个是错误信息,所以不能使用标准输出>将信息重定向到test文件中,但覆盖写为空
# 所以错误信息直接在控制台打印出来了
[root@localhost ~]$ lll &> test.txt
[root@localhost ~]$ cat test.txt
-bash: lll: command not found
# 使用&>重定向错误信息没有输出到控制台了,表示错误信息正确重定向到了test文件,也同样是覆盖写
2>&1 表示把标准错误的输出重定向到标准输出1,&指示不要把1当做普通文件,而是fd=1即标准输出处理。
2>1 表示把标准错误的输出重定向到1,但这个1不是标准输出,而是一个名为1的文件。
linux重定向的设备代码
空设备文件/dev/null
- 标准输入(stdin) 代码为0,实际映射关系:/dev/stdin -> /proc/self/fd/0
- 标准输出(stdout)代码为1,实际映射关系:/dev/stdout -> /proc/self/fd/1
- 标准错误输出(stderr)代码为2,实际映射关系:/dev/stderr ->/pro/self/fd/2
command>a 2>1 、command>a 2>a 与 command>a 2>&1的区别
1. command>a 2>&1 等价于 command 1>a 2>&1
意思为执行command产生的标准输入重定向到文件a中,标准错误也重定向到文件a中。
2. command>a 2>a 不等价于 command 1>a 2>&1,其区别如下:
i. command>a 2>a打开文件两次,而command 1>a 2>&1只打开文件一次;
ii. command>a 2>a由于打开文件两次,导致stdout被stderr覆盖;
iii. 从IO效率上来讲,command 1>a 2>&1比command 1>a 2>a的效率更高。
3. command>a 2>1 等价于 command 1>a 2>1
意思为执行command产生的标准输入重定向到文件a中,标准错误重定向到文件1中。
Linux中&&、&、|、||等特殊符号的更多相关文章
- Linux中删除特殊符号文件名文件
Linux 系统下的文件名长度最多可到256个字符.通常情况下,文件名的字符包括:字母.数字.“.”(点).“_”(下划线)和“-”(连字符). Linux 允许在文件名中使用除上述符号之外的其它符号 ...
- linux中的特殊符号及其含义梳理
1. 重定向符号及含义 注意:箭头流向即是数据的流向. 数字0:标准输入(standard input,简写stdin),数据从右往左方向流动 数字1:标准正确输出(standard output,简 ...
- Linux中的常用符号
>, 1> 输出重定向符stdout,代码为1,重定向内容到文件,清除已有的内容,然后加入新内容,如果文件不存在还会创建文件 >>, 1>> 追加输出重 ...
- Linux Shell 编程中的特殊符号
一.井号 # 1.在脚本文件中对一行进行注释. 2.在引号和\符号后不是注释,只是#号本身: echo "12 # hehe" echo '12 # hehe' echo 12 \ ...
- linux shell中的特殊符号
该内容,均来自此网址(http://www.92csz.com/study/linux/12.htm).在下只是把那些命令的截图给去了. 你在学习linux的过程中,也许你已经接触过某个特殊符号,例如 ...
- Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)
case语句适用于需要进行多重分支的应用情况. case分支语句的格式如下: case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; *) 默认执行的命令序列 ...
- (转)linux 中特殊符号用法详解
linux 中特殊符号用法详解 原文:https://www.cnblogs.com/lidabo/p/4323979.html # 井号 (comments)#管理员 $普通用户 脚本中 #!/b ...
- linux中c表示字符设备文件符号
linux中c表示字符设备文件,b表示块设备文件,l表示符号链接文件,r表示可读权限,w表示可写权限.linux文件属性解读:文件类型:-:普通文件 (f)d:目录文件b:块设备文件 (block)c ...
- Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数: pathname: find命 ...
- Linux中检索文件
1 , Use locate command It is a fast way to find the files location, but if a file just created ,it w ...
随机推荐
- ubuntu docker 解决sudo权限问题
#如果还没有 docker group 就添加一个:$sudo groupadd docker#将用户加入该 group 内.然后退出并重新登录就生效啦.$sudo gpasswd -a ${USER ...
- Qt-FFmpeg开发-视频播放【硬解码】(2)
Qt-FFmpeg开发-视频播放[硬解码] 目录 Qt-FFmpeg开发-视频播放[硬解码] 1.概述 2.实现效果 3.FFmpeg硬解码流程 4.主要代码 6.完整源代码 更多精彩内容 个人内容分 ...
- Spring事务隔离级别和传播机制
引言 什么是事务? 在理解事务之前,我们要先了解事务的基本作用 比如在生活中有这样一个场景----取钱,每个人应该都干过的事 在ATM机上取钱,1.输入密码----2.输入金额----3.银行扣钱-- ...
- xshell和xftp下载免费版本方法
下载地址 https://www.xshell.com/zh/free-for-home-school/ 填写邮箱和用户名,会发送下载邮件到邮箱,然后根据邮箱中的下载地址来下载安装.
- SpringBoot3整合SpringDoc实现在线接口文档
写在前面 在现目前项目开发中,一般都是前后端分离项目.前端小姐姐负责开发前端,苦逼的我们负责后端开发 事实是一个人全干,在这过程中编写接口文档就显得尤为重要了.然而作为一个程序员,最怕的莫过于自己写文 ...
- java关于json的一些问题
今天重写代码的时候,发现了一个异常:java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntim ...
- Linux特殊权限之SBIT
简单点,说话的方式简单点: 用于修饰目录 其他用户x位替换成t 作用:目录属主在该目录下创建的文件只有该属主能删除
- IoTBrowser V2.0:引领物联网时代的全新浏览器
强大的兼容性,无限的可能 IoTBrowser V2.0,基于Chromium内核,完美支持H5/css/js开发界面,让您的物联网应用拥有与主流浏览器同等的流畅体验.同时,它还支持CSS 3动画.C ...
- 高通lk:配置与使用i2c
高通lk:配置与使用i2c 以msm8909为例. 背景 在lk中要去驱动一个aw9523的ic来控制指示灯. 但是现在对应的i2c没有打开.因此需要进行处理. 步骤 找到I2C对应的ID与句柄 参考 ...
- dig 命令详解及使用示例
一.背景知识 CNAME CNAME 是 Canonical Name 的缩写,它是 DNS(域名系统)记录的一种类型.CNAME 记录用于将一个域名映射(别名)到另一个域名.换句话说,当你访问一个设 ...