给大家带来linux输出输入重定向利用详解
linux系统的文件布置,etc/,opt/目录的内容等;1.输入重定向:
默许前提下,尺度输入和毛病输入都是终端,能够把尺度输入和毛病内容举行重定向:
.代码以下:
[~]#echo"hello!"
hello!
[~]#echo"hello!"
-bash:!":eventnotfound"
把尺度输入重定向到文件
.代码以下:
[~]#echo"hello">test.sh
[~]#cattest.sh
hello
>输入体例默许等价1>
[~]#echo"hello"1>test.sh
[~]#cattest.sh
hello
可是毛病内容仍是会显现在屏幕上:
.代码以下:
[~]$catedit.sql/root/test.sh>temp.sh
cat:/root/test.sh:Permissiondenied
能够把毛病内容也输入到文件中(使用文件形貌符):
.代码以下:
[~]$catedit.sql/root/test.sh1>temp.sh2>error.sh
[~]$cattemp.sh
selectdbms_rowid.rowid_object(AAAZdQAAGAAATxjAAk)data_object_id#,
dbms_rowid.rowid_relative_fno(AAAZdQAAGAAATxjAAk)rfile#,
dbms_rowid.rowid_block_number(AAAZdQAAGAAATxjAAk)block#,
dbms_rowid.rowid_row_number(AAAZdQAAGAAATxjAAk)row#fromdual
/
[~]$caterror.sh
cat:/root/test.sh:Permissiondenied
把尺度输入和毛病信息写进统一个文件:
.代码以下:
[~]$catedit.sql/root/test.sh>temp.sh2>&1
[~]$cattemp.sh
selectdbms_rowid.rowid_object(AAAZdQAAGAAATxjAAk)data_object_id#,
dbms_rowid.rowid_relative_fno(AAAZdQAAGAAATxjAAk)rfile#,
dbms_rowid.rowid_block_number(AAAZdQAAGAAATxjAAk)block#,
dbms_rowid.rowid_row_number(AAAZdQAAGAAATxjAAk)row#fromdual
/
cat:/root/test.sh:Permissiondenied
这个看起来对照贫苦,实践使用中大概用的最多的是:
.代码以下:
[~]$catedit.sql/root/test.sh&>temp.sh
[~]$cattemp.sh
selectdbms_rowid.rowid_object(AAAZdQAAGAAATxjAAk)data_object_id#,
dbms_rowid.rowid_relative_fno(AAAZdQAAGAAATxjAAk)rfile#,
dbms_rowid.rowid_block_number(AAAZdQAAGAAATxjAAk)block#,
dbms_rowid.rowid_row_number(AAAZdQAAGAAATxjAAk)row#fromdual
/
cat:/root/test.sh:Permissiondenied
&>把一切输入都写进统一个文件
假如不想输入到文件,也不想在屏幕上显现,能够使用/dev/null这一特别设备文件(bitbucket)
[~]$catedit.sql/root/test.sh&>/dev/null
假如把尺度输入写进到文件,就没法使用管道标记|把内容传给接上去的命令,能够使用tee命令办理这个成绩:
.代码以下:
[~]$catedit.sql/root/test.sh|teetemp.sh|cat-n
cat:/root/test.sh:Permissiondenied
selectdbms_rowid.rowid_object(AAAZdQAAGAAATxjAAk)data_object_id#,
dbms_rowid.rowid_relative_fno(AAAZdQAAGAAATxjAAk)rfile#,
dbms_rowid.rowid_block_number(AAAZdQAAGAAATxjAAk)block#,
dbms_rowid.rowid_row_number(AAAZdQAAGAAATxjAAk)row#fromdual
/
tee命令相称于把stdout正本写进文件,再把stdout传给下一个命令,可是毛病内容是没法用tee传送的,好像利用>>追加内容,tee可使用-a选项追加:
.代码以下:
[~]$catedit.sql/root/test.sh|tee-atemp.sh|cat-n
cat:/root/test.sh:Permissiondenied
selectdbms_rowid.rowid_object(AAAZdQAAGAAATxjAAk)data_object_id#,
dbms_rowid.rowid_relative_fno(AAAZdQAAGAAATxjAAk)rfile#,
dbms_rowid.rowid_block_number(AAAZdQAAGAAATxjAAk)block#,
dbms_rowid.rowid_row_number(AAAZdQAAGAAATxjAAk)row#fromdual
/
[~]$cattemp.sh
selectdbms_rowid.rowid_object(AAAZdQAAGAAATxjAAk)data_object_id#,
dbms_rowid.rowid_relative_fno(AAAZdQAAGAAATxjAAk)rfile#,
dbms_rowid.rowid_block_number(AAAZdQAAGAAATxjAAk)block#,
dbms_rowid.rowid_row_number(AAAZdQAAGAAATxjAAk)row#fromdual
/
selectdbms_rowid.rowid_object(AAAZdQAAGAAATxjAAk)data_object_id#,
dbms_rowid.rowid_relative_fno(AAAZdQAAGAAATxjAAk)rfile#,
dbms_rowid.rowid_block_number(AAAZdQAAGAAATxjAAk)block#,
dbms_rowid.rowid_row_number(AAAZdQAAGAAATxjAAk)row#fromdual
/
2.输出重定向:
输出重定向,在一些场所,比方数据库监控顶用的对照多,罕见的是利用内联重定向
.代码以下:
[~]$cat<edit.sql
selectdbms_rowid.rowid_object(AAAZdQAAGAAATxjAAk)data_object_id#,
dbms_rowid.rowid_relative_fno(AAAZdQAAGAAATxjAAk)rfile#,
dbms_rowid.rowid_block_number(AAAZdQAAGAAATxjAAk)block#,
dbms_rowid.rowid_row_number(AAAZdQAAGAAATxjAAk)row#fromdual
/
比方,以下操纵,把<<EOF>temp.sh到最初EOF之间的内容看成stdin,然后把stdout写进文件temp.sh
.代码以下:
[~]$cat<<EOF>temp.s
thisismylog
EOF
[~]$cattemp.sh
thisismylog
3.自界说文件形貌符:
自界说文件形貌符的道理是利用基础的三种文件翻开形式
只读(<)
截断(>)
追加(>>)
创立一个文件形貌符3,用于翻开文件
[~]#exec3<test.sh
上面就能够间接利用文件形貌符翻开文件了,可是只能利用一次:
.代码以下:
[~]#cat<&3
hello
hello
创立文件形貌符4,用于写进文件(能够复用):
.代码以下:
[~]#exec4>test.sh
[~]#echookok>&4
[~]#cattest.sh
okok
这个实践相似后面的:
.代码以下:
[~]$catedit.sql/root/test.sh>temp.sh2>&1
创立文件形貌符5,用于向文件追加内容(也能够复用,不像输出文件形貌符那样只能利用1次):
.代码以下:
[~]#exec5>>test.sh
[~]#echookokok>&5
[~]#cattest.sh
okokok
[~]#echookokok>&5
[~]#cattest.sh
okokok
okokok
使用gcc或g++进行编译,使用gdb进行调试; 我感觉linux的学习,学习编程~!~!就去学习C语言编程!! 其实老师让写心得我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌乱;很少提到编程,因为那些在实验报告里已经说了,这里再写就多余了。 任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统. 笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机 我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。 写学习日记,这是学习历程的见证,同时我坚持认为是增强学习信念的法宝。 熟读Linux系统有关知识,如系统目录树,有关内容可购书阅读或搜索论坛。
页:
[1]