UNIX高级操作命令.docx

上传人:b****5 文档编号:6658578 上传时间:2023-01-08 格式:DOCX 页数:42 大小:117.61KB
下载 相关 举报
UNIX高级操作命令.docx_第1页
第1页 / 共42页
UNIX高级操作命令.docx_第2页
第2页 / 共42页
UNIX高级操作命令.docx_第3页
第3页 / 共42页
UNIX高级操作命令.docx_第4页
第4页 / 共42页
UNIX高级操作命令.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

UNIX高级操作命令.docx

《UNIX高级操作命令.docx》由会员分享,可在线阅读,更多相关《UNIX高级操作命令.docx(42页珍藏版)》请在冰豆网上搜索。

UNIX高级操作命令.docx

UNIX高级操作命令

课程IK000202

UNIX高级操作命令

ISSUE1.0

目录

课程说明1

课程介绍1

课程目标1

相关资料1

第1章shell的基础知识2

1.1什么是shell2

1.2别名化3

1.3shell变量4

1.3.1shell变量的存储机制4

1.3.2变量替换4

1.3.3命令替换6

1.4用户环境6

1.5两个重要的环境变量7

1.6登录时发生的事情8

1.7shell启动文件9

1.8监控进程9

第2章UNIX通用命令11

2.1用户管理11

2.1.1增加新用户11

2.1.2删除用户12

2.1.3增加新用户组12

2.1.4删除用户组12

2.2进程管理13

2.2.1ps命令13

2.2.2后台进程13

2.2.3kill命令14

2.3文件系统管理15

2.3.1mount15

2.3.2umount15

2.3.3加载配置文件16

2.3.4fsck16

2.4系统性能监控17

2.5使用网络服务19

2.5.1rlogin命令19

2.5.2rcp命令19

2.5.3主机间的信任关系20

第3章shell编程简介22

第4章HP-UX系统管理27

4.1HP-UX系统管理工具SAM27

4.1.1启动SAM27

4.1.2在X_Windows环境下运行SAM27

4.1.3在字符终端运行SAM28

4.1.4运行SAM进行远程系统管理28

4.2HP系统的运行级别28

4.3用逻辑磁盘管理器(LVM)管理磁盘28

4.3.1什么是逻辑卷28

4.3.2逻辑磁盘管理器简介29

4.3.3逻辑磁盘管理的基本规则30

4.3.4逻辑磁盘管理器的工作机制30

4.3.5逻辑磁盘管理的规划31

4.3.6与逻辑磁盘管理相关的命名规则31

4.3.7使用SAM提供的逻辑磁盘管理工具32

4.3.8使用命令行逻辑磁盘管理工具33

4.3.9磁盘的镜像34

4.4HP双机软件36

第5章Solaris系统管理40

5.1Solaris运行级别管理40

5.1.1SunSolaris运行级别40

5.1.2改变系统运行级别命令40

5.2OpenBoot(Prom)常用命令41

5.3应用软件常用安装/删除命令(add/deletesoftware)42

5.3.1管理软件包42

5.3.2管理补丁43

5.4硬盘分区及格式化44

课程说明

课程介绍

本课程为UNIX的高级操作命令,它是前续课程《IK000201UNIX基本命令》的补充。

由于很多系统级的命令都是各UNIX操作系统专用命令,所以我们就主要使用的HP-UX和Solaris分别作了介绍,但我们不对因其版本变化而导致命令变化做出及时的通知,也不对由于操作没有在配套的操作系统上进行而导致的微小或重大损失负任何责任。

本课程包括的主要内容如下:

shell基础知识、UNIX的通用命令、shell编程简介、HP-UX系统管理和Solaris系统管理。

课程目标

完成本课程学习,学员能够:

●掌握shell的基础知识

●了解shell的编程基础知识

●掌握通用UNIX高级命令

●掌握HP-UX系统管理命令

●掌握Solaris系统管理命令

相关资料

●HP-UX用户手册

●Solaris用户手册

第1章shell的基础知识

1.1什么是shell

UNIXshell(UNIX外壳)是一个UNIX的特殊程序。

Shell可以看成是一个命令解释器,在命令提示符下输入命令,命令发出后会被执行。

使用者通过shell与计算机通信。

