':Nosuchfileordirectoryls:cannotaccess'f11':Nosuchfileordirectory重定向重定向输入ex单个脚本内有效#单个脚本内有效#重定向输入到f1,读取时直接从...">&1echo"outputmsg4">&1exec1出到控制台echo"outputmsg5"echo"outputmsg6"echo"outputmsg7">&1echo"outputmsg8.../bin/bashexec3f2#创建输入和输出文件描述符3,并且读写都指向同一文件f2readline从f2中读取第一行,指针停留在第二行开始echo"readline=$line"echo"writeline.../dev/pts/0bash130473yr1uCHR136,00t03/dev/pts/0bash130473yr2uCHR136,00t03/dev/pts/0lsof130646yr0uCHR136,00t03.../dev/pts/0lsof130646yr1uCHR136,00t03/dev/pts/0lsof130646yr2uCHR136,00t03/dev/pts/0lsof130646yr3rDIR0,2301
# vim passwd3.显示一下行号:set nu4.复制第5到10行的内容,粘贴到末尾,删除最后一行的最后一个单词:5 ; 6yy ; G ; p ; dw5.删除第9行和第10行:9 ; 2dd6.../pts/6#(注:链接的意思,快捷方式 指向/dev/pts/6,标准输入到虚拟终端6)lrwx------. 1 root root 64 10月 16 10:40 1 -> /dev/pts/6#...(注:标准输出到虚拟终端6)lrwx------. 1 root root 64 10月 16 10:40 2 -> /dev/pts/6#(注:标准错误输出到虚拟终端6)lrwx------. 1 root...pts# ls0 1 2 3 4 5 6 ptmxroot@sanchuang-linux pts# pts是别人连接到服务器的虚拟终端(远程控制)。...-------------------------------------------------------管道与xargsxargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据
5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。...若使用如下命令: #会把文件`/etc/passwd`的内容依次显示到屏幕上 [root@zls ~]# cat /etc/passwd 但如果cat命令行中没有参数, 它就会从标准输入中读取数据, 并将其送到标准输出...root root 64 Dec 3 06:57 1 -> /dev/pts/1 lrwx------ 1 root root 64 Dec 3 06:56 2 -> /dev/pts/1 lr-x...root /error >ab &>/dev/null ---- 案例6: 脚本中使用重定向 [root@zls ~]# vim ping.sh #!...Install or Reset C7.4 | | 5. Instqll or Reset W7 | | 6.
. 1 ya ya 64 4月 3 20:00 1 -> /dev/pts/6 lrwx------. 1 ya ya 64 4月 3 20:00 2 -> /dev/pts/6 lr-x---...S 0:00 | \_ sshd: ya@pts/5 23718 pts/5 Ss 0:00 | \_ -zsh 4812 pts/5 S+...-. 1 ya ya 64 4月 3 21:22 1 -> /dev/pts/5 lrwx------. 1 ya ya 64 4月 3 21:17 2 -> /dev/pts/5 关系如下图所示...read from parent: %s", buf); sleep(1); } } return 0; } 执行上面的代码,就可以看到从子进程写入的字符串,在父进程中可以读取并显示在终端中了.../dev/pts/0 lrwx------ 1 root root 64 4月 5 23:20 1 -> /dev/pts/0 lrwx------ 1 root root 64 4月 5 23
用户通过telnet或者ssh登录后,会动态生成一个控制终端(比如/dev/pts/0),如下图所示: ?...我们是否可以把标准输入/输出(STDIN/STDOUT)从ttyS0解绑,重新映射到pts0上呢?答案是肯定的。...如下图所示,重新绑定后,打印就可以直接输出到telnet或者ssh对应的控制台,经由网络传输到PC上;同时,也可以从PC上接收输入(如果应用程序监听了STDIN,PC上的输入就可以直接被应用程序读取到,...Client调用系统函数ttyname获取当前控制终端名称(一般为/dev/pts/0),并将相关信息发送给Server。...int fd_out = open("/dev/pts/0", O_WRONLY); if (fd_out dev/pts/0.error
例如 1:终端0输入消息到终端1那么此过程叫做重定向(将终端0上的 ‘Redirect’ 重定向到终端 1) # 终端 0 > tty /dev/pts/0 > echo 'Redirect' > /...dev/pts/1 > # 终端 1 [root@localhost ~]# tty /dev/pts/1 [root@localhost ~]# Redirect 例如 2:将date输出的结果重定向到...进程管道 管道实际上头也是一种重定向,重定向字符控制输出到文件,管道控制输出到其他程序,其实是将结果传递给下一个程序调用。...在使用管道时,前一个命令的标准错误不会被 tee 读取 使用范例 范例 1: ps 命令结果通过管道给 grep 匹配 > ps -ef |grep php root 1451...2:查看系统是否有linux用户 > cat /etc/passwd |grep linux > 范例 3:使用free命令显示系统内存使用信息,并使用tee命令将信息输出到屏幕,并保存到文件mem.txt
/null 2>&1 & 不输出日志 二、nohup 和 & 使用&后台运行程序: 结果会输出到终端 使用Ctrl + C,程序免疫 关闭session,程序关闭 使用nohup运行程序: 结果默认会输出到...它通常用于重定向一个命令的输出到一个新文件中。在没有命令的情况下使用重定向符号时,它会创建一个文件。 /dev/null 可以看作黑洞,等价于一个只写文件。...所有写入它的内容都会永远丢失,尝试从它那儿读取内容则什么也读不到。.../stdin -> /proc/self/fd/0 -> /dev/pts/0 标准输出(stdout) 1 >, >>, 1> 或 1>> System.out /dev/stdout -> /proc.../self/fd/1 -> /dev/pts/0 标准错误输出(stderr) 2 2> 或 2>> System.err /dev/stderr -> /proc/self/fd/2 -> /dev/
/dev/full 它在读取时会读取到连续的NUL(零值)字节流,而在写入的时候,会返回磁盘空间已满的结果, 后者在测试你的程序的时候会有帮助,即测试磁盘满的场景: $ echo "bianchengzhuji...3022 2099 e5da 4e1c d6db 548b a979 1217 0000040 3777 bb6a 957d 1279 ab29 e8a4 6a36 ecca 0000060 39ec.../dev/urandom 从名字就可以看出来,是用来产生随机数据的。...5691 89e1 e1f9 /dev/pts /dev/pts是远程登陆(telnet,ssh等)后创建的控制台设备文件所在的目录。...举个例子,你打开一个终端,获取到当前的pts: $ tty /dev/pts/0 然后你又打开一个,输入: $ echo "hahahaha">/dev/pts/0 你就会发现内容被打印到前面一个终端了
1>&6 vincent@geek:~/test$ cat test i love linux shell!!!1234 上面的命令很有意思:我首先把文件描述符6指向test文件。.../pts/13 bash 22609 vincent 1u CHR 136,13 0t0 16 /dev/pts/13 bash 22609 vincent 2u...CHR 136,13 0t0 16 /dev/pts/131234567 下图是上面各项的含义 ?...vincent 2u CHR 136,20 0t0 23 /dev/pts/2012345678 ---- /dev/null文件,这是一个很特殊的文件,你写入的任何东西都会清空...test.XXX # 这个是在/tmp目录创建的 mktemp -t test.XXXXX # 创建目录,在当前目录 mktemp -d test.XXXXX123456 ---- tee命令 – 从标准输入读取
,pty 父进程负责读取标准输入,将内容导入到伪终端主设备(pty main device),也就是 slowout 的输入; pty 子进程负责从伪终端主设备(pty main device) 读取数据...,也就是 slowout 的输出,并将内容导出到标准输出。...() from /lib/libc.so.6 #4 0x006ee74a in __uflow () from /lib/libc.so.6 #5 0x006e7d7c in getchar ()...这样一来,当 slowout 尝试读取时,将从伪终端从设备读取,而这个并不会返回 eof,而是期待 pty 父进程将终端输入导向这里。...但是 pty 父进程早就因为读取 /dev/null 得到 EOF 而退出了,只不过临退出前因为指定了 -i 参数,没有将 pty 子进程一并结束罢了。
对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。...使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去。.../dev/console即控制台,是与操作系统交互的设备,系统将一些信息直接输出到控制台上。目前只有在单用户模式下,才允许用户登录控制台。...5、虚拟终端(/dev/pts/n) 在Xwindows模式下(图形界面下)的伪终端.如我在Kubuntu下用konsole,就是用的虚拟终端,用tty命令可看到/dev/pts/1。...6、其它类型 Linux系统中还针对很多不同的字符设备存在有很多其它种类的终端设备特殊文件。例如针对ISDN设备的/dev/ttyIn终端设备等。这里不再赘述。
3-重定向输入、输出 我们可以将结果从屏幕重定向到某个文件。...0 -> /dev/pts/0 lrwx------ 1 yzpeng yzpeng 64 Apr 30 12:59 1 -> /dev/pts/0 lrwx------ 1 yzpeng yzpeng...当我们设定的文件描述符不想使用时,还可以关闭它们: $ exec 4>&- $ cd /dev/fd;ls -Al;cd - 5-屏蔽输出 在上一节我们也说过,/dev/null 有时候很有用。...读取它则会立即得到一个 EOF。 如果将标准输出重定向到这个“黑洞”,则就会完全得不到任何的输出结果了。...$ cat Documents/test.c 1>/dev/null 2>&1 6-tee命令 如果我们想要将结果同时输出到屏幕与文件,我们可以使用tee命令: echo 5 | tee test2.
) 4、控制台终端(/dev/ttyn, /dev/console) 5、其它类型 **FAQ: 终端和控制台** Linux中的tty与pts tty是真的,pts是假的,相互对应 ---- 终端是一种字符型设备...此时一个getty程序就应该运行在对应的ttyp2(s2)端口上(真正的端口,从设备) 当telnet从远端获取了一个字符时,该字符就会通过m2、s2传递给 getty程序,而getty程序就会通过s2...目录 /dev/pts是一个类型为devpts的文件系统,并且可以在被加载文件系统列表中看到。虽然“文件”/dev/pts/3看上去是设备文件系统中的一项,但其实它完全是一种不同的文件系统。...使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去。tty1–tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上。...A:/dev/console即控制台,是与操作系统交互的设备,系统将一些信息直接输出到控制台上。目前只有在单用户模式下,才允许用户登录控制台。 ---- Q:/dev/tty是什么?
2.使用VNC方式连接: 通过VNC方式访问虚拟机需在KVM虚拟化平台上配置VNC访问服务器,并修改单个虚拟机配置文件,分配相应端口,实现每个虚拟机VNC端口区别访问。...对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。.../dev/console即控制台,是与操作系统交互的设备,系统将一些信息直接输出到控制台上。目前只有在单用户模式下,才允许用户登录控制台。...5 虚拟终端(/dev/pts/n) 在Xwindows模式下的伪终端.如我在Kubuntu下用konsole,就是用的虚拟终端,用tty命令可看到/dev/pts/1。 ...6 其它类型 Linux系统中还针对很多不同的字符设备存在有很多其它种类的终端设备特殊文件。例如针对ISDN设备的/dev/ttyIn终端设备等。这里不再赘述。
重定向 实际上,我们的程序在运行起来后,都会有三个文件描述符: 0 标准输入 1 标准输出 2 标准错误 一般标准输出都是都直接输出到终端。...Nov 16 16:26 1 -> /dev/pts/0 lrwx------ 1 root root 64 Nov 16 16:26 2 -> /dev/pts/0 看到了吗,0,1,2都重定向到了.../dev/pts/0,其实就是当前终端(参考《Linux下你还知道这些特殊文件?》)...: $ tty /dev/pts/0 所以如果我们要将printf的打印保存到文件中,实际上就让它重定向到这个文件就可以了。...Nov 17 17:03 2 -> /dev/pts/0 l-wx------ 1 root root 64 Nov 17 17:03 3 -> /data/workspaces/test.log 这种情况适合于将标准输出的内容和其他写文件的内容一并保存到文件中
mkdir -p /dev/pts mount -vt devpts -o gid=4,mode=620 none /dev/pts chmod 666 /dev/ptmx cat /proc/kallsyms...mkdir -p /dev/pts 和 mount -vt devpts -o gid=4,mode=620 none /dev/pts: 创建并挂载一个 devpts 文件系统到 /dev/pts 目录...弹出 SS 寄存器的值:这个值是用户栈段的段选择子,告诉处理器从用户栈段中读取数据。...通过这些弹出操作,处理器会将控制权交还给用户空间的代码,从而实现了从内核空间到用户空间的切换,并开始执行用户自定义的代码。.../start.sh 参考:[2018强网杯 core | X3h1n](https://x3h1n.github.io/2019/07/04/2018%E5%BC%BA%E7%BD%91%E6%9D%AF-core
它对应于linux中的字符设备文件/dev/tty[n]。 上面所说的控制台对应的的设备文件是/dev/console 后三行中pst/[n]是伪终端,对应设备文件/dev/pts/[n]。...2 -> /dev/pts/0 它们都指向了同一个字符设备文件/dev/pts/0,而这个文件就是我们当前所用的终端(如前所述)。...[root@centos7 ~]# ls -l /dev/pts/0 crw--w---- 1 root tty 136, 0 10月 25 20:52 /dev/pts/0 也就是说,bash的三个数据流都指向终端...第一个命令cat file1将文件内容输出到屏幕上,第二个命令cat file1 > file5使用符号>将标准输出指向了文件file5(重定向符号和文件之间有没有空格都可以),于是file5中就保存了...26 18:01 xab -rw-r--r-- 1 root root 2 10月 26 18:01 xac 12、tee 从标准输入读取内容并输出到标准输出和文件中 tee [OPTION]...
第一个用户登陆,console的设备文件为/dev/pts/0,第二个为/dev/pts/1,以此类推。这里的0、1、2、3不是具体的标准输入或输出,而是整个控制台。...你可尝试 echo "aaaaaa" > /dev/pts0、1、2……。...控制终端(/dev/tty) 控制终端 /dev/tty指的是当前所处的终端,输出到此的内容只会显示在当前工作的终端显示器上。...对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。 使用命令”tty”可以查看它具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。...这个终端文件可以由各个用户共享 控制台终端(/dev/ttyn, /dev/console) 控制台终端/dev/ttyn n(0到6), tty1,tty2就是不同的虚拟终端(virtual console
输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。...标准输入重定向(STDIN,文件描述为 0 ):默认从键盘输入,也可以从其他文件或命令中输入。 标准输出重定向(STDOUT,文件描述为 1 ):默认输出到屏幕。...~]# echo file{1,2,3,4,5} file1 file2 file3 file4 file5 3.5 常用的转义符 4 个最常用的转义字符如下所示。...先定义一个名为 zxbke 的变量并赋值为 www.zxbke.cn,然后分别输出以单引号和双引号括起来的字符串与变量信息: [root@servera ~]# zxbke='www.zxbke.cn'...,即“价格是 5 美元”的字符串内容,但碰巧美元符号与变量提取符号合并后的 [root@servera ~]# PRICE=5 [root@servera ~]# echo "Price is $$PRICE