文档库 最新最全的文档下载
当前位置:文档库 › 使用 UNIX find 命令的高级技术

使用 UNIX find 命令的高级技术

使用 UNIX find 命令的高级技术
使用 UNIX find 命令的高级技术

使用UNIX find 命令的高级技术

本文介绍如何使用find 命令浏览UNIX? 文件系统中丰富的内容。find 命令是UNIX 程序员的技能中功能最强大和最有用的命令之一。各种版本的UNIX 都具有可以包含数以千计的不同类型文件的文件系统。有了如此之多的选择,要定位一个特定文件或文件集,将变得非常困难。而find 命令能通过许多方式,让这项任务变得更加轻松。

没有什么能比得上探索和发现新的人、地方、事物所带来的刺激。领域可能有所不同,但有些原则却是一样的。在这些原则中,有一条是记录下您的旅程,另一条则是了解和使用工具。

UNIX? 操作系统很像一片广阔的、未经标识的荒野。当您在这样的领域中旅行时,可以选择一些日后能够给您带来帮助的工具。find 命令便是这样一种工具。find 命令不仅能够简单地用来定位文件,正如本文将介绍的那样,它还可以自动地执行其他UNIX 命令的序列,其中使用所查找到的文件名作为输入。

Find 的有关限制

所有称职的操作系统都具有协助您查找相关内容的工具。与大多数工具不同的是,UNIX 中的find 命令可以自动地对其查找到的文件执行许多操作。

图形用户界面(GUI) 中的标准find 工具允许您对所查找到的文件进行一些常规操作任务:您可以将它们标记为剪切、复制和粘贴,您可以将它们移动到一个新的位置,并且可以使用创建它们的应用程序来打开它们。这些操作涉及到两个或更多的步骤,并且不是自动完成的,即首先查找到文件,然后使用GUI 为下一步的操作对它们进行标记。这种方法对许多用户来说没有问题,但是Explorer 需要的不仅是这些。

UNIX 的find 命令可以删除、复制、移动和执行其查找到的文件。另外,使用-exec 参数可以根据您所需要的UNIX 命令的序列来自动地运行这些文件。它甚至可以在对任何文件执行这些操作前,进一步让您进行确认。

简化文件系统的管理

与大多数UNIX 命令一样,UNIX find 命令具有一长串令人生畏的选项和开关,它们会阻碍人们深入地学习该命令,但正是因为其范围广阔,真正的Explorer 并不会被它们吓倒。一条好的通用原则在简化一个复杂问题时都会经过漫长的过程。启动一个xterm,并尝试执行下面的命令:

$ find . -name *.gif -exec ls {} \;

-exec 参数中包含了真正有价值的操作。当查找到匹配搜索条件的文件时,-exec 参数定义了将对这些文件进行什么操作。该示例告诉计算机进行如下操作:

从当前文件夹开始往下搜索,紧跟在find 之后,使用点号(.)。

2定位所有名称以.gif 结尾的文件(图形文件)。

3列出所有查找到的文件,使用ls 命令。

需要对-exec 参数进行更深入地研究。当查找到匹配搜索条件的文件名时,find 命令执行ls {} 字符串,用文件名和路径代替文本{}。假设在搜索中查找到saturn.gif 文件,find 将执行如下所示的命令:

$ ls ./gif_files/space/solar_system/saturn.gif

本文余下的内容建立在这条一般原则之上:仔细地使用find 命令可以让UNIX 文件系统的管理工作变得更加容易。例如,如果您使用了-fstype 参数,find 命令可以根据查找到的文件所处的文件系统的类型来对命令进行相应的处理。在find 命令对查找到的文件执行相应命令前将对您进行提示,这通常是非常有用的,您可以使用-ok 参数告诉它继续执行该操作,接下来我们将对其进行介绍。

可选的执行

-ok 是-exec 参数的一个重要的替代项,它的行为和-exec 一样,但它会提示您是否要对文件运行相应的命令。假设您想要删除home 目录中的大部分.txt 文件,但希望能够逐个文件地执行该操作。像UNIX 中的rm 命令那样的删除操作是很危险的,因为当使用像find 这样的自动化处理方式来查找文件时,它可能一不小心会删除重要的文件,您也许希望在删除这些系统查找到的文件之前对其进行仔细检查。

