您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
马哥Linux运维学习笔记-管理及IO重定向
发布时间:2018-04-30 10:15:15编辑:雪饮阅读()
计算机
计算机的由五大部件组成
运算器、控制器:cpu
存储器:ram
输入、输出设备
控制器、运算器、存储器间的交互:
读取指令,并在指针的控制下读取要进行的运算(包括数据)和要执行的计算。
控制器会控制着告诉我们的运算器到哪里去取数据,数据取过来后运算器就可以做运算了。
运算结果由控制器控制下输出到可能是存储器当中。
因此就有了地址总线、数据总线、控制总线。
地址总线:内存寻址
数据总线:传输数据
控制总线:控制指令
实际上机器内部总线是复用的,一根总线3种功能在一块实现的
寄存器
即cpu暂时存储器
由于数据总线只有一根,举例如做加法,当第一个操作数从内存中传递过来时是不能做加法的,必须等待第二个操作数,那么第一个操作数就需要临时存储在寄存器中,然后当第二个操作数过来后就可以计算了。
i/o
输入输出
计算机的存储器ram是易失性的,所以就需要和外部存储器进行交互了,那么就用到了i/o
标准输出与标准输入
系统设定
默认输出设备被称为标准输出
默认输入设备被称为标准输入
标准输出:
标准输出又被称为stdout(这是标准输出的文件描述符),用1表示。
标准输出对应的设备是显示器。
标准输入:
同理,和标准输出一样,标准输入的文件描述符是stdin,用0表示。
标准输入对应的设备是键盘
标准错误输出:
默认情况下程序执行错误输出在显示器,文件描述符为STDERR,描述符是2
标准输出的作用:
用来输出数据的正常计算结果或者程序的正常运算结果、正常执行结果
type:
type命令用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令。
命令类型:
alias:别名。
keyword:关键字,Shell保留字。
function:函数,Shell函数。
builtin:内建命令,Shell内建命令。
file:文件,磁盘文件,外部命令。
unfound:没有找到。
cat:
cat命令可以查看一个文件的内容或多个文件内容,即连接并显示,当要查看多个文件内容时,参数中每个文件名用空格分隔
cat默认不带然后参数直接执行则会让用户在屏幕中编辑内容,需要退出时候按ctrl+d
cat的参数可以是文件也可以是输入,默认不带参数就是从标准输入中获取输入。
cat也支持io输入重定向的方式
tr
tr命令可将输入内容大小写进行转换,如
tr 'a-z' 'A-Z'
命令运行后每行输入完内容后按回车就会在下一行显示其对应的大写
<<:
该符号被称为此处文档,即在此处生成文档,如
cat命令后面是文件作为参数,那么使用<<生成文档也是可行的,生成的文档不就是文件。
那么命令格式:cat << 结束符,如:
cat << end
该命令执行后会逐行让你输入内容,每次回车则换行到下行继续输入,若想要结束就输入end。
注意:end是“<<”后面的参数是结束符,这里是end,一般结束符都用EOF,不过这个用什么无所谓。
然后结束后cat就会把刚才你输入的内容输出。
sort:
sort命令用于将文本文件内容加以排序。并将结果输出到标准输出。
默认的方式将文本文件的第一列以ASCII 码的次序排列
如:
sort 1.txt
-n:按照数值排序
-u:输出行中去除重复行
cut的选项与选项值的合并
cut命令的选项与选项值可以隔开,也可以合并,如
cat /etc/passwd | cut -d: -f3 | sort -n 等效于 cat /etc/passwd | cut -d : -f 3 | sort -n
cut -f支持多字段
cut -f可以将输出字段进行筛选显示指定字段,也可以显示多个字段,多个字段用逗号分隔,如
tail -9 /etc/passwd | head -1 | cut -d: -f1,7 | tee 1.txt
file:
file命令可以显示文件或目录类型,如
显示某个文件类型
file /tmp/1.txt
显示多个文件类型,多个文件要使用通配符,而不是单纯的路径,单纯的路径会被当做目录看待
file /tmp/*
管道
|符号可以将命令的输出传递给|符号后面的命令作为输入,而且该符号不仅只能传递一次,可以向管道一样一直向下传递,如
命令1|命令2|命令。。。
如:
ls | cat | grep --color '1'
tee:
tee命令可以获取标准输入,并将标准输入的内容保存到文件中同时发送标准输出
如:
echo "hello,world" | tee /tmp/hello.out
这里"hello world"将同时输出到屏幕中以及保存到/tmp/hello.out中。
wc
wc命令功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
-l:统计行数
printf
用于格式化并输出结果到标准输出。
如:
printf "alias cls=clear"
i/o重定向
改变了输入输出的默认设备叫做i/o重定向
>:输出重定向
如:
ls / var > /tmp/var.out
这样ls命令的输出将不会显示在显示器,而是进入了/tmp/var.out文件中。
然后我们cat /tmp/var.out就会看到本该输出的内容,虽然是垂直显示而不是水平显示,其实这只是ls命令的显示效果默认为水平的。
>>:追加输出
>|:强制输出重定向
忽略set -C的限制
2>:错误输出重定向
若使用普通重定向,如
ls / var > /tmp/var.out
若/var这个目录或文件不存在,则左边命令会发生错误,此时重定向就不生效(虽然不生效当时若右边指定的文件不存在,则仍然会创建文件成功)而是直接将错误信息输出到显示器,而使用了错误输出重定向则不会。这里只会将重定向左边的命令进行捕获,若左边没有错误则不重定向而是按默认的输出即输出到屏幕中,另外像set -C这种限制被触发所报的错误信息也会直接输出到屏幕中,而不是重定向。
2>>:错误输出重定向追加方式
多重输出重定向:
如:
ls /usr/local/nginx/html0 > success.txt 2>error.txt
此处使用ls命令,并将其重定向,无论错误还是正确都进行重定向。这里其实前面的正确输出和后面的错误输出也可以共同使用同一个文件的,只不过这样做没有什么意义。
&>:重定向标准输出或错误输出至同一个文件
无论错误输出还是正确输出,一个符号搞定
<:输入重定向
如
cat < /etc/fstab
cat不仅支持普通的读取文件方式
cat也支持io输入重定向的方式
set
用来开启或关闭某些功能
参数C:
如果某个文件存在,则不允许向该文件覆盖式重定向。
+C关闭该功能,-C开启该功能
该功能默认关闭
程序:
指令和数据
当程序需要获取或输出内容时可以是任何输入或输出设备。
默认不指定输入或输出设备则使用系统默认设定的输出设备。
关键字词:linux,io,重定向