10.6.7
关于减号
-
的用途
管线命令在
bash
的连续的处理程序中是相当重要的!另外,在
log file
的分析当中也是相当重要的
一环,
所以请特别留意!另外,在管线命令当中,常常会使用到前一个指令的
stdout
作为这次的
stdin
某些指令需要用到文件名
(
例如
tar)
来½行处理时,该
stdin
stdout
可以利用减号
"-"
来替代,
举例来说:
[root@study ~]#
mkdir /tmp/homeback
[root@study ~]#
tar
-
cvf
-
/home | tar
-
xvf
-
-
C /tmp/homeback
上面这个例子是说:『我½
/home
里面的文件给他打包,但打包的数据不是纪录到文件,而是传送
stdout
经过管线后,½
tar -cvf - /home
传送给后面的
tar -xvf -
』。后面的这个
-
则是取用前
一个指令的
stdout
因此,我们就不需要使用
filename
了!这是很常见的例子喔!注意注意!
10.7
重点回顾
.
由于核心在内存中是受保护的区块,因此我们必须要透过『
Shell
』½我们输入的指令与
Kernel
沟通,好
Kernel
可以控制硬件来正确无误的工作
.
学习
shell
的原因主要有:文字½口的
shell
在各大
distribution
都一样;远程管理时文字½口速度½快;
shell
是管理
Linux
系统非常重要的一环,因为
Linux
内很多控制都是以
shell
撰写的。
.
系统合法的
shell
均写在
/etc/shells
文件中;
.
用户默认登入取得的
shell
记录于
/etc/passwd
的最后一个字段;
.
bash
的功能主要有:命令编修能力;命令与文件补全功能;命令别名设定功能;工作控制、前景背景控制;
程序化½本;通配符
.
type
可以用来找到执行指令为何种类型,亦可用于与
which
相同的功能;
.
变量就是以一组文字或符号等,来取代一些设定或者是一串保留的数据
.
变量主要有环境变量与自定义变量,或称为全局变量与局部变量
.
使用
env
export
可观察环境变量,其中
export
可以½自定义变量转成环境变量;
.
set
可以观察目前
bash
环境下的所有变量;
.
$.
亦为变量,是前一个指令执行完毕后的回传值。在
Linux
回传值为
0
代表执行成功;
.
locale
可用于观察语系资料;
.
可用
read
让用户由键盘输入变量的值
.
ulimit
可用以限制用户使用系统的资源情况
.
bash
的配置文件主要分为
login shell
non-login shell
login shell
主要读取
/etc/profile
~/.bash_profile
non-login shell
则½读取
~/.bashrc
.
在使用
vim
时,若不小心按了
[crtl]+s
则画面会被冻½。你可以使用
[ctrl]+q
来½除冻½
.
通配符主要有:
*, ., []
等等
.
数据流重导向透过
>, 2>, <
之类的符号½输出的信息转到其他文件或装置去;
.
连续命令的下达可透过
; && ||
等符号来处理
.
管线命令的重点是:『管线命令½会处理
standard output
,对于
standard error output
会予以忽略』
『管线
命令必须要能够½受来自前一个指令的数据成为
standard input
继续处理才行。』
.
本章½绍的管线命令主要有:
cut, grep, sort, wc, uniq, tee, tr, col, join, paste, expand, split, xargs
等。