下面的命令列出了您的home 目录中所有的.txt 文件。要删除这些文件,必须在find 命令通过列出文件名提示您确认操作时输入Y 或者y:

$ find $HOME/. -name *.txt -ok rm {} \;

它列出了查找到的每个文件,并且系统将暂停以等待您输入Y 或者y。如果您按下Enter键,系统将不会删除该文件。清单1显示了一些示例结果:

清单 1. 示例结果

< rm ... /home/bill/./.kde/share/apps/karm/karmdata.txt > ?

< rm ... /home/bill/./archives/LDDS.txt > ?

< rm ... /home/bill/./www/txt/textfile1.txt > ?

< rm ... /home/bill/./www/txt/faq.txt > ?

< rm ... /home/bill/./www/programs/MIKE.txt > ?

< rm ... /home/bill/./www/programs/EESTRING.txt > ?

……

系统将在每个问号之后暂停,在本示例中,每次都按下了Enter 键以继续处理下一个文件。(没有删除任何文件。)-ok 参数允许您控制每个查找到的文件的自动化处理过程,这样就添加了一种避免自动删除文件的安全措施。

如果在使用-ok 参数时涉及到过多的文件,那么一个好的方法是先运行带-exec 的find 命令以列出所有将要删除的文件,然后在经过检查确保其中不会删除重要的文件后,再次运行该命令,其中用rm 代替ls。

-exec 和-ok 都非常有用,您必须确定在当前情况下哪一个能够更好的工作。请记住,安全第一!

创造性地使用find

您可以使用find 命令执行各种各样的任务。本部分内容提供了使用find 命令来管理文件系统的几种方式的示例。

为了保持简单,这些示例都避免了使用涉及通过管道将一个命令的输出传递到另一个命令的-exec 命令。然而,您完全可以根据自己需要在find 命令的-exec 子句中使用这样的命令。

清除临时文件

您可以使用find 命令来清除目录或子目录中在正常使用过程中生成的临时文件,这样可以节省磁盘空间。要实现该操作,请使用下面的命令:

$ find . \( -name a.out -o -name '*.o' -o -name 'core' \) -exec rm {} \;

括号中的文件掩码标识出了需要删除的文件类型,每个文件掩码的前面都有-name。该列表可以扩展为包括您需要清除的系统中的任何临时文件类型。在代码的编译和连接过程中,程序员及其工具会生成示例中的那些文件类型:a.out、*.o 和core。其他的用户通常也会生成类似的临时文件,可以使用如*.tmp、*.junk 等文件掩码来对命令进行相应的编辑。您可能还发现将命令放入一个称作clean 的脚本中非常有用,当需要清除一个目录中的内容的时候就可以执行该脚本。

复制目录中的内容

find 命令允许您复制目录中的全部内容,同时保持每个文件和子目录的权限、时间和所有权。要完成该操作,需要组合使用find 和cpio 命令,如下所示:

清单 2. 组合使用find 和cpio 命令

$ cd /path/to/source/dir

$ find . | cpio -pdumv /path/to/destination/dir

cpio 命令是一个复制命令,它设计用来将文件复制到或复制出一个cpio 或tar 存档文件,并自动地保持文件和子目录的权限、时间和所有权。

列出文本文件的第一行内容

有些人使用每个文本文件的第一行作为标题或者文件内容的描述。可以使用列出文件名和所有文本文件第一行内容的报表更方便地对大量的文本文件进行筛选。下面的命令在报表中列出了您的home 目录中所有文本文件的第一行内容,便于进一步地根据需要使用less 命令进行检查:

清单 3. less 命令

$ find $HOME/. -name *.txt -exec head -n 1 -v {} \; > report.txt

$ less < report.txt

维护LOG 和TMP 文件的存储空间

要为生成大量文件的应用程序维护LOG 和TMP 文件存储空间,可以将下列命令放入到每天运行的cron 任务中:

清单 4. 维护LOG 和TMP 文件存储空间

$ find $LOGDIR -type d -mtime +0 -exec compress -r {} \;

$ find $LOGDIR -type d -mtime +5 -exec rm -f {} \;

第一个命令找到$LOGDIR 目录中所有包含在24 小时内(-mtime +0) 进行了修改的数据的目录(-type d),并对它们进行压缩(compress -r {}) 以节省磁盘空间。如果这些目录超过了一个工作周(-mtime +5),第二个命令则将其删除(rm -f {}),以便增加磁盘上的可用空间。通过这种方式,cron 任务自动地根据您所指定的时间窗口对目录进行维护。

