2007年05月08日
  Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录 操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通 过基础的命令学习可以进一步理解Linux系统。 

  不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。 

  嵌入式门户网(www.21em.cn)–嵌入式学习的门户网站 

  ◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; 

  ◆ 文件处理命令:file、mkdir、grep、dre、find、mv、ls、diff、cat、ln; 

  ◆ 系统管理相关命令:df、top、free、quota、at、lp、adreuser、groupadre、kill、crontab; 

  ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; 

  ◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; 

  ◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 

  本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登录命令。 

  login 

  1.作用 

  login的作用是登录系统,它的使用权限是所有用户。 

  2.格式 

  login [name][-p ][-h 主机名称] 

  3.主要参数 

  -p:通知login保持现在的环境参数。 

  -h:用来向远程登录的之间传输用户名。 

  如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:。 

  一般界面是这样的: 

  Mandrerake Linux release 9.1(Bamboo) for i586 

  renrel 2.4.21-0.13mdk on i686 / tty1 

  localhost login:root 

  password: 

  嵌入式门户网(www.21em.cn)–嵌入式学习的门户网站 

  上面代码中,第一行是Linux发行版本号,第二行是内核版本号和登录的虚拟控制台,我们在第三行输入登录名,按“Enter”键在Password后输入账户密码,即可登录系统。出于安全考虑,输入账户密码时字符不会在屏幕上回显,光标也不移动。 

  登录后会看到下面这个界面(以超级用户为例): 

  [root@localhost root]# 

  last login:Tue ,Nov 18 10:00:55 on vc/1 

  上面显示的是登录星期、月、日、时间和使用的虚拟控制台。 

  4.应用技巧 

   Linux是一个真正的多用户操作系统,可以同时接受多个用户登录,还允许一个用户进行多次登录。这是因为Linux和许多版本的Unix一样,提供了 虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。每个虚拟控制台可以看作是一个独立的工 作站,工作台之间可以切换。虚拟控制台的切换可以通过按下Alt键和一个功能键来实现,通常使用F1-F6 。 

  例如,用户登录后, 按一下“Alt+F2”键,用户就可以看到上面出现的“login:”提示符,说明用户看到了第二个虚拟控制台。然后只需按“Alt+F1”键,就可以回 到第一个虚拟控制台。 一个新安装的Linux系统允许用户使用“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制台。虚拟控制台最有用的是,当 一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作,关闭这个程序。 

  shutdown 

  1.作用 

  shutdown命令的作用是关闭计算机,它的使用权限是超级用户。 

  2.格式 

  shutdown [-h][-i][-k][-m][-t] 

  3.重要参数 

  -t:在改变到其它运行级别之前,告诉init程序多久以后关机。 

  -k:并不真正关机,只是送警告信号给每位登录者。 

  -h:关机后关闭电源。 

  -c:cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。 

  -F:在重启计算机时强迫fsck。 

  -time:设定关机前的时间。 

  -m: 将系统改为单用户模式。 

  -i:关机时显示系统信息。 

  4.命令说明 

   shutdown命令可以安全地将系统关机。有些用户会使用直接断掉电源的方式来关闭Linux系统,这是十分危险的。因为Linux与Windows 不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备(硬盘)。在系统关机前使 用shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录。 

  halt 

  1.作用 

  halt命令的作用是关闭系统,它的使用权限是超级用户。 

  2.格式 

  halt [-n] [-w] [-d] [-f] [-i] [-p] 

  3.主要参数说明 

  -n:防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块覆盖修补过的超级块。 

  -w:并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录。 

  -f:没有调用shutdown,而强制关机或重启。 

  -i:关机(或重启)前,关掉所有的网络接口。 

  -f:强迫关机,不呼叫shutdown这个指令。 

  -p: 当关机的时候顺便做关闭电源的动作。 

  -d:关闭系统,但不留下纪录。  

  4.命令说明 

   halt就是调用shutdown -h。halt执行时,杀死应用进程,执行sync(将存于buffer中的资料强制写入硬盘中)系统调用,文件系 统写操作完成后就会停止内核。若系统的运行级别为0或6,则关闭系统;否则以shutdown指令(加上-h参数)来取代。  

  reboot 

  1.作用 

  reboot命令的作用是重新启动计算机,它的使用权限是系统管理者。 

  2.格式 

  reboot [-n] [-w] [-d] [-f] [-i] 

  3.主要参数 

  -n: 在重开机前不做将记忆体资料写回硬盘的动作。 

  -w: 并不会真的重开机,只是把记录写到/var/log/wtmp文件里。 

  -d: 不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)。 

  -i: 在重开机之前先把所有与网络相关的装置停止。 

  install 

  1.作用 

  install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户。 

  2.格式 

  (1)install [选项]… 来源 目的地 

  (2)install [选项]… 来源… 目录 

  (3)install -d [选项]… 目录… 

   在前两种格式中,会将<来源>复制至<目的地>或将多个<来源>文件复制至已存在的<目录>,同时设 定权限模式及所有者/所属组。在第三种格式中,会创建所有指定的目录及它们的主目录。长选项必须用的参数在使用短选项时也是必须的。 

  嵌入式门户网(www.21em.cn)–嵌入式学习的门户网站 

  3.主要参数 

  --backup[=CONTROL]:为每个已存在的目的地文件进行备份。 

  -b:类似 --backup,但不接受任何参数。 

  -c:(此选项不作处理)。 

  -d,--directory:所有参数都作为目录处理,而且会创建指定目录的所有主目录。 

  -D:创建<目的地>前的所有主目录,然后将<来源>复制至 <目的地>;在第一种使用格式中有用。 

  -g,--group=组:自行设定所属组,而不是进程目前的所属组。 

  -m,--mode=模式:自行设定权限模式 (像chmod),而不是rwxr-xr-x。 

  -o,--owner=所有者:自行设定所有者 (只适用于超级用户)。 

  -p,--preserve-timestamps:以<来源>文件的访问/修改时间作为相应的目的地文件的时间属性。 

  -s,--strip:用strip命令删除symbol table,只适用于第一及第二种使用格式。 

  -S,--suffix=后缀:自行指定备份文件的<后缀>。 

  -v,--verbose:处理每个文件/目录时印出名称。 

  --help:显示此帮助信息并离开。 

  --version:显示版本信息并离开。 

  mount 

  1.作用 

  mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。 

  2.格式 

  mount -a [-fv] [-t vfstype] [-n] [-rw] [-F] device dir 

  3.主要参数 

  -h:显示辅助信息。 

  -v:显示信息,通常和-f用来除错。 

  -a:将/etc/fstab中定义的所有文件系统挂上。 

  -F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。 

  -f:通常用于除错。它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。 

  -t vfstype:显示被加载文件系统的类型。 

  -n:一般而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件系统的情况下,可以用这个选项取消这个动作。 

  4.应用技巧 

   在Linux和Unix系统上,所有文件都是作为一个大型树(以/为根)的一部分访问的。要访问CD-ROM上的文件,需要将CD-ROM设备挂装在文 件树中的某个挂装点。如果发行版安装了自动挂装包,那么这个步骤可自动进行。在Linux中,如果要使用硬盘、光驱等储存设备 ,就得先将它加载,当储存 设备挂上了之后,就可以把它当成一个目录来访问。挂上一个设备使用mount命令。 在使用mount这个指令时,至少要先知道下列三种信息:要加载对象 的文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。 

  (1)Linux可以识别的文件系统 

  ◆ Windows 95/98常用的FAT 32文件系统:vfat ; 

  ◆ Win NT/2000 的文件系统:ntfs ; 

  ◆ OS/2用的文件系统:hpfs; 
 
  ◆ Linux用的文件系统:ext2、ext3; 

  ◆ CD-ROM光盘用的文件系统:iso9660。 

  虽然vfat是指FAT 32系统,但事实上它也兼容FAT 16的文件系统类型。 

  (2)确定设备的名称 

   在Linux中,设备名称通常都存在/dev里。这些设备名称的命名都是有规则的,可以用“推理”的方式把设备名称找出来。例如,/dev/hda1这 个IDE设备,hd是Hard Disk(硬盘)的,sd是SCSI Device,fd是Floppy Device(或是 Floppy Disk?)。a代表第一个设备,通常IDE接口可以接上4个IDE设备(比如4块硬盘)。所以要识别IDE硬盘的方法分别就是hda、 hdb、hdc、hdre。hda1中的“1”代表hda的第一个硬盘分区 (partition),hda2代表hda的第二主分区,第一个逻辑分区从 hda5开始,依此类推。 此外,可以直接检查/var/log/messages文件,在该文件中可以找到计算机开机后系统已辨认出来的设备代号。 

  (3)查找挂接点 
 
   在决定将设备挂接之前,先要查看一下计算机是不是有个/mnt的空目录,该目录就是专门用来当作挂载点(Mount Point)的目录。建议在 /mnt里建几个/mnt/cdrom、/mnt/floppy、/mnt/mo等目录,当作目录的专用挂载点。举例而言,如要挂载下列5个设备,其执行 指令可能如下 (假设都是Linux的ext2系统,如果是Windows XX请将ext2改成vfat): 

  软盘 ===>mount -t ext2 /dev/fd0 /mnt/floppy 

  cdrom ===>mount -t iso9660 /dev/hdc /mnt/cdrom 

  SCSI cdrom ===>mount -t iso9660 /dev/sdb /mnt/scdrom 

  SCSI cdr ===>mount -t iso9660 /dev/sdc /mnt/scdr 

  不过目前大多数较新的Linux发行版本(包括红旗 Linux、中软Linux、Mandrake Linux等)都可以自动挂装文件系统,但Red Hat Linux除外。 

  umount 

  1.作用 

  umount命令的作用是卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。 

  2.格式 

  unmount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir 

  3.使用说明 

   umount命令是mount命令的逆操作,它的参数和使用方法和mount命令是一样的。Linux挂装CD-ROM后,会锁定CD—ROM,这样就 不能用CD-ROM面板上的Eject按钮弹出它。但是,当不再需要光盘时,如果已将/cdrom作为符号链接,请使用umount/cdrom来卸装 它。仅当无用户正在使用光盘时,该命令才会成功。该命令包括了将带有当前工作目录当作该光盘中的目录的终端窗口。 

  chsh 

  1.作用 

  chsh命令的作用是更改使用者shell设定,它的使用权限是所有使用者。 

  2.格式 

  chsh [ -s ] [ -list] [ --help ] [ -v ] [ username ] 

  3.主要参数 

  -l:显示系统所有Shell类型。 

  -v:显示Shell版本号。 

  4.应用技巧 

  前面介绍了Linux下有多种Shell,一般缺省的是Bash,如果想更换Shell类型可以使用chsh命令。先输入账户密码,然后输入新Shell类型,如果操作正确系统会显示“Shell change”。其界面一般如下: 

  Changing fihanging shell for cao 

  Password: 

  New shell [/bin/bash]: /bin/tcsh 

  上面代码中,[ ]内是目前使用的Shell。普通用户只能修改自己的Shell,超级用户可以修改全体用户的Shell。要想查询系统提供哪些Shell,可以使用chsh -l 命令,见图1所示。 

  从图1中可以看到,笔者系统中可以使用的Shell有bash(缺省)、csh、sh、tcsh四种。 

  exit 

  1.作用 

  exit命令的作用是退出系统,它的使用权限是所有用户。 

  2.格式 

  exit 

  3.参数 

  exit命令没有参数,运行后退出系统进入登录界面。 

  last 

  1.作用 

  last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户。通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统。 

  2.格式 

  1ast[—n][-f file][-t tty] [—h 节点][-I —IP][—1][-y][1D] 

  3.主要参数 

  -n:指定输出记录的条数。 

  -f file:指定用文件file作为查询用的log文件。 

  -t tty:只显示指定的虚拟控制台上登录情况。 

  -h 节点:只显示指定的节点上的登录情况。 

  -i IP:只显示指定的IP上登录的情况。 

  -1:用IP来显示远端地址。 

  -y:显示记录的年、月、日。 
 
  -ID:知道查询的用户名。 

  -x:显示系统关闭、用户登录和退出的历史。

