Josephxd的读书笔记汇总

发表于:2007-07-04来源:作者:点击数: 标签:
作者:albert 1.开始使用unix. Unix 的两个最常用的版本是:Berkley Distribution(BSD) ATdate 2.管理文件和目录 创建文件: 1)touch filename 2)vi filename 3)cat > filename 列举文件 ls,ll(长列表=ls -l),ls有很多选项,具体看手册 删除文件 rm filename

  作者:albert
  
  1.开始使用unix.Unix的两个最常用的版本是:Berkley Distribution(BSD) AT&T System V Release 4(SVR4),多数其它UNIX都是基于这两个版本之一,HP-UNIX是由SVR4发展而来。UNIX操作系统的核心被称为内核,内核是处理用户软件和计算机硬件之间所有通信的一个软件。UNIX用户无法直接同内核直接交互的,而是经常同一个叫UNIX shell的程序打交道,shell是一个命令解释器。最常用的shell:Korn SH Bourne SH CSH POSIX SH(HP-UNIX默认用的shell)Root用户的ID是0,所有拥有了这个ID的用户也就有超级用户的权限。Shell提示符:#表示是超级用户,¥表示是普通用户。口令长度必须是6-8位,并且同时包括字符和数字。口令中至长有2个字符是字母而且至少有一个是数字或特殊字符,如:横杠,下划线,或星号,如果使用超过8个字符的口令,第八个以后的被忽略。命令的历使保存在用户主目录的.sh_history文件中,用户可以通过命令来设定历史条目的数量回调上一个的命令用ESC+K,如用用户想回退多步,只需要每回退一步按一下K鍵。History命令可以回调以前使用过的命令:History –3命令别名:是命令的另外一个名字,方便记忆 如:alias dir=lsshell启动文件登录HP-UX时,有些命令会自动执行并设好环境,这些都是通过shell启动文件来完成,有两种:系统启动文件:是对全部系统用户都通用的任务 /etc/profile用户启动文件:叫做.profile并存放在用户的主目录下,在启动过程中,系统启动文件首先被执行,然后用户的启动文件被执行简单的命令:我在哪儿:pwd当前的目期和时间:date我是谁:whoami所有登录的用户:who显示所有的用户并告诉启动的时间,用户正在做什么:w(相当于uptime)系统名是什么:uname –a打印标签:banner josephxd日历:cal用手册页获得帮助:man cal可以在一行执行多个参数,中间有分号隔开:cal;date
  
  
  2.管理文件和目录
  
  创建文件:
  1)touch filename
  2)vi filename
  3)cat > filename
  列举文件
  ls,ll(长列表=ls -l),ls有很多选项,具体看手册
  删除文件
  rm filename,rm命令正常情况下没有输出,在删除时一定要小心,因为被删除的文件是无法恢复的,只有当文件不存的时候,才会报错。
  显示文件内容:cat filename 一次性显示整个文件内容,用户只能看到最后一页
  more filename 一页一页显示
  文件命名规则
  当你创建一个文件时,有一些规则制约着文件的命名:一般文件名可以有256个字符长
  1)可以有字母,数字和特殊字符组成
  2)注意大小写敏感
  3)可执行文件没能特殊的名字,文件权限显示了哪个文件是可执行的或不可执行的。
  隐含文件:这种文件是以点开头的,通常用于存储配置信息,为了显示隐含文件,使用ls –a命令。
  隐含文件在rm删除一个目录中的全部文件是受保护的,这个命令并不能刪除隐含文件。
  创建目录:mkdir dirname,创建一个目录后,用ls或ll命令验证它的存在,注意当用ll长列表命令时,文件的第一个字符由d而不是-,表明它是一个目录而不是常规文件。如果不希望显示长列表而且需要区分文件和目录,你可以使用lsf或ls –f命令,而且屏幕输出只是在目录名结尾附加”/”符号。
  删除目录:目录用rmdir删除,这个命令只删除空目录。如果目录包含其它文件和目录,必须用rm –rf命令。
  小心使用rm –rf,因为它删除整个目录而不会有警告。
  理解目录结构:UNIX文件系统由目录和文件构成,顶级目录叫根目录,/,一个目录的上一级叫父目录,下一级叫子目录,父目录和子目录是相对而言的。以“/”开始的路径名叫绝对路径,以当前目录开始的叫相对路径名
  无论何时创建一个新目录,两条自动创建在新目录里,它们是”.”(参照当前目录)和“..”(参照父目录)
  遍历文件系统:cd(change directory)命令用于移动到目录树中其它目录下,对于绝对路径和相对路径都适用,
  拷贝文件:cp 源 目标,使用cp命令可以同时拷贝2个或多个文件,在这种情况下,目标必须是一个目录名
  移动和重命名文件::1)移动mv myfile newfile 2)删除文件 mv myfile /tmp/myfile 同时移动两个文件的时候同cp
  小心使用mv,因为目标文件名和源文件名相同的时候,会完成这个操作且不警告,所以总以mv –I的格式使用。
  通配符:*通配任何字符,?只配配一个字符,[]这个通配符匹配在方括号中给定范围的字符,在这个范围内只有一个字符被选中。
  判定文件类型:file
  搜索文件内容:grep grep mark /etc/passwd,如果进行大小写敏感的搜索,用grep –I,如果你对字符串在文件中出现的次数多少有兴趣,使用grep –c,可以用grep –v反向选择文件行,在这种情况下,所有不匹配的字符串模板的行会显示出来。
  查找多个单词:用双引号把单词括起来。如:grep “mark apple” /etc/passwd,在多个文件中查找字符串用:
  grep root /etc/passwd /etc/group
  查找文件:find find / -name “test”详细查看手册
  头和尾:默认情况下:head列出文本文件的前十行,tail列出文本文件的后十行,tail –n 3 /etc/passed命令显示文件的后三行,如果想看什么内容被实时进程添加到文件,可以用tail –f命令。
  统计文本中字符,单词,和行数wc /etc/profile (wc –l, wc -w, wc –c)
  键接文件:ln myfile abc
  
  3.环境变量用户登录系统,会启动一个shell并且等待用户输入命令,为了执行命令,shell需要知道连接到系统的终端类型是什么。同样的,当用户使用一个外部命令,shell需要知道应该到哪些目录查找这个命令,在unix术语中,把这类信息叫shell环境。/etc/profile是系统管理员管理的系统启动文件 .profile是用户主目录下的用户启动文件,两者都可以设定环境变量当shell执行一个命令时,UNIX在内存中为这个命令创建一个进程,这个进程叫shell子进程,所有子进程从父进程继承环境变量,但子进程不能修改父进程的环境变量,或者说坏境变理的修改会随着子进程的结束而丢失。设置和显示变量:当你使用POSIX shell时,可以通过在命令行后输入变量名跟“=”和指定变量的值来设置变量,注意等号两边没有空格,变量的值一定要以字符开头,例如var3是合法的而3var不是。Echo 查看一特定shell变量的值,¥符号作为变量名的开始。¥告诉echo命令这个参数是一个变量,而不是简单的字符串。Echo $var3列出所有的变量:¥set包含多个字段的变量:应当使用单引号或双引号name=”joseph jiang”如果我们希望显示一个变量和附加文本,如显示了name变量后再显示数字0,应当用echo ${name}0,而不是$name0修改变量:1)直接赋新值,2)在原有值上加一个值删除变量 unset把命令输出指定给一个变量$name=`whoami $echo $name,也可以在任何替换命令结果的地方使用反引号,echo “my login name is `whoami` 预定义的环境变量:PATH 包括命令搜索路径,这些路径必须用:隔开HOME包含用用户主目录PWD显示当前目录SHELL显示登录shell的绝对路径TERM包含你的终端名或类型PS1包含主命令提示符PS2包含二级命令提示符,如果引用的命令不完整,你将看到的shell提示符就是PS2的值MANPATH包含man命令用于查找手册页的目录列表TZ安装时设的本地时区EDITOR黑认的编辑器导出shell变量:导出一个变量可以使它对于shell创建的所有其它子进程都是可见的$name=”joseph”export name设置命令提示符:$PS1=”MY COMPUTER=>”,一改变PS1的值命令提示符就立刻改变。必须导出PS1娈早使改变对子shell可见。
  
  
  4.输入输出重定向无论什么时候启动一个命令,都会打开三个数据流:标准输入(stdin),标准输出(stdout),标准错误(stderr)unix把所有打开的文件与一个称为文件描述符的数字联系起来,0用于标准输入,1用于标准输出,2用于标准错误。标准输入(一般指用户的键盘)是一个程序读取输入的地方,标准输出是命令或程序显示结果的地方(终端屏幕)错误一般也显示在终端屏幕上,但总是能区分哪是stdout,那是stderr,unix shell可以按用户的需要把数据流定位到一个文件,设备,或其他命令上管道是用于把一个命令的输出发送给另一个命令的输入。标准输入重定向由“>”控制,$cat newfile >file1,注意这是另一种copy文件的方法,还有一种用法是$who > whofile如果重定向的文件名已经存在,那么它将会被輹盖而没有提示。用cat连接多个文件:cat file file1 file2 >file3追加到一个文件:cat file1>>file2,这个命令表示新的file2还包含老file2的内容。重定向到一个设备,因为unix将所有设备视为文件:cat file1 /dev/console,这个文件的内容会显示在屏幕上.当重定向输出时,stderr并没有随着输出自动重向,如果你调用的命令产生了错误,它仍旧会显示在终端屏幕.重定向标准输入,用”<”表示.从键盘以外的地方获取输入,$mail joseph 表示,ll xyz 2>abc同时重定向标准输入,输出和错误$cat unsortthis is number 1this is number 5this is number 3this is number 2可以用sort命令来组织这些行。$sort sort 2>error管道及使用方法 管道符“|“,当两个命令用管道符相连时,第一个命令把它的输出发送到管道而不是终端屏幕用管道做过滤器,who | grep mike$who | cut –f 1 –d “ “$who | cut –f 1 –d “ “ | grep mike 用管道进行数据处理$who |sort $who |moreT接头,用于重定向到一个管道中的数据到多个地方,tee命令用于这个功能2>&1 发送stderr,stdout到同一个文件中
  
  
  5.VI编辑器vi使用模式:命令模式,底行模式,插入/输入模式,当你启动vi的时候,它是命令模式。如果不确定是那种模式,只需按Esc键一两次,将会进入命令模式。$vi filename进入编辑器,是命令模式,按I字符转入插入模式。保存文件是在命令模式下按:w命令。Vi不带任何参数是建立一个新文件。可以在命令模式用:w filename来保存文件。如果已经打开一个文件,可以用:w filename保存成一个新文件.可以同时打开多个文件,$vi file1 file2 file3如果你修改了一个文件却不想保存它,可以使用:q!命令退出vi编辑器,‘!“强制编辑器退出。移动光标:要移动光标,你必须切换到命令行模式l,h,j,k 右左下上空格  右移一个字符G   到文件最后一行Ng 到文件的第n行$    到当前行的结尾w 到下一个词的开头b到前一个词的开头e到词的结尾H 到屏幕的第一行M   到屏幕的中间L    到屏幕的最后一行(    到句子的开头)    到名子的结尾{    到段落的开头}    到段落的结尾set number 可以指示vi显示每一行的行号。句子的开头和结尾是以”.”判断的。段落是以一个空白行指出的。插入和删除文本“i”从当前光标位置插入“I”当前行的开头插入‘a”从当前光标的下一个字符处“A”从当前行的结尾处插入“o”从当前行的下一行插入新行“O”从当前行的上一行插入新行“x”删除当前光标处所在位置上的字符“nx”。。。。删除n个字符“X”从当前光标位置开始删除一个字符。“dd” 册除当前行“dw”从当前光标位置开始删除到词的结尾文本替换:r 仍保留在命令行模式替换当前字符s替换当前模式并进入插入模式R直至按下ESC才替换多个字符撤消和重做可以用”u”命令撤消刚才的修改,也可以用U命令重做对当前行的修改。为了重做被撤消的内容,你可以用“.”命令。剪切,拷贝,粘贴yy 拷贝当前行nyy 从当前行位置开始拷贝n行p  在当前光标位置后粘贴拷贝的文本P  在当前光标位置前粘贴拷贝的文本: m a 移动当前行并剪贴在第a行后面:a, bmc 移动第a至b行并粘贴在第c行后面:a, btc 拷贝第a至b行并粘贴在第c行后面导入一个磁盘文件到编辑器 :r filename从当前文件导出文本:    :3,47 w file3 把第3到47行写至file3中vi编辑器有一个配置文件为.exrc,它存放在每一个用户的主目录下。这个设置是永久的
  
  
  6.正则表达式定位符:定位符是用来指定广西在一行中的位置的字符。^字符是指定的起始位置。它用于在一行文本的起始匹配一个字符串,美元符号$是结尾定位符,用来指定结尾有特殊字符串的一行。^text在一行的开头匹配单词testtest$在一行的结尾匹配单词test^test$匹配只包含一个单词test的行^$匹配一个空白行^\^在一行的开始匹配^\$$在一行的结尾匹配$$grep ^node myfile 找出所有以node开头的行$grep node$ myfile 找出所有以node结尾的行$grep ^$ myfile |wc –l 计算空白行$grep –v ^$ myfile 去掉文件中的空白行规避字符:为了指示shell不要展开一个字符为它的特殊含义,需要规避那个字符,因此在这个字符前面使用一个反斜杠(\),例如,如果你要查找一个$字符,使用grep \$ 查找反斜框,使用grep \\使用*号,匹配零个或多个处理的字符。使用范围[…] $ls [a,b,c]* 列出所有以a,b,c字母开头的文件 ls [^a,b,c]*,列出所有非a,b,c字母开头的文件^A[a-z0-9]匹配所有第一个字符为”A”而第二个字符是一个小写字母或数字的单词使用单词定界符\< 和\>匹配作为完为的单词出玩的字符  $htrp \<[Tt]his\>扩展的正则表达式 egrep
  
  
  7.文件权限
  
  unix中有三类用户:
  1)属主 2)组成员 3)others
  一个用户最多可以属于16个组
  文件权限的类型:可读,可写或可执行
  文件权限的从左到右原则:如果一个文件的属主对一个文件没有执行权限而组有执行权限,这个属主将不能执行这个文件。
  目录权限:如果没有设置目录的读权限,这个目录的文件都不能被列表或访问
  如果没有设置目录的执行权限,目录里的文件只能列出文件名,这意味ls可以工作而ll则不能工作.目录的文件也不能被读取或执行.如果只设定了执行权限而没有没置读和写权限,一个用户可以用cd命令进入目录
  为了赋予权限,我们在在用户和文件之间使用”+”,为了取消一个权限,在用户和文件之间使用“-”,为了确切地指定一个权限而不考虑原来的权限,我们使有“=”号。Chmod命令
  chmod u+x newfile
  chmod o-x newfile
  chmod a=r newfile
  chmod u+x,o-r newfile
  chown来改变一个文件的属主
  改变一个文件的组所有权是chgrp
  多个文件名和通配符也可以用于chown和chgrp命令新属主和组的名字必须分别在/etc/passed和/etc/group文件中表现出来,chown也可以进一步改变属主和组。Chown jim:root file1
  为了改变一个目录树的组所有权或组,可以使用这两个命令带-R选项并用目录名做参数。无论什么时候改廀一个链接文件的所有权,链接指向的文件的所有权也被改变,为了避免这种情况,使用chown或chgrp命令带-h选项
  umask设定用户的缺省权限
  特殊文件权限
  设置用户ID chmod u+s
  设置组ID chmod g+s
  粘连位 chmod u+t 如果对目录设置了粘连位,用户可以把这个目录作为共享文件的公共区域。这个目录下任何已设置了粘连位的文件只能被文件的属主删除。为/tmp目录设置粘连位是非常有用的,这样用户可以安全地放置或刪除他们的临时文件或共享文件.
  Find /usr/bin –perm –u+s –exec ll {} \;
  Find / -perm –u+s,g+w,o+w
  访问控制列表:为用户或组赋予或消除常规unix访问权限声明之外的权限.这个机制也叫目录访问控制(DAC),并且被HFS支持,但不被JFS支持。
  访问控制列表可以用lsacl命令列出
  修改acl用chacl
  chacl “amry.%=rwx” myfile
  如果一个用户是多个组的成员,所有由那个用户创建的新文件属于当前的组,如果这个用户希望新文件属于其它的组,newgrp命令临时地改变当前的组成员关系。
  Id命令用于显示当前的用户和组id
  
  8.文件系统的层次.UNIX的文件和目录是按照一种类似于树型结构的体系来组织的。分为静态目录,和动态目录。静态一般包括系统安装后就不再改变的信息。包括可执行文件,库文件,应用程序等:/sbin /usr /opt,动态文件保存如大多数目志文件/var,同样的,把临时文件放置在/tmp目录下。所有的文件系统都是参考考root来查看的。要记住root目录和其它任何目录与物理磁盘没有任何关系。目录结构只是一个逻辑的组织,与系统中磁盘的数目或这些磁盘如何分区无关。/dev设备目录包含所有的设备文件,设备文件用于表示连接到系统的设备,每个设备文件有一个主号和次号,主号表示一个内置在HP-UX内核中的设备驱动程式,而次号表示设备的硬件地址和某个特殊设备的选项。一个实例表示一个同类型设备的逻辑数。如,在一个系统时可能有多个scsi磁盘,所有这些scsi磁盘使用同样的设备驱动但表示为不同的磁盘实例并且有不同的次号。/dev目录下的所有文件都是特殊文件。/etc/rc.config.d目录中的文件是对系统启动和关闭及其它服务器和守护进程的进行配置和控罎的文件./etc/opt是安装在系统中的应用程序的配置文件。/home是用户主目录,用户可以对主目录作出自由的选择,/home只是一个习惯.系统二进制目录:包含需要引导时间的可执行文件.这个目录也包含在启动和关闭时需要的系统脚本.这个目录也包含子目录./sbin/init.d/stand 这是个保存HP-UX内核的目录,内核的配置文件也在这个目录下.内核文件是/stand/vmunix,而配置文件是/stand/system.另外在这个目录下存放多个内核文件,这样如果一个新的内核引导失败,你可以用任何一个老的内核恢愎。它也包含用于重建新的内核用的/stand/bulic目录.net这是为远程文件系统加点预留的名字/opt应用程式目录 配置文件/etc/opt log放在/var/opt下/tmp临时文件目录对于所有用户都具有创建或删除的权限,这个目录里的内容在重新启动的时候会被清空,任何需要创建临时文件的应用程序应在/var/tmp目录下生成而非在/tmp/usr:这是一个重要的目录,因为多数系统文件都放在这个地方,最重要的文件类型是与用户有关的命令。库。文档和手册页。/usr/bin 这个目录包含用户的命令,应用程式和使用工具/usr/include包含用于程序设计的头文件和包含文件/usr/lib用与编程的库和与机器相关的数据库文件,一个用户在遇到编译或运行错误的情况时,可能需要进入这个目录查看特定的库是否存在。/usr/sbin许多系统管理命令放在这里/usr/share/man HP-UX命令的手册页。可变文件目录包括:日志文件,spool文件,和应用程序创建的临时文件,日志文件:/var/adm用于系统管理程序的日志文件,软件安装或删除文件在/var/adm/sw目录,用于cron的日志放在/var/adm/cron目录,由syslog生成的日志文件在/var/adm/syslog目录里,崩溃信息保存在/var/adm/crash/var/opt应用程序运行时间文件和日志文件放置在这个目录中spool文件 打印服务相关的spool存在/var/spool/lp,电子邮件的spool文件存入/var/mail.其它的存在/var/spool临时var文件。Lost+found目录。这些文件一般由用于检查系统时在运行中和引导时一致性的命令fsck创建。每个文件系统包含一个lost+found目录一些有关文件系统层次的有效命令:which 找出一个执行文件或命令在哪一个目录。Whereis 搜索和定位源文件,二进制文件和手册页。用man –k命令搜索所有与关键字有关的手册页。Man –k mkdir,在使用这个命令之前必须用eatman命令创建/usr/share/lib/whatis文件,
  
  
  9.使用POSIX shell及作业控制
  
  ulimit(资源控制)是一个POSIX shell内部命令。用于限制用户资源。
  Ulimit –a 列出当前的资源控制。
  两次Esc用于命令行补齐。”Esc”+”=”
  历史和命令重输:history –3列出前三个命令,history 451 453列出一个命令范围。为了重执行以前的命令,用带命令号的r  r 451
  在命令行编辑功能中使用vi命令是由EDITOR环境变理控制的。
  替换:
  变量替换,变量名在命令行中和一个$符号一起使用。变量值在执行以前在命令行被替换。
  命令替换  echo $(date) echo `date
  波浪号替换 ~/ 被home变量换换
  设置终端参数:
  stty –a 显示当前的设定   stty erase _设置下划线为退格键,一般用户在启动文件中建立此设置。如果是所有的用户,贴在/etc/profile中设
  作业控制:作业是在内存中运行的进程,作业控制是把作业从前台移到后台,挂起正在运行的作业。
  为在后台启动一个作业,可以把&符号放在命令提示符后。可以用jobs命令列出在后台的作业。+表示是一个当前的作业,减号表是是一个当前作业之后的一个作业,带一个-1开关显示所有作来的PID,作业可以处于运行或停止状态。
  挂起一个前台作业是 CTRL+Z(use stty设)
  恢复后台作业并把后台作业带到前台
  jobs命令得到id, $fg %2 2表是id号。
  后台作业总是处在运行状态。一挂起一个前台作业,它就进入stopped状态。可以用bg命令启动这个作业并保持在后台.
  
  10.shell编程
  
  sh shellname 可以执行一个没有设置执行位的shell程式
  如果当前目录没有包含在PATH谜题中,便不能通过简单地在命令行键入它的名字来执行这个程序,因此需要声明这个文件的完全路径../表示当前目录
  调试程序 #! /usr/bin/sh –x,它在执行前把每一行显示在终端屏幕上。这个方法用于标识那个程序引起了问题。
  变量是一个将数据传送到shell程序的好方法
  命令行参数:保存在命令行中显示参数位置的变量中,那就是为什么这些变量也叫位置参数。存储命令行参数的变量为:$0 (显示命令本身的值)to $9 ,${10}
  $#命令行参数的总数,$*:用空格分隔的命令行参数列表 $?上一个程式的退出代码
  echo命令:这个命令使用规避字符以格式化显示的文本来增强可读性
  \a报警字符
  \b退格
  \c禁止新行
  \f换页
  \n擙入一个新的字符行
  \r回车
  \t插入一个tab字符
  \\\反斜线
  test命令 分支判断是根据一个test的结果做出的 test可以对数字和字符数据也包括文件进行测试,test近回一个真或假的值。真的值是0,假的是1 $test “abc” = “ABC”在隐含查模中,没有test 代之使用方括号,这个命令不在终端打印任何内容。
  测试数字的值,关系式:-eq -ne -lt -gt -le -ge
  测试文件:-d –f –s –r –w- e –l –nt –ot
  逻辑操作符:-0 或–a与 !非
  分支:if -then –fi,用test命令的帮助来检查一个条件,如果是真,那么动作被执行。如果是假,程序的的动作部分不被执行
  case var in
  parttion1)
  commands
  ;;
  parttion2)
  commands
  ;;
  parttion3)
  commands
  ;;
  *)
  commands
  ;;
  esac
  “|”在这里经常被用于或操作,也可以用通通符
  
  11.高级shell编程:
  
  循环用于重复完成一个操作直到一个条件变成真(或假)时结束操作,test or let命令用于每一次循环时进行条件检查。所有shell程序中的循环结构都由一个关键字开始被do-done关键字括起来的命令块被重复执行
  for do done while do done until do done
  变量借助于let来增加或减少。 也可用let进行比较,
  隐含模式的let命令是用两个贺括号代替let
  for do done循环在一个无素列表上执行.这个元素列表被一一指定给一个变量,变量的值在循环体内处理,直到所有的元素被处理且列表中再没有元素.
  For var in list
  Do
  Command block
  Down
  #!/usr/bin/sh
  echo “list of all executalbe files in home directory”
  cd $HOME
  for F in *
  do
  if [-x $f]
  then
  ll $F
  fi
  done
  for day in Sunday Monday Tuesday Wednesday Thursday Friday Saturday
  do
  echo “the day is :$DAY”
  done
  修改文件的访问时间
  for file in *
  do touch $file
  done
  中断一个循环
  break命令立即停止一个循环的执行并把控制权转交给紧随关键字done的命令,continue命令与break不一样,它跳过循环的剩余部分并把控制传给循环的下一次开始点。Exit命令完全终止这个程序,它返回一个在程序中作为可选参数提供的退出代码。如是exit没有任何参数,它返回前一个命令执行的退出代码。当遇到一个严重的错误并且继续执行这个程序将导致错误时,这个命令被使用。
  文本处理
  使用sed流编辑器,在一次性编辑大量文本时很有用,如在一个大文件中搜索一个单词并替换成另一个单词的情况,
  $sed s/echo/ECHO/g testfile 把文件中的echo换成ECHO
  把当前目录中所有文件中的echo换成ECHO.
  #!/usr/bin/sh
  for file in *
  do
  cat $file | sed s/echo/ECHO/g >tempfile
  cp tempfile $file
  done
  rm tempfile
  更详细的请参考man
  使用cut,用于从一行文本中提取数据的特定部分,如果是字断格式,你可以提取特定的字段,如果想列出你的第统中的所有用户,可以在/etc/passed中使用该命令
  $cut –f 1 –d : /etc/passwd or $cat /etc/passwd |cut –f 1 –d : -f1指想提取字段号1,-d:选项显示数据中的字断使用:分隔。
  还用以使用cut命令从一个文件中提取一定数量的字符。如用/etc/passwd的每一行中提取前8个字符:
  cat /etc/passwd | cut –c 1-8
  给系统中的每一个用户发一个mail信息
  #!/usr/bin/sh
  for user in $(cut –f 1 –d : /etc/passed)
  do
  mailx –s “test mail” $user   done
  sleep命令:用于把执行挂起一段特定的时间。把秒数作为参数提供给sleep.
  12.系统管理器SAM给你提供了为用户定义受限制区域的功能,一个用户只能进入给他指定的SAM区域。一个系统管理的基本部分是故障排除。Sam不是为这个目的设计,作为一个系统管理员,对HP-UX的经验和知识深度在故障排除过程中将有助于你SAM有文本模式和图形模式.SAM的日志(samlog)中修配存了所有的记录  /var/sam/log/samlog,来自samlog的原始文件是很难读的,更多情况下,是进入SAM中的option--àview SAM log来看.Sam日志会增长,超过一个限制,SAM会把它拷贝到samog.old,并建立新的samlogSAM带有一个/usr/sam/bin/samlog –viewer用以查看samlog一般情况下,只有root用户可以使用SAM可以配置SAM为一些非root用户和组提供它的功能的一个子集,为了这个目的,你需要使用root登录并用 SAM –r在受限制的SAM生成器模式下启动。在一个复杂且大型的计算环境中给一些系统用户受限制的root访问,这是一个非常有用的工具。
  
  
  13.安装HP-UXHP工作站和服务器的介绍,现在所有的系统都叫作9000系统服务器和工作站。其中L,A,R等是入门级,K,N是中档,V系列是高档型。这些都是从性能,实用性,扩展性考虑的。HP-UX有32位和64位两种,不是的忣的HP服务器和工作站都可以动行64位,在安装前,你需要知道有哪种CPU并且是否支持64位版本操作系统.PDC用于在引导时检查并确认硬件配置,它检查不辨菽麦显示什么硬件设备对系统有效,使用PDC来测定连接到系统的磁盘和CDROM,在检查设备之后,PDC从主引导设备引导一台机器。可以中断自动引导过程来检查在你的系统中什么命令有效或从主引导设备之外的一个设备引导。当你打开一台HP机器,PDC开始执行并检查系统内存和外设,在启动从主引导设备自动引导前,它暂停10秒充许用户中断引导过程。在这里可以看到PDC的命令。Boot boot from specified pathPath display or modify a pathSEArch Search for boot device Configuration menu Displays or sets boot valuesInformation menu displays hardware informationService menudisplays services commandsHelpdisplay help for menu or cmdResetrestart the system命令可以简写在一些系统上,search的输出可能不一样,这个命令显示路径号,设备路径和设备类型,路径号引用一个特定的设备设备路径显示了设备相关的物理路径,表示了哪个设备连接到了系统的插槽。Random Aclearcase/" target="_blank" >ccess Media显示了磁盘和CD rom驱动器,Sequential Access Media显示一般用于磁带驱动器。哪果你的CDROM是P6表示,boot命令如下:BOOT P6,你也可以用设备路径来代替设备号来引导系充,在调用boot命令后,系统问你是否希望和初始化系统加载(LSL)交互,你必须回答NO. 如果在安装过程中要使用LVM方案,可以把多个磁盘放入一个券组,在安装过程中配置了根卷组VG00,而且可以决定有多少个磁盘包括在这个卷组中,建议根卷组中最多包含4个磁盘。/stand文件系统用于HPUX内核而且它强制为HFS类型.缺省时,HP-UX创建一个名为vg00的卷组并在它里面创建八个逻辑卷。可以根据需要调整大小。初始化系统配置:假设从系统标签中选择了Set System Parameters at First Boot,在安装过程的结尾,重新生成了HP-UX内核并重新启动系统,系统在重启动后开始初始化配置,通过set_params命令来执行。系统要求提供系统名,时区,root口令,和IP配置数据.系统名不超过64个字符,仅包含字母,数字,下划线,dash,主机名的第一部分不超过8个字符,以便和uname命令兼容。在安装HP-UX时,可以在系统初始化配置中留下很多没有完成的地方,为了重启这一过程,使用set_params命令。如果只想配置一个参数,用带适参数的set_params命令(hostname,timezone,date_time,root_passwd,ip_address,addl_network)。如果想设置所有的参数,用set_params initial系统安装完成之后,如果有一些硬件需要额外的没有内置在内核中的软件驱动,就需要安装这些驱动,在安装完任何驱动之后需要重新生成内核,
  
  
  14.系统启动和关闭保存在ROM中的引导代码被执行并完成自检和一些初始化任务,接着装入HP-UX内核并把控制权转交给它当加电或重新启动一台机器的时候,它分为两个主要的部分:1,引导ROM启动2,HPUX启动引导顺序分为如下部分:1加电或重启2PDC执行并完成自检,包括内存和CPU检测,PDC也检测连接到系统的外设.3PDC初始化控制台来显示消息,查找用于引导系统的主引导路径,引导路径是用做硬件到引导设备的磁盘的路径4PDC从引导路径装入并执行初始化系统装载器,在启动过程的这个阶段,boot ROM的任务完成.5ISL加载叫做hpux的第二个系统加载器,它保存在磁盘的引导区内6hpux把HPUX内核/stand/vmunx加载到内存中并把控制权转交给内核7内核启动swapper进程然后启动init进程8init读取它的初始化文件/etc/inittab.并初始化大多数的操作系统守护进程和其它进程,它把系统带入一个适当的状态。使之有效。从预设设备引导  有些用户为了冗余和稳定性使用了磁盘镜像,两个磁盘有完全相同的数据,引导设备也可以镜像。为了配置一个预备的引导设备,可以用configure命令。为了手工从预备磁盘设备上引导,使用boot alt命令。稳态存储器:保存如下信息:主引导路径,预备引导路径,控制台,autoboot,autosearch 引导到单用户:1)在V型机器上,在pdc提示符下:boot pri –is在其它机器上,在pdc提示符下:boot pri-------y------hpux –ishpux装载器的用法:ISL>hpux /stand/vmunix.old 从其它的内核引导系统ISL>hpux –is 引导到单用户模式ISL>hpux –is /stand/vmunix.old装载HPUX内核swapper:swapper有一个等于0的进程id,它管理用于换入和换出的内存。/sbin/pre_init_rc这个文件中最重要的是fsck,在任何用户开始使用之彰,它检查并修复根文件系统。Init进程:它总是以进程ID1启动,在启动后,它读取它的配置文件/etc/inittab并在action域中查找initdefalut条目。Init进程的主要工作:从/etc/inittab 文件中读取initdefault参数使用/sbin/ioinitrc来初始化内核数据结构运行/sbin/bcheckrc运行/sbin/rc并把系统带到缺省的运行级运行级:0-6,s,S,总共8个动行级。0表示关机,s是单用户,S也是单用户,惟一的区别是你可以从作为系统控制台的终端登录。1启动一些基本的系统进程并启动文件系统,但还是在单用户模式。这个级别也用于系统管理任务。2多用户级,但不启动NFS3多用户级,启动NFS456改变运行级:init 用who –r看当前的运行级添加在引导时运行的程序到/sbin/init.d目录。这个目录包含所有守护进程和服务的脚本,执行脚本包含四个作为传递给这个脚本的命令行参数的主要部分 star_msg 当启动这个脚本的时候显示在控制台stop_msg 当关闭这个脚本的时睺显示在控制台start 启动这个程序的命令stop 关闭这个程式的命令HP-UX有一个名为/sbin/rcn.d的目录,这里n表示一个运行级,这些目录叫做定序器目录。可以在这些目录中放置一个脚本链本。如果想在运行级3启动脚本,如果想在运行级3启动一个目录,则在/sbin/rc3.d目录中放置一个链接。每一个链接由S或K开头,S开头表示当系统进入这个运行级的时睺执行脚本,K开头表示当系统进入这个运行级的时候关闭脚本。启动号和关才号不必相同,Kill链接应该在比相应start链接低的运行级中脚本配置文件放在/etc/rc.config.d/目录下。它给变量赋值1,表示cron守护进程被启用。赋值0表示禁用。如果对一个配置文件修改想恢复它,可以从/usr/newconfig/etc/rc.config.d目录拷贝原始文件关闭系统: shutdown –r 在关闭后重启 –h在关闭后停止系统 -y,不需要任何交互响应。#shutdown –h –u 0shutdown调用/sbin/rc脚本,它在停止系统之前按顺序使用定序器脚本来关闭所有守护进程。/etc/shutdown.log文件保存了一个关闭或重启系统的日志。关闭和重启命令:reboot命令删除所有的进程而不是平稳地终止它们,会加快关闭过程,但当其他用户在重启时正在系统上工作就可能引起起数据丢失,如果工作在单用户模式,使用reboot是安全的shutdown.allow充许一些系统用户执行shutdown命令。每一行包含一个系统名和用户名
  
  
  15:软年和补丁管理
  
  SD-UX软件发布器,不只是一套命令和工具集,而是定义了如何对软件打包。捆绑,拷贝安装和删除的系统。在一个网络环境中,SD-UX用于建立一个集中的软件服务器,任何网络上的其他系统可以按需要安装软件。
  主要功能:
  安装软件
  删除软件
  列出已安装软件
  确认已安装软件
  拷贝和打包软件
  配置软件
  软件包的结构:在SD-UX中软件被组织成一个部件或对象的层次结构,这些部件是fileset,子产品,产品,包。
  文件集是文件和一些控制脚本的集合。是SD-UX中软件打包层次结构中的基本条目,一个文件集只能属于一个产品但它可以包含在很多的子产品和包中
  子产品,包括多个文件集,最好把逻辑相关的文件集组合到一个子产品中,一个文件集可以是多个子产品的成员
  产品,产品是文件集和子产品的超集,缺省时,SD-UX命令用于处理产品,例如,一个应用程序是一个产品,一个产品可以有多个版本.
  包,包一役由HP-UX打包用于软件的发布,包包含属于不同产品的文件集,一个产品不必在一个包中,因为包可以有不同产品的部分
  软件仓库是文件集.产品和包的存放位置.一个软件仓库可以是用于发布软件的磁盘上的目录,一个CD-ROM或磁带,缺省的软件仓库目录是/var/spool/sw,但可以使用任何一个目录作为软件仓库。使用SD-UX命令,可以从一个软件仓库添加或删除软件部件,在一个服务器上为不同的就用程序创建多个软件仓库是可能的。软件仓库可以在网络中的一台中心服务器上维护
  列出已安装的软件
  swlist列出所有的软件包不所有不是一个软件包的产品
  -l bundle 只列出包
  -l products 只列出产品
  -l fileset 只列出文件集
  -d /var/spool/sw 列出软件仓库中的软件
  -l file x11 列出所有X11产品中的文件
  -d @ hp1:/mydepot 列出网络上其它主机的软件仓库中的软件
  安装新软件:swinstall命令用于软件安装,是图形界面,swintall将自动挂起cdrom
  如果想从一个特定的软件源安装:swinstall –s /dev/rmt/0m,swinstall的所有动作记录在/var/adm/sw/swinstall.log
  SD-UX守护进程和代理,swagentd,如果这个进程没有运行,就不能开始安装过程。此守护进程在级2起动。所以如果你在一个单用户模式,就不能安装软件。但是可以使用如下命令在单用户模式手工地启动该守护进程。
  /sbin/init.d/swagentd start/stop
  已安装产品数据库:IPD(/var/adm/sw/swremove.log),swlist命令查询这个数据库来列出已安装的软件。同样地,当软件被swremove命令删除时,这个数据长级来反映被删除的软件。
  Swremove 删除软件。注意只通过删除软件所在的目录并不能删除该软件。因为软件条目始终保存在IPD.软件删除过程被记录在/var/adm/sw/remove.log文件中。
  查找并删除无用的文件集 :freedisk,命令交互式删除长时间没有使用的软件.
  Swverty命令用于确认安装在系统中或软件仓库中软件的存在性和完整性。当用-d选项时,它操作一个软件仓库。日志放在/var/adm/sw/swverify.log
  管理软件仓库:
  添加包到软件仓库:swcopy –s /dev/rmt/0m @ /var/spool/sw
  从软件包中删除包:swremove –d * @ /var/spool/sw
  列出软件仓库中的包:swlist –d @ /dev/rmt/0m
  HP-UX补丁.补丁用于如下目的:
  给HP-UX操作系统或产品添加新功能
  添加新硬件的支持
  修补操作系统的漏洞
  所有补丁以PH开头,后面两个字符显示了补丁的类型,有一个下划线和一个有四五个数字的补丁号
  命令补丁:CO
  内核补丁:KL
  网络补丁:NE
  子系统补丁:SS
  一般在安装补丁后要重启操作系统
  swlist –l product PH* 列出所有的补丁。
  安装和删除补丁:下载一具补丁后,首先要sh命令unshare它。
  
  后面还有待续。

原文转自:http://www.ltesting.net