复制复杂的目录树

如果您想要将复杂的目录树从一台计算机复制到另一台计算机,同时保持副本权限以及User ID 和Group ID(UID 和GID——操作系统所使用的标记文件的所有权的数值),并且不复制用户文件,那么就需要再次使用find 和cpio:

清单 5. 复制复杂的目录树

$ cd /source/directory

$ find . -depth -print | cpio -o -O /target/directory

查找不指向任何地方的链接

要查找不指向任何地方的链接,可以使用带find 的perl 解释器,如下所示:

$ find / -type l -print | perl -nle '-e || print';

该命令从最顶层目录(/) 开始,列出由perl 解释器确定不指向任何地方(-nle '-e || print') 的所有链接(-type l -print),关于Unix Guru Universe 站点中这个技巧的更详细的信息,请参阅参考资料部分。如果您想要删除这些文件,可以进一步使用管道将输出传递到rm -f {} 命令。当然,Perl 可以在大多数的UNIX 工具包中找到,它是许多功能强大的解释性语言工具中的一种。

定位和重命名无法打印的目录

在UNIX 中,可能会有错误的或恶意的程序创建包含无法打印的字符的目录。定位和重命名这些目录,这样就可以更容易地检查并删除它们。要完成该操作,您首先需要在ls 中包含-i 开关,以获取该目录的索引节点的数值。然后,使用find 将索引节点的数值转换为一个可以使用mv 命令进行重命名的文件名:

清单 6. 定位和重命名无法打印的目录

$ ls -ail

$ find . -inum 211028 -exec mv {} newname.dir \;

列出长度为零的文件

要列出所有长度为零的文件,请使用下面的命令:

$ find . -empty -exec ls {} \;

在查找到空文件之后,您可以选择用rm 命令来代替ls 命令,以删除这些文件。

很明显,您对UNIX find 命令的使用受到知识和创造性的限制。

结束语

使用find 命令,可以轻松地浏览UNIX 文件系统中丰富的内容。很值得花时间来试验该命令,并了解它能为您做些什么。正如本文中所列出的示例,您可以通过许多创造性的方式来使用find,这样可以轻松地浏览和管理文件系统,并且充满乐趣。

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.wendangku.net/doc/ba15787468.html,。它是一台在美国的,连上Internet的Unix主机。之所以告诉大家这个地址是因为它提供免费的帐号供大家使用。是免费的。就是说你可以先去那里申请一个帐号,然后在那里练习你所学到的Unix 命令。因为我相信不是每个朋友都可以轻松地得到Unix帐号的。在你成功的申请好帐号之后,请在你Windows95的dos窗口里输入"telnet https://www.wendangku.net/doc/ba15787468.html," 等待连上主机。接下来就是输入你的用户名和密码,不要告诉我这些你都不会,如果你不会的话,你是怎么连到这个网页的?现在假定你连上了主机,系统的提示符应该是"https://www.wendangku.net/doc/ba15787468.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里你是无法修改系统时间的。输出时间一般是格林

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 源目标文件的链接

Linux find命令常见用法汇总

Linux find命令常见用法汇总 导读:Linux系统中查找文件的命令式find,find命令具有强大的功能,能够提供多种查找条件,下面小编就给大家带来Linux中find命令的常见用法汇总,一起来学习下吧。 ·find path -option [-print ][-exec -ok command ]{} \; find命令的参数; pathname:find命令所查找的目录路径。例如用。来表示当前目录,用/来表示系统根目录。 -print:find命令将匹配的文件输出到标准输出。 -exec:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为‘command’ { } \;,注意{ }和\;之间的空格。 -ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 #-print 将查找到的文件输出到标准输出 #-exec command {} \; —–将查到的文件执行command操作,{} 和\;之间有空格 #-ok 和-exec相同,只不过在操作前要询用户 例:find 。-name .svn | xargs rm -rf ==================================================== -name filename #查找名为filename的文件 -perm #按执行权限来查找 -user username #按文件属主来查找