LINUX常用命令

1 文件与目录喜欢作命令
1.1文件内容查询命令
grep、fgrep、egrep
语法:grep[选项][查找模式][文件名1,文件名2,……]
选项: -E 每个模式作为一个扩展的正则表达式对待
-F 每个模式作为一组固定字符串对待,而不作为正则表达式
-i 比较时不区分大小写
-l 显示首次匹配匹配串所在的文件名并用换行符将其分开。当在文件中多次出现匹配串时,不重复显示次文件名;
-x 只显示整行严格匹配的行
1.2文件查找命令 find、locate
语法:find 起始目录 寻找条件 喜欢作
以名称和文件属性查找
-name‘字串‘ 查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[]。
-lname‘字串‘ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符*、?、[]。
-gid n 查找属于ID号为n的用户组的所有文件。
-uid n 查找属于ID号为n的用户的所有文件。
-group‘字串‘ 查找属于用户组名为所给字串的所有的文件。
-user‘字串‘ 查找属于用户名为所给字串的所有的文件。
-path‘字串‘ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[]。
-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711、644。
-type x 查找类型为 x的文件,
语法:locate 相关字
1.3文件的复制、删除和移动命令
文件复制命令cp [选项] 源文件或目录 目标文件或目录
选项:- a 通常在拷贝目录时使用
-d 拷贝时保留连接
-f 删除已经存在的目标文件而不提示
-i 和f选项相反
-p 此时cp除复制源文件内容外,还将其修改的时间和访问权限也复制到新文件中
-r 若给出的源文件是一目录文件,此时cp将递归复制该目录下的所有的子目录和文件,此时目标文件必须为一个目录名;
-l 不作拷贝,只是链接文件
文件移动命令 mv[选项] 源文件或目录 目标文件或目录
-i 交互式喜欢作
-f 禁止交互式喜欢作
文件删除命令 rm[选项] 文件…
-f 忽略不存在的文件,从不给出提示
-r 指示rm将参数中列出的全部目录和子目录均递归地删除
-i 进行交互式删除
1.4文件链接命令
ln [选项] 目标 [链接名] 或 ln [选项] 目标 目录
选项:- s 建立符号链接
1.5目录的创建和删除命令
mkdir 创建一个目录
语法:mkdir [选项] dirname
选项:- m 对新建目录设置存取权限
-p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
rmdir 删除空目录
语法:rmdir [选项] dirname
选项: – p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。
1.6改变工作目录,显示目录内容命令
1、改变工作目录:cd [directory]
2、显示当前工作的目录的绝对路径: pwd
3、显示目录内容:ls [选项] [目录或是文件]
选项:- a 显示指定目录下所有子目录与文件,包括隐藏文件;
-c 按照文件的修改时间排序
-C 分成多列显示各项
-d 如果参数是目录,只显示其名称而不显示其下的个文件
-F 在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记“@”,管道(或FIFO)后面标记“|”,socket文件后面标记“=”。
-l 以长格式来显示文件的详细信息
-L 若指定的名称为一个符号链接,则显示链接所指向的文件
-t 显示时按修改时间而不是名字排序
-u 显示时按文件上次存取的时间而不是名字排序
4、改变文件或目录的访问权限命令
chmod [who] [+| - | = ] [mode] 文件名?
Who选项:
- u表示用户,即文件和目录的所有者
-g表示同组用户
-o(other)表示其他用户
-a (all)表示所有用户
喜欢作符号:
+ 添加某个权限 – 取消某个权限
= 赋予给定权限并取消其他所有的权限(如果有的话)
mode 选项:
- r 可读
-w 可写
-x 可执行
chgrp [-R] group filename? 改变目录或文件所属的组
chown [-Rv] 用户或组 文件
1.7备份与压缩命令
1、tar命令 为文件和目录创建档案
语法:tar [主选项+辅助选项] 文件或者目录
u 主选项
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,则选此项
r 把要存档的文件追加到档案文件的末尾
t 列出档案文件的内容,查看已经备份了哪些文件;
u 更新文件
x 从档案文件中释放文件;
u 辅助选项
b 该选项为磁带机设定的,其后跟一位数字,用来说明区块的大小,系统预设值为20
f 使用档案文件或设备,这个选项通常是必选的
k 保存已经存在的文件。例如把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖;
m 在还原文件时,把所有文件的修改时间设定为现在;
M 创建多卷的档案文件,以便在几个磁盘中存放;
v 详细报告tar处理的文件信息
w 每一步都要求确认
z 用gzip来压缩/解压缩文件
2、gzip命令 压缩/解压缩命令
语法:gzip [选项] 压缩(解压缩)的文件名
选项:-c 将输出写到标准输出上,并保留原有文件
-d 将压缩文件解压
-l 显示每个压缩文件的详细信息
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩
-t 测试、检查压缩文件是否完整
-v 对每一个压缩和解压的文件,显示文件名和压缩比
3、unzip 命令
用MS windows下的压缩软件winzip压缩的文件在linux系统下展开
语法:unzip [选项] 压缩文件名.zip
选项: -x 文件列表 解压缩文件,但不包括指定的file文件
-v 查看压缩文件目录,但不解压
-t 测试文件有无损坏 ,但不解压
-d 目录 将压缩文件解到指定目录下
-z 只显示压缩文件的注解
-n 不覆盖已经存在的文件
-o 覆盖已经存在的文件且不要求用户确认
-j 不重建文档的目录结构,把所有文件解压到同一目录下
1.8在LINUX环境下运行DOS命令
linux系统提供了一组称为mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读写文件和目录。
mcd 目录名 改变MSDOS目录
mcopy 源文件 目标文件 在MSDOS和UNIX之间复制文件;
mdel 目录名 删除MSDOS目录
mdir 目录名 显示MSDOS目录
mformat 驱动器号 在低级格式化的软盘上创建MSDOS文件系统
rnlabel 驱动器号 产生MSDOS卷标
mmd 目录名 删除MSDOS目录
mren 源文件 目标文件 重新命名已存在的MSDOS文件
mtype 文件名 显示MSDOS文件的内容
2 设备管理命令
linux采用下面的形式定义一个IDE硬盘:/dev/hd[drive][partition]
SCSI硬盘使用同样的机制表示: /dev/sd[drive][partition]
对于一般的LINUX分区,可以用mkfs将其格式化并生成文件系统,命令如下:
mk2fs –c <partition> <size>
装载文件系统:mount –t ext2 [-o optioms] partition mountpiont
其中,-t为指定装载文件系统的类型;-o指定一些选项,如只读ro,可读可写rw等等;partition定义分区名称;mountpiont定义文件系统被装载的目录名称。
装载CD-ROM文件系统:mount –t iso9660 –r /dev/cdrom /mnt/cdrom
装载软驱文件系统: mount –t msdos –rw /dev/fd0 /dev/mnt/floppy
卸载文件系统 umount /mnt/cdrom
磁带设备的安装要注意以下几点:
1、 首先要选择一个唯一的SCSI ID号,然后再将设备链接到适当的位置
2、 选择驱动程序。
3、 生成设备文件。SCSI磁带设备的主要设备号是9,次要设备号是0。设备文件名通常是/dev/nrst0(不支持回绕的磁带设备)或/dev/nst0(支持回绕的磁带设备)
用 ls /dev/*rst*
检查磁带设备文件是否存在,如果不存在,用
mknod –m 666 /dev/nrst0 c 9 9
mknod –m 666 /dev/rst0 c 9 0 生成
4、 可以对块长度、缓存、磁带密度等参数进行一些设置,例如
mt setblk 20 将块长度指定为20
mt setblk 0 指定块程度没有限制
5、 通过检查系统的启动信息可以确定系统是否识别了新的磁带设备。用dmesg命令,查看是否有以下类似的信息:
aha274x:target 4now synchronous at 4.4Mb/s
Vendor:TANDBERG Model:TDC 3800 Rev: =05:
Type: Sequential-Access ANSI SCSI revision: 02
Detected scsi tape st0 at scsi0, id4, lun0
Scsi : detected 1 SCSI tape 1 SCSI crom 1 SCSI disk total
3 软件包管理命令
3.1软件安装的步骤
在LINUX系统上安装软件的步骤有:
1、 查找所要安装软件的源文件
2、 把源文件解开放到一个目录中,命令如下:
tar zxvf <源文件名>
3、 针对本喜欢作系统配置源文件。可以是编辑make文件或其他文件,也可能是运行该软件自带的自动配置工具,如./configure
4、 make源文件,通常是运行make命令,即执行 make
5、 安装二进制文件和其他支撑文件,运行命令: make install
6、 最后,完成所有其他必须的配置
3.2软件包管理命令
rpm –ivh <软件包>
// 安装指定的软件包,并在安装过程中用#表示安装的进度
rpm –Uvh <软件包>
// 更新一个已经存在的或还没安装好的软件包,并删除所有该软件包的旧版本。
rpm –e
//卸载一个rpm软件包
rpm –qa
// 查看系统中已经安装的软件包
rpm –q <软件包>
// 查看系统中某个软件包的版本号;
rpm –qlp <软件包>
//列出某个软件包中的所有文件
rpm –qf <软件包>
//找出一个文件属于哪个软件包
4 LINUX系统常用命令
4.1 与系统管理有关的命令
Wall (Write All)
对全部已 登录的用户发送信息,用户可以先反要发送的信息写好存入一个文件中,然后输入:# wall < FileName
例:Wall ‘Thank you !’
Write
向某一用户发送信息。
Write xxq
hello

输入Ctrl+C组合即可终止
Shutdown命令
Shutdown [选项] [时间] [警告信息]
-k 并不真正关机,而只是发出警告信息给所有的用户。
-r 关机后立即重新启动。
-h 关机后不重新启动。
-f 快速关机,启动时跳过fsck。
-n快速关机,不经过init程序。
-c 取消一个已经运行的shutdown
例:系统马上关机:Shutdown –h now
Free命令
查看当前系统内存的使用情况,
Free [-b] [-k] [-m]
-b 以字节为单位显示。
-k 以K字节为单位显示。
-m 以M字节为单位显示。
Uptime
显示系统已经运行了多长的时间:现在时间、系统已经运行的时间、目前有多少登录用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。

4.2与用户有关的命令
Passwd命令
设置、更换用户口令。
Passwd [用户名]
Su
使一个普通的用户具有超级用户的权利,离开可用EXIT命令。
4.3其它命令
Echo命令
在显示器上显示一段文字,一般起到一个提示的作用。
echo [-n] 字符串
Cal命令
显示某年某月的日历。
cal [选项] [月[年]]
选项的含义:
-j 显示也给定月中的每一天是一年中的和几天(从1月1日算起)。
-y 显示也整年的日历。
Date命令
date命令的功能是显示和设置系统日期和时间。
4.4磁盘管理
磁盘空间管理
df命令
检查文件系统的磁盘空间占用局部。
Df [选项]
-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
-k 以K字节为单位显示。
-i 显示i节点信息,而不是磁盘块。
- t 显示各指定类型的文件系统的磁盘空间使用情况。
-x 列出不是某一指定类型文件系统的磁盘窨使用情况(与t相反)。
-T 显示文件系统类型。
du命令
du的英文原意为disk usage,含义为显示磁盘空间的使用情况。功能是统计目录(或文件)所占磁盘空间的大小。
du [选项] [Names…]
-s 对每人Names 参数只给也占用的数据块总数。
-a 递归地显示指定目录中各文件用子孙目录中的各文件占用的数据块总数。
-b 以字节为单位列也磁盘窨使用情部(缺省以K字节为单位)
-k 以1024字节为单位列也磁盘空间使用情况。
-c 最后再加上一个总计(系统缺省)
-l 计算所有的文件大小,对硬链接文件,则计算多次。
-x 跳过在不同文件系统上的目录不予统计。

dd命令
把指定的输入文件拷贝到指定的输出文件中,并且在拷贝的过程中可以进行格式转换。语法:
dd [选项]
if =输入文件(或设备名称)。
of =输出文件(或设备名称)。
ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。
skip = blocks 跳过读入缓冲区开头的ibs*blocks块。
obs = bytes 一次写入bytes字节,即写 入缓冲区的字节数。
bs = bytes 同时设置读/写缓冲区的字节数(等于设置obs和obs)。
cbs = bytes 一次转换bytes字节。
count = blocks 只拷贝输入的blocks块。
conv = ASCII 把EBCDIC码转换为ASCII码。
conv = ebcdic 把ASCII码转换为EBCDIC码。
conv = ibm 把ASCII码转换为alternate EBCDIC码。
conv = blick 把变动位转换成固定字符。
conv = ublock 把固定们转换成变动位
conv = ucase 把字母由小写变为大写。
conv = lcase 把字母由大写变为小写。
conv = notrunc 不截短输出文件。
conv = swab 交换每一对输入字节。
conv = noerror 出错时不停止处理。
conv = sync 把每个输入记录的大小都调到ibs的大小(用ibs填充)。
fdformat命令
低级格式化软盘。
format [-n] device
-n 格式化后不做检验。
4.5常用的网络命令
FTP命令
Telnet命令。
Netstat命令
-a 显示所有的scoket,包括正在监听和。
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式同”ifconfig –e”
-n 以网络IP地址代替名称,显示也网络连接情形。
-r 显示核心路由表,格式同”route –e:。
-t 显示TCP协议的连接情况。
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。
nslookup命令。
finger命令,功能是查询用户的信息。
ping命令。
(用户和组的管理可以使用工具:TurboUserCfg或是XturboUserCfg。)
4.6有关进程的命令。
进程和启动
at [-V] [-q] [-f文件名] [-mldbv]时间
at –c 作业 [作业….]
AT命令启动的进程系统只执行一次。
batch [-V] [-q 队列] [-f 文件名] [-mv] [时间]
在系统负载较小时,资源比较空闲时执行。
cron命令
按一定的时间间隔执行命令。
crontab命令
用于安装、删除或列出用于驱支cron后台进程的表格。
进程查看
who命令。
w命令
是一个比who命令更强大的命令
w –[husfV] [user]
-h 不显示标题。
-u 当列出当前进程和CPU时间时忽略用户名。
-s 使用短模式。不显示登录时间JCPU和PCPU时间。
-f 切换显示FROM项,也就是远程主机名项。
-V 显示版本信息。
user 只显示指定用户的情况。
ps命令。
-e 显示所有进程。
-f 全格式
-h 不显示标题。
-l 长格式。
-w 宽输出。
a 显示终端上所有进程,包括其他用户的进程。
r 只显示正在运行的进程。
x 显示没有控制终端的进程。
top 命令
动态显示系统当前的进程和其他状况。
5系统的启动过程。
5.1初始启动
在PC机启动时,BIOS从指定的启动设备中读入“主引导记录”(MBR)。MBR的格式是:

地址偏移量 内容 大小
+00 h 可执行的代码(启动模块) 可能变化
+1BE h 第一分区表项 16字节
+1CE h 第二分区表项 16字节
+1DE h 第三分区表项 16字节
+1EE h 第四分区表项 16字节
+1FE h 可执行的标记(AA55 h) 2字节
启 动模块包含足以装入喜欢作系统的代码,或者是第二步的加载代码的位置。启动模块需要使用BIOS调用来从磁盘装入数据,而这些中断调用,如INT 13h等,限制了最大磁盘柱面号为1023。这也就是说启动模块需要加载的一切内容,如初始内存磁盘、内核、启动的时间信息等,必须存放在1024个柱面 以内。
在MBR中只有四个分区表项,每个表项的格式如下:
地址偏移 内容 大小
+00h 分区状态:00代表非启动分区,80h代表启动分区 1字节
+01h 分区的起始位置 磁头 1字节
+02h 分区的起始位置 柱面和扇区 1字节
+04h 分区的类型 1字节
+05h 分区的结束位置 磁头 1字节
+06h 分区的结束位置 柱面和扇区 1字节
+08h 在主引导区和本分区的第一个扇区间的扇区数目 4字节
+0Ch 分区内的扇区数目 4字节
5.2 Linux的启动过程
1启动的命令行参数
在Linux启动时,它处理所有传递给它的命令行参数。这可以影响Linux的运行方式。命令行参数包括:
mem=xxxM:定Linux可以使用的内存大小。这在用户的计算机系统有超过64MB的内存时才需要。因为从前的主板只对第一个64MB内存进行缓存,使用超过64MB的内存会使整个计算机的性能下降,所有内存均按无缓存的速度运行。
single:使Linux按单用户方式启动,缺省方式是多用户方式。
root=/dev/xxx:指定Linux要安装为根文件系统的设备。
init=<file>:指定作为初始化进程的文件。
initrd=<dev>:指定作为初始内存磁盘的设备。
ro:指定根文件系统为只读。
rw:指定根文件系统为可读可写。
2 Init进程
在内核初始化自身和找到的硬件设备后,在后台启动进程init(/sbin/init),init进程号1运行。
在UNIX世界中有许多启动过程的版本,一些是基于系统V,一些是基于BSD。大多数Linux版本使用系统V的实现方法,在这里描述的就是这样。
init是由文件/etc/inittab内容和功能控制的,随启动模式是单用户或多用户而不同。
单用户模式:init进程忽略/etc/inittab文件,在执行少数几个脚本程序后调用/dev/console shell。这样,用户就可以有了一个shell,而且可以执行一定限度的任务。
多用户模式:init进程把系统带入/etc/inittab文件指定的运行级别。Init通过标准的Linux方法进入一个指定的进行级别。

3.进行级别
Linux与其他UNIX喜欢作系统一样,可以任何时刻处于任何一个运行级别。这些运行级别提供的功能不同,为主要是由于其运行的服务方程序(后台daemon)的不同造成的。Linux共有6种运行级别。
0:关闭计算机或终止计算机运行,这个级别就是系统停止运行。
1:单用户启动级别,系统只有一个用户,就是root,该用户在控制台登录。
2:多用户运行级别,但无网络功能。在这个运行级别,网络功能没有启动,但是系统允许多个用户登录,可以通过虚拟控制台或串行线路。
3:多用户模式,有网络功能。在这个运行级别,所有标准网络服务均被启动。
4:目前没有实现。
5:X11运行级别,在这个运行级别,X服务器软件运行,提供图形界面的登录方式。
6:系统重新启动。
查询当前运行级别:runlevel;

4在启动过程中运行的脚本
在init进程运行时,它负责查看缺省的运行级别,并进入该运行级别。这是通过运行在/etc/rc.d/rcX.d目录下的脚本程序来实现的,其中X代表运行的级别,即一个运行级别对应一个目录。不同的字母开头的文件有不同的作用。其中:
以K开头的脚本程序是系统离开某个运行级别时执行的,作用是停止某种服务。当系统从某个支持级别变为其他级别时,首先要进行原运行级别所对应的所有K程序。
以S开头的脚本程序是系统进入某个运行级别时所执行的,作用是启动某种服务。当系统改变为某个运行级别时,就要运行新运行级别所对应的所有S程序。

5增加启动脚本程序
用户可能有一些特定的硬件设备要初始化,或需要在系统启动时初始化一些其他应用程序,用户可以增加自己的初始化脚本程序来完成这些工作。通常步骤是:
复制一个已经存在的脚本,这样可以得到一个通用的框架格式。
修改这个脚本,以完成自己的需求,要注意使程序可以处理启动和关闭的参数,尽管可能关闭处理什么也不需要干。
把这个肢本拷贝到/etc/rc.d/init.d目录下,命名为”serv”。
按下面的方法在相应的目录下建立运行控制链接:
ln –s ../init.d/serv/etc/rc.d/rc3.d/s99 serv
进行测试。

6 LILO和其他的启动模块
要启动Linux,启动模块是必须的。一般用于Linux的启动模块是LILO,LILO用自己的主引导区代替一般的主引导区。LILO可以通过修改/etc/lilo.conf文件内容来进行配置,对引导区内容的更新通过lilo命令来完成。
下面给也了一个装有DOS,TurboLinux3.4.0和RedHat 5.2系统的计算机的lilo.conf文件。在例子中的数字标号是用户加上去并要在文中详细解释的。
[root@fred/root] # more /etc/lilo.conf
boot=dev/had
map=/boot/map
instll/boot/boot.b
prompt
表示启动盘是/dev/had,这是主IDE硬盘。
timeout=50
表示等待用户输入的时间是50秒。
default=TL3.4
other=dev/hda1
表示如果在上述的时间内没有输入,缺省的启动系统是TL3.4,即TurboLinux 3.4.0
label=dos
table=dev/had
表示如果在LILO提示用户输入启动系统时,用户按了<Tab>键,各个系统将以label的内容显示出来,供用户选择。
image=/mnt/tl3.4/boot/vmlinuz
label=TL3.4
root=/dev/hda3
read-only
TurboLinux的启动文件,/mnt/tl3.4/boot/vmlinuz被确定,根文件系统在/dev/hda3,根文件系统是只读方式的。
image=/mnt/rh5.2/boot/vmlinuz-2.0.36-0.7
label=RH5.2
root=/dev/hda4
read-only
RedHat的启动文件,/mnt/rh5.2/boot/vmlinuz-2.0,36-0.7被确定,根文件系统在/dev/hda4,根文件系统可读写。
6 LINUX引导盘创建
6.1 在MS Windows 9x/2000下创建引导盘
可以在MS Windows 9x/2000下创建引导盘,步骤如下:
假定当前的CD-ROM驱动器是D:先将Red hat cd-rom盘放在驱动器内,在MS-DOS shell窗口中运行以下命令:
d:/dosutils/rawrite
2. rawrite实用程序将会立即显示如下提示信息:
Enter disk image source file name:
Please insert a formmated diskette into drive A: and press the enter key
3.输入 images\boot.img 作为镜像源文件,现在 rawirte 会立即显示如下提示信息:
Enter target diskette drive:
4. 输入适当的驱动器名
5.将格式化的空盘插入到软驱中,按回车键继续
6.rawrite实用程序将把boot.img镜像到磁盘中,喜欢作完毕;
6.2 在LINUX下创建引导盘
步骤:
根据常规装上REDHAT CD-ROM盘,这里假定已经把系统装在/mnt/cdrom目录下。现在应把当前目录更改成/mnt/cdrom/images,以便存放引导镜像文件;
假定软驱是/dev/fd0,使用的是1.44 M软盘,运行以下命令:
dd if=boot.img of=/dev/fd0 bs=1440k
这样便创建了所需的引导盘。还可以创建辅助镜像软盘,只需把上面命令中的if=boot.img该成if=supp.img语句即可。

2006年06月13日

1.准备好windows xp的安装光盘,如果是原厂电脑,如:dell,hp,ibm,sony等的不需要.
 在“start”—
>“settings”—>“control panel”—>“regional language options”,选中
“language”,然后在下面的“install files for east asian languages”上打勾,然后在跳出的窗口按“确
定”,电脑会自动复制所需文件,然后会要求你重启计算机,先不要重启,选中“advanced”,在
“select a language match the language……”这个下拉窗口里选中“chinese(prc)”,然后按
“ok”重启计算机.(如果已经做了这个步骤可以跳过)
          

2.重启计算机后,还是来到“start”—>“settings”—>“control panel”—>
“regional language options”,在“regional options”下的
“select an item to match its perferences…”的下拉菜单中选中“chinese(prc)”,然后单击
“ok”就完成了.
          

3.启动kugoo,一切完成.

2005年11月23日

Installing Oracle 9i R2 (9.2.0.1.0) on Red Hat 9

This
is the installation HOWTO for Oracle 9.2 on RedHat Linux 9. Please
remember that Oracle 9.2 is not certified for RedHat 9 and this
combination should not be endorsed in production environments. For a
full list of Oracle certified environments, check out the Oracle
certification matrix.

 

1. Creating users and groups:

————————-

Become root and execute the following commands

 

 

[roko@miniroko] su -

 

[root@miniroko]# groupadd oinstall

[root@miniroko]# groupadd dba

[root@miniroko]# useradd -g oinstall -G dba oracle

[root@miniroko]# passwd oracle

 

2. Creating directories.

————————–

Oracle recommends OFA – Optimal Flexible Architecture directory structure, but we will install everything under /opt/ora9:

 

 

[root@miniroko]# mkdir -p /opt/ora9/product/9.2

[root@miniroko]# mkdir /var/opt/oracle

[root@miniroko]# chown oracle.dba /var/opt/oracle

[root@miniroko]# chown -R oracle.dba /opt/ora9

 

3. Preinstallation (system configuration):

—————————

 

 

3.1 Install these compatibility libraries:

 

 

compat-gcc-7.3-2.96.118.i386.rpm

compat-libgcj-7.3-2.96.118.i386.rpm

compat-libgcj-devel-7.3-2.96.118.i386.rpm

nss_db-compat-2.2-20.i386.rpm

 

 

I
found them all using Synaptic, a graphical tool for updating your RH
system. To install synaptic, first download Apt binary RPM package for
RH9 from http://apt.freshrpms.net/ and then do (as root):

 

[root@miniroko]# rpm -Uvh apt-0.5.5cnc5-fr2.i386.rpm

[root@miniroko]# apt-get update

[root@miniroko]# apt-get install synaptic

 

3.2 Set kernel params to be correct at startup:

 

Append these lines to /etc/sysctl.conf

You might want to change these values if you have more RAM:

 

 

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.shmall = 2097152

kernel.sem = 250 32000 128 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

 

Append these lines into /etc/security/limits.conf

 

 

oracle soft nofile 65536

oracle hard nofile 65536

oracle soft nproc 16384

oracle hard nproc 16384

 

REBOOT
the system so the kernel changes can take effect, or if rebooting is
not an option, you can change the kernel params at runtime by issuing:

 

 

[root@miniroko]# echo 250 32000 100 128 > /proc/sys/kernel/sem

[root@miniroko]# echo 536870912 > /proc/sys/kernel/shmmax

[root@miniroko]# echo 4096 > /proc/sys/kernel/shmmni

[root@miniroko]# echo 2097152 > /proc/sys/kernel/shmall

[root@miniroko]# echo 65536 > /proc/sys/fs/file-max

[root@miniroko]# echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

 

4. Preinstallation (oracle environment):

—————————-

Login as oracle user:

 

 

su – oracle

 

Put the following lines in ~/.bashrc:

 

#oracle 9i

export ORACLE_BASE=/opt/ora9

export ORACLE_HOME=/opt/ora9/product/9.2

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH

export ORACLE_OWNER=oracle

export ORACLE_SID=ora9i /* this id must be the same as ur db’s SID, or, u get errno: ORA_27101 */

