创建文件
可以使用 cat 命令创建包含文本的文件。例如,要创建名为“myfile”的文件,请按如下方式使用 cat 命令:
$ cat > myfile
键入此命令之后,光标位于空文件的第一行。键入文本并在每一行的结尾按 Enter 键。要退出文件,请在按住 CTRL 键的同时按 D。cat 命令会使您返回命令行提示符。
可以使用 cat 命令创建自己的 myfile 版本。例如,可以创建以下文件:
$ cat > myfileThe text I am typing will be stored in "myfile". EnterI press RETURN at the end of each line. EnterWhen I'm finished, I hold down the CTRL key and press D. EnterCTRL-D
列举文件
要验证 cat 是否创建了 myfile,请运行 ls 命令,该命令会列出文件名。同时运行 ls 命令和该文件名可以确认该文件是否存在,但不会列出其他文件。
ls(1)
$ ls myfile
myfile ls 命令列出了 myfile。
要查看有关文件的其他信息,请使用 ll (long listing) 命令。
ll(1)
$ ll myfile
-rw-r--r-- 1 myname mygroup 146 8 月 4 日 14:13 myfile
上一行开头的神秘字符 (-rw-r--r--) 表示所有者、组用户和其他用户读和(或)写文件的权限。“1”表示与此文件相关的链接(名称)数,“myname”通常是指登录名,“mygroup”是由管理员指定的名称,该名称属于与您一起工作的用户组,“146”是文件的字节(字符)数,接下来是上次修改文件的日期,最后是文件名。
命名文件
选择文件名时,名称长度和所包括的字符类型需要遵循特定的规则。
命名文件的准则
选择文件名时,请牢记以下规则:
通常,文件名最多可以包含 256 个字符(对于非 ASCII 字符集,为 256 字节)。这些字符可以为以下任何一种组合:
大写或小写字母(A 到 Z;a 到 z)
数字(0 到 9)
特殊字符,如:+、-、_ 和 .
根据上述规则,以下文件名为有效名称:
有效名称
money
Acct.01.87
CODE.clost+found
112.3-data
foo_bar
HP-UX 中的文件名区分大小写。因此,下列所有文件名均互不相同:
money
Money
MoneY
MONEY
注释:短文件名系统:
在某些计算机上,文件名长度不能超过 14 个字符。如果不确定所用的计算机是否可以支持较长的文件名,请向系统管理员核实。另外,还可以尝试创建一个具有较长名称的文件,查看该文件名是否会被截短。
隐藏文件名
第一个字符是点 (.) 的文件名为隐藏文件名,因为 ls 命令不能正常显示该文件名。如果不希望或不需要在运行 ls 时显示某些文件,请使用隐藏文件名。
举例来说,登录时系统运行隐藏启动文件,即登录脚本(用于定制工作环境)。有关登录脚本的详细信息,请参阅第 3 章 “使用 Shell”中的“使用登录脚本设置系统环境 ”。
为使 ls 可以列出隐藏文件名(包括登录脚本的名称),请同时运行该命令和 -a 选项:
$ ls -a
使用 -a 查看隐藏文件名。
.profile
myfile
这是 POSIX Shell,所以显示 .profile。
隐藏文件或“点文件”通常用于存储配置信息。如果不清楚文件的用途,请不要将其删除。
查看和打印文件
使用 more 命令,可以逐屏查看文本文件。如果正确配置了系统,可以使用 lp 命令打印文本文件。
使用 more 查看文件
more 命令将文本文件的内容显示在屏幕上。例如,以下 more 命令显示 myfile
的内容:
more(1)
$ more myfileThe text I am typing will be stored in "myfile".I press RETURN at the end of each line.When I'm finished, I hold down the CTRL key and press D.
如果文件包含的行数比屏幕上显示得多,more 在满屏的情况下会暂停。对于较长的文件,请按空格键继续查看其他屏幕;结束查看时请按 Q。然后,more 使您返回系统提示符。
尝试在系统文件 /etc/passwd 中运行 more:
$ more /etc/passwdroot:XOSDMfBA.hqs6:0:3::/:/usr/bin/shdaemon:*:1:5::/:/usr/bin/shbin:*:2:2::/bin:/usr/bin/shadm:*:4:4::/var/adm:/usr/bin/sh More(4%)
屏幕底部的“More(4%)”消息表示迄今为止您已查看了 4% 的文件,还有 96% 的文件尚待查看。此时,执行下列任何操作:
按空格键,逐页滚动查看文件。
按 B,逐页回滚查看。
按 Enter 键,逐行滚动查看文件。
按 Q,结束查看文件并退出 more。
显示文件的前几行和后几行
通常,只需查看文件的起始部分(开头)或结束部分(结尾)。
要查看文件的前几行但不使用文本编辑器,请使用 head 命令:
head(1)
$ head filename
缺省情况下,将显示 filename 的前 10 行(包括空行)。例如:
CONFERENCE NOTES Attendees:
Mary Sam Nina George Raphael Sergei
要查看文件的后 10 行(缺省值),请使用 tail 命令:
tail(1)
$ tail filename
将显示 filename 的后 10 行(包括空白行)。
head 和 tail 均可附带数字参数。例如,使用此命令显示 file1 的前 25 行:head -25 file1
使用 lp 打印文件
使用 lp (line printer) 命令可以打印文本文件。例如:
lp(1)
$ lp myfile
lp 命令将显示一条消息,表明它已将文件发送到打印机。例如:
请求的 id 是 lp-number (1 file)
其中,number 是 lp 命令指定给打印作业的 ID 号。如果看不到此消息,或看到错误消息,请向系统管理员咨询。应使用第一页上显示的用户名获得打印输出。打印输出所需的时间长短取决于系统当前运行的任务数和打印机的速度。
要配置打印机和设置 lp 假脱机程序,请使用 SAM(系统管理程序)。对于命令行打印机配置,请参阅《“Configuring HP-UX for Peripherals”》手册。对于命令行假脱机程序配置,请参阅《《管理系统和工作组》》手册。
使用 lpstat 获取打印机信息
要显示有关打印机状态(包括打印队列中打印作业的顺序)的报告,请键入:
lpstat(1)
$ lpstat -t
使用 cancel 取消打印请求
要取消打印请求,请输入 cancel 命令和请求的 ID 号:
cancel(1)
$ cancel request_id
重命名、复制和删除文件
要重命名文件,请使用 mv (move) 命令;要复制文件,请使用 cp (copy) 命令;要删除文件,请使用 rm (remove) 命令。
使用 mv 重命名文件
使用 mv 命令,可以按如下方式将文件 myfile 重命名为 foofile:
mv(1)
$ mv myfile foofile
要验证 mv 是否重命名了文件,请使用 ls 命令:
$ lsfoofile
要将 foofile 重新命名为 myfile,请键入:
$ mv foofile myfile
$ ls
使用 ls 验证此操作是否成功。
myfile
注意:如果将一个文件重命名为现有文件的文件名,则现有文件的内容将会丢失。
重命名文件时,一定不要将文件重命名为该目录下已有的文件名。否则,原先具有该文件名的文件内容将会丢失。为避免意外覆盖现有的文件,请使用 -i 选项。例如:
$ mv -i myfile foofile
在这种情况下,如果 foofile 存在,上述命令在覆盖文件之前会请求确认。
mv 命令还可用于将文件移动到系统中的其他位置。请参阅“在目录间移动和复制文件”。
使用 cp 复制文件
如果希望创建新版本但仍保留旧版本,则需要复制文件。例如,要复制 myfile 并将其命名为 myfile2,请键入:
cp(1)
$ cp myfile myfile2
这样,如果使用 ls 命令,将看到:
$ ls
myfile
myfile2
使用 more 查看 myfile2。将发现其内容与 myfile 的相同。
注意:如果粘贴文件的位置已有同名文件,则原有文件的内容将丢失。
为避免意外覆盖原有的文件,请使用 -i 选项。例如,如果尝试将 myfile 复制到当前目录下,并将其命名为 myfile2,而名为 myfile2 的文件已存在,则 cp 将请求是否覆盖原有的 myfile2:
$ cp -i myfile myfile2
覆盖 myfile2? (y/n)
使用 rm 删除文件
如果有不再需要的文件,应将其删除。删除不需要的文件可以为系统中的其他文件留出更多空间。例如,假定已结束对 myfile2 的操作,且不再需要它。要删除 myfile2,请键入:
rm(1)
$ rm myfile2
要查看 myfile2 是否已被删除,请使用 ls:
$ ls 此命令列出了剩下的文件。
myfile
注释:要让 rm 命令在删除文件之前提示您进行确认,请使用 -i 选项:
$ rm -i myfilemyfile: ? (y/n)
有关如何删除目录及其内容的信息,请参阅“删除目录 ”。
比较两个文件的内容
如果已知两个文本文件的内容非常相似,但是希望确定二者之间的差别或哪个文件已被更改,请执行以下操作:
首先,运行 ll,查看日期和时间字段,了解上次保存文件的日期和时间。例如:
-rw-r--r--
1 jim
users
1759
3 月 17 日 15:53 test1
-rw-r--r--
1 jim
users
2130
3 月 17 日 15:47 test2
test1 的保存时间晚于 test2,因为它的时间较新(大小亦有所改变)。
通过运行 diff 命令,可以确定 test1 和 test2 之间的差别:
diff(1)
$ diff test1 test2
例如,如果 test1 的内容是:
You are in a maze of twisty little passages which are all alike.
而 test2 的内容是:
You are in a maze of twisty little passages which are all different.
此命令将按行号指出找到的差别,并用“<”和“>”指出存在差别的文件:
3c3 相关的行号
< which are all alike. test1 的版本
---
> which are all different. test2 的版本
注意,diff 命令指出:如果删除标为“<”的一行,并添加标为“>”的另一行,则两个文件将相同。
连接两个文件
要附加到现有的文件,请使用 cat 命令和两个大于号 (>>)。>> 后的文件名表示要将第一个文件的内容附加到的文件。如果该文件存在,新数据将附加到该文件的结尾。如果该文件不存在,将另行创建。命令格式如下:
cat(1)
$ cat filename2 >> filename1
其中,filename2 是要重定向输出的文件,filename1 是要将输出附加到的文件的名称。
此方法还适用于命令输出。以下示例执行 date 命令,重定向输出,将其附加到 whoison 文件中:
$ date >> whoison
将输出附加到 whoison 中。
$ more whoison
显示 whoison 的内容。
pat
console
10月 4 日 08:50
上一个示例的输出。
terry
tty01
10月 4 日 11:57
kim
tty02
10月 4 日 08:13
1994 年 10 月 4 日 星期二, 13:20:16
新近附加的 date 的输出。
了解目录分级结构
目录树
HP-UX 目录可以包含文件和其他目录。因此,目录通常有父目录(上级),父目录中可能还有子目录(下级)。同样,每个子目录不仅可以包含其他文件,还可以包含更多子目录。由于目录的组织方式是分级进行的,所以为组织文件提供了一种逻辑方式。
有了目录的帮助,就可以将文件组织成可管理的且在逻辑上相关的组。例如,如果有若干不同的项目,且每个项目都有若干文件,则可为每个项目创建一个目录,并将每个项目的所有文件都存储在相应的目录下。
HP-UX 的目录结构类似一棵颠倒的树。这些目录(如下图中的椭圆形所示)通常包含更多目录,因此,典型的主目录扩展成了树状分支结构。
图 2-1 典型的 HP-UX 目录结构
每个目录还包含保存有实际文本、数据或代码的文件(如下图中的方框所示)。颠倒树结构的顶部是根目录,在路径名中用 / 表示。下图所示为系统目录结构的横向部分。
图 2-2 系统目录结构
确定在 HP-UX 目录分级结构中所处的位置
本部分讨论了 HP-UX 目录结构,并介绍了如何在目录结构中指定文件的位置。所有目录均位于最顶部的根目录(用斜线 (/) 表示)下。使用 HP-UX 时,在称为当前工作目录的目录下工作。登录时,HP-UX 将进入到主目录下。
下图所示为典型 HP-UX 目录结构的最上面两级。每个目录(包括根目录)都可以包含以逻辑方式组织的文件和更多目录。
图2-3HP-UX 目录结构
以下示例为用户 Leslie 的目录分级结构。当 Leslie 登录时,将位于她的主目录 leslie 下。
图2-4Leslie 的主目录