-group groupname #按组来查找 -mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前-atime -n +n #按文件访问时间来查GIN:0px“》 -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在 -nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存 -newer f1 !f2 找文件,-n指n天以内,+n指n天以前 -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在 -nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存 -newer f1 !f2 #查更改时间比f1新但比f2旧的文件 -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件 -size n[c]#查长度为n块[或n字节]的文件 -depth #使查找在进入子目录前先行查找完本目录 -fstype #查更改时间比f1新但比f2旧的文件 -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件 -size n[c]#查长度为n块[或n字节]的文件 -depth #使查找在进入子目录前先行查找完本目录 -fstype #查位于某一类型文件系统中的文件,这些文件系统类型通常可在/etc/fstab中找到 -mount #查文件时不跨越文件系统mount点 -follow #如果遇到符号链接文件,就跟踪链接所指的文件 -cpio %; #查位于某一类型文件系统中的文件,这些文件系统类型通常可在/etc/fstab中找到 -mount #查文件时不跨越文件系统mount点 -follow #如果遇到符号链接文件,就跟踪链接所指的文件 -cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中 -prune #忽略某个目录 ===================================================== $find ~ -name ”*.txt“ -print #在$HOME中查.txt文件并显示 $find 。-name ”*.txt“ -print $find 。-name ”[A-Z]*“ -print #查以大写字母开头的文件 $find /etc -name ”host*“ -print #查以host开头的文件 $find 。-name ”[a-z][a-z][0–9][0–9].txt“ -print #查以两个小写字母和两个数字开头的txt文件 $find 。-perm 755 -print $find 。-perm -007 -exec ls -l {} \; #查所有用户都可读写执行的文件同-perm 777 $find 。-type d -print $find 。!-type d -print $find 。-type l -print $find 。-size +1000000c -print #查长度大于1Mb的文件

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替换光标出的字符

15个极好的Linux find命令示例

前阵子,我们审查了15件实事find命令的例子(第一部分)。查找命令可以做很多比只是在寻找基于名称的文件(第2部分)在这篇文章中,让我们来讨论15高级find命令的例子,包括-根据它访问,修改或改变的时间查找文件,查找文件相比之下,执行操作找到的文件等。 基于访问/修改/更改时间查找文件 你可以找到基于以下三个文件的时间属性的文件。 1.访问时间的文件。文件访问时,访问时间得到更新。 2.的文件的修改时间。文件内容修改时,修改时间得到更新。 3.更改文件的时间。更改时间时,被更新的inode数据的变化。 在下面的例子中,min选项之间的差异和时间选项是参数。 ?分论点将它的参数为分钟。例如,60分钟(1小时)= 60分钟。 ?时间参数,将它的参数为24小时。例如,时间2 = 2 * 24小时(2天)。 ?虽然这样做的24个小时计算,小数部分都将被忽略,所以25小时为24小时,和47小时取为24小时,仅48小时为48小时。要获得更清晰的参考atime的部分find 命令的手册页。 例1:找到在1个小时内被更改的文件 想要通过文件修改时间找出文件,可以使用参数-mmin -mtime。下面是man手册中有关mmin和mtime的定义。 ?-mmin n文件最后一次修改是在n分钟之内 ?-mtime n文件最后一次修改是在n*24小时之内(译者注:也就是n天了呗)执行下面例子中的命令,将会找到当前目录以及其子目录下,最近一次修改时间在1个小时(60分钟)之内的文件或目录 1 # find . -mmin -60

同样的方式,执行下面例子中的命令,将会找到24小时(1天)内修改了的文件(文件系统根目录/ 下) 1 # find / -mtime -1 例2:找到1个小时内被访问过的文件 想要通过文件访问时间找出文件,可以使用参数-amin -atime。下面是man手册中有关amin和atime的定义。 ?-amin n文件最后一次访问是在n分钟之内 ?-atime n文件最后一次访问是在n*24小时之内 执行下面例子中的命令,将会找到当前目录以及其子目录下,最近一次访问时间在1个小时(60分钟)之内的文件或目录 1 # find . -amin -60 同样的方式,执行下面例子中的命令,将会找到24小时(1天)内被访问了的文件(文件系统根目录/ 下) 1 # find / -atime -1 例3:查找一个小时内状态被改变的文件 (译者注:这里的改变更第1个例子的更改文件内容时间是不同概念,这里是更改的是文件inode的数据,比如文件的权限,所属人等等信息) 要查找文件的inode的更改时间,使用-cmin和-ctime选项 ?-cmin n文件的状态在n分钟内被改变 ?-ctime n文件状态在n*24小时内(也就是n天内)被改变 (译者注:如果上面的n为-n形式,则表示n分钟/天之内,n为+n则表示n分钟/天之前) 下面的例子在当前目录和其子目录下面查找一个小时内文件状态改变的文件(也就是60分钟内): 1 # find . -cmin -60 同样的道理,下面的例子在根目录/及其子目录下一天内(24小时内)文件状态被改变的文件列表: 1 # find / -ctime -1 例4:搜索仅仅限定于文件,不显示文件夹

