首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux2>&1的含义

A Linux0、12的含义 名称 代码 操作符 Java中表示 Linux 下文件描述符(Debian 为例) 标准输入(stdin) 0 /dev/pts/0 标准错误输出(stderr) 2 2> 或 2>> System.err /dev/stderr -> /proc/self/fd/2 -> /dev/pts/0...不能写成2&>1 C 为什么2>&1要放在后面 例子:nohup java -jar app.jar >log 2>&1 & 最后一个&表示把这条命令放后台运行 问题:为什么2>&1放在>log后面??...回答: 我们不妨把12都理解是一个指针,那么这么想 本来1->屏幕(1指向屏幕) 执行>log后,1->log(1指向log) 执行2>&1后,2->12指向1,而1指向log,因此2也指向了...log) 那么再分析一下nohup java -jar app.jar 2>&1 >log & 本来1->屏幕 执行2>&1后,2->12也指向屏幕) 执行>log后,1->log(这时候1指向log

98861
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux>,>>,>&,&>,&,&&,|,||,2>&1到底是什么?

    前言 在linux我们时常能见到>,>>,>&,&>,&,&&,|,||,2>&1等符号,它们到底是什么?下面浅谈一下我的看法,如有不对的地方请大家及时指正!...linux的文件描述符和重定向 文件描述符 在介绍上述符号表示什么之前,我们需要先知道在linux中有三种标准的文件描述符(也支持自定义),分别为: • 0:表示标准输入(stdin) • 1:表示标准输出...access 2: No such file or directory 从上面的例子可以看到ls donot_exist.txt >output.log 2&>1与ls donot_exist.txt...2&>1 2&>1表示将标准错误输出重定向至标准输出。...例如,先通过2&>1将标准错误2输出重定向至标准输出1,再通过>将标准输出1重定向到为output.log,使得output.log也包含了标准错误信息。

    2.5K20

    Linux tcpip 源码分析 - write

    iov_iter_init(&iter, WRITE, &iov, 1, len);   ret = call_write_iter(filp, &kiocb, &iter);   ......// include/linux/fs.h static inline ssize_t call_write_iter(struct file *file, struct kiocb *kio,...方法描述 1. 设置copied为0,该变量用于记录我们写成功的字节数。 2. 查看当前的mss值,即tcp包最大可带多少数据,并赋值给mss_now。 3....调用skb_availroom方法,查看skb是否有可写空间,如果有的话,先根据可写空间大小修正copy的值,再调用skb_add_data_nocache方法,将msg的数据拷贝到skb。...将这次while循环成功拷贝的字节数累加到copied变量。 14. 判断msg是否还有要写的数据,如果有,则继续while循环,如果没有,则跳出while循环,进入到out标签指向的逻辑。

    2.1K30

    深入理解 Linux shell 2>&1 的含义

    首先了解下12Linux中代表什么 在Linux系统0 1 2是一个文件描述符 名称 代码 操作符 Java中表示 Linux 下文件描述符(Debian 为例) 标准输入(stdin) 0 log 2>&1 & 为什么2>&1一定要写到>log后面,才表示标准错误输出和标准输出都定向到log?..."error1",log文件则只有"out1" 每次都写">log 2>&1"太麻烦,能简写吗?...有以下两种简写方式 &>log >&log 比如上面小节的写法就可以简写为: nohup java -jar app.jar &>log & 上面两种方式都和">log 2>&1"一个语义。...语义上是没有任何区别的,但是第一方式是最佳选择,一般使用第一种 参考: https://unix.stackexchange.com/questions/89386/what-is-symbol-and-in-unix-linux

    1.4K30

    Linux Shell 1>devnull 2>&1 含义

    那么12是什么? 在shell,每个进程都和三个系统文件 相关联:标准输入stdin,标准输出stdout、标准错误stderr,三个系统文件的文件描述符分别为0,12。...linux shell "2>&1"含义脚本是: nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于&1 更准确的说应该是文件描述符 1,而1 一般代表的就是...command > file 2>&1          首先是command > file将标准输出重定向到file2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到file,最终结果就是标准输出和错误都被重定向到...用strace可以看到:  1. command > file 2>&1  这个命令实现重定向的关键系统调用序列是:  open(file) == 3  dup2(3,1)  dup2(1,2) 2....command 2>&1 >file  这个命令实现重定向的关键系统调用序列是:  dup2(1,2)  open(file) == 3  dup2(3,1) 可以考虑一下不同的dup2()调用序列会产生怎样的文件共享结构

    2.2K20

    聊聊zfswrite

    kernel sys_write :当应用程序执行write函数会触发sys_write系统调用,具体的系统调用的表参照https://filippo.io/linux-syscall-table/...是内核提供的抽象的写接口,其中do_sync_write是内核4.x内核提供的函数,在5.x内核版本是new_sync_write函数.linux内核版本不同会导致部分系统函数有部分的差异。...如下是参考linux kernel 5的内核代码分析 // libc提供的write的接口 SYSCALL_DEFINE3(write, unsigned int, fd, const char __user...zfs_write分为一个block的全部写和部分写;整块写首先针对块加锁,然后读取,在更改的新数据关联新的buffer;如果是部分写,首先也是读取操作,更改block的部分内容,标记为脏页. //...z_node代表zfs的inode,zfs_uio_t 是偏移量和长度 // 函数是经过省略的部分。

    1.8K10

    linux 系统调用 write 的原子性

    1. 问题描述 开始阅读 nginx 源码的时候就一直伴随着一个问题,那就是多进程的 nginx 模型是怎么保证多个进程同时写入一个文件不发生数据交错呢? 猜想,主要有以下几种解决方案: 1....2. nginx 具体实现 通过阅读源码,我们发现 nginx 只有一把互斥锁,即用来避免惊群现象的 ngx_accept_mutex 锁,其余地方完全没有用到锁机制,这么做原因很简单,在工程化的代码...那么对于不同类型的文件与不同的系统实现 write 究竟是怎么处理的呢? 3.1. 普通文件 有三种情况可能导致文件写入失败: 1. 磁盘已满 2. 写入文件大小超出系统限制 3....linux 系统默认使用 O_NONBLOCK 标识打开文件,而 bsd 等 unix 系统则恰恰相反。 3.2....3.3. socket linux 2.6.14 内核对 tcp socket 写操作进行了说明,他并不是原子的。

    1.7K60

    理解 Linux shell 的一个方言:2>&1

    前言 在使用 linux 命令或者 shell 编程时,这个用法常会遇到 2>&1 如果是刚开始接触Linux,这个东西的确不好理解,因为他没有直观的含义,不像一个命令,例如 cp是 copy 的简写,...我们可以把文件内容发送到别的地方,例如,重定向到 output.txt 文件 : $ cat foo.txt > output.txt $ cat output.txt foo bar baz 其中第一个...回顾开头的那个命令: ls foo > /dev/null 2>&1 现在基本上已经可以理解了: stdout 重定向到 /dev/null stderr 重定向到 &1 /dev/null 是空设备的意思...&1 表示:文件描述符1 的值,也就是标准输出的值,那么 2>&1 就是 标准错误输出 与 标准输出 一样,也是重定向到空设备。 所以这个命令的意思是:正确信息和错误信息都不显示了。...> output 是 command 1> output 的简写 &文件描述符 是引用某个文件描述符的值 2>&1 是错误输出的位置与标准输出的位置相同

    981120

    linux copy on write源码分析(基于linux0.11)

    比如进程fork的时候,父子进程对应的物理地址都一样,这时候会在页表项记录该物理地址是只读的,有一个进程写的时候,就会触发写保护异常。执行写时复制。...一个在系统栈的错误码,一个在cr2寄存器中保存的引起异常的线性地址。错误码一般会告诉系统这些信息。 ——P 标志表明异常是由于一个不存在页(0)还是访问权限违例或是使用了保留位(1)。...movl %cr2,%edx // 线性地址(有的话)和错误码入参 pushl %edx pushl %eax // 1和eax与,结果放到ZF testl...$1,%eax // zf=0则跳转,即0是写异常,1是缺页异常 jne 1f call _do_no_page // 跳到标签2 jmp 2f 1: call...popl %eax ire 处理程序是do_wp_page /* * This routine handles present pages, when users try to write

    2.2K20

    linux系统调用之write源码解析(基于linux0.11)

    write函数的部分逻辑和read相似。我们先看入口函数。...count) return 0; inode=file->f_inode; if (inode->i_pipe) return (file->f_mode&2)...i:-1); } file_write的大概逻辑就是根据inode记录的文件信息,根据需要写入的位置算出,硬盘的位置或者说块号。如果对应的块已经存在,则直接返回对应的块号,否则需要新建块。...// 位图存在多个块,i为第i个块,每个块对应的位图管理着8192个数据块 j += i*8192 + sb->s_firstdatazone-1; // 算出块号 // 超过了最大块号...,因为新建的内容在硬盘还没有 bh->b_dirt = 1; brelse(bh); return j; } 创建新块就是在文件系统的超级块结构,根据当前块的使用情况,申请一个新的块

    3.6K40

    Linux命令 黑洞>devnull和2>&1

    linux命令的>/dev/null黑洞 Linux的标准输入输出 0是标准输入,一般是从键盘获得输入 1是标准输出,一般是输出到屏幕上 2是标准错误,有时候屏幕上可以看到,但是重定向的文件中看不到的就是它了...,错误报告直接就删除了,不会显示在屏幕上 实例 如果出现这种有很多报错的情况,可以使用2>/dev/null这个选项将错误信息重定向到黑洞,只留下正确的信息回显,这个时候我们就能快速而精确的找到我们需要的文件了...2>&1 含义 将标准错误输出重定向到标准输出 符号>&是一个整体,不可分开 2>&12>1的区别 符号>&是一个整体 2>1的写法实际上是将标准错误输出重定向到名为”1“的文件中去了,没有1这个文件...,而不是1所代表的标准输出 写成2&>1也是不可以的 为什么2>&1要放在后面 可以将12都理解为一个指针 本来1----->屏幕 (1指向屏幕) 执行>log后, 1----->log (1指向log...) 执行2>&1后, 2----->1 (2指向1,而1指向log,因此2也指向了log) >和>>的区别 >是重定向文件,覆盖文件原有的内容 >>是重定向文件时,以追加的方式写入文件

    67410

    bash 2>&1 & 的解释

    一、标准输入,标准输出,标准错误 bash0,12三个数字分别代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,...即ls > 1.txt会新建一个1.txt文件并且将ls的内容输出到新建的1.txt,而ls >> 1.txt则用在1.txt已经存在,而我们只是想将ls的内容追加到1.txt文本的时候。...非常直观的想法就是2>1。...; 查看文件1的内容,实际结果为:1 a.txt b.c c 可见步骤3 ls > 1并不是将ls的结果重定向为标准输出,而是将结果重定向到了一个文件1。...即1在此处不被解释为STDOUT_FILENO,而是文件1。 五、结论 到了此时,你应该也能猜到2>&1的用意了。不错,2>&1就是用来将标准错误2重定向到标准输出1的。

    85420

    linux系统用write和wall命令实现对话

    这篇文章主要介绍“linux系统用write和wall命令实现对话”,有一些人在linux系统用write和wall命令实现对话的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助...一、  write 用法:write 用户名;敲回车后,自己和对方将会同时处于聊天的状态,但是被发起连接的人只能收到发起聊天请求的人的聊天内容,但是不能回复,如果想要回复的话必须先向对方发起连接,这样以来两个人就可以聊天了...范例: uptime 其结果为: 10:41am up 5 days, 10 min, 1 users, load average: 0.00, 0.00, 1.99 二、  wall 用法:wall...敲回车后,即可输入自己想要说的话,将所要说的话输入完成后,按ctrl+D,这样所有在线的用户就可以同时收到信息的内容,不过这个只能发一次,下一次再发的话还得从头再来,如果两个在线用户想一直聊的话就得用write...“linux系统用write和wall命令实现对话”的内容就介绍到这里了,感谢大家的阅读 免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱

    1.6K10

    Linux-Copy On Write写时复制机制初探

    to as implicit sharing[1] or shadowing,[2] is a resource-management technique used in computer programming...我是父进程 统计结果是: 1 fork 函数会有两次返回 1) 将子进程的PID返回给父进程,2) 0返回给子进程。...故: 父进程在执行if代码块的时候,fpid变量的值是子进程的pid,子进程在执行if代码块的时候,fpid变量的值是0 ---- 函数族exec( ) 在Linux要使用exec函数族。...exec函数族不止一个,但它们大致相同,在 Linux,它们分别是:execl,execlp,execle,execv,execve和execvp。...出于效率考虑,Copy On Write 技术引入到进程,fork 之后的父进程和子进程完全共享数据段、代码段、堆和栈等的完全副本。

    3.4K10

    linux驱动开发copy_from_user open read write等常用函数总结

    此为Linux2.2以后特有的旗标,以避免一些系统安全问题。...返回值: 如果顺利write()会返回实际写入的字节数。当有错误发生时则返回-1,错误代码存入errno。...说明:   (1write()函数返回值一般无0,只有当如下情况发生时才会返回0:write(fp, p1+len, (strlen(p1)-len)第三参数为0,此时write()什么也不做,只返回...man手册给出的write()返回值的说明如下:   (2write()函数从buf写数据到fd时,若buf数据无法一次性读完,那么第二次读buf数据时,其读位置指针(也就是第二个参数buf)...test code"有21个字符,经笔者亲自试验,若write时每次写3个字节,虽然可以将p1数据写到fp,但文件test.txt中会带有很多乱码。

    1.3K30
    领券