UNIX系统取证分析方法

UNIX系统取证分析方法
UNIX系统取证分析方法

UNIX系统取证分析方法①

殷联甫(嘉兴学院数学与信息工程学院浙江嘉兴 314001)

摘 要: UNIX作为目前最常用的主流操作系统之一,研究UNIX系统的取证分析方法具有非常重要的现实意义。本文首先介绍从UNIX系统中获取易失性数据的方法,然后介绍获取被入侵UNIX机器上的硬盘数据,建立取证映像(forensic image),然后进行取证分析的具体步骤和方法。

关键词:计算机犯罪;计算机取证;UNIX取证分析

UNIX Forensic Analysis Method

YIN Lian-Fu

(College of Mathematics & Information Engineering, Jiaxing University, Jiaxing 314001, China) Abstract: UNIX is one of the most popular operating systems, it has great practical significance to research the methodology of UNIX forensic analysis. This paper firstly introduces the method to capture the volatile

data from UNIX systems, then introduces the concrete steps and method of UNIX forensic analysis. Keywords:computer crime; computer forensics; UNIX forensics analysis

1引言

UNIX作为目前最常用的主流操作系统之一,研究UNIX系统的取证分析方法具有非常重要的意义。在对UNIX系统进行取证分析之前,首先必须获取取证数据。取证数据主要分为两大类,一类是易失性数据,另一类是非易失性数据。

易失性数据是指那些当计算机关机后就会全部消失的数据,这些数据一般都在内存中,主要包括网络连接状态、正在运行的进程状态等信息。所谓初始响应就是指收集受害者机器上的易失性数据,并据此进行取证分析的过程。非易失性数据是指那些当计算机关机后依然存在的数据,这些数据一般都在硬盘上。

本文首先介绍从UNIX系统中获取易失性数据的方法,然后介绍获取被入侵UNIX机器上的硬盘数据,建立取证映像(forensic image),然后进行取证分析的具体步骤和方法。

2UNIX系统初始响应方法[1]

2.1 创建初始相应工具包

为了能对UNIX系统做出初始响应,首先应准备好装有以下工具的光盘或软盘(要保证这些工具是绝对干净的):

ls dd des file pkginfo find icat lsof md5sum netcat netstat pcat perl ps strace strings truss df vi cat more gzip last w rm script bash modinfo ismod ifconfig 2.2 保存初始响应信息

初始响应信息可采用以下方式保存:

①将数据保存在本地硬盘中;

②将数据保存在软盘、USB驱动器或磁带驱动器等远程介质中;

③手动记录信息;

④使用netcat(或cryptcat)命令,通过网络将查找到的数据传输到取证分析机。

尽量不要将数据保存在本地硬盘上,如果需要进行数据恢复或取证分析的话,保存在本地硬盘上的数据就会覆盖位于未分配空间中已被删除的数据,而这些数据可能会有调查或者提供证据的价值。建议使用

①收稿时间:2009-12-14;收到修改稿时间:2010-01-12

238 经验交流 Experiences Exchange

netcat命令,通过网络将这些数据传送到配有USB驱动器或其他具有足够空间的存储设备的取证分析机上。

2.3 收集数据

初始响应阶段至少应收集以下数据:

a. 系统日期与时间;

b.当前登录的用户清单;

c.整个文件系统的时间/日期戳;

d.当前正在运行的进程列表;

e.当前打开的套接字列表;

f.在打开的套接字上监听的应用程序;

g.当前或最近连接到系统的系统列表。

(1)执行可信shell

所有响应的第一步是确定所执行的是可信任的shell命令。攻击者可在UNIX的shell中植入木马程序,记录下所有执行过的命令,或执行一些调查人员难以觉察到的恶意操作。因此,我们必须执行自己的可信shell。

首先使用下面的命令将可信工具包(假设可信工具包在软盘上)加载到“/mnt/floppy”目录下:# mount /dev/fd0 /mnt/floppy

然后进入/mnt/floppy目录,输入以下命令来执行自己的可信shell:

# ./bash

接下来就可以执行下面的可信命令了。

(2)执行date命令

执行date命令可以记录系统的时间与日期。本地日期与时间的设置对后面的时间/日期戳关联很重要,它们还可以显示出你处于系统中的时间。

(3)执行ifconfig命令

执行ifconfig命令可以获取每个网卡的信息,包括网络地址和状态等。分析这些数据可以发现入侵者是否修改了IP地址或者启动了网络监控程序。命令格式如下:

# ifconfig –a

(4)执行ps命令

执行ps命令可以显示每个进程的名称、命令行参数、已运行时间以及调用该进程的用户等信息,从中可以发现恶意进程。命令格式如下:

# ps –aux

(5)执行netstat命令

执行netstat命令可以获取打开的网络套接字(sockets)等信息。一般情况下,入侵者经常在被入侵系统中留下后门程序,通过分析打开的网络套接字信息可以发现后门程序。命令格式如下:

# netstat –an

(6)执行w命令

执行w命令可以显示当前登录用户的信息。使用w命令可显示出登录用户的用户ID以及他们是从哪个系统登录的、当前在系统中执行什么操作等,还能显示日期与系统时间。

(7)执行ls命令

与Windows系统一样,UNIX系统中每个文件和目录都有三项时间/日期戳可以收集:访问时间(atime)、修改时间(mtime)与inode更改时间(ctime)。可以使用带有相应命令行参数的可信ls命令来获取文件的这些时间。以下命令行将告诉你如何获得时间/日期戳,并将输出结果保存在可信软盘上:

ls alRu / > /floppy/atime

ls alRc / > /floppy/ctime

ls alR / > /floppy/mtime

3UNIX系统取证分析

3.1 数据获取

当我们获取受害者机器上的硬盘数据时,必须获取硬盘上的所有数据,包括未分配空间中的数据,只有这样我们才能恢复所有被删除的文件。使用UNIX 系统中的dd工具可以完成此项工作。这里我们将硬盘上所有数据的备份称为取证映像。(forensic image),接下来的取证分析工作也将在取证映像上进行,而不是在原始盘上进行。

一般情况下,我们可以用三种方法来获取硬盘数据:

(1)利用netcat工具通过网络获取。也就是通过网络将取证分析机与受害者机器相连,用netcat工具传输数据;

(2)将受害者机器的硬盘卸下,将其安装到可信的取证分析机上;

(3)用可信的操作系统直接启动受害者机器,将硬盘数据拷贝到外接硬盘。

3.1.1 设备识别

获取硬盘数据的第一步是识别硬盘的设备名。在UNIX系统中,所有ATA/IDE硬盘的设备名为/dev/hd?,而所有SCSI硬盘的设备名为/dev/sd?,其中”?”可由英文字母来代替,表示硬盘的编号,如/dev/hda、/dev/hdd等。可用以下命令来识别系统中的硬盘:

# dmesg | grep e [hs]d

Experiences Exchange 经验交流239

240 经验交流 Experiences Exchange

3.1.2 数据获取 如果你已经将受害者机器的硬盘卸下,并将其安装到可信的取证分析机上,或者你已经用可信的操作系统重新启动受害者机器,那么你可以根据以下步骤来获取数据: (1)确定源盘和存放源盘映像的目标盘。此处源盘用SRC 表示,目标盘用DST 表示。 (2)安装目标盘: # mount /dev/DST /mnt (3)计算源盘数据的hash 值: # dd if=/dev/SRC bs=2048 | md5sum 将计算结果记下来留待后用。 (4)将源盘中的全部内容拷贝到目标盘,保存在一个文件中: # dd if =/dev/SRC bs =2048 of=/mnt/disk1.dd (5)计算目标盘上结果文件的hash 值: # md5sum /mnt/disk1.dd 将该值与第(3)步取得的hash 值进行比较,若两者一致表示拷贝成功,否则表示拷贝失败,转到第(4)步重新拷贝。 3.1.3 映像文件分解 由于目前大多数取证工具的分析对象是硬盘中的分区而不是整个硬盘,因此当我们成功获取取证映像以后,必须将一个个的分区分离出来。在进行分离之前,我们必须首先了解各个分区的位置和长度,可以使用两种方法: (1)使用UNIX 中的fdisk 工具

在上面的命令中,参数“-l ”表示列出各个分区的

位置和长度,参数“-u ”表示位置和长度的单位是扇区。

(2)使用The Sleuth Kit 中的mmls 工具

在上面的命令中,参数“-t dos ”指定分区的类

型。mmls 工具的优点在于它不仅能列出各个分区的

位置和长度,还能列出未分配空间的位置和长度。各

个分区的位置和长度的单位也是扇区。

当我们了解各个分区的位置和长度以后,我们可以使用dd 工具从映像文件中提取出各个分区的内容: 上面的命令从映像文件disk1.dd 中提取出最前

面的两个分区的内容,分别存入文件hda1.dd 和hda2.dd 中。

3.2 取证分析[2,3] 数据获取完毕以后,接下来的工作就是取证分析,取证分析一定要在获取的映像文件上进行。 3.2.1 准备工作 在取证分析之前,首先必须将获取的各个分区映像文件安装到取证分析机上。我们假设将hda1.dd 安

装在取证分析机的/home/user01/analysis 目录上: # mount o ro,loop,nodev,noexec hda1. dd /home/user1/analysis 然后进入/home/user01/analysis 目录就可以开始进行分析了。

3.2.2 取证分析 (1)查找隐藏文件 入侵者在入侵过程中往往会创建一些不易被用户发现的文件,因此取证分析的第一步首先是在取证映像中查找隐藏文件,找出隐藏文件后,通过查看隐藏文件的内容来推断入侵者的行为。入侵者常用的一种隐藏技术是将普通文件加入到/ dev 目录中。我们可以用find 命令加上“type f ”选项来查找/dev 目录中的普通文件。

另一种隐藏文件的方法是将文件名的第一个字母改为“.”,因为用普通的ls 命令不能列出以字母“.”开头的文件。但我们可以用find 命令加上“- name ”选项来找出所有以字母“.”开头的文件。 (2)分析隐藏文件 找到隐藏文件后必须分析隐藏文件的内容来推断入侵者的入侵行为。我们可以用UNIX 系统中的strings 命令(该命令的主要功能是提取出文件中的ASCII 码字

符串)或Autopsy工具来分析隐藏文件的内容。

(3)分析启动文件和配置文件

大多数入侵者经常将后门程序隐藏在系统的配置文件和启动文件中,这样的话,每当系统启动时,后门程序就会自动执行。因此,通过分析系统的启动文件和配置文件,我们便可以发现可疑程序。

a. 分析启动文件

由于许多安装程序只是简单地在启动文件的后面加上几条命令,因此我们只要检查启动文件的最后面几行命令就可以发现可疑程序。启动文件中的正常命令一般都包含在if语句结构中,不包含在if语句结构中的命令一般可认定为可疑程序,但也不是绝对的,因为入侵者很容易做假。

b. 分析配置文件

通过分析配置文件,也可以找到许多非常有用的入侵线索。配置文件/etc/passwd中包含了系统中所有用户的登录信息,入侵者在入侵系统时可能会在系统中创建新的用户或帐号,分析文件/etc/passwd内容,可以发现可疑用户信息,尤其是那些UID为0的用户最值得怀疑,因为它们是root用户,具有很高的权限。

c. 分析历史文件

除了启动文件和配置文件,历史文件也能提供一些线索。历史文件位于用户的/home目录中(如文件.bash_history),记录了用户以前执行过的所有命令。当入侵者入侵系统后,经常会删除该文件或将其链接到/dev/null中,通过恢复该文件或分析/dev/null,我们可以发现许多有用的线索。

(4)分析日志文件

从日志文件中我们可以找到非常有用的入侵线索。UNIX系统使用syslog守护程序来建立系统日志。应用程序或者网络上的其他主机将信息发送给守护程序,守护程序再将这些信息存入日志文件。在分析日志文件之前,首先要查看日志配置文件/etc/ syslog.conf,该文件指出了日志文件的路径。一般情况下日志文件保存在/var/adm或/var/log目录下。下面是/var/log目录下的一些日志文件:

a. boot:该日志文件存放系统启动信息,其内容可读性较好。

b. lastlog:该日志文件存放每个用户的最后登录信息,包括登录的时间和地点,入侵者盗用其他用户帐号的情况可从该文件中反映出来。该文件是一个二进制文件。

c. maillog:该文件存放邮件系统的日志信息。

d. messages:该日志文件存放大部分应用程序的日志信息,通常包括启动任务信息、登录信息等,还能显示出谁试图登录系统获得超级管理员权限。该文件可以提供较多的入侵线索,但该文件容易经常被删除或修改。

e. secure:记录系统自启动以来所有用户的登录时间和地点以及登录的途径。

f. wtmp/wtmpx:存放用户登录的历史信息,保存了系统所有的登录、退出信息以及系统的启动、停机记录,据此可发现有用的入侵线索。该文件是一个二进制文件,可以用last命令加上“-f”选项来读出wtmp文件的内容。

(5)分析空闲空间和交换空间(swap space)

文件被删除以后,文件内容仍然保存在硬盘上的数据块中,不过此时系统已经将这些数据块的状态标识为空闲。我们可以在空闲数据块中寻找犯罪证据。

我们可以使用The Sleuth Kit中的dls 工具来提取空闲数据块中的数据。dls 工具检查每个数据块的状态,并输出空闲数据块中的数据。