UNIX常用命令简介

UNIX常用命令简介使用说明: 除斜体字部分外,其它要求新员工全部掌握。修改记录: 2000年12月26日第一版

目录 4第0章建立自己的环境 1、CSH4 2、BSH/SH4 3、KSH4 4第一章目录及文件操作 1、ls4 2、pwd5 3、cd5 4、mkdir5 5、more5 6、cp5 7、mv6 8、rm6 9、chmod6 10、chown7 11、diff7 12、wc7

13、touch7 14、find8 15、grep8 16、vi9 15第二章设备管理 1、mount15 2、umount15 3、tar15 4、du16 5、ioscan16 6、cpio16 16第三章进程管理 1、ps16 2、kill16 17第四章系统管理和用户 管理 1、who17 2、passwd17 3、su17

4、date17 5、shutdown17 6、echo18 7、env18 8、uname18 9、netstat18

第0章建立自己的环境 1、CSH 在使用C-SHELL时,有两个环境文件需要配置:.cshrc 和.login(以“.”开头的文件通常的情况下是隐藏的,可以采用命 令“ls -a”查看)。 .cshrc设置说明 umask 027 # 设置创建文件时的缺省权限 set history = 32 # 设置需要记忆的历史命令数目 setenv WORK_DIR $HOME # setenv 用于csh设置环境变量 setenv TERM vt100 # 设置终端类型 setenv PATH /opt/softbench/bin:/usr/bin/X11:/usr/c++/bin:/usr/contrib/bin: \ /usr/local/bin:/usr/contrib/bin/X11:/usr/local/bin/X11: \ /opt/ansic/bin:/opt/nettladm/bin:/opt/graphics/common/bin: \ /opt/upgrade/bin:/opt/CC/bin:/opt/langtools/bin:/opt/imake/bin: \ ${PATH}:.:${INFORMIXDIR}/bin:${INFORMIXDIR}/lib/esql # 设置执行搜索路径 .login设置说明 stty erase "^H" kill "^U" intr "^C" eof "^D" susp "^Z" \

find和xargs的组合用法

find和xargs的組合用法 一、find 命令格式 1、find命令的一般形式为; find pathname -options [-print -exec -ok ...] 2、find命令的参数; pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 -print:find命令将匹配的文件输出到标准输出。 -exec:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。 -ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 3、find命令选项 -name 按照文件名查找文件。 -perm 按照文件权限来查找文件。 -prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find 命令忽略。 -user 按照文件属主来查找文件。 -group 按照文件所属的组来查找文件。 -mtime -n +n 按照文件的更改时间来查找文件,- n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n 天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。 -nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。 -nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。 -newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。 -type 查找某一类型的文件,诸如: b - 块设备文件。 d - 目录。 c - 字符设备文件。 p - 管道文件。 l - 符号链接文件。 f - 普通文件。 -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。

如何利用find命令查找文件

如何利用find命令查找文件 find命令会在指定目录及其子目录下查找符合条件的特定文件。此命令的最大用处是当忘了文件的正确所在,而想找到该文件。命令格式find 目录名条件目录名—欲开始寻找的目录所在。find会寻找此目录及其子目录。可以有多个目录名称,只要目录与目录之间用空格分开即可。条件—欲搜索文件的条件,可包含文件名称、属主、最后修改时间等等。条件列表说明-name name 指定要被寻找的文件或目录名称,可用通配符,如, -name ‘*.c’-print 将符合条件的路径打印出来-size n 寻找占用n个block的文件-type x 以文件类型作为寻找条件。文件类型x如下:d —目录(directory), f —文件(file),b —块(block), c —字符(character),p —管道(pipe)-user user 寻找属于user所拥有的文件,user可为用户名或uid号-group group 寻找用户组为group的所有文件,group可为组名称或gid号-links n 寻找链接数等于n的所有文件-atim n 寻找n天之前曾被存取的文件-mtime n 寻找n天之前曾被修改的文件-exec command {}\; 用寻找到的文件作为执行command的对象,{}内存欲执行command时所需的参数条件的逻辑运算符:逻辑运算符逻辑意义举例说明!非!-name “*.c”所有不以.c为扩展名的文件-o 或-size +10 -o -links 3 所有大于10block或链接数为3的文件与-size +10 -links 3 大于10block且链接数为3的文

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”。

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命令进入该目录,在该目录中建立文件或子目录等。 -表示无权限。