shell接受用户在键盘上敲入的内容,并把这些内容翻译成内核可以理解的形式,然后系统执行这个命令。

本章内容主要介绍POSIXshell的交互性特点。

POSIXshell不仅仅执行用户的命令,还通过与用户交互,完成其他功能。

但在华为公司的智能网产品中Cshell也得到广泛使用,所以下面的介绍中,如果遇到POSIXshell与Cshell不同的地方,会单独提出。

当你登录到UNIX系统时,shell会先为你的终端会话过程定义一些特定的特征,然后显示你的提示符。

这个提示符在POSIX、Bourne和Kshell中被默认为是一个$符号。

Cshell的默认提示符是一个百分比符号(%)。

目前UNIX系统有四种比较通用的shell可供选择:

●Bourneshell(/usr/old/bin/sh)AT&TUNIX系统最初提供的shell,由贝尔实验室开发而成。

它提供了UNIX的命令解释器和编程用的接口,该接口可用来开发shell程序,常常被称为脚本(script)。

这些可编程的交互式接口可以实现变量定义和替换、变量和文件检测、分支和循环功能。

●Cshell(/usr/bin/csh)基于BSD的UNIX系统提供的shell,由加利福尼亚大学伯克利分校的BillJoy开发而成。

由于它具有一些交互性的特征,如可以从命令栈恢复和编辑曾经键入的命令以及别名机制(允许使用个性化的名字取代系统当前的命令),人们认为它比Bourneshell更先进了一步。

●Kornshell(/usr/bin/ksh)这是贝尔实验室较新的开发成果,由DavidKorn开发而成。

它支持Bourneshell简单的编程接口,因此可以认为是Bourneshell的增强版,但它同时具有Cshell方便、可交互性的特征。

这个shell的代码已被优化以提供更快、更高效率的shell。

●POSIXshell(/usr/bin/sh)遵从POSIX,包括编程语言和命令解释器。

这个shell和Kornshell有很多方面相似。

它提供历史命令机制,支持作业管理,还具有其他各种有用的特点。

各种shell的特征比较如表1-1所示:

表1-1各种shell的特征比较

特征

描述

Bourne

Korn

C

POSIX

历史命令

以前使用过的命令可以存在缓存中作修改或重新调用

行编辑

可以用文本编辑器修改当前或以往的命令

文件名补齐

在命令行中自动补齐文件名

别名命令

可以用来重命名命令、自动包括命令选项和精简长命令行

限制版shell

着眼于安全方面的特性,其环境的功能受到限制

作业控制

跟踪和访问在后台执行进程的工具

1.2别名化

别名是命令的一个新名字。

使用别名可以缩短长命令行,创建新的命令,用别名命令的功能替换原标准命令的功能从而使标准命令执行起来跟以前不同。

别名可以是一个字母或一个简短的单词。

[语法]:

alias[name[=string]]

注意:

Cshell中,其格式为:

alias[name[string]],即不使用“=”,而用空格取代。

[例子]:

$aliasdir=ls照顾习惯使用DOS的使用者

其中name是命令的别名,string是被指定别名的原名。

如果string有空格,需用双引号将其括起来。

(Cshell可以不需要用引号)

键入别名命令和键入其他命令看上去是一样的。

用户不知道其所执行的命令是UNIX系统原来的命令还是指向UNIX命令的别名命令。

不带参数的alias会显示所有当前定义的别名。

要列出某特定的别名的值,用aliasname。

在华为智能网的应用中大量用到了别名化特性。

从而使得使用更加方便。

例如在用户scu的.cshrc文件中有如下别名定义:

aliasclsclear

aliasdirls-F

aliaslsals-la

aliaslsfls-F

aliasllls-l

aliashhistory

aliasin"cd${TELLIN_DIR}"

aliaslog"cd${TELLIN_DIR}/log"

aliassms"cd${TELLIN_DIR}/sms"

1.3shell变量

1.3.1shell变量的存储机制

在shell中有两块内存存储shell变量:

本地数据区和用户环境区。

当定义个一个新的变量时,将从本地数据区分配内存存储该变量。

在这个区域的变量归当前shell所有,常称为本地变量。

任何后来启动的子进程无法访问这些本地变量。

但被移至用户环境中的变量可以被子进程访问。

为了使其他进程能够访问一个变量,这个变量必须存在于用户环境中。

