email:xtadw@yahoo.com.cn
UNIX及Linux的简单介绍
========================================================================
UNIX系统分为两大阵营
(1)SystemV
(2)BSD
GNU(GNU's Not UNIX) 操作系统发展项目
GPL协议
GNU项目发展后,拥有了Hurd内核、emacs编辑器、gcc glib 编译器,但缺少一种更好的内核来组成操作系统
linux是一种操作系统内核
GNU/linux(该组合,组成了一种操作系统,即:linux内核+emacs编辑器+gcc glib编译器等),GNU/linux简称为linux操作系统
内核:[url]www.kernel.org[/url]
图形:[url]www.xfree86.org[/url]
软件:[url]www.gnu.org[/url]
工具:[url]www.sourcforge.net[/url]
桌面:[url]www.gnome.org[/url] [url]www.kde.org[/url]
[url]www.slackwar.com[/url]第一个将以上这些工具打包(distribution)发行
[url]www.redhat.com[/url]发明了RPM
[url]www.linuxfromscratch.org[/url] (CFS 手工编译组织)
[url]www.linuxbase.org[/url](LSB[Linux Standard Base]Linux标准化组织)
fedora.redhat.com(redhat9之后的开放版本)
[url]www.debian.org[/url](最自由最受Linux fans欢迎的linux发行版本)
Linux下操作的一些小技巧
========================================================================
(1)对已经显示完毕的屏幕进行翻页查看
Shift+PgUP Shift+PgDn
(2)清屏
Ctrl+L = clear命令
(3)历史命令调用
上、下光标键
(4)显示当前目录
pwd
(5)显示目录时后跟/符号
ls -F
(6)外部帮助命令:info
例:info ls
(7)man、more等查看资料时的快捷键
/ 往后查找指定内容,例:/abc
? 往前查找指定内容,例:?abc
N 继续查找下一条
Shift+N 继续查找上一条
UNIT 2 Quick Tour (快速浏览)
========================================================================
(1)Kernel (Linux的核心,长驻内存)
(2)Shell (用户的操作界面,命令解释器,用户和内核之间的通信桥樑,Linux常用bash作
为其Shell)
(3)Terminal Emulator (终端仿真)
(4)X Window System ()
(5)Window Manger (gdm)
(6)Desktop Environment (如:GNOME、KDE)
当运行级别为:runlevel 3时,以文本方式登录到虚拟控制台(命令方式)
当运行级别为:runlevel 5时,以图形方式登录
常用ls命令查看文件系统
Red Hat Linux的ls命令默认使用不同的颜色来区分不同的文件类型
Linux支持的几种文件类型:常规文件、链接文件、目录、sockets,pipes,and block and character devices.
颜色映射定义文件:/etc/DIR_COLORS
所有的硬件设备都被处理成特定的文件,存放在/dev目录中,设备文件分成两种类型:块、字符
块设备:以块方式读取数据,每次读取512bytes~32KB。如:硬盘
字符设备:每次传输一个字节。如:串口、Modems
Red Hat Linux默认使用bash(Bourne Again Shell),bash是GNU项目的一部分
bash支持别名、文件名自动补全、历史命令、POSIX兼容
bash的全局设置文件为:/etc/profile,/etc/bashrc
root用户对系统拥有完全的控制权,其UID为0,普通用户的UID必须大于0。
使用id命令可以查看当前用户的信息。
通用格式:command [option] [arguments]
每一项之间必须使用空格分隔
命令与命令之间用分号分隔,如:
$ mkdir backups; cp *.txt backups/
中断当前正在运行的命令:<ctrl-c>
完成当前命令的arguments输入:<ctrl-d>
man -k search 查找关于搜索方面的帮助
man -k search | grep -v '(3)'
makewhatis 生成数据库
man -f passwd 列出所有关于passwd的帮助说明选择
man 5 passwd 显示passwd文件的说明
man passwd 显示passwd命令的说明
man 3 printf 在库3中显示printf函数的用法
1 命令 2 系统调用 3 函数库的调用 4 特殊文件 5 文件格式 6 游戏
(1) command --help
(2) info
软件的使用文档通常存放于/usr/share/doc中,可以查看。
date 不带参数用于显示年月日及时间
date MMDDhhmmYYYY格式用于设置日期及时间,如:date 100410572004 (2004-10-04 10:57)
cal 显示日历,例:cal 9 2002 (显示2002年9月的日历)
缺省有6个虚拟控制台,可能通过:CTRL-ALT-F[1-6]或ALT-左右方向键来切换
当有X运行时,用CTRL-ALT-F7切换到X窗口
用SHIFT+PAGEUP,SHIFT+PAGEDOWN可以上下翻屏。
ls 查看文件系统
man 帮助系统
info 帮助系统
id 显示用户的ID信息
passwd 修改密码
date 显示日期和日期
cal 显示日历,例:cal 9 2002 (显示2002年9月的日历表)
alias 显示别名
unalias 取消别名,例:unalias ls
which 显示命令所在的目录,例:which ls
/etc/profile
/etc/bashrc
UNIT 3 File and Shell Basics
========================================================================
主目录:
在/home中,每一个普通用户都拥有一个目录,这个目录是用户的主目录,用于存放用户的配置文件和数据
在命令中用~表示,如:cd ~ (进入当前用户的主目录)
cd ~ (进入当前用户的主目录)
cd - (进入你的上一个工作目录)
ls -R (包含子目录)
ls -l (显示文件的详细信息)
ls -a (显示所有文件,在linux中以.开头的文件为隐含文件)
ls -d (显示目录)
详细列表时的信息:
$ ls -l /bin/login
-rwxr-xr-x 1 root root 19080 Apr 1 18:26 /bin/login
-rwxr-xr-x 文件类型及权限(第一位为文件类型)
1 文件名数量
root 文件拥有者的用户名或UID
(如果因系统原因在/etc/passwd中找不到UID对应的用户名时,显示UID)
root 文件所属组的组名或gid
(如果因系统原因在/etc/group中找不到gid对应的组名时,显示gid)
Apr 1 18:26 文件的创建时间
/bin/login 文件名
/bin,/usr/bin 存放用户命令
/sbin,/usr/sbin 存放系统用命令
/var 存放日志、缓冲池、邮件等经常变动的文件
/proc 内核的映射,其中以数字为目录名的目录是进程
/etc 存放配置文件
/lib 存放动态链接库文件
/dev 存放设备文件
/boot 存放内核及启动文件
/opt 存放第三方软件系统,通常是一些比较大的系统,如:oracle等
df 显示每个分区的可用空间, df -h (人性化方式显示)
du 显示目录及文件占用的空间,du -h (人性化方式显示)
du -s (仅列出当前目录及其所有子目录的合计数据)
cp [option] file destination
[option]
-p 使目标文件的创建时间与源文件相同
-r 包含子目录一起复制
移动及改名:
mv [option] file destination
touch 创建一个空文件
-i 删除前提示(注:redhat下已经使用alias rm -i)
-r 包含子目录
-f 强制删除,无提示
注:不要使用绝对路径删除文件,如:rm -rf /boot(如果万一输入有误,就有可能删除整个文件系统)
mkdir 创建目录
rmdir 删除目录(空目录)
rm -rf 目录名 可以删除含有内容的目录
file [option] filename
必须安装file-3.39-9.rpm包
cat [option] file
-A 显示所有字符,包括控制符
-s 把相邻的多个空行变成一个空行进行显示
-b 显示行号(空行不计)
coreutils-***.rpm
less [option] file 以页的方式显示
head -n 20 file 显示file前20行(缺省为10行)
tail -n 5 file 显示file最后5行(缺省为10行)
tail -f /var/log/messages 实时显示文件的更新内容,通常用于监控日志
* 匹配所有字符
? 匹配一个字符
[a-z] 匹配该范围内的任意一个字符
[^a-z] 匹配该范围外的任意字符
UNIT 4 Users and Groups (用户和组)
========================================================================
用户:
系统中的每一个用户拥有一个UID作为唯一标识
uid的分配:
0 超级管理员的uid,拥有对系统的完全控制
1-99 系统用户使用
100- 普通用户使用
用户名及UID存放在/etc/passwd文件中
/etc/passwd文件的格式:
root:x:0:0:root:/root:/bin/bash
用户名:口令:uid:gid:说明:主目录路径:Shell
注:此处口令处为x,是因为系统使用了shadow口令方式,把口令单独存放在/etc/shadow文件中
使用gid把用户分配到组中,gid存放在/etc/group中
/etc/group的格式:
root:x:0:root,bin
组名:X:gid:用户1,用户2
whoami 显示当前用户的名称
groups 显示用户加入了哪些组
id 显示uid,gid
users 显示当前登录进系统的用户
who 稍详细的显示当前登录进系统的用户信息
w 更详细的显示当前登录进系统的用户信息
last [username] 显示用户的最后登录信息
last -1 reboot 显示最后一次系统的重新启动信息
finger [username] 综合显示用户的一些信息
su - [username]
useradd username
userdel [-r] username (带-r的话,删除用户的时候其主目录一起删除)
groupadd groupname
groupdel groupname
========================================================================
UNIT 5 File Access Permissions (文件存取权限)
========================================================================
基本概念:
每一个文件都被归属于某一个用户及组,存取文件及目录时系统会检查拥有文件的用户、组及其他用户这三者的权限设定。
$ ls -l /bin/login
-rwxr-xr-x 1 root root 19080 Apr 1 18:26 /bin/login
对第一段“-rwxr-xr-x”我们可能分解成以下四段:
- rwx r-x r-x
文件类型 文件拥有者的权限 文件所属的组的权限 其他用户的权限
- 普通文件
d 目录
l 链接文件
b 块设备文件
c 字符设备文件
p 管道文件
r 读 4
w 写 2
x 执行(如果是目录代表可以进入) 1
rw 6(4+2)
rx 5(4+1)
wx 3(2+1)
rwx 7(4+2+1)
s
t
(1)chmod [-R] mode file
-R 包含子目录一起
mode=Who+Operator+Permissions
Who:
u 文件拥有者
g 文件所属组
o 其他用户
a 包括以上三项
Operator:
+ 增加权限
- 移除权限
= 赋于权限
Permissions:
r 读
w 写
x 执行(如果是目录代表可以进入)
s
t
例:
chmod u+w file
chmod go-rw file
(2)chmod <three-digit mode number> file
three-digit mode number:(三位数的数字)
第一位:文件拥有者的权限
第二位:文件所属组的权限
第三位:其他用户的权限
例:
chmod 664 file rw-rw-r-- file
chmod 741 file rwxr----x file
chmod 040 file ---r----- file
Linux系统可能使用umask来设置新建文件的初始权限,当没有umask时,新建文件的初始权限为666,
新建目录的初始权限为777
umask只影响新建文件的权限,不影响已建文件的权限,在RedHat Linux中普通用户的umask为0002
root用户的umask为0022。
例(1):
r(4) w(2) x(1)
umask=022时
初始化的权限: rwx rwx rwx
需掩掉的权限: --- -w- -w-
新建文件的实际权限: rwx r-x r-x
当umask=543时,新建一个文件,该文件的权限
(1)创建文件,无umask时的默认权限应是:rw- rw- rw- (666)
(2)应该掩掉: r-x r-- -wx (543)(注:只掩掉默认权限中有的权限,没有的权限不影响)
(3)得到新建的文件的实际权限为: -w- -w- r-- (224)
UNIT 6 The Linux Filesystem (Linux文件系统)
========================================================================
Linux文件系统的基本原理:
文件和目录都被组织在一个单一的倒转的树结构中,名字对大小写敏感,目录间用斜杠"/"隔开
linux系统通常采用ext2/ext3文件系统,ext3比ext2增加了日志功能.
ext2/ext3文件系统的基本结构(每一个分区):
SuperBlocks+inodes+Directory entry+DataArea
block总数、保留块的总数(reserved blocks count)、块组的物理位置(block
group locations)、以及其他信息。
可以用类似:dumpe2fs /dev/hda1命令进行查看分区的SuperBlocks的内容
可以用:stat filename来查看文件的indoes的内容
注:由stat返回的文件名并不是存放在indoes中的,而是存放在目录表中
硬链接:并未创建新的文件,仅仅给一个文件起两个或更多的名字。因此不能跨设备、分区创建硬链接。
删除了创建了硬链接的源文件,并不删除文件,仅删除文件名,只能删除全部的硬链接文件及源
文件才会真正删除文件。
软链接:创建一个新文件,让这个文件指向源文件。删除软链接文件不影响源文件,但删除源文件后,
软链接文件虽仍存在,但已无法找到指向了,具体表现为:用ls查看时,文件会以红底,文件名
闪烁显示。
创建命令:
硬链接:ln filename [linkname]
软链接:ln -s filename [linkname]
可移动设备在挂载后才能使用,虽然挂载文件系统是普通的管理员的功能,但普通用户有许多方法去挂载
可移动设备。
另外,可以用mtools命令来模仿DOS命令方式使用FAT格式的软盘,使用方法如:mdir a:,mcopy file a:
更详细的可以使用的命令及方法可以参见mtools。
slocate [pattern]:在文件列表数据库中查找匹配的文件。(文件列表数据库可以用updatedb命令更新)
locate:是slocate的软链接
find:在文件系统中查找。
find <dir> [conditions] [action] [-exec cmd {} \;]
例:
find /etc/ -name "*.conf" 在/etc/目录中查找所有以.conf结束的文件
find /var -user root -group mail 在/var目录中找出所有属于root用户及mail组的文件
find /etc/ -name "*.conf" -exec cat {} \; 在/etc/目录中查找所有以.conf结束的文件,
并显示找出的文件的内容。
文件打包及压缩:
打包:将多个文件放入一个文件中
tar <option> <目标文件> <源文件> (注:源文件必须用相对路径表示)
option:
-c 创建打包文件
-x 释放打包文件
-f 后跟指定文件(缺省/dev/rmt0)
-v 显示详细信息
-z 用gzip进行压缩或解压缩
-j 用bzip2进行压缩或解压缩
例:
tar cvf conf.tar ./conf/*.conf
tar xvf conf.tar 在当前目录释放
tar cvzf conf.tar.gz ./conf/*.conf
tar xvzf conf.tar.gz
gzip abc 把文件abc压缩成abc.gz 速度快,压缩率低
gunzip abc.gz 对gzip压缩的文件进行解压缩
bzip2 abc 把文件abc压缩成abc.bz2 速度慢,压缩率慢
bunzip2 abc.bz2 对bzip2压缩的文件进行解压缩
UNIT 7 The bash Shell
========================================================================
Linux系统的启动过程:
(1) BIOS (进行自检,最后调用MBR)
(2) MBR (检查分区表SPT及55AA标志,正确则调用linux内核。如:lilo、grub)
(3) kernel (vmlinuz)
(4) init进程 (根据/etc/inittab文件的设置运行init进程)
(5) 运行/etc/rc.d/rcx.d中的程序 (rcx.d中的x是/etc/inittab文件中设置的运行级别)
(6) 运行/etc/rc.d/rc.local (login之前最后一个执行脚本程序)
(7) /bin/login (登录程序)
(8) shell (根据/etc/passwd文件中该用户的设置启动相应的shell,常用的如:bash)
shell是内核与用户之间的一个交互桥樑,主要起到一个命令解释作用。
sh (Bourne Shell)UNIX最初的shell
csh (C Shell)语法与C语言相似的shell,比sh功能强
ksh (Korn Shell)和csh相似的shell
tcsh (The Enhanced C Shell)csh的增加版本
bash (Bourne Again Shell)目前常用的shell,功能强大
本地变量:仅对当前的shell有效
环境变量:对所有的shell都有效
set 显示所有本地变量
env 显示所有环境变量
本地变量的赋值:
Variables name=value
环境变量的赋值:
export ENV_name=value
显示变量的值:
echo $variable
常用公共变量:
HOME 用户主目录路径
PATH 可执行文件的查找路径
LANG 系统语言
PWD 当前目录
TERM 终端类型
SHELL shell的路径
USER 当前用户
EDITOR 缺省的编辑器
HISTSIZE 历史命令条数
COLUMNS 终端的列数
PS1 命令提示符的格式定义
which <command> 显示命令的绝对路径
history 显示历史命令
^re^re3 把上一个命令中的re替换成re3后再执行一次
alias 别名,例:alias dir='ls -laF'
unalias 取消别名,例:unalias dir
例:
lsflop()
{
mount /mnt/floppy
ls -l /mnt/floppy
umount /mnt/floppy
}
定义好上述函数后,只要在命令提示符下输入:lsflop就能执行,类似于批处理
启动脚本(Startup Scripts)是在登录时执行的命令脚本,通常进行以下工作:
(1) 设置环境变量
(2) 定义命令的别名
(3) 运行程序
登录时的脚本运行顺序:
(1) /etc/profile
(2) /etc/profile.d/*.sh
(3) ~/.bash_profile
(4) ~/.bashrc
(5) /etc/bashrc
登出时的脚本运行顺序:
(1) ~/.bash_logout
========================================================================
UNIT 8 xwindow
========================================================================
redhat-config-xfree86 配置xwindow
switchdesk 切换桌面管理器
========================================================================
UNIT 9 Standard I/O and Pipes (标准输入输出和管道)
========================================================================
代码为:0
缺省的标准输入设备为键盘
标准输入重定向:
0< 注:零可以省略,即: <
<<char 标准输入直到输入为char时结束
例:
cat > file <<EF (标准输入为EF时结束)
代码为:1
缺省的标准输出设备为屏幕
标准输出重定向:
1> 注:1可以省略,即: >
> 覆盖文件
>> 追加文件
代码为:2
缺省的标准错误的输出设备为屏幕
标准错误重定向:
2> 注:2不可以省略
表示符号为: |
使用格式:command1 | command2 | command3 ....
管道的作用是:把上一个命令的运行结果交给下一个命令进行处理
例:ls /usr/include/ | grep "^g" (显示/usr/include目录下以g开头的文件)
过滤器(grep)
例:
grep mail * (找出所有含有mail字串的文件)
grep tom /etc/passwd (显示/etc/passwd文件中含有tom字串的行)
ls | grep mail(列出文件名中含有mail的文件)
满屏暂停(more)
例:
ls -l | more
内部命令和外部命令
==========================
内部命令是shell直接解释的
which command (显示外部命令所在的路径)
which只在$PATH指定的路径中查找
whereis command(显示外命令所在的路径及其man文件所在的路径)
grep "a." 以a开头的,两个字母以上的
grep "^a.$" 以a开头,两个字母的
* 前面一个字符出现任意次
?前面一个字符出现0或1次
+ 前面一个字符出现1~n次
cut -d" " -f1,3 cut.txt (以一个空格为分隔符显示第一及第三个字段)
tr -s " " < cut.txt (将多个连续的空格变成一个空格)
tr " " "\t" (将空格变成Tab分隔符)
tr a-z A-Z (将小写字母转换成大写字母)
find /tmp -nouser -a -nogroup -exec rm -rf {} \;
========================================================================
UNIT 12 Introduction to Processes
========================================================================
init是系统启动时的第一个进程,其进程号为:1,其他进程都是init进程的子进程。
进程的几种状态:
(1) R 正在运行中
(2) S 睡眠中
(3) T 停止运行
(4) D 睡眠(出现指定的事件才能唤醒)
(5) Z 死掉的但没有释放的进程
查看进程的命令:
ps [option]
option:
-a 显示所有终端运行的进程
-x 显示所有进程,包括后台服务进程
-l 详细显示
-u 显示进程的用户名
pstree 以目录树形式显示进程
kill <PID> 给指定PID的进程发送终止信号
kill -9 <PID> 终止进程
在命令后加上&,让该命令在后台运行
用jobs命令可以查看后台正在运行的程序
用fg <%作业号>来把后台程序调到前台运行
用<ctrl-z>挂起前台程序
用bg <%作业号>把挂起的前台程序放到后台运行
========================================================================
UNIT 13 Using the vi and vim Editors
========================================================================
(1)新建分区(fdisk)
(2)格式化(mkfs)
(3)挂载(mount)
/sbin/fdisk unti-linux-2.11y-9.rpm
blocks以1024字节为单位
fdisk仅更改分区表中的信息,不改变实际数据区中的数据
p 显示分区信息
l 显示己知分区的代码
t 更改分区类型标记(常用分区类型:83 Linux 82 Linux Swap)
n 在剩余空间中新建分区
w 将更改写入磁盘
mkswap /dev/hda6 (将hda6分区更改成swap分区类型)
swap分区无需格式化
mkfs (Make FileSystem)
mkfs [-t fstype] device
例:
mkfs -t ext3 /dev/hda1 (把/dev/hda1分区格式成ext3)
/home 单独分一个区(因里面存放的是其他用户的东西)
/var 单独分一个区(因里面放的都是变化的东西)
/dev (设备hda等)
/etc (inittab fstab)
/lib
/bin (bash)
/sbin (mingetty)
注:要查看一个分区必須靠挂载
exit退出
df命令会读取/etc/mtab文件中的分区挂载信息
mount -n (不将挂载信息写入/etc/mtab文件中),通常用在排错时使用。
因系统出错时,/etc/mtab文件可能不能访问,因此不加-n参数使用mount命令可能出错。
/etc/fstab文件中分区的最后一个数字为0代表分区不需要自检,为1代表需要第一个自检 为2代表需要第二个自检
iocharset=gb2312 中文
mount -t vfat /dev/hda2 /c -o iocharset=gb2312
建议将/var /tmp挂载成noexec
e2label 显示及设置卷标
注意两个分区设成同一卷标的情况造成的问题
swapoff 关闭交换分区
实例:
(一)在计算机上安装一块新的硬盘,并把这硬盘分成两个区,一个分区为ext2格式,一个为ext3格式
(1) 使用fdisk对硬盘进行分区
(2) mkfs -t ext2 /dev/hdb1
(3) mkfs -t ext3 /dev/hdb2
(4) mkdir /mnt/1
(5) mkdir /mnt/2
(6) mount -t ext2 /dev/hdb1 /mnt/1
(70 mount -t ext3 /dev/hdb2 /mnt/2
rpm的管理
===================================
一、安装
rpm -i PackFilename
rpm -ivh PackFilename (其中vh参数用于显示安装进程中的信息)
rpm -Uvh NewVersionPackfilename
rpm -evh PackName
rpm -q PackName (检查系统中是否安装有给出的PackName)
rpm -qa (列出系统中所有已安装的rpm包)
rpm -qi PackName (显示包的一些信息)
rpm -ql PackName (列出所安装的包的具体文件路径列表)
rpm -qf filename (显示给出的filename是属于哪一个rpm包所安装生成的)
查询某一个文件(该文件在电脑中不存在)是属于哪一个安装包
(1) rpm -ivh rpmdb-redhat-***.rpm (安装rpm信息数据库)
(2) rpm -q --redhatprovides libX11.so.6 (查询libX11.so.6这个文件存在于哪一个包中)
===================================
RHEL AS 高级服务器版
RHEL ES 企业服务器版
RHEL WS 工作站
安装服务器
IP:192.168.0.254
Domain Name:server1.example.com
FTP方式的路径:/pub/rhel
注:在Redhat Linux安装程序在分区界面时可以按Ctrl+Alt+F2进入控制台
cdrecord -v dev=0,0,0 speed=32 boot.iso (使用0通道上的刻录机以32倍速刻录光盘镜像文件boot.iso)
cdrecord -scanbus (扫描刻录机的通道号)
boot:linux askmethod (询问安装方式)
netconfig 图形化的网络配置工具,仅适用于redhat
route del -net 192.168.103.0/24 从路由表中删除192.168.103.0/24目的地
route add -net 192.168.103.0/24 在路由表中增加192.168.103.0/24目的地
route add -net 192.168.103.0/24 eth1 在路由表中增加192.168.103.0/24目的地(通过eth1网卡),如果不指定设备,系统将会自动判断设备
route add default gw 192.168.103.254 在路由表中增加缺省路由(即在访问指定IP在路由表中找不到的话,自动通过192.168.103.254网关进行转发)
/etc/sysconfig/static-routes 保存自定义的静态路由表
该文件的写入格式:
any net 10.5.2.0/24 gw 192.168.103.2
相当于命令:
route add -net 10.5.2.0/24 gw 192.168.103.2
/etc/resolv.conf DNS服务器信息
/etc/sysconfig/network 网络的基本信息(仅redhat,不通用)
zebra linux下的动态路由器
ssh 安全远程登录
telnet 192.168.0.254 25
scp root@192.168.0.254:/etc/services ./ 以root用户登录192.168.0.254拷贝该机器上的/etc/services文件拷贝至本机的当前目录中
nmap 192.168.0.254 扫描远程机器上开放的端口
nslookup/host/dig 测试DNS的工作
traceroute [url]www.online.sh.cn[/url] 跟踪路由
links 文本浏览器
lftp ftp客户端
gftp gftp客户端
wget -c [url]ftp://www.linuxeden.com/1.isn[/url] 以断点续传方式下载文件
wget -cb [url]http://www.linuxeden.com/1.isn[/url] 在后台下载文件
wget -r --level 3 [url]http://www.sohu.com[/url] 下载该网站,仅三级链接
syslogd产生的日志存放于/var/log中
*.info 任何程序产生的info级别及info级别以上的才记录
*.=info 任何程序产生的info级别才记录
mail.none mail的任何信息不记录
mail.* /var/log/maillog
cron.* @192.168.0.10 (将该日志发送到192.168.0.10机器上)
service syslog restart
允许远程机器将日志发送到本机
修改/etc/sysconfig/syslog
SYSLOGD_OPTIONS="-m 0 -r"
hdparm /dev/hda 显示/dev/hda的参数
hdparm -c 1 /dev/hda 打开/dev/hda的32位IO
hdparm -c 0 /dev/hda 设置/dev/hda的IO为16位
hdparm -d 1 /dev/hda 打开/dev/hda的DMA方式
hdparm -d 0 /dev/hda 关闭/dev/hda的DMA方式
hdparm -t /dev/hda 测试硬盘读取速度
=======================
常用raid级别有:0、1、5
raid 0 将数据分别存储在两个设备上,速度快,容量为设备之和,但比较危险,至少2个设备
raid 1 镜像模式,至少2个设备
raid 5 带校验位的镜像模式,至少3个设备
(1)使用fdisk工具划分标志为fd的分区
(2)安装raidtools软件包
(3)建立/etc/raidtab文件,可以用:cp /usr/share/doc/raidtools-1.00.3/raidtab.sample /etc/raidtab来复制一个样本文件,在此基础上进行修改
(4)根据/etc/raidtab文件中描述的raid设备用mkraid命令来生成:mkraid /dev/md0
(5)激活raid设备:raidstart /dev/md0
(6)创建文件系统,如:mkfs -t ext3 /dev/md0
(7)用mount命令挂载即可
LVM的工作原理是用物理分区及设备来构成VG(volume group 卷组),然后在VG中划分LV(logical volume 逻辑卷),然后在LV上建立文件系统。
VG就像一个硬盘,LV就像从硬盘上划分出来的分区。
LVM的好处是可以轻松的改变VG及LV的大小,VG大小的改变是通过增减物理分区及设备来实现的。
(1)使用fdisk工具划分出标志为8e的分区(整个硬盘及raid设备不需此操作)
(2)把物理分区及设备变成VG可用的PV(physical volume 物理卷),即添加一个标志。如:pvcreate /dev/hda5
(3)建立VG,如:vgcreate vg1 /dev/hda5 /dev/hda6 /dev/md0 (建立vg1卷组由hda5,hda6,md0构成)
(4)在VG中划分LV,如:lvcreate -L 20M -n lv1 vg1(在vg1这个卷组中划分一个名为lv1,大小为20M的LV)
(5)在LV上建立文件系统,如:mkfs -t ext3 /dev/vg1/lv1
(6)挂载LV,使可用,如:mount /dev/vg1/lv1 /mnt/test
(1)增加容量:vgextend vg1 /dev/hda7
(2)减小容量:vgreduce vg1 /dev/hda1
在移除PV之前,应用pvdisplay命令确认该PV没用被LV使用,如:pvdisplay /dev/hda1
增加:e2fsadm -L+20M /dev/vg1/lv1
减少:e2fsadm -L-20M /dev/vg1/lv1
RH253
==================================================================
系统服务的启动
1) /etc/inittab 系统启动时自动启动的服务
init
/etc/rc脚本会自动执行/dev/rc.d目录下的脚本
/etc/rc.d/rcX.d目录下K开头的不执行,S开头的执行(X代表启动类型)
/etc/xinetd.d
/etc/rc.d/rc.local是系统启动的最后一个执行脚本,进行收尾工作。
chkconfig --level 23 vsftpd on 在运行级别为2、3时自动启动vsftpd服务
DNS Server (Domain Name System) bind-***.rpm(安装文件名) named (服务名)
端口:UDP 53 或 TCP 53
====================================================================
/dec/resolv.conf 指定系统使用DNS Server的IP地址
FQDN (fully qualified domain name)
FQDN实例:
[url]www.online.sh.cn[/url] www为主机名
online.sh.cn online域(子域)
sh.cn sh域(子域)
.cn cn域(顶级域)
如果第一个字段为空时,默认取自上一条语句的第一个字段
只有域才有NS及MX
===================================
/etc/named.conf
===================================
options {
directory "/var/named";
};
type master;
file "example.com.zone";
}
type master;
file "126.100.151.zone";
}
===================================
/var/named/example.com.zone
===================================
@ IN SOA station1.example.com. root.station1.example.com. (
2001101100 ; 序列号(用于更新)
1H ; 刷新辅助DNS的更新时间(1小时)
5M ; 重试次数(5分钟)
1W ; 重试失效日期(1星期),即5分钟试一次,连试一星期还不成功,则作废
1M ) ; TL时间
www IN A 126.100.151.1
ftp IN A 126.100.151.26
www1 IN CNAME station1.example.com.
===================================
===================================
对以上两个文件的解析
===================================
/etc/named.conf
directory "var/named"; 指定了文件的存放路径
@ 表示域名,即用/etc/named.conf中的"example.com"这一段来替换
一个完整的域名必须以.来结束,否则系统认为是一个主机名,如:www,系统会自动替换成[url]www.example.com[/url].
@ IN MX 10 station1.example.com.这一句指定了example.com这个域中的邮件服务器为station1.example.com.这台机器,级别为10
====================================================================
Samba Service
端口:137/udp,138/udp,139/tcp
====================================================================
安装文件:
samba-****.rpm
samba-common-***.rpm
samba-client-****.rpm
服务名:
nmbd
smbd
配置文件:
/etc/samba/smb.conf
服务启动方法:
service smb start
====================================================================
启用一个共享的操作流程:
1) useradd -s /bin/false karl (在系统中增加一个用户karl,并使之不能登录系统)
2) smbpasswd -a karl (把karl用户添加到samba系统中,为之设置密码)
3) groupadd legal (添加一个组)
4) usermod -G legal karl (把karl用户添加到legal组中)
5) mkdir -p /home/depts/legal (建立共享目录)
6) chgrp legal /home/depts/legal (更改目录的拥有者,以便拥有读写的权限)
7) chmod 3770 /home/depts/legal (实现在该目录中,只有文件拥有者才能更改)
8) vi /etc/samba/smb.conf (在该文件中添加以下语句)
[legal]
comment = Legal's files
path = /home/depts/legal
public = no
write list = @legal
create mask = 0660
9) service smb start (启动samba服务)
10)smbclient //localhost/legal -U karl (测试)
smbmount //192.168.0.1/myshare /mnt/smb -o username=tom
====================================================================
Sendmail Service(一种SMTP服务器)
端口:25/tcp
====================================================================
安装文件:
sendmail-****.rpm
sendmail-cf-***.rpm (缺少该软件包将造成无法通过m4的翻译)
sendmail-doc-****.rpm
m4-***.rpm
procmail-***.rpm
服务名:
sendmail
配置文件:
/etc/mail/sendmail.cf (主配置文件)
/etc/mail/sendmail.mc (宏文件,用于生成主配置文件)
服务启动方法:
service sendmail start
域 优先级为5(数字越小优先级越高) 该域哪一台主机为邮局
RHCE考试的操作步骤:
sendmail.mc中:
(1)FEATURE(user_cw_file)dnl 这一语句引出了local-host-names这个文件
如:在该文件中加入:domain22.example.com
在这句话前加上dnl用于注释掉这句话
/usr/share/sendmail-cf/README提供了新老版本的配置文件的变化说明及一些宏语言说明
(1)注意在括号中的字符串,字符串的左侧不是单引号,是数字键1左侧的字符
(2)dnl为注释符
(3)某一语句最后紧跟着dnl,其作用是防止该语句的结尾出现空格造成m4翻译出错。
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN LAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
这两句话必须同时打开或同时关闭,打开之后就能实现对用户进行认证才能发信的功能
是否允许access功能
/etc/mail/access
用于控制邮件处理
RELAY 转发
makemap hash access < access 用于生成access.db
修改好这个文件之后必须执行newaliases才能生效
bin: root 发送给bin的邮件实际发送给root
daemon: root 发送给daemon的邮件实际发送给root
IMAP 可以远程存取邮件,邮箱是放在服务器上的,因此比较占用服务器资源 143端口
POP3 大多数用的,用户邮箱存放在本地计算机,必须读取到本地才能查看邮件 110端口
imap-***.rpm (此包含有imap及POP3服务)
chkconfig imap on
chkconfig ipop3 on
service xinetd restart
用netstat -tnl检查
110端口的为POP3服务已启动
143端口的为imap服务已启动
在google中输入RFC SMTP进行查找,可以找到SMTP的文档
在google中输入RFC IMAP进行查找,可以找到IMAP的文档
FEATure(promiscuous_relay)dnl(OPEN RELAY,转发任意邮件)勿用
在xwindows的控制台窗口中打入:vncviewer 192.168.0.254:1 查看远程机器屏幕
Apache Web Server
端口:80
====================================================================
安装文件:
httpd-***.rpm
httpd-manual-***.rpm
配置文件:
/etc/httpd/conf/httpd.conf
服务启动方法:
service httpd start
其他文件
run/httpd.pid 进程文件
====================================================================
Timeout 300 超时时间(秒)
KeepAlive Off 是否允许永久连接
MaxKeepAliveRequests 100 一个连接的最大的请求次数
StartServers 1 服务器启动的数量(服务进程)
mod_userdir.so 允许用户建立个人主页
Options Indexes Follow
安装软件名:elinks-***.rpm
配置文件:~/.elinks/elinks.conf
为elinks设置HTTP代理服务器:
(1) 按ESC键调用出elinks的菜单
(2) 选择Setup/Options manager菜单
(3) 选择Protocols,按空格展开子菜单,直到选中Host and prot-number
(4) 按->键选中[Edit]按回车
(5) 在value:后输入代理服务器的信息,如:126.100.151.2:3128,然后进行保存
虚拟主机配置:(以本机IP为192.168.0.2为例)
(1) vi /etc/httpd/conf/httpd.conf
=============================
NameVirtualHost 192.168.0.2
<VirtualHost 192.168.0.2>
ServerName www2.example.com
ServerAdmin [email]webmaster@station12.example.com[/email]
DocumentRoot /var/www/virtual2/html
ErrorLog logs/www2.example.com-error_log
CustomLog /var/www/virtual2/html
<Directory /var/www/virtual2/html>
Options Indexes Includes
</Directory>
</VirtualHost>
=============================
(2) mkdir /var/www/virtual2
mkdir /var/www/virtual2/html
(3) vi /var/www/virtual2/html/index.html
=============================
<b>This is a www2.example.com web station</b>
=============================
(4) dig www2.example.com
(5) service httpd restart
(6) elinks [url]http://www2.example.com[/url]
(1) mkdir /var/www/virtual2/cgi-bin
(2) vi /var/www/virtual2/cgi-bin/test.sh
========================================
#!/bin/bash
echo Content-Type:text/html
echo
echo My username is :
whoami
========================================
(3) chmod 555 /var/www/virtual2/cgi-bin/test.sh
(4) vi /etc/httpd/conf/httpd.conf (在虚拟主机配置的基础上增加ScriptAlias语句)
=================================
NameVirtualHost 192.168.0.2
<VirtualHost 192.168.0.2>
ScriptAlias /cgi-bin/ /var/www/virtual2/cgi-bin/
ServerName www2.example.com
ServerAdmin [email]webmaster@station12.example.com[/email]
DocumentRoot /var/www/virtual2/html
ErrorLog logs/www2.example.com-error_log
CustomLog /var/www/virtual2/html
<Directory /var/www/virtual2/html>
Options Indexes Includes
</Directory>
</VirtualHost>
=================================
(5) service httpd restart
(6) elinks [url]http://www2.example.com/cgi-bin/test.sh[/url]
(1) vi /var/www/virtual2/html/.htaccess
=======================================
AuthName "restricted stuff"
AuthType Basic
AuthUserFile /etc/httpd/conf/www2.htpasswd
require valid-user
=======================================
(2) htpasswd -mc /etc/httpd/conf/www2.htpasswd jone (增加一个用户jone并设置密码)
(3) chgrp apache /etc/httpd/conf/www2.htpasswd (www2.htpasswd文件必须设置为apache组可读)
(4) chmod g+r /etc/httpd/conf/www2.htpasswd
(5) vi /etc/httpd/conf/httpd.conf (在<Directory>块中增加AllowOverride语句)
=================================
NameVirtualHost 192.168.0.2
<VirtualHost 192.168.0.2>
ScriptAlias /cgi-bin/ /var/www/virtual2/cgi-bin/
ServerName www2.example.com
ServerAdmin [email]webmaster@station12.example.com[/email]
DocumentRoot /var/www/virtual2/html
ErrorLog logs/www2.example.com-error_log
CustomLog /var/www/virtual2/html
<Directory /var/www/virtual2/html>
Options Indexes Includes
AllowOverride AuthConfig
</Directory>
</VirtualHost>
=================================
(6) service httpd restart
(7) elinks [url]http://www2.example.com[/url] (将提示输入用户名密码)
squid 代理服务器
端口:3128
====================================================================
安装文件:
squid-***.rpm
配置文件:
/etc/squid/squid.conf
注:运行squid的主机必须配置好完整的主机名,如:mymac.abc.com
====================================================================
一个代理设置实例:
vi /etc/squid/squid.conf
在acl CONNECT method CONNECT这一行后加入:
acl example src 192.168.0.0/24 (对源地址192.168.0网段的规则命名为:example)
然后在# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS这一行后加入:
http_access allow example (对规则名为example开放http代理)
保存好之后,重启服务
=====================================================
vsftpd
端口:21 用户监听
端口:20 数据传输(传输文件时才开启),主动方式
(被动方式下,此数据传输端口会随机)
=====================================================
安装文件:
vsftpd-***.rpm
配置文件:
/etc/vsftpd/vsftpd.conf
服务启动方法:
service vsftpd start
=====================================================
dirmssage_enable=YES 用户登录成功后显示目录中的.messages中的内容
xfrelog_enable=YES 上载下传的日志记载
connect_from_port_20=YES 数据传输端口从20开始
chroot_list_file=/etc/vsftpd.chroot_list
chroot_local_user
ls_recurse_enables=YES 允许客户端使用ls -R功能
userlist_eanble=NO 允许...
tcp_wrappers=YES 开启tcp_wrappers功能
NFS
======================================================
安装文件:
nfs-utils-***.rpm
服务启动方法:
service nfs start
======================================================
vi /etc/exports
===============
/var/ftp/pub *(rw,sync)
/home 192.168.0.0/255.255.255.0(ro,sync)
/home/guest 192.168.0.0/255.255.255.0(ro,sync) 192.168.3.0/255.255.255.0(rw,sync)
===============
* 代表所有主机
mount server1:/var/ftp/pub /mnt/nfs (NFS的挂载方式)
mount //server1/sharename /mnt/smb(smb的挂载方式)
man exports
all_squash 选项时映射为nfsnobody
no_root_squash 服务端与客户端用户的UID一一对应
portmap必须启动
DHCP
端口:udp/67(服务端) udp/68 (客户端)
=======================================================
安装文件:
dhcp-***.rpm
服务启动方法:
service dhcpd start
=======================================================
cp /usr/share/doc/dhcp***/dhcpd.conf.sample /etc/dhcpd.conf
default-lease-time 21600; 默认租用地址保留时间
邦定MAC地址
host ns {
next-server marvin.redhat.com; 网络启动的服务器
hardware ethernet 12:34:56
}
NIS
========================================================
注:仅考客户端
/etc/yp.conf
安装文件
ypbind-***.rpm (客户机端的服务程序,与服务器邦定,获取帐号信息)
ypserv-***.rpm (服务器端的服务程序)
yp-tools-***.rpm ()
portmap必须启动
NIS v3(收费版本)
authconfig(客户机邦定工具)
ypcat passwd 显示服务器上的帐号(注:如果看到帐号,说明邦定成功)
如果服务器端的用户ID与本地用户的ID相同,那登录的所有操作都认定为本地用户
/usr/lib/yp/ypinit -m 初始化主服务器
/usr/lib/yp/ypinit -s server1.example.com 初始化成从服务器
domainname
/etc/sysconfig/network中:
NISDOMAIN=
(1)adduser test
(2)cd /var/yp
(3)make
(1)service yppasswdd start (服务端启动yppasswdd服务)
(2)yppasswd 在客户端更改密码
========================================================
autofs
/etc/auto.master
/etc/auto.misc
service autofs restart
tom -ro,soft,intr server1:/home/tom (一个用户的例子)
* -ro,soft,intr server1:/home/& (匹配所有用户的例子)
-fstype=nfs,ro
=================================================================
NFS、NIS、autofs三者相结合的工作
=================================================================
实现用服务器的帐号在本地登录,并且用户主目录也存储在服务器端
=================================================================
注:服务器为:192.168.0.1 客户端为:192.168.0.2 为例
1、在服务器端配置NFS
(1) rpm -Uvh nfs-utils-1.0.5-3.rpm
(2) vi /etc/exports
/home *(rw,sync)
(3) service portmap restart
(4) service nfs restart
(5) showmount -e 192.168.0.1 (验证nfs是否正确)
(1) rpm -Uvh ypserv-***.rpm (安装服务器端的服务程序)
(2) rpm -Uvh yp-tools-***.rpm (安装NIS工具)
(3) vi /etc/sysconfig/network (让系统启动时自动设定域名为mydomain)
NISDOMAIN=mydomain
(4) domainname mydomain (让域名mydomain立即生效)
(5) vi /var/yp/Makefile
all: passwd group (先把all这一区域用#屏闭掉,再在前加上)
(6) service portmap start
(7) service ypserv start
(8) rpm -Uvh make*.rpm (安装make包)
(9) /usr/lib/yp/ypinit -m
按Ctrl-D,按y,回车
注:第二次开始用cd /var/yp,make命令进行更新
(10)service yppasswdd start
(11)service ypserv restart
(12)rpcinfo -p 192.168.0.1 (检查NIS)
(1) rpm -Uvh ypbind*.rpm
(2) authconfig
填入:域名为mydomain 服务器为:192.168.0.1
(3) ypcat passwd
(1) rpm -ivh autofs-***.rpm
(2) vi /etc/auto.master
/home /etc/auto.my --timeout=60
(3) vi /etc/auto.my
* -rw,soft,intr 192.168.0.1:/home/&
(4) service autofs restart
PAM (可插拔认证模块)
系统的所有认证统一由PAM负责
=======================================================================
安装文件:
pam-***.rpm
配置文件:
/etc/pam.d/* (每一个服务对应一个配置文件)
/lib/security/*.so (认证模块库)
/usr/share/doc/pam*/txts/pam.txt (pam的具体说明)
/usr/share/doc/pam*/txts/* (每一个认证模块的说明)
注:PAM配置文件修改保存后立即自动生效
=======================================================================
#%PAM-1.0
auth required pam_securetty.so
auth required pam_stack.so service=system-auth
auth required pam_nologin.so
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
session optional pam_console.so
=======================================================================
具体分析:
auth required pam_securetty.so
验证的类型 验证级别 验证模块名
(1) auth 验证
(2) account 帐号验证
(3) password 更改密码
(4) session 会话(从登录到退出系统)
(1) required 必须
(2) optional 可选
(3) sufficient 只需(通过了这一句,接下来的就不用验证)
(1)pam_securetty.so 只允许root用户在安全控制台登入(安全控制台的列表存放于/etc/securetty中)
(2)pam_nologin.so 如果存在/etc/nologin文件,不允许普通用户登录并显于nologin文件的内容
(3)pam_console.so 将终端文件(/dev/tty*)的属主改为登录用户
(4)pam_stack.so 调用其后的PAM配置文件,进行子验证
如:pam_stack.so service=system-auth(调用system-auth进行验证)
(5)pam_access.so 限制用户登录(默认配置文件为:/etc/security/access.conf)
也可以指定一个,如:pam_access.so accessfile=/etc/access.txt
(6)pam_listfile.so 限制用户访问
例:
只允许tom访问ssh
sshd
auth rquired pam_listfile.so item=user sense=allow file=/etc/sshuser onerr=fail
=======================================================================
iptables
=======================================================================
iptables -L -n (查看本地的配置)
iptables -A OUPUT -p icmp -j DROP (在output中增加一条规则,把所有类型为icmp的包丢弃)
iptables -F INPUT (清空INPUT中的所有规则)
禁止除了192.168.0.0/24网段之外的主机访问本机的TCP/23端口(在INPUT中限制)
iptables -A OUTPUT -d ! 192.168.0.0/24 -t tcp --sport 23 -j DROP
禁止除了192.168.0.0/24网段之外的主机访问本机的TCP/23端口(在OUPUT中限制)
iptables -L -n --line-numbers (列出规则的ID号)
iptables -d INPUT 2 (删除INPUT中的第二条规则)
iptables -A INPUT -p tcp --dport 25 -s 192.168.0.0/24 -j ACCEPT(为192.168.0.0/24网段打开25端口)
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 25 -d 192.168.0.0/24 -j ACCEPT
service iptables save (保存当前的规则运至:/etc/sysconfig/iptables)
/state 可以查看状态的说明
iptables -A INPUT -m state --state ESTABLISHED.RELATED -j ACCEPT
FTP被动方式所用的规则(在已经产生的连接后产生的一个新的连接)
iptables -A INPUT -p udp --sport 53 -j ACCEPT
打开DNS
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED
/etc/services (记录了服务对应的端口)
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -t nat -L -n (显示nat表)
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 \> -j SNAT --to-source 202.96.5.1 (把所有192.168.0.0/24网段中的IP转换成202.96.5.1)
echo 1 > /porc/sys/net/ipv4/ip_forward (把ip_forward设置为1)
iptables -A INPUT -s 192.168.0.174 -m state --state NEW -j DROP (禁止192.168.0.174这台机器访问本机)
(允许192.168.0.23这台主机使用ping命令测试本机,但一分钟本机仅回应6个,突发同时回应2个)
iptables -A INPUT -s 192.168.0.23 -p icmp --icmp-type echo-request -j DROP (把23这台主机的Ping包丢弃)
这两台规则组合后的效果是:23这台主机用ping测试本机,一分钟仅回应6个,突发同时回应2个
tcp_wrappers (控制基于TCP的服务器)
=======================================================================
/usr/lib/libwrap.so
/etc/host.allow(存放允许的服务)
注:host.allow优先
只有把libwrap.so编译进程序中,才能通过该方式控制该程序的访问
netstat -tnlp
=======================================================================
加密
=======================================================================
安装包:gnupg-***.rpm
对称加密(symmetric encryption) 加、解密使用同一个密码
不对称加密 加密密码(私钥、公钥) 解密密码(公钥、私钥)
每个用户有两把钥匙(私钥和公钥)。
当A用户想把一个文件加密后传给B用户时。A用户首先获得B用户的公钥,用B用户的公钥对文件
进行加密,然后把加密后的文件传给B用户,B用户就用自己的私钥对加密文件进行解密。
在这个流程中间,公钥是用来加密的,可以公开,私钥是用来解密的,因此不能公开。
gpg (首次执行时建立初始化文件,执行后,当提示“...your message”时,按CTRL+C)
gpg --gen-key (生成公钥和私钥,提示算法时可以采用默认算法,并输入一个该公私钥的所属者名字)
(2) 关闭“using insecure memory”的警告提示
echo no-secmem-warning >> ~/.gnupg/gpg.conf
(3) 查看所生成的公私钥
gpg --list-keys
gpg --list-secret-keys
(4) 输出公钥文件
gpg --export Bobby > /tmp/bob.key (把一个名为Bobby的公钥输出成/tmp/bob.key文件,该文件是二进制文件)
或
gpg --export --armor Bobby > /tmp/bob.key (通过--armor参数生成/tmp/bob.key为ASCII文件,便用通过email传送)
(5) 输入公钥
gpg --import /tmp/bob.key
(6) 用输入的公钥对文件进行加密
gpg --encrypt --armor --recipient Bobby message.txt (用Bobby这个公钥对message.txt进行加密)
(7) Bobby私钥拥有者对加密文件进行解密
gpg message.txt.asc
SSH
/etc/ssh/ssh_host.rsa_key.pub
chkconfig imaps on
service xinetd restart
netstat -tnl 查看是否有993端口
README.IMAPS
cd /usr/share/ssl/certs/
make
make imapd.pem
service xinetd restart
vi /etc/httpd/conf.d/ssl.conf
grep https /etc/services
netstat -tnl | grep 443
rpm -qf /etc/httpd/conf.d/ssl.conf
mod_ssl-2.0.46-25.ent 安装此
=======================================================================
=======================================================================
========================================================================
========================================================================
计划任务
at 在指定的时间执行命令(系统重启后会失效)
atq 列出由at命令安排的任务
atrm 删除指定的任务
=======================================================================
at命令指定时间的格式:
(2)at 7 am Thursday (在每个星期四的上午七点执行指定的命令)
(3)at now +5 minutes (在五分钟后执行指定的命令)
(4)at midnight +23 minutes (在凌晨后的第23分钟执行指定的的命令)
at>rm -rf /tmp/*
at>(Ctrl-D)
=======================================================================
atq 查询系统中的计划任务
[test@blue test]$atq
5 2004-06-29 06:00 a test
6 2004-06-29 07:00 a test
(任务号) (开始执行时间) (创建任务的用户)
=======================================================================
atrm 删除指定任务
[test@blue test]$atrm 5 (删除job ID为5的任务)
=======================================================================
控制哪些用户可以使用at命令,哪些用户不可以使用at命令
/etc/at.allow (将允许使用at命令的用户名存入此文件)
/etc/at.deny (将禁止使用at命令的用户名存入此文件)
=======================================================================