export ORACLE_TERM=vt100

export LD_ASSUME_KERNEL=2.4.1

export THREADS_FLAG=native

export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH

export PATH=/opt/ora9/product/9.2/bin:$PATH

#

# change this NLS settings to suit your country:

# example:

# german_germany.we8iso8859p15, american_america.we8iso8859p2 etc.

#

export NLS_LANG=’croatian_croatia.ee8iso8859p2′

 

 

If
you want other national settings (these are croatian), consult the
supported settings here, and change the NLS_LANG variable accordingly.

 

5. Installation:

————————

 

Login as root and allow user oracle to write to X display:

 

 

su -

xhost +

 

 

Login to oracle user:

 

 

su – oracle

As this user, u "startx" & execute the "runInstaller"!!!!!!!!

 

Start
the installation. Do not switch to your CD-ROM mount directory because
you will not be able to unmount the 1st Cd to insert others when asked.

 

/mnt/cdrom/install/linux/runInstaller

 

During
the installation, Oracle will ask you to insert other disks. Open up a
new console, unmount the current disk with umount /dev/cdrom (as root),
replace the disk. If Redhat9 does not mount it automagically, mount it
yourself with mount /dev/cdrom

Your installation will produce two errors.

 

 

First,
you will see an error dialog informing about problems with
ins_oemagent.mk. Choose ignore on this one, we will fix it in
postinstallation.

 

