日期:2014-05-16  浏览次数:20552 次

linux bash(2)

十二、输入输出重定向及管道

1 什么是过滤器?? 必须有一个输入和输出
2 什么是标准输入输出
3 怎样改变标准输出
4 输出的种类
5 改变输入
6 管道

linux过滤器:
linux工具/命令分为三种:
?? 过滤器
?? 编辑器
?? 交互式工具

??
标准输入输出与重定向:
输入?? 过滤器数据来源 标准输入stdin(0):默认是键盘
输出?? 过滤器数据去向 标准输出stdout(1):默认是终端屏幕
错误输出 报错讯息与标准输出走不同的I/O通道 标准错误输出stderr(2):默认是终端屏幕
重定向?? 标准输入输出与错误输出,都可以用特定符号改变数据来源和去向

输入重定向: 使用“<”来重定向输入
?? 很多工具都设置其后接文件名为输入源
?? 也有一些过滤需要添加“<”以明确输入源
追加:?? 使用“<<”让系统将一次键盘的全部输入,先送入虚拟的当前文档,再一次性输入追加到文档尾部
?? 需要一对字母、符号或字符串作为起始终结标识符
?? 选择任意符号作为起始终结标识符

<<EEE?? 表示直到发现输入EEE时,才退出输入,或按ctrl+d退出 并显示输出??

输出重定向: 使用“>”改变数据输出目标
?? ls -l /etc > listfile
?? 将文件以长模式显示,后写入listfile文件
?? 文件已有内容会被替代
覆盖与追加: 使用“>”进行输出重定向,文件的原内容会被覆盖
?? ls -l aa.txt > vi.txt
?? 使用“>> ”,可以将输出追加入文件
?? ls -l aa.txt >> vi.txt
>?? 标准正确输出重定向、清空文件、创建文件(输出前先清空以前存在的数据)
2>?? 标准的错误输出重定向?? (输出前先清空以前存在的数据)
&>或2>&1 不管正确或错误的输出都全部重定向
>>?? 追加重定向,不清空之前的数据

错误输出重定向:系统错误与标准输出使用的I/O管道不同
?? 默认情况系统报错显示到终端屏幕上
?? 使用“2>”将报错信息重定向入一个文件
?? find / -type s 2> /dev/null
?? 使用“2>>”将报错信息追加入一个文件
?? find / -name passwd 2>> results

管道:??
|?? 将前一个过滤器的输出直接输入到后一个过滤器
?? ls -l | grep hosts.conf
?? 允许多重管道
?? 管道前过滤器的输出与管道后过滤器的输入数据类型匹配
例子:
ls /dev |wc -l?? 统计/dev下有多少文件
du -a | sort -n -r 显示所有文件大小,并按从大到小排序
ls -l /etc |grep '^d' 显示/etc文件夹下所有文件夹
dmesg |more?? 分屏显示内核信息

使用tr加密: tr '"a-m""n-z""A-M""N-Z"' '"N-Z""A-M""n-z""a-m"'
??? tr '"a-m""n-z""A-M""N-Z"' '"N-Z""A-M""n-z""a-m"' < /etc/passwd > abc.txt
??? tr '"a-m""n-z""A-M""N-Z"' '"N-Z""A-M""n-z""a-m"' < /etc/passwd | mail -s "for you"
dlp8410@126.com

十三、 linux系统状态检测及进程控制

1 查询当前系统的信息
2 查询当前系统的状态
3 /proc文件系统??? 查看内核
4 进程的显示
5 控制进程
6 控制台的前台和后台


系统信息的收集:
hostname 显示或设置主机名
uname?? 显示系统信息
last?? 显示最近的用户登录
lastlog?? 显示每个用户的登录情况

系统状态:
/proc文件系统
free?? 查看内存的使用情况
df?? 查看硬盘使用情况
du?? 查看文件大小
系统日志 tail - f /var/log/messages

常用系统日志:
/var/log/dmesg?? 核心启动日志
/var/log/messages 系统报错日志
/var/log/maillog 邮件系统日志
/var/log/boot.log 系统引导过程日志
/var/log/cron?? 记录守护进程派生子进程
/var/log/syslog?? 记录警告信息
/var/log/wtmp?? 永久记录用户登录事件
/var/log/xferlog 记录FTP会话
/var/log/secure?? 安全信息??

常见查看日志的方法 tail /var/log/....

了解进程:
系统通过进程来完成工作
每一个进程都有一个独立的进程号,系统通过调用进程号来调度操控进程
系统和原始进程是init init的PID总是1
一个进程可以产生另一个进程,除了init以外,所有的进程都有父进程

linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性
交互进程 由一个shell启动的进程,交互进程可以在前台运行,也可以在后台运行
批处理进程 这种进程和终端没有联系,是一个进程序列
监控进程 也称守护进程,linux系统启动时启动的进程,并在后台运行。

一个正在执行的进程称为一个作业,而且作业可以包含一个或多个进程,尤其是当使用了管道和重定向命令
作业控制指的是控制正在运行的进程的行为

查看进程状态:
ps [option] 常用参数
?? -a 显示所有进程,但不包括不隶属于任何一个终端的进程
?? -u 显示不属于任何一个终端的进程,诸如各类系统网络服务的后台程序
?? -l 以长模式显示进程信息
?? -u 显示进程的拥有者信息
?? 在ps的参数中,是否加 - 号,表示不同的参数

????? ps显示中的stat,
?? R 正在运行
?? S 进程睡眠中,通常可以因事件发生而被唤醒
?? T 进程已停止
?? D 进程睡眠中,除非发生指定事件,否则不会