FIND命令大全

Linux Find命令精通指南 作者:Sheryl Calish 简单介绍这一无处不在的命令的强大的方面以及混乱的方面。 2008年7月发布 Linux find命令是所有Linux命令中最有用的一个,同时也是最混乱的一个。它很难,因为它的语法与其他Linux命令的标准语法不同。但是,它很强大,因为它允许您按文件名、文件类型、用户甚至是时间戳查找文件。使用find命令,您不但可以找到具这些属性任意组合的文件,还可以对它找到的文件执行操作。 本文的目的是,通过概述find命令的用途和潜能,简化该命令的学习和使用。同时,它将针对find命令的某些最强大但最混乱的方面提供一个基本的指南和参考。 [注意:本文使用的find版本是GNU版本,因此,某些细节可能与其他版本的find有所不同。] 基本格式 开始之前,我们先来看一下find命令的基本结构: find start_directory test options criteria_to_match action_to_perform_on_results 在以下命令中,find将开始在当前目录(用“.”表示)中查找任何扩展名为“java”的文件:find.-name"*.java" 下面是该命令所找到的命令的缩略清单: find.-name"*.java" ./REGEXPvalidate/src/oracle/otnsamples/plsql/ConnectionManager.java ./REGEXPvalidate/src/oracle/otnsamples/plsql/DBManager.java .. [注意:如果您从本文剪切并粘贴来运行该find命令,您可能需要使用自己的键盘替换双引号(“”)才能得出正确的结果。] 以下命令将执行相同的操作。在这两种情况下,您都需要对通配符进行转义以确保它传递到find命令并且不由shell解释。因此,请将您的搜索字符串放到引号里,或者在它前面加上反斜线:

unix-100条基本命令

UNIX 操作入门和100多个命令 unix 入门 ..登录步骤 ========= login : _______ => 输入username password : _______ => 输入密码 ..退出步骤 ========= % logout 或% exit 或% 更改帐号密码 ============ % passwd => 执行后将会出现下列讯息 Changing NIS password for user on ice. Old password: ______ => 输入旧密码 New password: ______ => 输入新密码(最好6-8字,英文字母与数字混合) Retype new password: ______ => 再输入一次密码 在线指令说明 ============ 执行格式:man command-name Example: % man ls 进入远端电脑系统 ================ 执行格式:rlogin hostname [-1 username] Example: %rlogin doc remote login 进入工作站doc 中。 %rlogin doc -l user 使用user 帐号进入工作站doc 中。 执行格式:telnet hostname 或telnet IP address Example: %telnet doc or %telnet 140.109.20.251 文件或目录处理 ================== .列出文件或目录下之文件名称 执行格式:ls [-atFlgR] [name] ( name 可为文件名或目录名称。)

linux查找文件命令find