Second dialog will inform you about an "Error in invoking target install of makefile $ORACLE_HOME/ctx/lib/ins_ctx.mk".

When that happens, open up a new console and login as oracle user. Execute the following commands:

 

[oracle@miniroko oracle]$ cd $ORACLE_HOME/install

[oracle@miniroko install]$ tail make.log

 

You will see a line such as this:

gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/ -L/opt/ora9/product/9.2/lib/

-L/opt/ora9/product/9.2/lib/stubs/  /opt/ora9/product/9.2/ctx/lib/ctxhx.o

-L/opt/ora9/product/9.2/ctx/lib/ -lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut

-lsc_ch -lsc_fi -lctxhx -lc -Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9

-lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9

 

Copy this line, add -ldl at the end and run it in $ORACLE_HOME/bin

[oracle@miniroko]$ cd $ORACLE_HOME/bin

[oracle@miniroko bin]$ gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/

-L/opt/ora9/product/9.2/lib/ -L/opt/ora9/product/9.2/lib/stubs/ 

/opt/ora9/product/9.2/ctx/lib/ctxhx.o -L/opt/ora9/product/9.2/ctx/lib/

-lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut -lsc_ch -lsc_fi -lctxhx -lc

-Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9 -lcore9 -lnls9 -lcore9

-lnls9 -lxml9 -lcore9 -lunls9 -lnls9 -ldl

 

