第四章 目录和文件命令 确定文件类型 在Solaris操作环境中有许多种文件类型,使用file命令可以很容易确定文件类型。当你需要打开或者读一个文件时,文件类型是很重要的。了解文件的类型有助于你确定使用哪个命令和程序。 命令格式 file filenames file命令的输出最常见的为以下几种情况: 1、text——示例包括ASCII文件、英语文本、命令文本和可执行的shell脚本 2、data——数据文件是那些由应用程序创建的文件。在有的情况下,数据文件的类型被指定,如FraneMaker文档,当file命令不能确定文件在哪个应用程序中创建时,输出仅仅指出这是一个数据文件。 3、可执行或者二进制——示例包括32位可执行文件、ELF编码文件和其他可执行的动态链接文件,这种文件类型指出文件为一个命令或者程序。 使用strings命令 strings命令在一个目标或者二进制文件中查找可打印字符串,这使你可以读嵌入到二进制文件中的文本字符串,该字符串对编程可能很有用。 更多的元字符 两个有用的元字符是重定向字符和管道字符。 重定向字符用来得到一个命令的输出,并把它指向一个指定的文件。 管道字符通常用在命令行中,得到一个命令的输出,并把它作为另外一个命令的输入。 浏览文件的内容 需要浏览一个长文本文件的内容,可以使用more命令。使用more命令,一次显示一屏文件文件的内容,在屏幕的底部显示下面信息: ――more――(n%) n表示已经显示文件内容的百分数。当整个文件内容显示完后,将出现shell提示符。 在线手册页就是采用more工具来显示的。因此下面表中的滚动键和用于控制手册页的是一样的。 命令格式 more filenames 滚动键 空格键:显示手册页的下一屏 回车键:一次滚动手册页的一行 b:回滚一屏 f:前滚一屏 q:退出man命令 /pattern:向前搜索pattern n:查找pattern的下一次出现 h:列出所有的滚动键 显示文本文件的内容 cat命令或者叫连接命令用于在屏幕上显示文本文件的内容。通常用于显示短文本文件的内容。因为cat不停顿地显示整个文件的内容。Cat命令也可以用于创建短文本文件,而不是使用编辑器来创建。 命令格式 cat filenames cat > filename 使用cat命令显示短文本文件的内容 为显示一个短文本文件的内容,执行以下命令: $ cat dante 当文件的内容超过一屏时,文件开头将滚过屏幕。如果使用一个滚动窗口,例如CDE终端窗口,可以使用上下滚动键来查看整个文件的内容。 使用cat命令来创建一个短文本文件 要创建一个文件文件,执行以下命令: $ cat > newfile 你可以开始键入新文件中的内容,保存文件的内容,在空行中按control-d。 连接多个文件 使用cat命令可以连接两个文件的内容到一个新文件中,例如: $ cat filename1 filename2 > newfile1 查看长文件 可以使用pg命令来查看一个超过一屏的长文件。该命令在显示了一屏以后将暂停,在页的底部显示:提示符,按回车键显示下一页,或者使用下面将要介绍的滚动键来滚动。当pg命令到达文件结尾时将显示一个(EOF):提示符,按回车将返回shell提示符。 命令格式 pg filenames 滚动键 Return滚动到下一屏 l<Return>显示下一行 d<Return>显示下半页 . <Return>重新显示当前页 +/pattern/<Return>向前搜索模式pattern $<Return>滚动到上一页 h<Return>显示帮助命令 q<Return>退出命令返回到shell提示符 显示文件开头几行 head命令可以显示一个或者多个文件的头几行,如果不带参数-n默认显示文件的头10行。 命令格式 head -n filenames 显示一个文件开头的指定行数 为显示一个文件开头前六行,执行以下命令: $ head –6 /usr/dict/words 显示一个文件最后几行 tail命令可以显示一个或者多个文件的最后几行,如果不带参数-n和+n则默认显示文件的头10行。如果使用-n参数,tail命令从文件结尾处开始计算行数,使用+n参数,tail命令从文件开头计算行数。 命令格式 tail –n filenames tail +n filenames 显示一个文件结尾的指定行数 为显示一个文件最后六行,执行以下命令: $ tail –6 /usr/dict/words 显示文件中指定点开始的行 要显示文件中指定点开始的行,执行以下命令: $ tail +23 /usr/dict/words 该命令显示/usr/dict/words文件中从第二十三行开头到结尾的行。 显示一个文件中行数、单词数、字符数 wc命令显示一个文件中行数、单词数、字符数 命令格式: wc options filenames 使用带选项的wc命令 你可以使用带选项的wc命令: -l 打印行数 -w打印单词数 -c打印字节数 -m打印字符数 使用不带选项的wc命令 $ wc danta 创建空文件 touch命令最常见的用法就是创建空文件如何文件或者目录名称已经存在,touch只是简单对访问时间更新到当前日期和时间。 命令格式 touch filenames 创建新文件或者目录时可以使用绝对或者相对路径。 创建新文件 要创建一个新文件,执行以下命令:(同时创建几个文件) $ touch mailbox project research 使用tee命令创建和添加文件 使用tee命令创建短文本文件,如果文件名不存在,文件被创建,文本被写入文件。如果文件名已经存在,文件的内容将被新文本覆盖。按回车键每行键入的内容都被保存到文件,同时该行文件的内容也被输出到屏幕,这表示改行文件已经被保存到文件中。要停止键入文件内容并关闭文件,按control-d。 命令格式 tee filename 创建一个文本文件 以下示例创建一个包括名称和电话号码的新文本文件: $ tee phone_list.txt 添加文本到一个文件 tee命令的-a选项允许添加文件的当前内容到一个文件而不是覆盖原有文件内容。 $ tee –a phone_list.txt 捕获和显示输出 下面示例中,ls命令的输出被捕获到一个名为logfile文件,同时logfile文件的内容一次一屏输出到屏幕上: $ ls –lR | tee logfile | more 创建目录 mkdir命令用于创建目录,可以使用绝对路径或者相对路径。该命令可以在同一命令行中指定多个目录名,同时创建多个目录。 命令格式 mkdir directory_names mkdir –p directory_pathnames 创建一个新目录 下面示例用于在user1的home目录中创建一个新目录 $ cd $ pwd /export/home/user1 $ mkdir Reports $ ls –dl Reports 你需要有相应的权限以创建目录,如果没有相应的权限,系统将显示一条错误信息。 创建多级目录 要创建多级目录,使用-p选项,例如: $ mkdir –p practice/dir1/admin 上例中, mkdir创建practice目录作为当前工作目录的子目录,同时还创建dir1目录作为practice子目录的子目录,另外还创建admin目录作为dir1子目录的子目录。 拷贝文件和目录 cp命令用来拷贝文件和目录 拷贝文件 cp命令可以拷贝一个文件的内容到另外一个文件,也可以拷贝多个文件而不覆盖已有文件。 命令格式 $ cp source_file destination_file $ cp source_files destination_directory $ cp –i source_file destination_file $ cp –i source_files destination_directory 拷贝一个文件到一个目录下另外一个文件 $ file3 feathers 拷贝多个文件 下面示例描述如何拷贝多个文件到一个目录中而不是当前目录中 $ feather1 feather2 dir1 拷贝时防止覆盖已有文件 使用-i选项在使用新文件覆盖已有文件给出确认提示。 1、yes,覆盖已有文件 2、no,不覆盖已有文件 拷贝一个目录 使用cp –r 命令拷贝一个目录及其内容到另外一个目录。如何目录不存在,使用cp命令创建该目录。 命令格式 cp –ri source_directorys destination_directory 不带r选项,不拷贝目录中的文件和子目录。 当时用-i选项时,在覆盖已有一个文件或者目录时给出一个确认信息。 文件和目录移动和改名 使用mv命令可以移动或者对文件和目录改名。该命令并不影响文件或者目录的内容。只是简单从旧位置改到新位置。旧位置相当于源,新位置相当于目标,如果目标目录不存在,将会被创建。 命令格式 mv [-i] source target_file mv [-i] source target_directory -I选项在覆盖已存在目标时给出确定提示。 对当前目录的文件改名 下面示例用于显示如何将当前目录的文件改名: $ mv nuts brands 移动文件到另外一个目录 下面示例用于显示如何移动一个文件到另外一个目录 $ mv brands ~ 对目录改名 下面示例显示如何将当前目录中的目录改名 $ mv maildir monthly 对另外一个目录下的文件改名 删除文件和目录 一旦一个文件不再需要时,可以使用rm命令来永久删除 删除文件 可以使用rm命令来一次删除一个或者多个文件 命令格式 rm –i filenames 删除多个文件 $ rm research project 使用-i选项可以在删除任何文件之前给出确认提示。
删除目录 可以使用rmdir和rm命令来删除一个不需要的目录 rmdir命令只是删除空目录 rm命令可以删除一个包含有文件的目录 命令格式 rmdir directory_names rm –ir directory_names 删除一个空目录 需要删除一个空目录,使用下面示例: $ rmdir emptydir 带内容删除一个目录 使用rm –r可以删除一个非空目录 使用rm –ir可以交互式删除一个非空目录 命令行打印 lp命令把文本文件放入到打印队列中。在命令行方式下,可以打印ASCII文本文件或者PostScript文件,不要使用该命令来打印数据文件,如打印由应用程序创建的二进制文件 命令格式 lp –option filenames 选项 -d指定提定的打印机,如果使用默认的打印机,不需要使用该选项 -o nobanner说明不需要打印banner页 -n指定要打印文件的份数 -m打印完成后,发送一个电子邮件通知 打印文件 送文件到打印机 要打印home目录下的feathers文件到默认的打印机,执行下列命令: $ lp ~/feathers 如果要指定一个打印机,使用-d选项,如下例: $ lp –d printerB ~/feathers 显示打印机的状态和队列 lpstat命令可以显示打印机的状态和队列。 命令格式 lpstat –options 选项 -p显示素有打印机的状态 -o显示所有输出请求的状态 -d显示系统默认的打印机 -t显示所有打印机的详细状态信息 -s显示所有打印机的状态总结信息 -a显示哪个打印机可以接收请求 显示所有打印请求的状态 要显示所有打印请求的状态,执行下面命令: $ lpstat –o
显示指定打印机队列中的打印请求 要显示指定打印机队列中的打印请求,执行以下指令: $ lpsatat printerA 确定所有已经配置的打印机状态 要确定所有已经配置的打印机状态,执行以下命令: $ lpstat –t 确定系统中已经配置的打印机 要确定哪个打印机已经在系统中配置好了,执行下面命令: $ lpstat –s
显示哪个打印机可以接收打印请求 要显示哪个打印机可以接收打印请求,执行以下命令: $ lpstat -a 删除一个打印请求 cancel命令可以取消先前使用lp命令发送的打印请求,要使用该命令,必须先使用lpstat命令来得到request-ID。 命令格式 cancel request-ID 取消打印请求 $ lpstat printerB printerB-5 printerB-6 $ cancel printerB-6 使用cancel –u username(loginID)用来取消特定用户的所有打印请求,例如: $ cancel –u user2 格式化和打印文件 使用pr命令来格式化和打印文件内容。该命令自动打印文件内容到终端屏幕用于浏览。默认情况下,pr命令每页打印一个header,最大66行文本和一个trail,包括五个空行。 每一页的Header包括文件名称、上次修改的日期和时间、页号。 命令格式 pr –options filenames 选项 执行pr命令时可以使用以下选项: +page从指定页开始打印 -column以多列方式打印文件(默认为单列方式) -d以双倍间距打印文件 -h header使用指定的header模式代替页header中的文件名 -l lines重新设置行数(默认情况为66行) -m合并文件到文本列 -t不打印header -n每行字符数 格式化和打印文件到屏幕 可以使用管道符号来打印和格式化文件到屏幕中。
|
|