定义个变量后,该变量存放在本地数据区,必须将它export到用户环境区。

1.3.2变量替换

每个被定义的变量有一个值与其对应。

当变量名前面紧接一个美元符($)时,shell会用这个变量的值替换这个参数。

这个过程称为变量替换。

它是shell运行命令行之前执行的任务之一。

Shell将命令行中所有需要替换的变量最替换之后才会执行该命令。

因此,变量也可以代表命令、命令的参数或者整行命令行。

例:

$echo$PATH

/usr/bin:

/usr/contrib/bin:

/usr/local/bin

$PATH=$PATH:

$HOME:

.

$echo$PATH

/usr/bin:

/usr/contrib/bin:

/usr/local/bin:

/home/usr3:

.

$echo$HOME

/home/usr3

用绝对路径名定义一个变量的值,通过使用该变量,可以在文件系统的任何位置访问目标或目录。

$dir_name=tree/car.models/ford

$echo$dir_name

tree/car.models/ford

$ls–F$dir_name

sedan/sports/

$my_ls=”ls–aFC”使用引号,让shell忽略

$$my_ls$dir_name

./../sedan/sports/

另外,注意花括号的使用,它可以用来界定变量名与其周围的文本。

$file=this

$file1=that

$echo$fileand$file1

sh:

fileand:

parameternotset

$echo${file}and$file1

thisandthat

还有一种替换叫波浪号替换。

如果一个词用波浪号(~)开头,这个词会扩展这个波浪号。

注意只能扩展位于单词开头的波浪号,也就是说,/~home/user3不能扩展其中的波浪号。

波浪号扩展按照以下规则进行:

如果是单独的一个波浪号或者在/之前的波浪号,用HOME变量的路径名取代这个波浪号。

如果波浪号后面紧接着+,用PWD变量的值取代这个波浪号。

如果波浪号后面紧接着—,用OLDPWD变量的值取代这个波浪号。

如果波浪号后面紧接着几个字符,然后接着一个/,shell会核对这几个字符是否与某系统用户名相同,如果匹配,那么用户的家目录取代~符号。

$echo$HOME

/home/user3

$echo~

/home/user3

$echo~tellin/config

/home/telling/config

1.3.3命令替换

命令替换就是同一个命令行中用一个命令的输出结果替换该命令。

命令替换的标准语法是$(command),这也是POSIX推荐的语法,但几乎只能被POSIXshell辨认。

命令替换的另一种形式是用单引号将命令扩起来:

`command`,这种形式在各种shell中更为通用。

$echodate

date

$echo`date`

ThuDec1913:

47:

27CST2002

1.4用户环境

环境描述了会话过程的许多内容,其包括以下信息:

●主目录的路径名

●在哪里存放email

●工作的时区

●登录的身份

●shell从哪里搜索命令

●终端类型和大小

●应用程序所依赖的其他东西。

例如,命令vi和more需要知道使用的终端类型,转换它们采样可以正确地格式化输出结果。

用户环境可以比喻为办公室环境。

在办公室里,像照明、噪声和温度等对于所有的工作人员都是一样的。

办公室中只有你才拥有的因素构成了你的特定环境。

这些因素包括:

你在做什么工作、你的办公桌的布置、你和办公室里其他人的关系等等。

正如你的工作环境对于你是唯一的一样,你的用户环境也是唯一的。

许多应用程序要求在某些方面设置环境,这可以通过修改.profile文件来实现。

在登录进系统时,可以运行命令env察看环境。

它会显示设置在环境中的每一个因素。

在env命令运行结果的列表中,“=”左边是已经设置的不同环境变量的名字,“=”右边是相关参数的值。

每个环境变量的设置都是有其理由。

以下是一些常见的环境变量及其含义:

●TERM,COLUMNSHELINES描述所使用的终端

●HOME主目录的路径名

●PATH搜索命令地点的列表

●LOGNAME登录用的用户名

●DISPLAY专用的XWindow变量

这些变量中有一些由系统来设定,其他的在/etc/profile或.profile中设定。

1.5两个重要的环境变量

●PATH

PATH变量代表的是shell搜索命令的一系列目录。

这样只需键入一个命令名,不用输入该命令的完全路径名(如键入vi,不用键入/usr/bin/vi)。

下面是一个默认的PATH变量的例子:

PATH=/usr/bin:

/usr/contrib/bin:

/usr/local/bin

这个例子表明,键入一个命令,shell将首先在/usr/bin搜索该命令,接着是/usr/contrib/bin,以此类推,直到这些目录找到或者都找不到该命令。

如果键入的命令在任何一个PATH目录都找不到,在屏幕上会显示一个错误信息:

command:

notfound。

我们有时候明明能看到某个命令就在当前目录下,但执行它时就是报没有找到的错误,这也是因为PATH变量设置的原因。

您可以./command或在PATH变量设置中加入“./”(表示当前目录)来解决这个问题。

所以正确而完备地设置PATH变量能极大提高命令行下的工作效率。

●TERM

TERM变量是一个描述使用终端类型的环境变量。

为了使许多命令能正确执行,这些命令需要知道使用的终端类型。

如ls命令需要知道屏幕上有多少列,more需要知道屏幕上有多少行,vi命令需要同时知道屏幕的行和列的数目,以及其他更多关于终端类型的信息,这样它才能正常工作。

系统管理员已经设置好了你的系统,UNIX系统不会向你提问你的终端类型。

在这种情况下,应该用env命令察看TERM变量值。

当使用more或vi时,终端表现很异常,查一下TERM变量的值。

如果它已经被正确设置,执行命令test。

这个命令将按TERM变量的值设置终端的特征。

注意:

我们使用通常的telnet软件登录unix系统时,绝大多数的场合需要把TERM设置为vt100的类型。

当使用专用的终端时,例如hp的绿屏,需要重新设置TERM变量。

例如TERM=hp。

1.6登录时发生的事情

当在login:

提示符下输入您的用户名和密码后,系统检查/etc/passwd文件,核对通过后,系统会将你放在您的主目录,为您启动一个shell。

当shell被启动时,真正发生了什么事情呢?

1.getty

显示文件/etc/issue的内容

发出登录提示符

运行登录程序

2.login

核对用户名和密码

将用户置于HOME目录

运行用户的shell

3.shell

运行/etc/profile[POSIX,Bourne和Kornshell或者/etc/csh.login(Cshell)]

运行用户主目录中的.profile或.login

执行用户主目录中的.kshrc或.cshrc文件

发出shell提示符

以POSIXshell为例,一旦shell开始运行,它会从/etc/profile这个系统命令文件读出命令。

任何人可以在任何时候登录和启动一个shell,系统都会读取该文件。

在主目录还有一个.profile文件。

读取/etc/profile后,shell会读取.profile文件。

这两个文件用来设置一个用户的环境。

/etc/profile搭建起系统每个用户的基本环境,.profile进一步细化环境使其使适应用户的要求。

既然每个人都使用/etc/profile,那么系统管理员要承担起维护这个文件的责任。

但为了搭建用户环境,维护.profile是您的责任。

完成这两件事情后,shell发出第一个shell提示符。

注意:

如果用CDE登录,CDE通常不使用/etc/profile、$HOME/.profile和$HOME/.login这几个登录脚本。

但可以强迫执行$HOME/.profile(sh或者ksh用户)或$HOME/.login(csh用户),方法是在.dtprofile中设置下面这个环境变量:

DTSOURCEPROFILE=true

如果不设置这个变量为ture,用CDE登录只执行.dtprofile。

.dtprofile包含已经被注释掉的参数配置,这些参数用来设定CDE环境。

1.7shell启动文件

●.profile

任何一个用户如果想定制系统管理员提供给他的默认环境,他必须创建或者修改文件.profile。

这个文件通常用来在登录过程中定义或者设置环境变量、建立用户的终端、执行程序。

●/etc/profile或/etc/csh.login

/etc/profile或/etc/csh.login是一个影响到整个系统的启动文件,由所有使用这几个shell的用户执行。

系统管理员也许要配置这个文件以保证所有用户的应用程序能在一个一致的环境中执行。

普通用户没有这个文件的写权限,因此不能修改这个文件的内容。

●.cshrc和.login

当登录进以Cshell为登录外壳的系统时,这个shell在起始目录查找名为.login的文件。

如果找到,出现第一个shell提示符之前将执行这个文件中的命令。

如果找到.cshrc文件,出现第一个shell提示符之前同样将先执行这个文件中的命令。

如果这两个文件都有,将先执行.cshrc,再执行.login。

1.8监控进程

在系统上启动的每个进程都被分配一个唯一的标识号,这个标识号叫进程号(PID)。

ps命令显示当前运行(或者处于睡眠状态)进程的有关信息,包括每个进程的PID及其父进程的PPID。

通过PID和PPID可以跟踪到在系统中运行的任何进程的痕迹。

ps命令还可以报告谁是进程的所有者、每个进程的运行终端和其他有用的信息。

执行ps命令通常可以不带参数,执行结果是仅仅在与本终端会话过程中运行的进程的简短信息。

$ps

PIDTTYTIMECOMMAND

19326pts/tc0:

00telnetd

24849pts/tc0:

00ps

19327pts/tc0:

00sh

20492pts/tc0:

00csh

如果带-f选项,ps命令的结果是一个详尽的信息列表,包括PPID以及其他信息。

第2章

UNIX通用命令

随着现代多种UNIX系统的发展,有很多UNIX的命令的选项已经只能在其本身的系统中运行。

本章所介绍的命令以及其选项尽量选用在各种UNIX系统中均能使用的通用命令。

2.1用户管理

2.1.1增加新用户

步骤一:

创建用户

要在UNIX系统中增加新用户,可采用useradd命令,常用命令格式如下:

useradd[-ccomment][-ddirectory]][-ggroup][-m][-sshell]username

其中:

●-ccomment表示注释

●-ddirectory表示主目录

●-ggroup表示属于哪个用户组

●-m表示若家目录不存在,则自动创建

●-sshell表示该用户使用的shell

●username用户名

例1:

要创建一个名为sms的用户,其它默认,创建命令如下:

#useradd-msms

若不给出directory,系统则自动创建缺省主目录,如/usr/sms,缺省shell为BShell。

例2:

要创建一个名为informix的用户,所属组为informix,shell为csh,其它默认,创建命令如下:

#useradd-m-ginformix-s/bin/cshinformix

例3:

下面的命令:

#useradd-c"TestUser"-m-d/test/test02-gxyw-s/bin/kshtest02

表示要创建一个名为test02的用户,属于xyw用户组,主目录为/test/test02(自动创建)。

“TestUser”表示注释。

步骤二设密码

对用户建立密码的命令为:

#passwdsms

根据提示输入一次密码并再确认一次,就可以使用此用户登录系统了。

当然,此用户属于默认的用户组user,shell使用POSIX(HP-UX)或bsh(SUNSolaris)。

注意:

useradd仅在HPHP-UX、SUNSolaris上提供,在IBMAIX上,命令有所不同。

2.1.2删除用户

删除用户的命令常用格式为:

#userdelusername

有的UNIX系统可能不允许彻底删除该用户,userdel只能回收该用户的使用权。

注意:

userdel仅在HPHP-UX、SUNSolaris上提供,在IBMAIX上,命令有所不同。

2.1.3增加新用户组

要在UNIX系统中增加新用户组xyw,命令如下:

#groupaddxyw

命令执行完后就增加了一个名为xyw的用户组。

注意:

groupadd仅在HPHP-UX、SUNSolaris上提供,在IBMAIX上,命令有所不同。

2.1.4删除用户组

要将在UNIX系统中用户组gp11删除,命令如下:

#groupdelgp11

命令执行完后就将gp11用户组删除了。

注意:

groupdel仅在HPHP-UX、SUNSolaris上提供,在IBMAIX上,命令有所不同。

2.2进程管理

2.2.1ps命令

在系统上启动的每个进程都被分配一个唯一的标识号,这个标识号叫进程号(PID)。

ps命令显示当前运行(或者处于睡眠状态)进程的有关信息,包括每个进程的PID及其父进程的PPID。

ps命令调用时通常不带参数,而且只提供同一个终端的相关进程报告。

-e参数能够列出正在系统上运行的每一个进程。

-f、-l这两个参数可以列出完整的、长度很大的、包括列出运行进程相关详细内容说明的列表。

注意:

使用ps命令时会增加系统cpu的负担。

所以尽量少用。

2.2.2后台进程

在命令的后面加上“&”即可让该作业转入后台进程。

但如果该shell退出,则后台运行的命令也会退出。

UNIX操作系统提

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1