Now hit the ignore button on the dialog and the installation will continue.

At
the end Oracle installation will probably inform you that agents failed
to start. Choose ignore on this one, we will fix it later

 

6. Postinstall

—————————

Open up a console and login as oracle user. Execute these lines:

 

 

[oracle@miniroko oracle]$ cd $ORACLE_HOME/network/lib

[oracle@miniroko lib]$ make -f ins_net_client.mk install

 

Then edit the $ORACLE_HOME/ctx/lib/ins_ctx.mk file so that lines 13-14 change from:

ctxhx: $(CTXHXOBJ)

$(LINK) $(CTXHXOBJ) $(INSO_LINK)

 

to

ctxhx: $(CTXHXOBJ)

$(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)

 

Then do a

[oracle@miniroko lib]$ make -f $ORACLE_HOME/ctx/lib/ins_ctx.mk install

 

Now you should be able to start your agents with

[oracle@miniroko lib]$  /opt/ora9/product/9.2/bin/agentctl start

 

7. Starting the database

——————————

The easiest way is to create a startup/shutdown script as such

#!/bin/bash

#

# (c) denis.klaric@in2.hr

#

# name: /etc/rc.d/init.d/ora9

# description:  starts and stops oracle 9i database, TNS listener

#               http server, and fixes kernel parameters for oracle

 

 