从空闲空间中提取出数据后,我们可以用foremost(https://www.360docs.net/doc/cd12211223.html,)工具来分析这些数据。foremost工具可以从这些数据中查找特定的文件头和文件脚,从而将文件恢复出来。

我们也可以从交换空间中寻找犯罪证据。虽然目前没有专门的取证工具来分析交换空间,但我们可以用strings命令。我们可以从交换空间中发现shell 历史记录、环境变量和进程内存等信息。

4 结语

UNIX作为目前最常用的主流操作系统之一,研究UNIX系统的取证分析方法具有非常重要的现实意义。本文只是对UNIX系统的取证分析方法作了非常初步的研究,有兴趣的读者可以在这方面作更进一步的探索和研究。

参考文献

1 Mandia K, Prosise C, Pepe M. 汪青青,付宇光等译.应急响应&计算机司法鉴定(第2版).北京:清华大学出版社, 2004.

2 Carrier B. UNIX Computer Forensics. [2007-10-12]. https://www.360docs.net/doc/cd12211223.html,/searchEnter priseLinux/downloads/Honeynet_Ch12.pdf.

3 Keith R, Jones J. Performing Investigations on a Live Host.[2007-11-15].https://www.360docs.net/doc/cd12211223.html,/publications/ login/2001-11/pdfs/jones.pdf.

Experiences Exchange 经验交流241

HP UNIX操作系统管理常用命令

HP UNIX操作系统管理常用命令 2009-02-05 14:41 具体的命令格式和功能可用m a n命令来查看,具体语法是m a n c o m m a n d 1、#i o s c a n-n f:列出各I/O卡及设备的所有相关信息,如逻辑单元号,硬件地址及设备文件名等。 2、#p s-e f:列出正在运行的所有进程的各种信息,如进程号,进程名等。 3、#n e t s t a t-r n:列出网卡状态及路由信息。 4、#l a n s c a n:列出网卡状态及网络配置信息。 5、#b d f:列出已加载的逻辑卷及其大小信息。 6、#m o u n t:列出已加载的逻辑卷及其加载位置。 7、#u n a m e-a:列出系统I D号,O S版本及用户权限等。 8、#h o s t n a m e:列出系统网络名称。 9、#p v d i s p l a y-v/d e v/d s k/c*t*d*:显示磁盘各种信息,如磁盘大小,包含逻辑卷,设备名称等。 10、#v g d i s p l a y-v/d e v/v g00:显示逻辑卷组信息,如包含哪些物理盘及逻辑卷等。 11、#l v d i s p l a y-v/d e v/v g00/l v o l1:显示逻辑卷信息,如包含哪些盘,是否有镜像等。 12、如需修改网络地址、主机名等,一定要用s e t_p a r m s命令 #s e t_p a r m s h o s t n a m e #s e t_p a r m s i d_a d d r e s s 13、查看网卡状态:l a n s c a n 14、确认网络地址:i f c o n f i g l a n0 15、启动网卡:i f c o n f i g l a n0u p 16、网络不通的诊断过程: l a n s c a n查看网卡是否启动(u p) p i n g自己网卡地址(i p地址) p i n g其他机器地址,如不通,在其他机器上用l a n s c a n命令得知s t a t i o n a d d r e s s,然后l i n k l o o p s t a t i o

unix操作基本命令

UNIX系统操作入门篇(一) 这篇东西是关于Unix系统操作的教程。也是Unix的入门教程。如果你有兴趣学,请看下去,保证你可以学到许多有用的东西。如果你满足于dos,windows的操作,不想对网络服务器,有任何了解的话,可以不看。因为你并不想成为计算机高手。本教程仅仅讲授Unix系统的常用命令,不涉及Unix的历史、安装和编程。如果你想得到更多的知识,请查找其他的教材。本教程参考了《精通Unix》、《Unix基础》、《Unix系统使用指南》等书,你可以在那里找到更多的知识。 准备知识: Unix是一个多任务多用户的操作系统。多任务是指可以同时运行几个不同的程序,或命令。在操作系统的术语里叫“进程”,就象在运行Windows95的时候我们可以一边听CD 一边打字,同时打印机还在工作。多用户是指一台运行Unix系统的机器可以同时具有几个不同的输入输出设备,给几个,几十个用户同时使用。不同的输入输出设备我们称为终端。Unix 给每个终端设置不同的序号以协调工作,这个序号被称为终端序号。Unix是一个根本不同于Dos的系统,无论其命令格式,用途都和Dos有很大区别。比如:目录分割符是"/",而不是"\"。具体的不同请参考其他书籍。 开始练习之前: 在开始教授Unix命令之前,请先记下这个地址:https://www.360docs.net/doc/cd12211223.html,。它是一台在美国的,连上Internet的Unix主机。之所以告诉大家这个地址是因为它提供免费的帐号供大家使用。是免费的。就是说你可以先去那里申请一个帐号,然后在那里练习你所学到的Unix 命令。因为我相信不是每个朋友都可以轻松地得到Unix帐号的。在你成功的申请好帐号之后,请在你Windows95的dos窗口里输入"telnet https://www.360docs.net/doc/cd12211223.html," 等待连上主机。接下来就是输入你的用户名和密码,不要告诉我这些你都不会,如果你不会的话,你是怎么连到这个网页的?现在假定你连上了主机,系统的提示符应该是"https://www.360docs.net/doc/cd12211223.html,%",对这个就是提示符就象dos里的"c:\>"。接下去我将开始命令篇。 ls 你记不记得你学会的第一个Dos命令?反正我学会的第一个命令是dir:列目录和文件的命令。你学会的第一个Unix的命令也是列目录和文件的命令ls. 功能列出当前目录下的文件和目录。同Dos一样,Unix系统命令也是带参数的。ls的参数有"a","l","F"。请注意,F是大写。Unix系统里对命令的大小是严格区分的。(所以我们做网页常常会发生连接错误)同dos 不一样的地方在于,Unix命令的参数是"-"为其前导,而不是"/"。所以完整的ls命令是 ls -l -a -F或ls -laF -l:long的意思,把文件的其他资料,如文件长度,上次修改的日期等等列出来。 -a:all的意思,把本目录下所有的文件,包括隐含的文件也列出来。 -F:显示文件类型。"*"表示可执行文件,"/"表示目录,"@"表示连接。 好,请在你的机器上输入ls -l -a -F,或许这是你一生里第一个Unix命令。记住了吗? cd 变换目录,和Dos相同。如果你在cd后面没有给定目的地,则表示目的地是家目录。在unix 中有三中表示目录的符号".","..","~"。"."表示当前目录路径的位置".."表示当前路径的上一层目录,或称"父目录" "~"表示家目录,所谓家目录指系统管理员分配给你的目录,比如你的用户名是li,那么你的家目录就是在"~li",在cd后面加上"~li"就是去你的家目录。 date 显示出当前的时间和日期,记住在Unix里你是无法修改系统时间的。输出时间一般是格林

UNIX操作系统常用命令使用方法

UNIX系统及BSJ2200系统培训 第一章SUN系统介绍 第一节SUN的发展史 (一)硬件体系 81--89 Sun1/2/3 CISC Motrala 680x0系列 89--94 Sun4/60 sparc1 Risc sparc 65 sparc1+ 70 sparc2 Server : Sun/290/670/690 93--96 Sparc10/20 SuperSparc Server : 1000/2000 96--97 Ultra1(140/170/170E/200E) UltraSparc SBUS体系结构,UPA接口 Ultra2 Server : E150,E3000 98--99 Ultra5 ,Ultra10 PCI体系结构(IDE外设) Ultra30,Ultra60 Server : E250,E450,E3500 2000-至今BLADE 150/2000/2500 (二)软件体系 Solaris 1.x SunOS 4.1.3+OpenWindow 1.x BSD Solaris 2.x System V 32bit 2.5.1 SunOS 5.5.1 +OpenWindows 2.6 SunOS5.6+CDE1.2 Solaris 2.7(7) 64 bit Solaris 2.8(8) for sparc平台/intel x86平台 Solaris 2.9(9) for sparc平台/intel x86平台 第二节SUN系统的安装 以SUN Ultra5(9.1G)硬盘Solaris2.7为例,步骤如下: 1、在OK提示下输入:boot cdrom 2、出现“Select Language and local”时,选择“Continue”按钮。 3、出现“The Solaris installation program”时,选择“Continue”按钮。 4、出现“Identify this system”时,选择“Continue”按钮。 5、出现“Hostname”时,先输入机器名后,再选择“continue”按钮。 6、出现“Network connectively”时,先选择“Yes”,再选择“Continue”。 7、出现“IP Address”时,输入IP后,选择“Continue”。 8、出现“Confirm Infirmation”时,选择“Continue”。 9、出现“Name service”时,先选择“None”后,再选择“Continue”。 10、出现“Confirm Infirmation”时,选择“Continue”。 11、出现“Subnets”时,先输入“NO”,再输入“Continue”。 12、出现“Time Zone Geographic region”时,输入“Set”。 13、出现“Geographic region”时,选“Asia Eastern HongKong”。

SCO_UNIX系统常用命令.

SCO UNIX 系统常用命令 一. 常用系统命令 1. 登录 在login :下,输入用户名,密码,进入显示shell 名令提示符,超级用户#>,普通用户$>. 2 su #>su -oracle 3 退出 exit logout ctrl +d( 强制退出 4 passwd修改密码 5 man查命令的解释 6who 查看登录用户,包括自己。 Who am I 7finger 显示当前用户的信息。 8clear 清屏 9setcolor -n 置屏幕为normal , 黑底白字。 10wall 广播信息 wall -》回车-》输入内容-》ctrl +d mail 发送邮件

mail 接收用户名-》回车-》输入内容-》ctrl +d 11关机 shutdow n -g0 —立即关闭无需确认 haltsys reboot init 0 关机 init 6 停止系统运行并重启 12du dfspace du :显示文件目录占用的磁盘空间大小。 Dfspace: 显示空闲磁盘空间。 13scoadmin系统管理工具 14u name —显示系统信息 15env 显示更改环境设置 set 16sar系统维护的重要工具 /usr/lib/sa/sar_e nable-y 打开 /usr/lib/sa/sar_e nable—n 关闭 从14个方面报告系统的活动情况,重点监视内存和cpu的使用情况.sar -r 30 4 报告内存和交换区的使用

sar -u 30 4报告cpu的使用情况 Wio 值高表示硬盘存在IO 瓶颈 Idle 值高表示等待分配内存, 需扩内存小于30表示进程主要竞争的自源是cpu. ipcs 显示共享内存 ipcrm -m(s id 号 integrity 把文件控制数据库与文件系统中的文件, 进行比较. Fixmog 使全部的系统文件或指定的系统文件和鉴别数据库一致起来. 二. 文件目录相关命令 1 pwd 显示当前所在目录 2cd 3mkdir 创建目录 4rmdir 删除目录 5rm 删除文件 rm —r 6mv 源目标 7cp 源目标 cp -r 8ln 源目标文件的链接 9pg 文件

UNIX和Linux操作系统概述

第1章UNIX和Linux操作系统概述 练习题和解答 1.在UNIX大家族的以下分支中,哪两个分支对成就UNIX的辉煌起到了至关重要的作用? A.MIT B.GNU C.BSD D.POSIT E.BESYS F.System V 【解答】这一题是测试你对UNIX的简要发展史以及对UNIX发展影响巨大的两个分支的熟悉程度。根据本章1.2节有关UNIX的简要发展史的介绍——对UNIX操作系统的发展贡献最大的是它的两个分支——加州大学Berkeley分校的BSD和AT&T公司的System V,可以断定答案C和F是正确的。 答案:C和F 2.为什么Linux操作系统总是在一个被称为Linux Standard Base(LSB)的通用标准下开发和颁布? A.防止互用性(interoperability) B.防止服从POSIX标准 C.确保应用一级的多样性 D.确保不同发布之间的兼容性 【解答】这一题是测试你对UNIX和Linux设计思想和实现的理解程度。虽然在本章中并没有直接讨论过本题的答案,但是根据本章1.2节~1.6节的介绍我们可以断定只有答案D是正确的,因为其他几个答案都与UNIX和Linux设计理念相违背。 这里需要解释的是POSIX是IEEE标准,其全名是Portable Open Systems Interface(可移植开放系统接口/界面)。 答案:D 补充练习题和解答 3.UNIX被称为有史以来最稳定的操作系统,请问在以下所列的原则中有哪两个对这种稳定性起到了比较大的作用?

A.容易修改终端用户程序 B.所有程序的配置数据都以二进制文件存储 C.整个策略的决策都是由内核做出的 D.UNIX操作系统中的每一件东西或者是一个文件或者是一个进程【解答】这一题是测试你对UNIX设计理念的理解程度。根据本章1.3节有关UNIX 设计理念的解释——所有的操作系统配置数据都存储在正文文件中,可以断定答案B是错误的。 根据本章1.3节有关UNIX设计原则的介绍——“每一个操作系统命令或应用程序都很小,而且只完成单一的功能。UNIX操作系统提供了许多小的应用程序,每个应用程序都能够很好地执行单一的功能。当需要一个新功能时,UNIX的通用原则是为此创建一个单独的程序而不是扩展一个已经存在的应用程序的功能。”,可以断定答案C是错误的。 利用排除法可以断定,答案A和D是正确的。 答案:A和D 4.由自由软件基金会(Free Software Foundation,FSF)发起的GNU项目的目标就是创建一个自由的UNIX克隆。根据你的理解,以下哪个陈述适用于FSF的“自由”这一术语? A.在获得软件的同时源代码将免费提供 B.软件是全部免费的而仅仅收取修复软件故障的费用 C.软件是以可运行(可安装)形式免费自由分发的 D.软件是自由分发的但是并没有提供再分发这个软件的自由 【解答】这一题是测试你对GNU项目与自由软件的熟悉程度。根据本章1.4节有关GNU项目与自由软件的介绍——“你有修改该程序满足自己需求的自由(为使该自由实际上可实施,你必须可接触源代码,因为没有源代码的情况下,在一个程序中做修改是非常困难的)。”,可以断定答案A是正确的。 根据本章1.4节有关GNU项目与自由软件的介绍——“自由软件(Free Software)这一术语有时被错误地理解,其实它与价格无关。”,所以答案B和C肯定是错误的。 根据本章1.4节有关GNU项目与自由软件的介绍——“你有权利发布该程序修改过的版本,从而让其他人得益于你的改进。”,可以断定答案D是错误的。 答案:A 5.多用户可以共享一个UNIX计算机,这使得利用一个用户的空闲时间来服务其他用户成为可能。操作系统的这一特性被称为什么? A.数据共享 B.时间共享 C.一次性初始化 D.轻量级的内核线程

UNIX系统常用命令

UNIX系统常用命令 UNIX系统常用命令格式: command [flags] [argument1] [argument2] ... 其中flags以-开始,多个flags可用一个-连起来,如ls -l -a 与ls -la相同。 根据命令的不同,参数分为可选的或必须的;所有的命令从标准输入接受输入,输出结果显示在标准输出,而错误信息则显示在标准错误输出设备。可使用重定向功能对这些设备进行重定向。 命令在正常执行结果后返回一个0值,如果命令出错可未完全完成,则返回一个 非零值(在shell中可用变量$?查看). 在shell script中可用此返回值作为控制逻辑的一部分。 注:不同的UNIX版本的flags可能有所不同。 1、与用户相关的命令 1.1 login (在LINUX Redhat下此命令功能与Solaris/BSD不同,执行login会退出当前任务). login: Password: 相关文件: 在下面的这些文件中设定shell运行时必要的路径,终端类型,其他变量或特殊程序. $HOME/.profile (Bourne shell, sh, bash) $HOME/.cshrc (csh, tcsh) $HOME/.tcshrc (tcsh) /etc/passwd文件中列出每个用户的shell /etc/csh.cshrc /etc/csh.login /etc/profile (Bourne shell, bash) /etc/login (Bourne shell, bash) csh: /etc/csh.cshrc和$HOME/.cshrc每次执行都会读取, 而/etc/csh.login和$HOME/.login只有注册shell才执行 修改相应文件后使用 source .cshrc使能相关修改,如果修改了path则 还需使用rehash刷新可执行文件hash表。 tcsh: $HOME/.tcshrc, 没有些文件读取.cshrc sh: /etc/profile和$HOME/.profile注册shell bash: /etc/profile和$HOME/.bash_profile注册shell读取 .bashrc交互式非注册shell才读取。

unix操作系统

Unix操作系统浅析 摘要:本文较详细的介绍了什么是UNIX操作系统,以及UNIX操作系统的发展历史,UNIX系统的基本结构,UNIX操作系统的优势,UNIX操作系统和LINUX操作系统的区别和联系。 关键字:UNIX,LINUX 一、引言 UNIX ,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。UNIX操作系统最早由Ken Thompson、D ennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。经过长期的发展和完善,目前已成长为一种主流的操作系统技术和基于这种技术的产品大家族。由于UNIX具有技术成熟、结构简练、可靠性高、可移植性好、可操作性强、网络和数据库功能强、伸缩性突出和开放性好等特色,可满足各行各业的实际需要,特别能满足企业重要业务的需要,已经成为主要的工作站平台和重要的企业操作平台。它主要安装在巨型计算机、大型机上作为网络操作系统使用,也可用于个人计算机和嵌入式系统。曾经是服务器操作系统的首选,占据最大市场份额,但最近在跟WINDOWS SERVER以及Linux的竞争中有所失利。 二、UNIX历史 初创期Unix的诞生和Multics(Multiplexed Information and Computi ng System)是有一定渊源的。Multics是由麻省理工学院,AT&T贝尔实验室和通用电气合作进行的操作系统项目,被设计运行在GE-645大型主机上,但是由于整个目标过于庞大,糅合了太多的特性,Multics虽然发布了一些产品,但是性能都很低,最终以失败而告终。AT&T最终撤出了投入Multics项目的资源,其中一个开发者,Ken Thompson则继续为GE-645开发软件,并最终编写了一个太空旅行游戏。经过实际运行后,他发现游戏速度很慢而且耗费昂贵——每次运行会花费75美元。在Dennis Ritchie的帮助下,Thompson用PDP-7的汇编语言重写了这个游戏,并使其在DEC PDP-7上运行起来。这次经历加上Multics 项目的经验,促使Thompson开始了一个DEC PDP-7上的新操作系统项目。Thom pson和Ritchie领导一组开发者,开发了一个新的多任务操作系统。这个系统包括命令解释器和一些实用程序,这个项目被称为UNICS(Uniplexed Informat ion and Computing System),因为它可以支持同时的多用户操作。后来这个名字被改为UNIX。发展期最初的Unix是用汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的。B语言在进行系统编程时不够强大,所以Thompson和Ritchie对其进行了改造,并与1971年共同发明了C语言。1973 年Thompson和Ritchie用C语言重写了Unix。在当时,为了实现最高效

SCO_UNIX系统常用命令.

SCO UNIX系统常用命令 一. 常用系统命令 1. 登录 在 login :下,输入用户名,密码,进入显示 shell 名令提示符,超级用户 #>,普通用户$>. 2 su #>su – oracle 3 退出 exit logout ctrl +d(强制退出 4 passwd 修改密码 5 man 查命令的解释 6who 查看登录用户,包括自己。 Who am I 7finger 显示当前用户的信息。 8clear 清屏 9setcolor – n 置屏幕为 normal , 黑底白字。 10wall 广播信息 wall -》回车-》输入内容-》 ctrl +d mail 发送邮件

mail 接收用户名-》回车-》输入内容-》 ctrl +d 11关机 shutdown – g0 – y 立即关闭无需确认 haltsys reboot init 0 关机 init 6 停止系统运行并重启 12du dfspace du :显示文件目录占用的磁盘空间大小。 Dfspace: 显示空闲磁盘空间。 13scoadmin 系统管理工具 14uname – X 显示系统信息 15env 显示更改环境设置 set 16sar 系统维护的重要工具 /usr/lib/sa/sar_enable – y 打开 /usr/lib/sa/sar_enable – n 关闭 从 14个方面报告系统的活动情况 , 重点监视内存和 cpu 的使用情况 . sar – r 30 4 报告内存和交换区的使用 .

sar – u 30 4 报告 cpu 的使用情况 . Wio 值高表示硬盘存在 IO 瓶颈 Idle 值高表示等待分配内存 , 需扩内存小于 30表示进程主要竞争的自源是cpu. ipcs 显示共享内存 ipcrm -m(s id 号 integrity 把文件控制数据库与文件系统中的文件 , 进行比较 . Fixmog 使全部的系统文件或指定的系统文件和鉴别数据库一致起来 . 二. 文件目录相关命令 1 pwd 显示当前所在目录 2cd 3mkdir 创建目录 4rmdir 删除目录 5rm 删除文件 rm – r 6mv 源目标 7cp 源目标 cp -r 8ln 源目标文件的链接

《UNIX常用命令大全》word版

UNIX常用命令大全[分享] apropos 用途:apropos查找使用说明的名称。 举例:apropos print(等价于man -k prink)。 arch 用途:arch获得机器体系结构的描述信息。 举例:arch。下面是arch输出的结果: sun4 将这个命令与uname进行比较。 ash 用途:ash是外壳,只用于某些系统。 举例:ash。这个命令启动ash外壳的一个实例。 at 用途:at用于确定命令执行的时刻。 举例:at 9:00am December 31。 awk 用途:awk是一种模式扫描和执行语言。 举例:awk\'{print $1}\'file.txt。这个命令执行后将打印出file.txt的第一个区域。bash 用途:bash是GNU Bourne-Again外壳。 举例:bash[options]。这个命令启动bash外壳,它是一个增强的和sh兼容的外壳。bash 的提示符为$。 biff 用途:biff通知你是否收到了邮件。 举例:biffy。这个命令叫biff通知你新邮件什么时候到达(注意,要想让biff工作,你必须同时运行 sendmail)。 cancel 用途:cancel取消挂起的打印作业。 举例:cancel23。这个命令取消23号打印作业。 cal 用途:cal显示无格式文本日历。 举例:cal。以下是命令执行后输出的列表: August 1998 cat 用途:cat将文件连接在一起并显示这些文件中的内容。 举例:cat myfile.txt。这个命令执行后显示myfile.txt中的内容。 cc 用途:cc是用于许多系统的C编译器。 举例:cc myfile.c -o myfile。这个命令执行后对myfile.c源文件进行编译并输出一个名为myfile的可执行文件。 cd 用途:cd用来改变当前目录。 举例:cd/usr/bin。这个命令执行后将当前目录更改为/usr/bin。

UNIX命令

入门介绍和常用命令 如果文件系统磁盘空间不足,则可能出现停止服务等反常现象。 建议各现场系统环境维护人员要定期检查一下Domain所在文件系统的磁盘空间是否足够。命令: df -k df -m df -g等。 历史: BSD,SYSTEM V 主流商业版本 SUN SOLORIS IBM AIX HP-UX Tru64 UNIX LINUX 登录和用户管理 进入系统 login: passwd: 字符方式: 字符终端(console,tty) telnet,term-tools 图形方式(x-window protocal): 从主机登录; 图形终端工具(reflection,hummingbird,cygwin,etc.) Change passwd: $ passwd old password: new password: reenter new password: chsh $ chsh /bin /sh /bin /csh User informaiton defined in /etc/passwd,readonly for ordinary users.

$ man cmd $ docsearch $ wheris cmd $ which cmd Command Search Path $ echo $PATH 查看自己的用户名 $ whoami who ,w 查看当前谁在系统上 users, u 查看当前系统的用户 id 看登录用户 finger user 查看user 的信息 ps 显示当前进程状况 ps –u user 显示用户名为user 的进程状况 进程调度 后台运行 $ cmd & $ cmd1;cmd2;cmd3 $ cmd1&&cmd2&&cmd3 $ cmd1||cmd2||cmd3 从后台转到前台 $ jobs #查找 $ fg %n 定时任务 at,cron $ at time cmd $ crontab –l $ crontab –e $ crontab user # root can edit other users? crontab 重定向和管道 stdin,stdout,stderr $ cmd >file $ cmd

UNIX 常用命令

6.dd 删除一行文本所用的操作符 7.10x 删除10个字符所用的操作符 8.. 点重复用户最近一次文本修改 9.$ 移动光标到当前行尾 10.W 将光标向右移动一个字 11.K 将光标向上移动 12.j 将光标向下移动 13.h 将光标向左移动 14.l 将光标向右移动 15.A 在当前行尾输入文本 16.O 在当行上面添加一行 17.o 在当前行下面添加一行 18.U 撤销对当前行所做的所有修改 19.r 替换光标所在位置的字符 20./ 向前搜索指定的字符串 21.?向后搜索指定的字符串 22.:q! 不保存文件,退出vi 23.a 将输入的文本插到光标位置处 24.0(零)将光标移到当前行首 25.ls 列出当前目录的内容 26.pwd 显示当前目录的路径名 27.cd 改变当前目录到主目录 28.mkdir xyz 在当前目录下创建xyz 目录 29.ls-l 以长格式列出当前目录 30.cd.. 改变当前工作目录到当前目录的父目录(改变到了另一个目录) 31.ls-a 列出所有文件包括隐藏文件 32.cat xyz 在屏幕上显示xyz 文件的内容 33.lp xyz 在默认打印机上打印xyz文件 34.rm xyz 删除xyz文件 35.rmdir xyz 删除xyz 目录 36.cancel lp1 取消lp1打印机上的打印作业 37.lpstat 显示默认打印机的状态 38.rm-i 在删除文件之前要求确认 39.rm 删除文件 40.rmdir 删除目录 41.lp 打印文件 42.Cancel 取消打印请求 43.Lp-n 打印文件的多份副本 44.cd 改变到主目录 45.mkdir 创建目录 46.mkdir-p 创建两层目录结构 47.cd 改变到根目录下 48.cat- 在屏幕上显示文件 49.cat-- 在屏幕上显示两份文件 50.G 将光标放在文件的最后一行上 51./most查找字most 52.[Ctrl-g] 显示当前的行号 53.2dw 删除两个字 54.“x4yy 复制4行到缓冲区x中 55.66G 将光标定位到第66行 56.rx 用字母xti替换光标处的字符 57.“lp 查看缓冲区的1的内容 58.:set number 设置行号选项 59.“x5yy 保存5行到缓冲区X 60.:r!date 将日期串读入(输入)用户文件中 61.:!ls 列出当前目录 62.:ab 创建缩写 63.:unab 取消缩写68.mv xxx yyy 将xxx重命名为yyy 69.rm* 删除当前目录下的所有文件 70.ls*[1-6] 列出所有文件名以数字1-6结尾的文件 71.cp file??source 复制所有文件名以file开头,后面跟两个字符的文件 72.pr-2 myfile 以两列格式化myfile 73.pg myfile 以逐屏显示的方式浏览myfile 74.cat myfile>yyy 复制myfile到yyy 75.cat?myfile>>yyy 将所有文件名为myfile前加一个字符的文件内容加到yyy文件中 76.find.-name“file*”-print 查找所有文件名以file开头的文件 77.find-name xyz-size20-print 查找所有文件名为xyz大小为20块的文件 78.cut-f2 xyz>xxx 保存xyz文件的第2个域到xxx文件中 79.more zzz 逐屏读zzz文件 80.alias 该命令创建命令的别名 81.ls-i 列出当前目录下的文件名及其i节点号 82.echo 该命令在输出设备上显示其输出参数 83.\a 警报(响铃) \n 回车换行 \b 回退 \r回车不换行 84.echo A>>B 把A追加到B 1.编辑器:编辑器是一个工具,可以方便的创建新文件或修改旧文件 2.UNIX操作系统支持的编辑器:(行编辑器)Emase,ex,ed,(全屏编辑器)vi,view /* 3.x 删除光标出的字符 r 替换光标所在位置的字符 / 向前搜索指定的字符串 ? 向后搜索指定的字符串 h 将光标向左移动一行 A 将输入文本放在当前行的行尾 q! 不保存文件,退出vi wq 保存文件并退出vi a 将输入的文本插入到光标位置后 $ 将光标移到当前行行尾 0 将光标移到当前行行首 K 将光标向上移动一行 4.dd 删除一行 dw 删除1个字 yy 复制1行 yw 复制1个字 d$ 删除到当前行尾 :z2yy 将两行保存到缓冲区z “zp 将缓冲区z的内容复制到当前行后 “2p 将缓冲区2的内容复制到当前行后 5.G 将光标放到文件的最后一行上 /most 查找字most [Ctrl-g] 显示当前行的行号 2dw 删除两个字 j 将光标向下移动一行 “x4yy 复制4行到缓冲区x $ 将光标定位到当前行尾 0(零)将光标定位到当前行首 66G 将光标定位到第66行 x 删除光标出的字符 rx 用字母x替换光标出的字符

unix常用命令

UNIX常用命令 以下只说明各常用指令的基本用法, 若需详细说明, 请用 man 去读详细的 manual. 1.关於档案/目录处理的命令 ls——列目录 这是最基本的档案指令。 ls 的意义为 "list",也就是将某一个目录或是 某一个档案的内容显示出来。 格式:ls -1ACFLRabcdfgilmnopqrstux -W[sv] [files] 例: #ls (不跟任何参数以简单格式列出当前目录中所有档案) #ls bin (简单格式列出名为bin的文件或目录下的所有档案) #ls /u/ilasII_GB/lib (全路径,列出lib目录下的所有档案) ls 的常用参数如下: -a : 在 UNIX 中若一个目录或档案名字的第一个字元为 "." , 则使用 ls 将不会显示出这个档案的名字,我们称此类档案为隐藏档。如 .profile、.tcshrc等 如果我们要察看这类档案,则必须在其后加上参数 -a 。 -l : 这个参数代表使用 ls 的长( long )格式,可以显示更多的资讯,如档案存取权,档案拥有者( owner ),档案归属组,档案大小,档案最後更新时间,甚而 symbolic link 的档案是 link 那一个档等等。显示结果如下所示: drwxrwxrwx 30 root bin 1024 May 23 10:38 u drwxrwxrwx 2 root sys 512 Jul 28 1999 uacn drwxrwxrwx 5 root sys 512 Jul 27 1999 udk lrwxrwxrwx 1 root sys 11 Jul 27 1999 unix -> /stand/unix drwxrwxrwx 35 root auth 1024 Apr 3 13:45 usr 在开始的10个字符上系统给出文件的用户权限。该序列分成四个域。第一个字符为类型域,第2、3、4个字符为用户主域,第5、6、7个字符为同组用户域,第8、9、10个字符为其它用户域,域中字符的含义如下: ●在类型域中: d 表示此文件是一个目录 -表示此文件是一个普通文件 b 表示此文件是一个特殊的块设备I/O文件 c 表示此文件是一个特殊的字符设备I/O文件 l 表示此文件是一个连接文件。在其文件名称后紧跟与它连接的文件路径及名称。如: unix -> /stand/unix ●在“用户主”、“同组用户”、“其它用户”域中: r 表示有读权限。含义是可以拷贝或显示该文件或目录中的内容。 w 表示有写权限。含义是可以改变或修改该文件。 x 表示有执行权限。含义是可以执行该文件或用cd命令进入该目录,在该目录中建立文件或子目录等。 -表示无权限。

UNIX系统调试常用命令

solaris系统常用命令: 一、OK状态下的命令 在多用户状态下运行init 0 或按stop+A键可以进入OK状态, 格式: OK> 指令 (一)、显示环境参数 1、banner 显示当前机器配置状况,CPU,内存,hostid,EtherNet 2、devalias 显示设备别名,如 cdrom,disk,disk0,disk1等 3、printenv 无参数,显示环境变量;参数为环境变量名,显示变量值 如: printenv auto-boot? (二)、显示挂接的设备 1、probe-scsi 显示内部SCSI通道所挂接设备 2、probe-scsi-all 显示所有SCSI通道及所挂接设备 3、probe-ide 显示所有IDE通道及所挂接设备(针对U10,U5) (三)、设置环境变量 1、setenv 设置环境变量,如: setenv auto-boot? false 3、set-defaults 恢复所有环境变量预定值 设置完环境变量后必须运行reset-all,所设置的变量才保存下来(四)、其他命令 1、boot device option 启动主机 device可以为:设备别名: cdrom 或 disk 也可以为:设备名: /pci@1f,4000/scsi@3,1/disk@6,0:f option可以为 -r 设备重新配置 -s 系统重启到单用户状态 2、eject cdrom|floppy 弹出cdrom或floppy 3、test net:测试网络设备(网卡) 4、power-off 关机 二、系统多用户状态下的常用命令 1、如何查看cup的状态? # psrinfo -v # mpstat 可以列出多cpu负载的状态

第一章:UNIX操作系统简介

第一章:UNIX操作系统简介 学习目标 学完这一章,你能做到以下事情: 描述UNIX系统的基本组成和基本功能 1.1 什么是操作系统? 操作系统是一种特殊的用于控制计算机(硬件)的程序(软件)。 操作系统在资源使用者和资源之间充当中间人的角色。为众多的消耗者协调分配有限的系统资源。系统资源包括,CPU,内存,磁盘,和打印机。举个例子,一个用户(也可以是程序)将一个文件存盘,操作系统就会开始工作:管理磁盘空间的分配,将要保存的信息由内存写到磁盘等。 当用户要运行一个程序时,操作系统必须先将程序载入内存,当程序执行时,操作系统会让程序使用CPU。在一个分时系统中,通常会有多个程序在同一时刻试图使用CPU。 操作系统控制应用程序有序地使用CPU ,就好象一个交通警察在一个复杂的十字路口指挥交通。十字路口就象是CPU;每一条在路口交汇的支路好比一个程序,在同一时间,只有一条路的车可以通过这个路口,而交通警察的作用就是指挥让哪一条路的车通过路口,直到让所有路口的车辆都能通过路口。 UNIX操作系统的历史 UNIX操作系统1969年在贝尔实验室诞生。Ken Thompson在Rudd Canaday, ,Doug Mcllroy,Joe Ossana,and Dennis Ritchie,的协助下,写出一个小的分时系统,开始得到关注,在许诺为实验室的管理人员提供一个文档准备工具后,UNIX先驱们可以使用到一台更大的计算机,从而得以继续他们的开发工作。 在七十年代的中期,一些大学得到使用UNIX的许可,并很快在学院之间得到广泛流行,其主要的原因是: 小巧:最早的UNIX系统只占用512K字节的磁盘空间,其中系统内核使用16K,用户程序使用8K,文件使用64K。 灵活:源代码是可利用的,UNIX是用高级语言写成,提高了操作系统的可移植性。 便宜:大学能以一盘磁带的价格得到一个UNIX系统的使用许可。早期的UNIX系统提供了强大的性能,使其能在许多昂贵的计算机上运行。 以上优点在当时掩盖了系统的不足: 没有技术支持:AT&T在当时大部分的资源和都用在MUTICS上,没有兴趣 开发UNIX系统。 Bug的修补:由于没有技术支持,bug的修补也得不到保证。 很少的,或者根本没有说明文档:用户有问题经常只能是去看源代码。 当UNIX传播到位于California的Berkeley大学的时候,Berkeley大学的使用者们创建了自己的UNIX版本,在得到国防部得支持后,他们开发出了许多新的特性。但是,作为一个研究机构,Berkeley大学提供的版本和A T&T的版本一样,也没有技术支持。 当A T&T意识到这种操作系统的潜力后就开始将UNIX商业化,为了加强产品性能,他们在AT&T的不同部门进行UNIX系统开发,并且开始在系统中结合Berkeley开发出的成果。UNIX最终的成功可以归结为: 一个灵活的、包含多种工具的用户界面与操作环境。 模块化的系统设计可以很容易地加入新的工具。 支持多进程,多用户并发的能力。

unix基本命令

unix常用命令 a. 关於档案/目录处理的指令: 1. ls 这是最基本的档案指令。 ls 的意义为 "list",也就是将某一个目录或是某一个档案的内容显示出来。 如果你在下 ls 指令後头没有跟著任何的档名,它将会显示出目前目录中所有档案。 也可以在 ls 後面加上所要察看的目录名称或档案的名称,如 % ls /home2/X11R5 % ls first ls 有一些特别的参数,可以给予使用者更多有关的资讯,如下: -a : 在 UNIX 中若一个目录或档案名字的第一个字元为 "." , 则使用 ls 将不会显示出这个档案的名字,我们称此类档案为隐藏档。如 tcsh 的初设档 .tcshrc;如果我们要察看这类档案,则必须加上参数 -a 。 -l : 这个参数代表使用 ls 的长( long )格式,可以显示更多的资讯, 如档案存取权,档案拥有者( owner ),档案大小,档案最後更新 日期,甚而 symbolic link 的档案是 link 那一个档等等。如下 % ls -l drwx--x--x 2 jjtseng 512 Aug 8 05:08 18 drwx--x--x 2 jjtseng 512 Aug 8 22:00 19 -rw------- 1 jjtseng 566 Aug 8 05:28 makefile 2. cp cp 这个指令的意义是复制("COPY") , 也就是将一个或多个档案复制成另 一个档案或者是将其复制到另一个目录去。 cp 的用法如下: cp f1 f2 : 将档名为 f1 的档案复制一份为档名为 f2 的档案。 cp f1 f2 f3 ... dir : 将档案 f1 f2 f3 ... 都以相同的档名复制一 份放到目录 dir 里面。 cp -r dir1 dir2 : 将 dir1 的全部内容全部复制到 dir2 里面。

UNIX系统开发-sdb命令使用:程序执行控制

UNIX系统开发-sdb命令使用:程序执行控制 我们说程序调试的主要目的是观察变量的变化情况。但如果程序就一直不停地运行直至它终止或出错时才停下来的话,将没有机会去观察任何变量。因此,如何有效地控制程序中各语句的执行,使之在适当的时候暂停下来,待调试人员在显示或设置了某些存储单元的值之后再从停下的地方继续执行下去,是调试程序应具有的一项基本功能。在这一节中我们就来具体介绍如何控制程序的运行。 对程序执行控制的第一个问题是设置断点。一个断点实际上就是程序中某行语句。当程序执行到这条语句时控制会重复返回到sdb,由此提供给用户进行其他操作,如显示变量值的机会。 1.断点的设置和删除 在sdb中设置断点的方法比较多。但基本是b命令的变种。例如,我们可以使用如下语句在main()函数的第一个可执行行(非变量定义这类语句)设置一个断点: * main:b 也可以直接用行号来设置断点。例如,在myprog.c中,第10行是main()函数中的第一个可执行语句,则使用如下命令也能达到同样的效果: * 10b 注意这是在myprog.c为当前文件的情况下进行的。 如果直接输入: * b 命令,则可将当前行设成是一个断点。但是若当前行不是一个可执行语句,那么sdb将把当前行之后的第一个可执行语句处设置一个断点。 在设置完断点之后,为了解程序中设置有哪些断点,可以使用B命令: * B

0x80483f0 myprog.c:10 main+0x8 0x80483f7 myprog.c:11 main+0xf 0x8048407 myprog.c:12 main+0xlf 0x8048440 myprog.c:9 T estInput 0x8048447 myprog.c:10 TestInput+ 0x7 0x804482 myprog.c:13 T estInput+ 0x42 在设置完断点之后要将其删除,可以使用d命令。如: * main:d sdb将把在main()函数中设置的第一个可执行行上的断点删除。如果直接使用d命令,sdb 将逐个列出所有断点并询问用户是否删除之。回答y断点将被删除。使用D命令则可删除程序中设置的所有断点。 2.sdb中启动程序的运行 在设置好所需的断点之后我们就可以重新启动程序的运行了。这可以使用r命令。如: * r 111 2 BREAKPOINT process 554 function main() in myprog.c 10: for(i=1;i

相关文档
最新文档