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
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
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
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 Access 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系统安装完成之后,如果有一些硬件需要额外的没有内置在内核中的软件驱动,就需要安装这些驱动,在安装完任何驱动之后需要重新生成内核,
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它。
HP-UX常用命令
1、 cd命令的使用
返回上一次的目录(cd -)
2、 Esc键的使用
在命令行中可通过击两次Esc键来匹配当前目录中唯一的文件名,这样可节约击入长文件名的时间
3、 col命令的使用
man cp | col -b >cp.txt
该命令可将cp命令的联机帮助手册输出为名为cp.txt的文本文件
5、which命令的使用(查看某命令的绝对路径)
which 命令名
6、显示当前系统补丁安装情况(show_patches)
7、中文环境的配置
a、 查看系统中安装的语言集(locale -a)
b、 显示当前语言环境变量(echo $LANG)
c、 如不为中文则修改(export LANG=zh_CN.hp15CN)
d、 sty -istrip
8、查看系统信息和运行情况
a、 glance
b、 top
c、 performance view
d、 /opt/ignite/bin/print_manifest
/var/opt/ignite/local/manifest/manifest
e、 /var/adm/syslog/syslog(系统运行日志)
f、 /var/adm/shutdownlog
g、 /var/adm/crash/
h、 /var/opt/sna/sna.err
i、 /var/adm/nettl.LOG000
/usr/sbin/netfmt /var/adm/nettl.LOG000 >net.log
j、/usr/contrib./bin/info_col.11
k、/var/adm/btmp(历史登录信息,可用last命令查看)
l、/var/adm/wtmp(比btmp更详细的信息)
m、/etc/rc.log(机器启动时的信息)
n、/var/adm/sw/(有关软件包安装、删除的信息)
9、查看系统当前init级别(who -r)
10、显示系统不成功登录的历史纪录(lastb -R)
11、ftp问题(如无法用某一用户进行ftp)
a、 将/etc/passwd中该用户的sh路径改为/usr/bin/ksh
b、 在/etc/shells文件中将ksh的路径加入
12、在HP11i环境下两台主机rlogin、rcp和ftp速率小于10mbps
a、 安装补丁(PHKL_25233、25389,PHNE_26728、27063)
13、在HP11i环境下主机与路由器之间无法用大包进行ping命令
b、 ndd -c
15、swapinfo命令的使用
swapinfo -mt
16、what命令的使用(假如要查看某一core文件的诱因)
what core
17、控制某一特定地址通过telnet、ftp和login协议访问主机的方法
18、tsm的使用
在tsm状态下可通过ctrl+w来切换屏幕。
19、finger命令的使用
finger -R(查看当前登录到主机的客户机信息)
20、parstaus命令的使用
parstatus -p
扩充文件系统的方法
一、 vg00(例如将/home扩充至2G,逻辑卷名为/dev/vg00/lvol8)
1、 shutdown -y 0 进入单用户模式
2、 umount /home
3、 lvextend -L 2000 /dev/vg00/lvol8
4、 extendfs /dev/vg00/rlvol8
5、 mount /dev/vg00/lvol8 /home
6、 reboot
二、 vg不在MC的情况
除不要启停机器外同上
三、 vg在MC中配置的情况
1、 有应用运行在该逻辑卷上,且不便停应用的情况(例如将/data扩充至6G,逻辑卷名为/dev/vgdata/lvdata,MC环境为node1和node2,应用包名为pkg,缺省运行在node2上)
a、 cmhaltpkg -v pkg
b、 vgchange -c n /dev/vgdata
c、 vgchange -a y /dev/vgdata
d、 lvextend -L 6000 /dev/vgdata/lvdata(扩大到6G)
e、 extendfs /dev/vgdata/rlvdata(如为裸设备,e-n可不做。)
f、 vgexport -p -v -s -m /tmp/vgmap/vgdata.map /dev/vgdata
g、 rcp /tmp/vgmap/vgdata.map node1: /tmp/vgmap/vgdata.map
h、 rlogin node1
i、 ll /dev/vgdata(查看node1上vgdata的设备编号,假设为0x0c0000)
j、 vgexport /dev/vgdata
k、 mkdir /dev/vgdata
l、 mknod /dev/vgdata/group c 64 0x0c0000
m、 vgimport -s -v -m /tmp/vgmap/vgdata.map /dev/vgdata
n、 exit
o、 vgchange -a n /dev/vgdata
p、 vgchange -c y /dev/vgdata
q、 cmmodpkg -e pkg
2、 无应用运行在该逻辑卷上,或可暂停应用的情况(例如将/data扩充至6G,逻辑卷名为/dev/vgdata/lvdata,MC环境为node1和node2,应用包名为pkg,缺省运行在node2上)
1、将前一种情况中的a-c改为(将涉及到该逻辑卷的应用停止,该工作应选择合适时机执行):
a、将涉及到该逻辑卷的应用停止。
b、umount /data
2、执行前一种情况中的d-n
3、 将前一种情况中的o-q改为
a、 mount /data
b、 激活涉及到该逻辑卷的应用
注:如未在VG中新增PV则可将上述步骤中的f-n略去。
一。
Unix安装后?建文件系?前的??
*注:因为我的机器只有一个磁盘,所以,此步中除创建逻辑卷外大部分操作可以省略。
①建物理卷。
找出与磁盘相关的设备文件:ioscan(命令):ioscan -funC disk。
找到disk对应的设备文件名:c1t15d0
因只有一个磁盘,所以只能创建一个物理卷。
在创建前,通过mediainit对磁盘格式化合校验完整性:
#mediainit /dev/rdsk/c1t15d0
l创建物理卷:
#pvcreate /dev/rdsk/c1t15d0
注:如果此时该磁盘以输入某卷组的一部分,而且确信要创建物理卷。在命令行加“-f”来强制执行。
②创建卷组。(仅供理解用,本系统不需要)
1.用卷组名在/dev下创建一目录。
如果卷组名为vg01,则目录为:/dev/vg01。
#mkdir /dev/vg01.
在此目录下为该卷组创建一组设备文件。
#mknod /dev/vg01/group c 64 0x010000
创建卷组(以物理卷为参数):
#vgcreate /dev/vg01 /dev/dsk/c1t15d0.
建完后,可以用命令:vgdisplay来检查设置是否正确。
③创建逻辑卷。
创建逻辑卷时,相应的字符设备和块设备会在卷组目录下生成。
现在,我们在默认卷组vg00中创建以下逻辑卷:
一个256MB,名为lvoltuxlog的逻辑卷。
#lvcreate -L 256 -n lvoltuxlog。
参数:-L 以MB为单位表示逻辑卷的大小。
-n 指定逻辑卷名称,缺省为:lvol1,lvol2…..。
二、?建文件系?。
注:系统安装完成后,会自动创建一些文件系统和目录。所以,对一般权限的用户来讲,可以在/home目录下安装软件。但是,如果软件过多,会造成比较混乱和不利于管理。最合适的做法,高权限的用户自己可以建立一些文件系统,这些文件系统在单独的目录下。这样对将来(逻辑卷)的扩展和维护非常有利。
(1)文件系统介绍:
1。高性能文件系统(HFS),现在应用的不多了,只在存储HP-UX内核时使用。
2。日志文件系统(JFS),现在应用最多。
3。网络文件系统(NFS)。
4。 CD-ROM文件系统(CDFS)用于CD-ROM上存储文件。
(2)创建新的文件系统:
文件系统必须建在逻辑卷上。
1.newfs创建文件系统:
我们在 /dev/vg00/lvoldb01上创建JFS文件系统,如下命令:
#newfs -F vxfs /dev/vg00/ lvoltuxlog。
2.挂载文件系统。
mount实现挂载:
把/dev/vg00/ lvoltuxlog挂载到/tuxedo/LOG目录上。(事先创建此目录,具体见下面的*注解1)
#mount -F vxfs /dev/vg00/ lvoltuxlog /tuxedo/LOG。
现在可用bdf显示所有挂起的卷。
*注解1:在根目录下建立目录/tuxedo/LOG:#mkdir tuxedo/LOG。 (3)扩展卷组:(如果将来磁盘空间不够,可以对卷组扩展)
添加一块磁盘,用pvcreate创建一物理卷,然后,将其用vgextend加入卷组中。
如:把磁盘c0t3d0加入卷组vg00中:
#pvcreate /dev/rdsk/c0t3d0
#vgextend vg00 /dev/dsk/c0t3d0
用#vgdisplay -v vg00 看是否扩展成功。
(4)扩展逻辑卷。
扩展了卷组以后,可以通过lvextend命令扩展逻辑卷尺寸。
如把/dev/vg00/ lvoltuxlog扩展到800M。(以前为256M)。
#lvextend -L 800 /dev/vg00/ lvoltuxlog
要在某特定磁盘上扩展逻辑卷,可把磁盘设备文件作为参数添加到lvextend命令的后面。
#lvextend -L 800 /dev/vg00/ lvoltuxlog /dev/dsk/c0t3d0
(5)扩展文件系统。
扩展了逻辑空间不能自动扩展文件系统空间。在/dev/vg00/ lvoltuxlog下扩展JFS文件系统。
1.先卸载#umount /tuxedo/LOG。
2.#Extendsf -F vxfs /dev/vg00/ lvoltuxlog。
3.挂载#mount -F vxfs /dev/vg00/ lvoltuxlog /tuxedo/LOG。
完成上述操作后,可通过bdf命令查看是否分配成功。