#oracle environment

export ORACLE_HOME=/opt/ora9/product/9.2

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH

export NLS_LANG=’croatian_croatia.ee8iso8859p2′

export ORACLE_SID=tis

 

export DISPLAY=:0

oracle_user=oracle

                                                                                                                                         

# see how we’re called

                                                                                                                                          

case $1 in

  start)

  # fix kernel parameters

  echo 250 32000 100 128 > /proc/sys/kernel/sem

  echo 536870912 > /proc/sys/kernel/shmmax

  echo 4096 > /proc/sys/kernel/shmmni

  echo 2097152 > /proc/sys/kernel/shmall

  echo 65536 > /proc/sys/kernel/fs/file-max

  echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

 

  # start listener, apache and database

  su – root<<EOR

    touch /var/lock/subsys/oracle

EOR

  su – "$oracle_user"<<EOO

    lsnrctl start

    apachectl start

    sqlplus /nolog<<EOS

      connect / as sysdba

      startup

EOS

EOO

 ;;

                                                                                                                                     
    

 stop)

  # stop listener, apache and database

  su – "$oracle_user"<<EOO

    lsnrctl stop

    apachectl stop

    sqlplus /nolog<<EOS

      connect / as sysdba

      shutdown immediate

EOS

EOO

  su – root<<EOR

    rm -f /var/lock/subsys/oracle

EOR

 

  ;;

                                                                                                                                         

  *)

  echo "Usage: /etc/rc.d/init.d/ora9 [start|stop]"

  ;;

                                                                                                                                          

esac

 

Just make sure you change the ORACLE_SID to your SID!!!!!!!!!

You
can copy that script to your /etc/rc.d/init.d directory or link it from
your runlevel startup directory (e.g. /etc/rc.d/rc5.d) to make sure
Oracle is started upon booting the machine, and stopped before shutting
down.

Alternativly you can start and stop it directly with /etc/rc.d/init.d/ora9 start|stop

 

That’s it, good luck

 

Finally, u can use user "oracle" to login console & startx & use following steps:

 

*** 1 ***  dbca(创建,删除数据库的工具)

General perporse db

set dbname & sid

dedicated mode

select unicode chinese char set"ZHS16GBK"(Enable chinese in oracle)

in next window, set the path of all the db file from "{ORACLE_BASE}/oradata/…" to "/oradata/…"

 

*** 2 ***  oemapp consoleoracle数据库管理工具)

其中可以删除数据库,但只是逻辑上删除。因为库表都还在/oradata下,此时还要进入dbca后再删除一道才全部删除该库所有数据。

 

*** 3 ***  sqlplus /nolog

connect / as sysdba

startup

select * from scott.EMP /* 如果你看到scott.EMP表中的信息,则表明数据库工作正常了 */

 

——————————————————————————-

*** PS: Enable chinese in oracle db which created without chinese support***

LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN

LANG=en

GDM_LANG=zh_CN.GB2312:zh_CN

2005年09月03日

本文讲述了如何通过基本的安全措施,使你的Linux系统变得可靠。

 

 

1Bios Security

一定要给Bios设置密码,以防通过在Bios中改变启动顺序,而可以从软盘启动。这样可以阻止别人试图用特殊的启动盘启动你的系统,还可以阻止别人进入Bios改动其中的设置(比如允许通过软盘启动等)。

 

2LILO Security

"/etc/lilo.conf"文件中加入下面三个参数:time-out,restricted,password。这三个参数可以使你的系统在启动lilo时就要求密码验证。

 

