linux重定向符命令,linux重定向命令是哪3种
linux如何创建测试文本test.lot
linux如何创建测试文本test.lot如下
天水网站建设公司成都创新互联,天水网站设计制作,有大型网站制作公司丰富经验。已为天水上千提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的天水做网站的公司定做!
1.在Linux上使用重定向符()创建一个文件
标准重定向符允许我们创建一个0KB的空文件。它通常用于重定向一个命令的输出到一个新文件中。在没有命令的情况下使用重定向符时,它会创建一个文件。
2.在Linux上使用touch命令创建一个文件
touch命令常用于将每个文件的访问和修改时间更新为当前时间。
如果指定文件名不存在,就将新建一个文件。
如何使用Linux重定向符
1,标准输入的控制
语法:命令 文件将文件做为命令的输入。
例如:
mail -s “mail test” test@ahlinux.com file1
将文件file1 当做信件的内容,主题名称为mail test,送给收信人。
2,标准输出的控制
语法:命令 文件将命令的执行结果送至指定的文件中。
例如:
ls -l list
将执行“ls -l” 命令的结果写入文件list 中。
语法:命令! 文件将命令的执行结果送至指定的文件中,若文件已经存在,则覆盖。
例如:
ls -lg ! list
将执行“ls - lg” 命令的结果覆盖写入文件list 中。
语法:命令 文件将命令执行时屏幕上所产生的任何信息写入指定的文件中。
例如:
cc file1.c error
将编译file1.c 文件时所产生的任何信息写入文件error 中。
语法:命令》 文件将命令执行的结果附加到指定的文件中。
例如:
ls - lag 》 list
将执行“ls - lag” 命令的结果附加到文件list 中。
语法:命令》 文件将命令执行时屏幕上所产生的任何信息附加到指定的文件中。
例如:
cc file2.c 》 error
将编译file2.c 文件时屏幕所产生的任何信息附加到文件error 中。
关于输入、输出和错误输出
在字符终端环境中,标准输入/标准输出的概念很好理解。输入即指对一个应用程序或命令的输入,无论是从键盘输入还是从别的文件输入;输出即指应用程序或命令产生的一些信息;与 Windows 系统下不同的是,Linux 系统下还有一个标准错误输出的概念,这个概念主要是为程序调试和系统维护目的而设置的,错误输出于标准输出分开可以让一些高级的错误信息不干扰正常的输出信息,从而方便一般用户的使用。
在 Linux 系统中:标准输入(stdin)默认为键盘输入;标准输出(stdout)默认为屏幕输出;标准错误输出(stderr)默认也是输出到屏幕(上面的 std 表示 standard)。在 BASH 中使用这些概念时一般将标准输出表示为 1,将标准错误输出表示为 2。下面我们举例来说明如何使用他们,特别是标准输出和标准错误输出。
输入、输出及标准错误输出主要用于 I/O 的重定向,就是说需要改变他们的默认设置。
先看这个例子:
$ ls ls_result
$ ls -l 》 ls_result
上面这两个命令分别将 ls 命令的结果输出重定向到 ls_result 文件中和追加到 ls_result 文件中,而不是输出到屏幕上。""就是输出(标准输出和标准错误输出)重定向的代表符号,连续两个 "" 符号,即 "》" 则表示不清除原来的而追加输出。
再来看一个稍微复杂的例子:
$ find /home -name lost* 2 err_result
这个命令在 "" 符号之前多了一个 "2","2" 表示将标准错误输出重定向。由于 /home 目录下有些目录由于权限限制不能访问,因此会产生一些标准错误输出被存放在 err_result 文件中。大家可以设想一下 find /home -name lost* 2》err_result 命令会产生什么结果?
如果直接执行 find /home -name lost* all_result ,其结果是只有标准输出被存入 all_result 文件中,要想让标准错误输出和标准输入一样都被存入到文件中,那该怎么办呢?看下面这个例子:
$ find /home -name lost* all_result 2 1
上面这个例子中将首先将标准错误输出也重定向到标准输出中,再将标准输出重定向到 all_result 这个文件中。这样我们就可以将所有的输出都存储到文件中了。为实现上述功能,还有一种简便的写法如下:
$ find /home -name lost* all_result
如果那些出错信息并不重要,下面这个命令可以让你避开众多无用出错信息的干扰:
$ find /home -name lost* 2 /dev/null
有兴趣的朋友,可以试验下如下的几种重定向方式,看看结果是什么?
$ find /home -name lost* all_result 1 2
$ find /home -name lost* 2 all_result 1 2
$ find /home -name lost* 2 1 all_result
另外一个非常有用的重定向操作符是 "-",请看下面这个例子:
$ (cd /source/directory tar cf - . ) | (cd /dest/directory tar xvfp -)
该命令表示把 /source/directory 目录下的所有文件通过压缩和解压,快速的全部移动到 /dest/directory 目录下去,这个命令在 /source/directory 和 /dest/directory 不处在同一个文件系统下时将显示出特别的优势。
另外,几种不常见的用法:
n- 表示将 n 号输入关闭
- 表示关闭标准输入(键盘)
n- 表示将 n 号输出关闭
- 表示将标准输出关闭
Linux_022_重定向符号
重定向
重定向符号:将数据传到其他地方
(1) : 输出覆盖重定向
(2) : 输出追加重定向
(3) 或 :标准输入重定向
案例
1、读取文件内容,且写入到另一个文件中,覆盖写入文件内容
如果执行多次,也每次只会将之前的内容给清空掉
cat yu.txt ./yu1.txt
Linux 标准输入输出、重定向、管道、文件权限、后台启动进程命令-
IO 重定向是为了改变默认输入、输出的位置,如默认情况下标准输出(STDOUT),标准错误输出(STDERR)都是输出到显示终端,如对标准输出、标准错误输出改变其默认输出位置,可重定向输出到指定的文件中(实际工作中经常这么使用),要重定向就要配合一些语法符号。
文件或目录的访问权限分为只读、只写、可执行三种。
修改文件权限命令:chmod、chgrp、chown。
搞懂「文件所属者更改及权限的赋予」,涉及关于 chown、chmod、chgrp 命令,结合用例零基础理解和掌握使用。
&1'>Linux 重定向符号以及2>&1
一个进程默认会打开标准输入、标准输出、错误输出三个文件描述符
文件描述符为0,小于号表示数据由文件流入命令
usage:
命令 file
#加入输入重定向,对输入文件进行计数
wc -l /etc/passwd
文件描述符为1,大于号表述数据由命令流入文件
所以: echo "hello" t.log 也可以写成 echo "hello" 1 t.log
会把文件的内容清空,再输入到新的文件
会把当前内容保持不变,然后在下一行进行追加
2 错误重定向,如果当前命令产生了错误,会把错误重定向到文件中,而不会打印到屏幕
无论内容正确还是错误都会把文件输出到文件中。
stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
默认情况下, command file 将stdout 重定向到 file, command file 将stdin 重定向到 file。
如果希望 stderr 重定向到 file,可以这样写:
$ command 2file
如果希望 stderr 追加到 file 文件末尾,可以这样写:
$ command 2file 2 表示标准错误文件(stderr)
如果希望将 stdout 和 stderr 合并后重定向到 file,可以这样写:
$ command file 21 或者 $ command file 21
如果希望对 stdin 和 stdout 都重定向,可以这样写:
$ command file1 file2
command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2。
含义:将标准错误输出 重定向到 标准输出。
符号是一个整体,不可分开,分开后就不是上述含义了。
比如有些人可能会这么想:2是标准错误输入,1是标准输出,是重定向符号,那么"将标准错误输出重定向到标准输出"是不是就应该写成"21"就行了?是这样吗? 如果是尝试过,你就知道21的写法其实是将标准错误输出重定向到名为"1"的文件里去了
分享标题:linux重定向符命令,linux重定向命令是哪3种
转载注明:http://azwzsj.com/article/hcihho.html