一,unix
1。unix 特点
伸缩性强,开放性好,
2.基本原则
所有对象,硬件都是文件
配置数据以文本形式保存
短小的单目的程序构成
多个程序合作完成复杂任务
3.gnu
基本原则是共享,建立自由开放的unix系统
1984年 richard stallman 发起 基本体系是micro kernel
4.gpl
Copyleft 原作者所有权
5.linux起源
Linustorvalds,
自由的类unix操作系统,
遵循gnu和gpl
6.linux
可以实现unix功能
遵循开源许可协议
多用户多任务
广泛网络协议配置支持
硬件支持
二,linux
1.linux用户环境
内核控制硬件:内存,io,初始化
shell 命令解释器,bshell,cshll,bashshell(默认)
内部命令:属于shell解释器的一部分
外部命令:独立于shell解释器之外的程序
终端模拟机(teminal)
x windows 系统
窗口管理器
桌面系统
2.【root @ station。。。】# (#为最高身份)
用户名 主机名 目录
3创建用户
#useradd[用户名]
#passwd【用户名】
root权限可以更改所有用户密码
type 判断内部命令外部命令。内部命令比较快
4.运行指令
指令名 【选项】 【参数】
ls -l(全部信息) etc
- 引导单个字符选项 如l,多个单个字符选项可以写在一起,用一个-引导如al
-- 引导多个字符现象 如--color
5.man指令
方向键滚动文本,page up down翻页,Q退出,/后查找内容
Man手册章节内容:
1 Standard commands (标准命令)
2 System calls (系统调用)
3 Library functions (库函数)
4 Special devices (设备说明)
5 File formats (文件格式)
6 Games and toys (游戏和娱乐)
7 Miscellaneous (杂项)
8 Administrative Commands (管理员命令)
9 其他(Linux特定的),用来存放内核例行程序的文档
n 新文档, 可能要移到更适合的领域
o 老文档, 可能会在一段期限内保留
l 本地文档, 与本特定系统有关的
man-k 匹配手册中部分匹配命令 keyword
man-f 命令手册中完全匹配
man-a 显示全部章节内容all
man -a cd 结果 以及 快速查询 / ar
man n passwd 指定相应章节
管道和重定向: manls| col - b > ls.txt
|(管道):把前面指令的屏幕输出结果作为后面指令的处理对象
>(重定向):将正常输出结果保存到后面指定文件中
6.基本指令
ls - 查看文件(-R 目录相关,-t 时间顺序, -rt 倒序, -F 文件类型)
cp - 拷贝文件 (同名文件会覆盖,一般加-i,-r 可以复制目录)
mv - 移动或重命名文件(改名会覆盖同名文件,移动前测试)
rm - 直接删除文件(-rf 暴力删除,rmdir 只能删除空目录)
rmdir
touch - 建立空文件或者更新文件时间
cd - 改变当前目录(cd 回到主目录,~代表主目录)
pwd - 显示当前完整路径
mkdir - 创建目录名 ~games 目录名 ~/games用户名(-p 按照层次建目录)
more - 查看文件内容(分屏显示)
less - 可以向上翻页,其他同more
cat -,连接多个文件,显示文件
date - 显示当前系统时间
cal - 显示日历
df - 显示磁盘用量 (显示所有逻辑卷信息,df -h 显示大小)
du - 显示目录占用磁盘量 (-sh * 查看每个文件大小)
head - 显示文件开头部分内容(-n 看n行,)
tail - 显示文件结尾部分内容 (实时刷新)
tail - n
cd/dev/ 设备目录
b磁盘,c为字符设备,l符号 链接,*普通文件
su切换用户身份,切换到root需要输入密码.root切换其他用户不需要密码
su - username
重启: - reboot,init 6
关机: - halt
文件 用file检查文件的详细信息
file 文件名:显示文件类型
文件权限的第一个字母表示文件类型:
- 一般文件
d 目录文件
c 字符设备文件
l 连接文件
p 人工管道
文件权限 chmod
操作文件的用户:
u:文件所有者
g:文件所属组的成员
o:其他用户
三种权限:
r(读):用户是否有权利读文件内容
w(写):用户是否能改变文件内容
x(执行): 用户是否有权利执行文件
chmod 改变文件当前权限
chmod [R] 权限文件名
文件所有者和root可以更改文件权限
chmod g-r file1
chmodu+x,go+r file1
chmod a=rw file
chmod 可以用数字来表示用户权限
第一个数字代表拥有者权限,第二个数字代表文件所述组成员权限,第三位表示其他用户权限
4读 2写 1 执行
ln
硬链接就是copy一份新的文件,软连接相当于一个快捷方式,硬链接数表示当前文件的副本数
ln :硬链接
ln -s:软连接
每个文件都有一个拥有者(u),root用户可以通过chown命令改变拥有者
1.目录:
目录文件类型为d
建立目录最小硬链接数为2 若硬链接数为2 则没有子目录
目录建立都有两个隐藏文件 .为当前目录硬链接 ..为上级目录硬链接
目录也是一种文件,读写执行权限
读:用户可以读取目录内的内容
写:与执行权限连用,在目录内添加删除文件
执行:用户可以进入目录,调用目录内资料
木有执行权限不能cd到目录
目录下ll 234位为拥有者权限,567位同组者的权限 最后三位其他权限
2.子网掩码 umask
more需要上级目录读权限,修改需要当前文件写权限
3.强制位.冒险位
强制位s
set gid 表示在次目录中,任何人建立的文件,都会属于目录所属的组
set uid 表示在次目录中,设置使文件在执行阶段具有文件所有者的权限.
冒险位t 在目录中只能删除修改自己拥有文件
对于目录
chmod u(o,g) +(-) s(t)
也可以用数字来加和,4读2写1执行
chmod Nnnn 设置权限
4. 根目录下目录
/bin:存储常用用户可执行指令
/boot: 引导加载器(bootstrap loader)使用的文件存储核心,模块映像等启动用的文件
/dev: 这个目录中包含了所有Linux系统中使用的外部设备,看成访问外部设备的端口.
/dev/null 它是空设备,也称为位桶(bitbucket)或者黑洞(black hole).
可向它输入任何数据,但任何写入它的数据都会被抛弃.通常用于处理不需要的输出流.
/dev/tty 虚拟控制台
/dev/sda
/etc:系统管理和配置文件
/etc/passwd 用户信息
/etc/shadow 影子口令文件
/etc/group 用户组的信息
/etc/inittab init的配置文件
/etc/fstab 指定启动时需要自动安装的文件系统列表
/etc/sysconfig/netowrk主机名称配置文件
/etc/hosts 本地主机名称解析文件
/etc/sysconfig/network-scripts/ifcfg-eth0 网卡配置文件
/home:存放个人主目录
/root:root用户的主目录
/lib:存放库文件,动态链接库,诸如核心模块,驱动
/usr/lib 常用的动态链接库和软件包的配置文件
/lost+found: 平常是空的,系统非正常关机而留下“无家可归”的文件,存储fsck用的孤儿文件
/mnt:系统加载文件系统时用的常用挂载点
/opt:第三方工具使用的安装目录
/proc: 虚拟的目录,是系统内存的映射,可直接访问这个目录来获取系统信息
/proc/meminfo 各种存储器使用信息,包括物理内存和交换分区
/proc/cpuinfo cpu信息
/proc/filesystems 文件系统信息
/sbin:存储系统管理员管理使用指令
/tmp:临时文件的暂存点
/usr:存放与用户直接相关的文件与目录
/usr/bin 用户常用命令
/var:存储在系统运行中可能会更改的数据
/var/log 各种程序的日志
/var/log/messages 纪录存储所有核心和系统程序信息
1.过滤器:
linux总应用工具分为三种
交互工具 过滤器 编辑器(vi)
输入:过滤器数据来源
标准输入stdin(0):默认是键盘
输出:数据去向
标准输出stdout(1):默认屏幕
错误:
标准错误输出stderr(2):默认屏幕
3.重定向
< 重定向输入源 <<碰到某个终止符 然后将文件一次性输入保存
> 重定向输出段 >覆盖原文件 >>在源文件基础上追加
2>sh test.sh > /dev/null 2>&1
ls 2>1测试一下,不会报没有2文件的错误,但会输出一个空的文件1;
ls xxx 2>1测试,没有xxx这个文件的错误输出到了1中;
ls xxx 2>&1测试,不会生成1这个文件了,不过错误跑到标准输出了;
ls xxx>out.txt 2>&1, 实际上可换成 ls xxx 1>out.txt 2>&1;重定向符号>默认是1,错误和输出都传到out.txt了
4.管道
|将前一个命令结果直接送入下一个命令的输入
cat< filea > fileb拷贝a到b
cat file.* > file 数个小文件合并到一个文件
1.which 显示一个文件的完整路径
2.whereis 查看命令所在位置
3.slocate
所有文件名及其所在路径包含关键字段的文件都会显示
slocate先将当前目录做成一个数据库.然后在次数据库中进行匹配搜索
slocate [keyword]
locate [keyword]
update db 更新数据库
4.find
find 路径 参数 表达式
从制定路径下递归向下搜索文件
支持按照各种条件方式搜索
-name 文件名
mtime n 距今n天修改的文件 -代表n天内,+代表n天以上
size+400 400block以上文件
-atime+365 访问时间超过一年
-perm 777 权限是777的文件
-type f 只查普通文件,
操作找到的文件
操作找到文件
find 路径 参数 表达式 -exec 指令{}\
5.常用文件操作指令
wc-统计文件行(l),词(w),字符(c) 空格,换行也算
sort- 排序
grep - 匹配过滤关键字,模糊匹配
6
diff 差异内容
comp 差异位置
No package comp available
uniq 去除重复行
cut 显示某一列
paste 按照列进行拼接
7,压缩
gzip,gunzip 标准压缩工具
bzip,bunzip 或者 -d 解压缩
zcat 直接显示压缩文件内容
zless 直接逐行显示文件内同
zdiff 显示压缩文件差异内容
zcmp 直接显示压缩文件差异位置
8,tar
c 备份文件
v 显示过程
f 创建file
x 从一个文件中解出备份
9,备份还原
dump 备份 dump -f XXX 目录
备份目录命名为XXX
restore
1.mesg 控制终端是否接收信息
2.write 指定
定在线用户发送消息
wall 给所有用户发送消息
3.编辑工具 常用 vim
vim
i 输出字母在光标前
I 行首
a 出书自摸在光标后
A 行尾
o 下一行
O 上一行
s 删除光标所在字符然后进如insert模式
S 删除光标所在行然后进入insert模式
wq 保存退出 q! 不保存退出
e: 打开并编辑另外一个文件
4.删除与块操作
d 删除一个字符 dw删除仪的单词 dd删除一行 ndd 删除n行
v模式下 c剪切 p粘贴到右手边
u取消上一个更动 U取消一行内所有变动
e!放弃所有改动 重新编辑
5.底行模式下 用/从上往下 用?从下往上查找
6.r<文件名> 把r插入到光标出
r! 命令 把命令输出结果查到当前文本
rn 把文本插入到n行
:! 执行命令 然后返回
:sh 转到shell
:so 文件 读取文件然后执行文件内容
第七单元:BASH
1.shll 命令解释器:
用户与系统沟通的媒介.bash为linux默认shell,系统可以使用的shell记录在/etc/shell中
2.bash:bourneAgain shell
gnu计划的一个组件
与unix bshell 完全兼容
支持命令行输入,操作历史查询,快捷键,使用变量等功能
3.预定义环境变量
系统通过预定义环境变量来定义shell 环境
shell环境变量可以继承,子shell会继承父shell的环境变量
用户可以用set 或者env来查询当前环境变量
-home:当前用户的主目录
-path:当前用户的可执行文件搜索路径
-lang: 程序应该使用个的默认语言
-ps1:行提示符
主目录下设定
bshell为bashell的子shellcshell为bshell的一个子shell
查询环境变量值 echo 设置操作系统提示符
4.history
可以查询过往的指令
内存中,bash_history过往指令数根据环境变量中HISTSIZE而定
history存在内存中,logout是会记录进.bash_history 在下次login是载入
内存中过往指令用echo$HISTSIZE来执行,使用grep查询内存
!! 重复执行上一条命令
!a 执行上一条以a为首的指令
!n 执行上一条在表中记录号码为 n 的指令
!-n 执行上第N条的命令
ctrl r 搜索执行过的命令
5.alias 查询 alias 别名
alias 命名别名 unalias取消别名
alias 在shell中总是先行
"",'' 将一串字符当成字符串来看,""特殊字符转义,''不转义
执行引用符 ` 引用执行结果
echo 'pwd' 显示当前路径 echo 'uname-a'查询电脑配置
6.命令行表达式 数学运算 $[] 括号中会被数学运算
转义符号 \取消特殊含义 表示一行未结束
7.; 命令行结束符 表示当前命令已经结束
8.shell 激活
&& 逻辑与 当前一条执行成功时再执行后一条
|| 逻辑或 当前一条执行失败是再执行后一条
9.登陆shellumask,alias 只在此次登陆下游泳,out in 后回复默认值
一个通过登陆二得到的shell,一般是用户的初始shell
登陆shell 下激活的shell 采用登陆shell的环境变量
从四个文件中读取环境设定
全局设置文件 etc/profile 登陆后运行
etc/bashrc 系统启动后自动运行
用户设置文件 -/bashrc
-/bash_profile
source .环境变量 让配置的环境变量生效
shell 常用快捷键
ctrl+d 输入一结束.在shell下相当于exit
ctrl+c 键盘终端请求
ctrl+s/q 暂停/回复屏幕输出
ctrl+l 清屏,相当于clear
Tab:自动补完命令行与文件名
Tab键双击可以列出所有可能匹配的选择
Ctrl+a 光标移到行首
Ctrl+e 光标移到行尾
Esc+f 光标移到下一个单词的开始处
Esc+b 光标移到前一个或当前单词的开始处
Ctrl+k 从光标所在处删除到行结尾
Ctrl+u 删除整行
第八单元 xwindow
1.x window 图形化显示
创立于1986年 至今仍被使用
xfree86-自由 开放源码的执行X
2.GNOME
三个主要构建:
稳定,易于使用的桌面环境
为开发工具提供完整工具组与库
GNOME office的应用工具
使用GTK+来设置桌面装饰
3.KDE
稳定的桌面环境,k office应用工具,使用qt来设置桌面装饰
4.sawfish
GNOME的默认窗口管理工具
可主题化
非常灵活且易于定制
5.切换桌面
可以在桌面环境使用switchdesk切换桌面
-可以选择GNOME,KDE或其他窗口管理器
建立~/.Xclients,~/.Xclients_defaults或其他主机配置文件,并在其中指定桌面:
7.x中有用的快捷键
Ctrl+Alt+Backspace 退出X
Ctrl+Alt+Fn 切换到虚拟控制台n
Alt+Tab 改变窗口
8.配置x环境
redhat-config-xfree86
Red Hat 开发的x配置工具
需要root权限
显卡的选择
显示器的选择
分辨率的选择
色彩的选择
第九单元 监视系统
1.了解系统状况
uname 显示系统名称 -a 可以显示显示系统的完整鉴定信息,包括主机名,核心版本等
hostname 可以显示主机名
lste 列出最近的用户登陆
lastlog 列出每一个用户的最后登陆时间
free 显示内存使用情况
top 系统监视器
系统监视器打开 h键打开帮助 q退出
2.进程
系统通过进程来完成工作
每一个进程都有一个独立的进程号,通过调用进程号来调用进程
系统原始进程是init
init的pid总是1
一个进程可以产生另一个进程,除了init外,所有进程都有父进程
3.查询进程
ps [option]
ps:列出当前在系统中运行的进程,只列出跟终端相关的进程
ps-e(everyone) 列出系统中运行的所有的进程
ps-f(full) 列出完整信息,并格式化输出
ps -ef相当于执行uid pid ppid cstime tty time cmd指令
以全格式显示当前所有进程
uid:进程的onwer
pid:进程号 (不会重复)
ppid:父进程号 每个进程都有自己的父进程
stime:进程创建日期
tty:终端号 //tty ? 服务进程
time: 累计使用cpu的时间
cmd :进程名
ps aux :查看全部进程
USER 进程所属用户
PID 进程ID
%CPU 进程占用CPU百分比
%MEM 进程占用内存百分比
VSZ 虚拟内存占用大小 单位:kb(killobytes)
RSS 实际内存占用大小 单位:kb(killobytes)
TTY 终端类型
STAT 进程状态
START 进程启动时刻
TIME 进程运行时长COMMAND 启动进程的命令
ps显示中的STAT进程状态:
T挂起:被暂停 ctrl+Z
Z:僵尸进程子进程先结束,父进程没结束解决办法:可以reboot或清僵尸进程的父进程.
通常是一个系统bug或非法操作
父进程先走: 托孤 将进程转交给init
R: 正在运行
S: 睡眠进程,可以被唤醒
D: 进程睡眠中,除非发生指定事件,否则不会被唤醒
<:高优先级进程
N:低优先级进程
pstree 查看进程树
进程控制结束一个进程:
前台进程: ctrl+c
kill 进程号 干掉一个程序
kill -9 暴力干掉
pkill 进程名
kill sleep 结束睡眠程序
killall httpd 杀死一批进程,杀死所有http进程
4.nice 进程优先级
以一个不同的nice值来运行指令
- nice -n num command
renice 改变一个运行进程优先级
只有root账号可以改变优先级
5.前台后台
一个命令执行后,独占shell 并且拒绝其他输入,为前台进程,反之为后台进程
每一个控制台,允许多个后台进程
nohup sh 在后台执行脚本
ctrl+z 挂起进程
fg 前台进程,bg 后台进程
fg 进程号 进程前台运行 bg 进程号 进程后台执行
6./proc目录,包含来自正在运行着的核心的信息
/proc/sys 目录 允许管理员更改 影响当前运行进程核心
var/log/dmesg 核心启动日志
/messages 报错日志
/wtmp 登陆记录
/proc目录在每次系统开机时由核心根据/etc/fstab自动在内存中创建,并不基于硬盘.
/proc目录下的文件与目录都是虚拟产生,因此绝大多数的文件大小为零.
不可以cat /proc/kcore.这是当前运行内核的一个镜象,尝试cat会造成当前终端无法使用.
常用的/proc下的文件:
/proc/interrupts :IRQ设置
/proc/cpuinfo:CPU信息
/proc/dma:DMA设置
/proc/ioports:输入输出设置
/proc/meminfo:系统内存使用状况
/proc/loadavg:系统负载平均值
/proc/uptime:系统运行时间与发呆时间
/proc/version:Linux核心版本、创建主机、创建时间等
/proc目录下的常用目录
/proc/scsi:scsi设备信息
/proc/ide:ide设备信息
/proc/net:网络状态与配置信息
/proc/sys:核心配置参数
/proc/<PID>:进程的信息
改变/proc/sys目录下的文件,例如,我们可以用:
echo 1 >/proc/sys/net/ipv4/ip_forward 来打开IP转发功能
系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的PID号为目录名,
它们是读取进程信息的接口.
进程目录的结构如下:
Cmdline 命令行参数
Environ 境变量值
Fd 个包含所有文件描述符的目录
Mem 进程的内存被利用情况
Stat 进程状态
Status Process status inhuman readable form
Cwd 当前工作目录的链接
Exe Link to theexecutable of this process
Maps 内存印象
Statm 进程内存状态信息
Root 链接此进程的root目录
第十单元 shellscripts
1.
shell 脚本 是一个包含shell指令的文本文件
shell 脚本支持变量与简单的语法来完成批量工作
shell 脚本支持交互的方式,在执行时从标准输入读取数据
有大量的系统工作都是通过shell脚本方式来完成,例如开机系统,服务控制
2.
可以用各种编辑工具编辑脚本,完成的任务为脚本名称
脚本#表示被注释
可以采用shell下能使用的所有指令
(添加描述显示参数的值 显示依赖关系)
脚本第一个字符如果不是# 表示是一个bash脚本
.................是#!表示用什么shell解释
.................是#第二个不是!表示是一个Cshenll脚本
3 变量复制于继承
变量名=值
变量值不会继承入子 shell进程
export 变量名 变量变成环境变量
4.脚本数据读取与写出
用read username 从标准输入读取数据为username赋值
用echo完成简单的输出
运行脚本
sh 路径/脚本名, ./路径名/脚本名, /路径名/脚本名
5.if 条件
then 动作
elif 条件
then 动作
else 动作
fi
6.case
case 表达式 in
匹配值 1)
动作
匹配值 2)
动作
esac 技术case
7.循环公职语句
select:select 变量 in 数组
执行动作
done
for:for 变量 in 数组
do
done
while :while 条件
do
done
until:until 条件
do
done
8.使用带命令行参数shell脚本
#command [option1][option]...
引用shell 脚本命令行参数
&0 命令名本身
&1 第一个参数(option1)
&2 第二个参数(option2)
第十四单元 计划任务
一、Linux的计划任务
1. Linux系统支持一些能够自动执行任务的服务我们称其为计划任务
l at:指定一个时间完成一个任务
at服务需要系统后台有一个atd进程
-at:安排延时任务
-atq:查询当前等待任务
-atrm:删除等待任务
-batch:以一个低优先级延时执行任务
at的使用控制文件
-/etc/at_allow
-/etc/at_deny
基于用户的使用控制
l cron:根据一个时间表自动执行任务
服务需要后台运行的进程crond
开关cron服务
系统管理员可以用service crond/stop 来开关cron服务
用chkconfig或ntsysv选择cron服务的默认开启关闭
定制用户计划
用户级别:
crontab -e: 编辑当前的守护进程表
crontab -l: 列出当前的守护进程表
crontab -r: 删除当前的守护进程表
crontab -u user:以某一个身份
/var/spool/cron :存放用户守护进程表
默认情况下,所有用户都可以设定自己的守护任务
控制文件:
/etc/cron.allow
/etc/cron.deny
如果系统中存在cron.allow,则只有在列在文件中的用户才可以使用crontab指令来定制自己的守护任务/
如果系统中存在cron.deny,则列在文件中的用户不可以使用crontab指令来定制自己的守护任务,其他人可以.
l anacron:在一个指定时间间隔过后自动执行任务
cron服务的扩展防止系统因为关机遗漏守护任务,每次通电时自动检测
l tmpwatch 清理/tmp 目录下临时文件
/usr/bin/tmpwatch 小时数 指定目录
第十五单元 RPM包及其管理
一、RPM:RedHatPackage Manager
使一个Linux系统可以更方便地被分割成许多组件.从而使用户可以在系统上简单方便地安装、升级、查询、卸除各种功能与服务
二、RPM的安装与卸载
l 安装与卸载
rpm -i : 安装
rpm-U: 升级
rpm-F: 更新
rpm-e: 卸除
rpm--test 只对安装进行测试,并不实际安装。
rpm--percent 以百分比的形式输出安装的进度。
rpm--excludedocs 不安装软件包中的文档文件
rpm--includedocs 安装文档
rpm--replacepkgs 强制重新安装已经安装的软件包
rpm --replacefiles 替换属于其它软件包的文件
rpm --force 忽略软件包及文件的冲突
rpm --noscripts 不运行预安装和后安装脚本
rpm --prefix <path> 将软件包安装到由<path> 指定的路径下
rpm --ignorearch 不校验软件包的结构
rpm --ignoreos 不检查软件包运行的操作系统
rpm --nodeps 不检查依赖性关系
rpm --ftpproxy <host> 用<host> 作为FTP代理
rpm --ftpport <port> 指定FTP的端口号为<port>-h (or --hash) 安装时输出hash记号 (``#'')
补充
-v,-h :输出
-nodeps,-force :预设条件
-root:重定位
三、RPM包查询:
rpm -q:查询某一个RPM包是否已安装
rpm -qi:查询某一个RPM包的详细信息
rpm -ql:列出某RPM包中包含的文件
rpm-qf:查询某文件属于哪一个RPM包
rpm -qa:列出当前系统所有已安装的包
rpm -qp:制定一个等待安装的RPM包
四、RPM包的校验及检查
校验 -V 校验某个RPM包
-Va :校验所有已安装的RPM包
检查 -k 检查RPM包的GPG签名
出错提示符号分别表示某部分未通过校验
S 文件大小
M 文件权限与类型
5 MD5求和
D 设备文件的主、从号码
L 符号连接文件找不到连接对象
U 文件的所属用户
G 文件的所属组
T 更改时间
第十六单元 邮件和打印
一、打印
可以使用本地或者网络打印进
打印请求首先被送入打印队列
排队的请求任务按照先来先服务的原则送到打印机
打印任务可以取消
lp -d printer100/etc/passwd
lpr /etc/shadow 指定文件发给打印机,不指定打印机,使用默认打印机
lpq 查看打印队列
lprm 删除打印队列中某个打印任务
lpc基于命令行的控制工具
lpstat 打印机状态信息
cancel 取消打印作业
打印工具:
enscript - 把文本转化成PostScript文件
a2ps -把文本转化成PostScript文件
gv - PostScript 文件游览器
ps2pdf-PostScript转换PDF
pdf2ps-PDF转换Postscript
mpage-在一张纸上打印多页
二、邮件
一台linux主机可以是一个邮件服务器或客户端
文本模式pine.mutt 图形模式 mozilla Mail,evolution,kmail,balsa
命令行模式 mailmailq 查看邮件队列
用户程序
pine - 菜单驱动接口,简便医用
mutt - 可详细配置的邮件客户程序
pine mutt的过滤功能由procmail来实现
evolution - 邮件,任务管理器,联系管理器
mozilla mail - 图形,高级过滤,支持多个邮件账号有很灵活过滤功能
kmail - 图形,简单易用,KDE 一部分
第十七单元 sed,awk和其他语言
一、sed:流式编辑器,是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出.Sed主要用来自动编辑一个或多个文件,简化对文件的反复操作
l 特点:
只读取文件一次
通常用在命令的输出
占用的系统资源很少
l sed地址:
没有地址:编辑整个文件
一个地址:编辑所有匹配的
两个地址:编辑所有之间的
l sed 脚本
内容可以写成脚本
脚本是包含sed命令的文本文件
有很多命令和选项
seds/slow/fast/g aboutsed.txt > output.txt 全文替换
sed 1Dsedtext.txt 删除第一行
sed 2dsedtext.txt 删除第二行
sed 1,4dsedtext.txt 删除1-4行
sed '2,$d' sedtext.txt 删除第二行到末尾
sed '$d'sedtext.txt 删除最后一行
sed'/test/'d sedtext.txt 删除所有包含test的行
sed 's/zhuxy/mytest/g' sedtext.txt --在整行范围内把zhuxy替换为mytest.
如果没有g标记,则只有每行第一个匹配的test被替换成mytest.
sed's/^enmoedu/&localhost/' sedtext.txt &符号表示替换换字符串中被找到的部份.所有以enmoedu开头的行都会被替换成它自已加 localhost,变成enmoedulocalhost.
sed 's#10#100#g' sedtext.txt 不论什么字符,紧跟着s命令的都被认为是新的分隔符,所以,“#”在这里是分隔符,代替了默认的“/”分隔符.表示把所有10替换成100.
sed '/test/ra.txt' sedtext.txt file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面.
sed -n'/test/w a.txt' sedtext.txt 所有包含test的行都被写入file里
sed -e '1,5d' -e 's/zhuxy/check/' sedtext.txt 多点编辑
二、awk
编辑文本的程序语言
在一个文本中搜索匹配一个或多个模式行
在匹配行上执行特殊操作
l awk程序
规则由新行来分离
规则包含一个模式和在[]没包含操作
模式 [action]
l 运行awk程序
简单程序可以在命令行下直接输入
$awk 'program' input file
更长程序保存在文件中
$awk -f program_file input_file
l 例:
last-n 5 | awk '{print $1}'
ifconfigeth1 | awk '/inet/{print $2}' | awk -F":" '{print $2}'
awk'/bash/ { print }' /etc/passwd
cat/etc/passwd |awk -F ':' '{print $1}'
ls-l . | awk '$3 == "oracle" {sum += $5 } END { print sum }'