第一步:

编辑lilo.conf文件(vi /etc/lilo.comf,假如或改变这三个参数:

boot=/dev/hda 

map=/boot/map 

install=/boot/boot.b 

time-out=00   #把这行该为00

prompt 

Default=linux 

restricted   #加入这行

password=   #加入这行并设置自己的密码

image=/boot/vmlinuz-2.2.14-12 

label=linux 

initrd=/boot/initrd-2.2.14-12.img 

root=/dev/hda6 

read-only 

 

第二步:

因为"/etc/lilo.conf"文件中包含明文密码,所以要把它设置为root权限读取。

[root@kapil /]# chmod 600 /etc/lilo.conf 

 

第三步:

更新系统,以便对"/etc/lilo.conf"文件做的修改起作用。

[Root@kapil /]# /sbin/lilo -v

 

第四步:

使用"chattr"命令使"/etc/lilo.conf"文件变为不可改变。

[root@kapil /]# chattr +i /etc/lilo.conf 

这样可以防止对"/etc/lilo.conf"任何改变(以外或其他原因)

 

3、删除所有的特殊账户

你应该删除所有不用的缺省用户和组账户(比如lp, sync, shutdown, halt, news, uucp, operator, games, gopher等)。

删除用户:

[root@kapil /]# userdel LP 

删除组:

[root@kapil /]# groupdel LP 

 

4、选择正确的密码

在选择正确密码之前还应作以下修改:

修改密码长度:在你安装linux时默认的密码长度是5个字节。但这并不够,要把它设为8。修改最短密码长度需要编辑login.defs文件(vi /etc/login.defs),把下面这行

PASS_MIN_LEN    5 

改为

PASS_MIN_LEN    8

login.defs文件是login程序的配置文件。

 

5、打开密码的shadow支持功能:

你应该打开密码的shadow功能,来对password加密。使用"/usr/sbin/authconfig"工具打开shadow功能。如果你想把已有的密码和组转变为shadow格式,可以分别使用"pwcov,grpconv"命令。

 

6root账户

unix系统中root账户是具有最高特权的。如果系统管理员在离开系统之前忘记注销root账户,系统会自动注销。通过修改账户中"TMOUT"参数,可以实现此功能。TMOUT按秒计算。编辑你的profile文件(vi /etc/profile,"HISTFILESIZE="后面加入下面这行:

TMOUT=3600

3600,表示60*60=3600秒,也就是1小时。这样,如果系统中登陆的用户在一个小时内都没有动作,那么系统会自动注销这个账户。你可以在个别用户的".bashrc"文件中添加该值,以便系统对该用户实行特殊的自动注销时间。

改变这项设置后,必须先注销用户,再用该用户登陆才能激活这个功能。

 

7、取消普通用户的控制台访问权限

你应该取消普通用户的控制台访问权限,比如shutdownreboothalt等命令。

[root@kapil /]# rm -f /etc/security/console.apps/ 

是你要注销的程序名。

 

8、取消并反安装所有不用的服务

取消并反安装所有不用的服务,这样你的担心就会少很多。察看"/etc/inetd.conf"文件,通过注释取消所有你不需要的服务(在该服务项目之前加一个"#")。然后用"sighup"命令升级"inetd.conf"文件。

第一步:

更改"/etc/inetd.conf"权限为600,只允许root来读写该文件。

[Root@kapil /]# chmod 600 /etc/inetd.conf

第二步:

确定"/etc/inetd.conf"文件所有者为root

第三步:

编辑 /etc/inetd.conf文件(vi /etc/inetd.conf),取消下列服务(你不需要的):ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth等等。把不需要的服务关闭可以使系统的危险性降低很多。

第四步:

inetd进程发送一个HUP信号:

[root@kapil /]# killall -HUP inetd 

第五步:

chattr命令把/ec/inetd.conf文件设为不可修改,这样就没人可以修改它:

[root@kapil /]# chattr +i /etc/inetd.conf 

这样可以防止对inetd.conf的任何修改(以外或其他原因)。唯一可以取消这个属性的人只有root。如果要修改inetd.conf文件,首先要是取消不可修改性质:

[root@kapil /]# chattr -i /etc/inetd.conf

别忘了该后再把它的性质改为不可修改的。

 

9TCP_WRAPPERS

使用TCP_WRAPPERS可以使你的系统安全面对外部入侵。最好的策略就是阻止所有的主机(在"/etc/hosts.deny" 文件中加入"ALL: ALL@ALL, PARANOID" ),然后再在"/etc/hosts.allow" 文件中加入所有允许访问的主机列表。

第一步:

编辑hosts.deny文件(vi /etc/hosts.deny),加入下面这行

# Deny access to everyone. 

ALL: ALL@ALL, PARANOID

这表明除非该地址包好在允许访问的主机列表中,否则阻塞所有的服务和地址。

第二步:

编辑hosts.allow文件(vi /etc/hosts.allow),加入允许访问的主机列表,比如:

ftp: 202.54.15.99 foo.com

202.54.15.99和 foo.com是允许访问ftp服务的ip地址和主机名称。

第三步:

tcpdchk程序是tepd wrapper设置检查程序。它用来检查你的tcp  wrapper设置,并报告发现的潜在的和真实的问题。设置完后,运行下面这个命令:

[Root@kapil /]# tcpdchk 

 

10、禁止系统信息暴露

当有人远程登陆时,禁止显示系统欢迎信息。你可以通过修改"/etc/inetd.conf"文件来达到这个目的。

/etc/inetd.conf文件下面这行:

telnet  stream  tcp     nowait root    /usr/sbin/tcpd  in.telnetd

修改为:

telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd -h

在最后加"-h"可以使当有人登陆时只显示一个login:提示,而不显示系统欢迎信息。

 

11、修改"/etc/host.conf"文件

"/etc/host.conf"说明了如何解析地址。编辑"/etc/host.conf"文件(vi /etc/host.conf),加入下面这行:

# Lookup names via DNS first then fall back to /etc/hosts. 

order bind,hosts 

# We have machines with multiple IP addresses. 

multi on 

# Check for IP address spoofing. 

nospoof on 

第一项设置首先通过DNS解析IP地址,然后通过hosts文件解析。第二项设置检测是否"/etc/hosts"文件中的主机是否拥有多个IP地址(比如有多个以太口网卡)。第三项设置说明要注意对本机未经许可的电子欺骗。

 

12、使"/etc/services"文件免疫

使"/etc/services"文件免疫,防止未经许可的删除或添加服务:

[root@kapil /]# chattr +i /etc/services

 

13、不允许从不同的控制台进行root登陆

"/etc/securetty"文件允许你定义root用户可以从那个TTY设备登陆。你可以编辑"/etc/securetty"文件,再不需要登陆的TTY设备前添加"#"标志,来禁止从该TTY设备进行root登陆。

 

14、禁止任何人通过su命令改变为root用户

su(Substitute User替代用户)命令允许你成为系统中其他已存在的用户。如果你不希望任何人通过su命令改变为root用户或对某些用户限制使用su命令,你可以在su配置文件(在"/etc/pam.d/"目录下)的开头添加下面两行:

编辑su文件(vi /etc/pam.d/su),在开头添加下面两行:

auth sufficient /lib/security/pam_rootok.so debug 

auth required /lib/security/Pam_wheel.so group=wheel 

这表明只有"wheel"组的成员可以使用su命令成为root用户。你可以把用户添加到"wheel"组,以使它可以使用su命令成为root用户。

 

15Shell logging

Bash shell"~/.bash_history""~/"表示用户目录)文件中保存了500条使用过的命令,这样可以使你输入使用过的长命令变得容易。每个在系统中拥有账号的用户在他的目录下都有一个".bash_history"文件。bash shell应该保存少量的命令,并且在每次用户注销时都把这些历史命令删除。

第一步:

"/etc/profile"文件中的"HISTFILESIZE""HISTSIZE"行确定所有用户的".bash_history"文件中可以保存的旧命令条数。强烈建议把把"/etc/profile"文件中的"HISTFILESIZE""HISTSIZE"行的值设为一个较小的数,比如30。编辑profile文件(vi /etc/profile),把下面这行改为:

HISTFILESIZE=30 

HISTSIZE=30 

这表示每个用户的".bash_history"文件只可以保存30条旧命令。

第二步:

网管还应该在"/etc/skel/.bash_logout" 文件中添加下面这行"rm -f  $HOME/.bash_history" 。这样,当用户每次注销时,".bash_history"文件都会被删除。

编辑.bash_logout文件(vi /etc/skel/.bash_logout) ,添加下面这行:

rm -f $HOME/.bash_history

 

16、禁止Control-Alt-Delete 键盘关闭命令

"/etc/inittab" 文件中注释掉下面这行(使用#):

ca::ctrlaltdel:/sbin/shutdown -t3 -r now 

改为:

#ca::ctrlaltdel:/sbin/shutdown -t3 -r now 

为了使这项改动起作用,输入下面这个命令:

[root@kapil /]# /sbin/init q

 

17、给"/etc/rc.d/init.d" 下script文件设置权限

给执行或关闭启动时执行的程序的script文件设置权限。

[root@kapil/]# chmod -R 700 /etc/rc.d/init.d/* 

这表示只有root才允许读、写、执行该目录下的script文件。

 

18、隐藏系统信息

在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版本、内核版本、服务器的名称。对于黑客来说这些信息足够它入侵你的系统了。你应该只给它显示一个"login:"提示符。

第一步:

编辑"/etc/rc.d/rc.local" 文件,在下面显示的这些行前加一个"#",把输出信息的命令注释掉。

# This will overwrite /etc/issue at every boot.  So, make any changes you 

# want to make to /etc/issue here or you will lose them when you reboot. 

#echo "" > /etc/issue 

#echo "$R" >> /etc/issue 

#echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue 

# 

#cp -f /etc/issue /etc/issue.net 

#echo >> /etc/issue

第二步:

删除"/etc"目录下的"isue.net""issue"文件:

[root@kapil /]# rm -f /etc/issue 

[root@kapil /]# rm -f /etc/issue.net 

 

19、禁止不使用的SUID/SGID程序

如果一个程序被设置成了SUID root,那么普通用户就可以以root身份来运行这个程序。网管应尽可能的少使用SUID/SGID 程序,禁止所有不必要的SUID/SGID程序。

查找root-owned程序中使用’s’位的程序:

[root@kapil]# find / -type f \( -perm -04000 -o -perm -02000 \) \-exec ls -lg {} \; 

用下面命令禁止选中的带有’s’位的程序:

[root@kapil /]# chmod a-s [program]

 

 

根据上面这些安全指导方针设置后,系统管理员就会拥有一个基本安全的系统。上面这些工作有些是个持续的过程,网管要不断进行这些工作,以保持系统的安全性。 

2005年06月11日

I’m giving away Gmail invites to people who write reduced testcases. It’ll be interesting to see whether he gets any takers…

留下你的E-mai将会给你邀请个Gmail…

2005年06月03日

LINUX下配置BT服务器


#wget http://www.python.org/ftp/python/2.3.4/Python-2.3.4.tgz
#tar zxvf Python-2.3.4.tgz
#cd Python-2.3.4
#./configure –prefix=/usr/local/python-2.3.4
#make &&make install
#mv /usr/bin/python /usr/bin/python-1.5
#ln –s /usr/local/python-2.3.4/bin/python /usr/bin/python

//第一步:安装PYTHON



#wget http://voxel.dl.sourceforge.net/sourceforge/bittorrent/BitTorrent-3.4.2.tar.gz
#tar -vxzf BitTorrent-3.4.2.tar.gz
#cd BitTorrent-3.4.2.tar.gz //安装BT的服务器端,不需要安装
#mkdir /home/log
#touch /home/log/bttrack.log //生成日志文件

#./bttrack.py –port 6969 –dfile dstate >>/home/log/bttrack.log & //时时生成日志文件

#./btmakemetafile.py /home/hardiwang/QQ2003IIIMuzi1.3.zip/ http://192.168.120.155/abc

//在/home/hardiwang/下生成BT文件
//文件在 /home/hardiwang/QQ2003IIIMuzi1.3.zip.torrent


#./btdownloadheadless.py –max_allow_in 20 –max_upload_rate 5000 /home/hardiwang/QQ2003IIIMuzi1.3.zip.torrent –saveas /home/hardiwang/QQ2003IIIMuzi1.3.zip >/dev/null &

//产生第一个种子


启动脚本BT的脚本startbt

#!/bin/bash
case $1 in

start)
/root/BitTorrent-3.4.2/bttrack.py –port 6969 –dfile dstate >>/home/log/bttrack.log &
sleep 1
/root/BitTorrent-3.4.2/btdownloadheadless.py –max_allow_in 20 –max_upload_rate 5000 /home/hardiwang/QQ2003IIIMuzi1.3.zip.torrent -
-saveas /home/hardiwang/QQ2003IIIMuzi1.3.zip >/dev/null &
echo "BT started"
;;

stop)
ps -efw | grep ‘bttrack.py’ | grep -v grep | awk ‘{print $2}’ | xargs kill && killall python || \
echo "BT not stoped,Please kill it by hand"
;;