linux查找文件命令find 每一种操作系统都是由成千上万个不同种类的文件所组成的。其中有系统本身自带的文件,用户自己的文件,还有共享文件等等。我们有时候经常忘记某份文件放在硬盘中的哪个地方。在微软的WINDOWS操作系统中要查找一份文件是相当简单的事情,只要在桌面上点击“开始”-“搜索”中就能按照各种方式在本地硬盘上,局域网络,甚至在INTERNET上查找各种文件,文档。 可是使用Linux的用户就没有那么幸运了,在Linux上查找某个文件确实是一件比较麻烦的事情。毕竟在Linux中需要我们使用专用的“查找”命令来寻找在硬盘上的文件。Linux下的文件表达格式非常复杂,不象WINDOWS,DOS下都是统一的AAAAAAA.BBB 格式那么方便查找,在WINDOWS中,只要知道要查找的文件的文件名或者后缀就非常容易查找到。Linux中查找文件的命令通常为“find”命令,“find”命令能帮助我们在使用,管理Linux的日常事务中方便的查找出我们需要的文件。对于Linux新手来说,“find”命令也是了解和学习Linux文件特点的方法。因为Linux发行版本繁多,版本升级很快,在Linux 书籍上往往写明某个配置文件的所在位置,往往Linux新手按图索骥还是不能找到。比如说REDHAT Linux 7.O和REDHAT Linux 7.1中有些重要的配置文件所在的硬盘位置和文件目录就有了很大的改变,如果不学会使用“find”命令,那么在成千上万的Linux文件中要找到其中的一个配置文件是相当困难的,笔者在没有精通“find”命令之前就吃过这样的苦头。好,下面就详细为大家介绍强大的“find”命令的全部使用方法和用途。 通过文件名查找法: 这个方法说起来就和在WINDOWS下查找文件一样容易理解了。如果你把这个文件放在单个的文件夹里面,只要使用常见的“ls"命令就能方便的查找出来,那么使用“find”命令来查找它就不能给你留下深刻的印象,毕竟“find”命令的强大功能不止这个。如果知道了某个文件的文件名,而不知道这个文件放到哪个文件夹,甚至是层层套嵌的文件夹里。举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录下,甚至在系统的某个地方也不知道,则这是可以使用如下命令: find / -name httpd.conf 这个命令语法看起来很容易就明白了,就是直接在find后面写上-name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可。稍等一会系统会在计算机

UNIX操作基本命令

UNIX操作基本命令 (一)基本命令 1. ls 显示文件名,等同于dos下dir命令 命令格式:ls [option] file option : 域1: 文件类型和文件权限 域2: 文件连接数 域3: 文件所有者名字 域4: 文件用户组名字 域5: 文件长度 域6-8: 最近修改日期 域9: 文件名 -a 显示所有义件,包含隐臧文件(以 .起头的文件名) -R 显示文件及所有子目录 -F 显示文件(后跟*)和目录(后跟/) -d 与l选项合用,显示目录名而非其内容 2. cd 目录转换,等同于dos下cd命令 注意目录分隔符为"/,”与dos相反 命令格式:cd dirname 3. pwd 显示当前路径 4. cat 显示文件内容,等同于dos下type命令 命令格式:cat filename 5. more 以分页方式查看文件内容 命令格式:more filename 6. rm 删除文件 命令格式:rm [-r] filename (filename可为档名,或档名缩与符号。)例子: rm file1 删除档名为file1之文档。 rm file ? rm f* rm -r dir1 7. mkdir 创建目录删除档名中有五个字符,前四个字符为file之所有文档。删除档名中,以f为自首的所有文档。 删除目录dir1,及其下所有文档及子目录。 命令格式:mkdir 例子: [-p] directory-name

mkdir dirl 建立新一级目录dirl mkdir -p dir/subdir 直接创建多级目录 8. rmdir 删除目录 目录必须首先为空 命令格式: rmdir directory 9. cp 文档复制 命令格式:cp [-r] source destination cp file1 file2 将文档file1复制成file2 cp file1 dir1 将文档file1复制到目录dir1下,文件名仍为file1 cp /tmp/file1. 将目录/tmp下的文档file1复制到现行目录下,档名仍为file1 cp /tmp/file1 file2 将目录/tmp下的文档file1复制到现行目录下,档名为file2 cp -r dir1 dir2 (recursive copy)复制整个目录右目录dir2存在,则将目录dir1 , 及其所有文档和子目录复制到dir2目录下,新目录名称为dri1。若 目录dir2不存在,则将dir1,及^文档和子目录,复制为目录dir2。 10. mv 文件移动 命令格式:mv source destination mv file1 file2 将文档file1,更改档名为file2 mv file1 dir1 将文档file1,移到目录dir1下,档名仍为file1 mv dir1 dir2 若目录dir2存在,则将目录dir1,及其所有档案和子 目录移到目录dir2下,新目录名称为dir1,若目录dir2 不存 在,则将dir1 ,及其所有文档和子目录,更改为目录dir2。 11. du 查看目录所占磁碟容量 命令格式:du [-sk] directory 例子: du dir1 显示目录dir1的总容量及其次目录的容量 du -sk dir1 显示目录dir1的总谷重,以k bytes为计重 12. find 文件查找 命令格式:find dir -name filename command 例子:

相关文档