show)
ps -efw | grep python | grep -v grep
;;

*)
echo "Usage:./btseed.sh start|stop|show"
;;

esac

2005年05月17日

http://www.oracle.com/technology/software/products/oracle9i/htdocs/winsoft.html

http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/winsoft.html

2004年11月18日



为什么要参加Linux认证计划?


▼ 中国加入WTO后,知识产权保护将逐步规范,使得更多企业转向成本较低的Linux操作平台。
▼ Windows XP高昂的价格和升级收费政策使企业和个人用户转向自由开放的Linux操作系统;
▼ 据IDC统计,去年,Linux在服务器市场上的占有率超过27%,其增长率超过Windows操作系统4个百分点,同时中国人才市场也亟需Linux方面的专业人才;


▼ Linux领域最权威的国际认证RHCE证书,是最具含金量的国际IT职业证书之一,它能向潜在的雇主证明您在Linux方面独特的专业技能,获得更多提升和提薪的机会;
▼ RHCE极具挑战力的测试方式,使得确实拥有真正能力和非常聪明的人才能获得该项认证;
▼ 相对与西方和其他IT认证更低廉的花费。


文华学院——中国唯一
获Red Hat及红旗Linux双授权的培训机构


文华学院是全国知名的Linux培训机构,是上海Linux专业委员会的早期理事单位。2001年文华学院在全国首家开展红旗Linux操作系统的培训,迄今为止Linux工程师培训人数居全国第一。由于文华学院在Linux培训方面的出色表现,中科红旗向文华学院颁发“2001年度红旗软件前全国最佳培训中心”称号,并晋升文华学院为“红旗Linux华东教育技术支持中心”。



  2002年,文华学院通过Red Hat严格审核,成为全球最大的Linux发布商美国Red Hat公司唯一在上海、北京同时获得授权培训与考试的中心。经过多年发展,文华学院拥有10余间Linux专业试验机房,近20名Linux高级讲师,这些教师持有RHCE/RCE证书及Red Hat教师资格证书,严格按照Red Hat全球教学标准为客户提供国际质量的Linux教学,可以为客户提供中文、英语双语教学,并曾为Dell、HP、IBM、Intel、Motorola等国际企业提供培训。

2004年11月12日

 有意一起交流Linux者,加我QQ群: