[计算机软件及应用]linux学习笔记.doc_第1页
[计算机软件及应用]linux学习笔记.doc_第2页
[计算机软件及应用]linux学习笔记.doc_第3页
[计算机软件及应用]linux学习笔记.doc_第4页
[计算机软件及应用]linux学习笔记.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux 学习笔记目录管道2Linux管道的实现机制2常用命令7cd7chmod change mode 变更文件或目录的权限8df disk free 显示磁盘的相关信息11du 统计磁盘空间大小13grep15lslist18ntsysv 图形化设置系统服务命令19ps process status 报告程序状况20shutdown27sort 将文本文件内容加以排序28sudo30tail30top 查看cpu使用情况31管道管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入,常说的管道多是指无名管道,无名管道只能用于具有亲缘关系的进程之间,这是它与有名管道的最大区别。有名管道叫named pipe或者FIFO(先进先出),可以用函数mkfifo()创建。Linux管道的实现机制在Linux中,管道是一种使用非常频繁的通信机制。从本质上说,管道也是一种文件,但它又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题,具体表现为:限制管道的大小。实际上,管道是一个固定大小的缓冲区。在Linux中,该缓冲区的大小为1页,即4K字节,使得它的大小不象文件那样不加检验地增长。使用单个固定缓冲区也会带来问题,比如在写管道时可能变满,当这种情况发生时,随后对管道的write()调用将默认地被阻塞,等待某些数据被读取,以便腾出足够的空间供write()调用写。读取进程也可能工作得比写进程快。当所有当前进程数据已被读取时,管道变空。当这种情况发生时,一个随后的read()调用将默认地被阻塞,等待某些数据被写入,这解决了read()调用返回文件结束的问题。注意:从管道读数据是一次性操作,数据一旦被读,它就从管道中被抛弃,释放空间以便写更多的数据。1. 管道的结构 在 Linux 中,管道的实现并没有使用专门的数据结构,而是借助了文件系统的file结构和VFS的索引节点inode。通过将两个 file 结构指向同一个临时的 VFS 索引节点,而这个 VFS 索引节点又指向一个物理页面而实现的。2.管道的读写 管道实现的源代码在fs/pipe.c中,在pipe.c中有很多函数,其中有两个函数比较重要,即管道读函数pipe_read()和管道写函数pipe_wrtie()。管道写函数通过将字节复制到 VFS 索引节点指向的物理内存而写入数据,而管道读函数则通过复制物理内存中的字节而读出数据。当然,内核必须利用一定的机制同步对管道的访问,为此,内核使用了锁、等待队列和信号。 当写进程向管道中写入时,它利用标准的库函数write(),系统根据库函数传递的文件描述符,可找到该文件的 file 结构。file 结构中指定了用来进行写操作的函数(即写入函数)地址,于是,内核调用该函数完成写操作。写入函数在向内存中写入数据之前,必须首先检查 VFS 索引节点中的信息,同时满足如下条件时,才能进行实际的内存复制工作: 内存中有足够的空间可容纳所有要写入的数据; 内存没有被读程序锁定。 如果同时满足上述条件,写入函数首先锁定内存,然后从写进程的地址空间中复制数据到内存。否则,写入进程就休眠在 VFS 索引节点的等待队列中,接下来,内核将调用调度程序,而调度程序会选择其他进程运行。写入进程实际处于可中断的等待状态,当内存中有足够的空间可以容纳写入数据,或内存被解锁时,读取进程会唤醒写入进程,这时,写入进程将接收到信号。当数据写入内存之后,内存被解锁,而所有休眠在索引节点的读取进程会被唤醒。 管道的读取过程和写入过程类似。但是,进程可以在没有数据或内存被锁定时立即返回错误信息,而不是阻塞该进程,这依赖于文件或管道的打开模式。反之,进程可以休眠在索引节点的等待队列中等待写入进程写入数据。当所有的进程完成了管道操作之后,管道的索引节点被丢弃,而共享数据页也被释放。 因为管道的实现涉及很多文件的操作,因此,当读者学完有关文件系统的内容后来读pipe.c中的代码,你会觉得并不难理解。Linux 管道的创建和使用都要简单一些,唯一的原因是它需要更少的参数。实现与 Windows 相同的管道创建目标,Linux 和 UNIX 使用下面的代码片段:创建 Linux 命名管道int fd12; if(pipe(fd1) printf(pipe() FAILED: errno=%d,errno); return 1; Linux 管道对阻塞之前一次写操作的大小有限制。 专门为每个管道所使用的内核级缓冲区确切为 4096 字节。 除非阅读器清空管道,否则一次超过 4K 的写操作将被阻塞。 实际上这算不上什么限制,因为读和写操作是在不同的线程中实现的。Linux 还支持命名管道。对这些数字的早期评论员建议我,为公平起见,应该比较 Linux 的命名管道和 Windows 的命名管道。我写了另一个在 Linux 上使用命名管道的程序。我发现对于 Linux 上命名的和未命名的管道,结果是没有区别。Linux 管道比 Windows 2000 命名管道快很多,而 Windows 2000 命名管道比 Windows XP 命名管道快得多。例子:#include#includeint main()int n,fd2; / 这里的fd是文件描述符的数组,用于创建管道做准备的pid_t pid;char line100;if(pipe(fd)0) / 创建管道 printf(pipe create errorn);if(pid=fork()0) /这里是父进程,先关闭管道的读出端,然后在管道的写端写入“hello world close(fd0); write(fd1,hello wordn,11);else close(fd1); /这里是子进程,先关闭管道的写入端,然后在管道的读出端读出数据 n= read(fd0,line,100); write(STDOUT_FILENO,line,n);exit(0);常用命令Linux 系统如何由图形界面切换到命令界面,按 Ctrl+Alt+F1,退出 exit 。cd 一、Linux cd命令使用权限所谓使用权限,就是哪些系统用户有权限使用这个命令。Linux cd 命令使用权限:所有系统用户。二、Linux cd命令使用格式Linux cd命令使用格式:cd 目录名 (使用时无方括号)三、Linux cd命令功能Linux cd 命令功能:实现将当前用户的当前工作目录更改至 cd 命令中指定的目录或文件夹。如果未指定目标目录名(即只输入“cd”),则返回到当前用户的主工作目录。为了能够进入指定的目录,用户必须拥有对指定目录的执行和读权限(关于如何修改文件-文件夹权限可以查看:linux修改文件权限)。四、Linux cd命令使用举例例1:使用Linux cd 命令实现从当前目录退回到上一级目录。使用以下命令可以实现退回上级目录。cd . /注意 cd 后面有空格例2:使用Linux cd 命令实现进入当前目录的父目录的父目录。可以使用以下命令:cd ./. /注意 cd 后面有空格例3:使用Linux cd 命令进入指定文件夹 /home/cc/。可以使用以下命令:cd /home/cc/ /注意 cd 后面有空格这样就可以进入到指定目录了。例4:使用Linux cd 命令进入系统根目录。进入系统根目录可以使用“ cd . ”一直退,就可以到达根目录。当然也可以直接使用下面的命令。cd /例5:使用Linux cd 命令进入当前用户主目录。“当前用户主目录”和“系统根目录”是两个不同的概念。进入当前用户主目录有两个方法。方法1:使用下面的cd命令cd方法2:cd /注意cd后面有空格这两种方法都可以实现进入当前用户主目录。chmod change mode 变更文件或目录的权限功能说明:变更文件或目录的权限。使用权限 : 所有使用者语法:chmod -cfRv-help-version+/-/=文件或目录. 或 chmod -cfRv-help-version数字代号文件或目录. 或 chmod -cfRv-help-reference=-version文件或目录. 说明 : Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。在UNIX系统家族里,文件或目录权限的控制分别以读取,写入,执行3种一般权限来区分,另有3种特殊权限可供运用,再搭配拥有者与所属群组管理权限范围。您可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果您对符号连接修改权限,其改变会作用在被连接的原始文件。权限范围的表示法如下: mode : 权限设定字串,格式如下 : ugoa.+-=rwxX.,.,其中u User,即文件或目录的拥有者。g Group,即文件或目录的所属群组。表示与该档案的拥有者属于同一个群体(group)者,o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。表示其他以外的人,a All,即全部的用户,包含拥有者,所属群组以及其他用户。表示这三者皆是。有关权限代号的部分,列表于下: -:不具任何权限,数字代号为0。 s:特殊?b功能说明:变更文件或目录的权限。+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。r 表示可读取,数字代号为4。w 表示可写入,数字代号为2。X 执行或切换权限,数字代号为1,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。-c : 若该档案权限确实已经更改,才显示其更改动作-f : 若该档案权限无法被更改也不要显示错误讯息-v : 显示权限变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)-help : 显示辅助说明-version : 显示版本范例 :将档案 file1.txt 设为所有人皆可读取 :chmod ugo+r file1.txt将档案 file1.txt 设为所有人皆可读取 :chmod a+r file1.txt将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :chmod ug+w,o-w file1.txt file2.txt将 ex1.py 设定为只有该档案拥有者可以执行 :chmod u+x ex1.py将目前目录下的所有档案与子目录皆设为任何人可读取 :chmod -R a+r *此外chmod也可以用数字来表示权限如 chmod 777 file语法为:chmod abc file其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。r=4,w=2,x=1若要rwx属性则4+2+1=7;若要rw-属性则4+2=6;若要r-x属性则4+1=7。范例:chmod a=rwx file和chmod 777 file效果相同chmod ug=rwx,o=x file和chmod 771 file效果相同若用chmod 4755 filename可使此程式具有root的权限指令名称 : chown使用权限 : root使用方式 : chmod -cfhvR -help -version user:group file.说明 : Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group)-c : 若该档案拥有者确实已经更改,才显示其更改动作-f : 若该档案拥有者无法被更改也不要显示错误讯息-h : 只对于连结(link)进行变更,而非该 link 真正指向的档案-v : 显示拥有者变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)-help : 显示辅助说明-version : 显示版本范例 :将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :chown jessie:users file1.txt将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :chmod -R lamport:users *-rw- (600) - 只有属主有读写权限。-rw-r-r- (644) - 只有属主有读写权限;而属组用户和其他用户只有读权限。-rwx- (700) - 只有属主有读、写、执行权限。-rwxr-xr-x (755) - 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。-rwx-x-x (711) - 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。-rw-rw-rw- (666) - 所有用户都有文件读、写权限。这种做法不可取。-rwxrwxrwx (777) - 所有用户都有读、写、执行权限。更不可取的做法。以下是对目录的两个普通设定:drwx- (700) - 只有属主可在目录中读、写。drwxr-xr-x (755) - 所有用户可读该目录,但只有属主才能改变目录中的内容suid的代表数字是4,比如4755的结果是-rwsr-xr-xsgid的代表数字是2,比如6755的结果是-rwsr-sr-xsticky位代表数字是1,比如7755的结果是-rwsr-sr-tdf disk free 显示磁盘的相关信息参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。可显示磁盘的文件系统与使用情形。语法:df -ahHiklmPT-block-size=-t -x -help-no-sync-sync-version文件或设备说明:linux中df命令可显示所有文件系统对i节点和磁盘块的使用情况。该命令各个选项的含义如下:-a 或-all显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。包含全部的文件系统。-k -k或-kilobytes 指定区块大小为1024字节。以k字节为单位显示。-i -i或-inodes 显示inode的信息。显示i节点信息,而不是磁盘块。-t -t或-type=显示各指定类型的文件系统的磁盘空间使用情况。-x -x或-exclude-type= 不要显示指定文件系统类型的磁盘信息。列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。-T T或-print-type 显示文件系统的类型。-block-size= 以指定的区块大小来显示区块数目。 -h或-human-readable 以可读性较高的方式来显示信息。 -H或-si 与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes。 -l或-local 仅显示本地端的文件系统。 -m或-megabytes 指定区块大小为1048576字节。 -no-sync 在取得磁盘使用信息前,不要执行sync指令,此为预设值。 -P或-portability 使用POSIX的输出格式。 -sync 在取得磁盘使用信息前,先执行sync指令。 -help 显示帮助。 -version 显示版本信息。 文件或设备 指定磁盘设备。例1:列出各文件系统的磁盘空间使用情况。 $ df Filesystem 1 Kblocks Used Available Use% Mounted on /dev/hda2 1361587 1246406 44823 97 / linux中df命令的输出清单的第1列是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);第2列给出分区包含的数据块(1024字节)的数目;第3,4列分别表示已用的和可用的数据块数目。用户也许会感到奇怪的是,第3,4列块数之和不等于第2列中的块数。这是因为缺省的每个分区都留了少量空间供系统管理员使用。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间。清单中Use% 列表示普通用户空间使用的百分比,即使这一数字达到100,分区仍然留有系统管理员使用的空间。最后,Mounted on列表示文件系统的安装点。 例2:列出各文件系统的i节点使用情况。 $ df -ia Filesystem Inodes IUsed IFree Iused% Mounted on /dev/ hda2 352256 75043 277213 21 / none 0 0 0 0 /proc localhost:(pid221) 0 0 0 0 /net 例3:列出文件系统的类型。 $ df -T Filesystem Type 1Kblocks Used Available use% Mounted on /dev/hda2 ext2 1361587 1246405 44824 97% / 本例中的文件系统是ext2类型的rootrac1 # dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda1 3020140 2333952 532772 82% /none 213320 0 213320 0% /dev/shm/dev/sda2 4633108 1818088 2579668 42% /u01/dev/sde1 524272 81104 443168 16% /ocfs该条命令显示了服务器上所有分区的使用情况。它还包括了几个有用的参数来帮助格式化输出:-a显示系统所有的分区,在平常默认情况下 不显示0块的分区rootrac1 # df -aFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda1 3020140 2333952 532772 82% /none 0 0 0 - /procnone 0 0 0 - /sysnone 0 0 0 - /dev/ptsnone 213320 0 213320 0% /dev/shm/dev/sda2 4633108 1818096 2579660 42% /u01none 0 0 0 - /proc/sys/fs/binfmt_miscsunrpc 0 0 0 - /var/lib/nfs/rpc_pipefsconfigfs 0 0 0 - /configocfs2_dlmfs 0 0 0 - /dlm/dev/sde1 524272 81104 443168 16% /ocfsoracleasmfs 0 0 0 - /dev/oracleasm-h更具目前磁盘空间和使用情况 以更易读的方式显示rootrac1 # df -hFilesystem Size Used Avail Use% Mounted on/dev/sda1 2.9G 2.3G 521M 82% /none 209M 0 209M 0% /dev/shm/dev/sda2 4.5G 1.8G 2.5G 42% /u01/dev/sde1 512M 80M 433M 16% /ocfs-H根上面的-h参数相同,不过在根式化的时候,采用1000而不是1024进行容量转换rootrac1 # df -HFilesystem Size Used Avail Use% Mounted on/dev/sda1 3.1G 2.4G 546M 82% /none 219M 0 219M 0% /dev/shm/dev/sda2 4.8G 1.9G 2.7G 42% /u01/dev/sde1 537M 84M 454M 16% /ocfs-k以单位显示磁盘的使用情况rootrac1 # df -kFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda1 3020140 2333952 532772 82% /none 213320 0 213320 0% /dev/shm/dev/sda2 4633108 1818152 2579604 42% /u01/dev/sde1 524272 81104 443168 16% /ocfs-l显示本地的分区的磁盘空间使用率,如果服务器nfs了远程服务器的磁盘,那么在df上加上-l后系统显示的是过滤nsf驱动器后的结果-i显示inode的使用情况。linux采用了类似指针的方式管理磁盘空间影射.这也是一个比较关键应用。du 统计磁盘空间大小du命令功能说明:统计目录(或文件)所占磁盘空间的大小。语法:du -abcDhHklmsSx -L -X -block-size-exclude= -max-depth=-help-version目录或文件常用参数:-a或-all 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。-b或-bytes 显示目录或文件大小时,以byte为单位。-c或total 除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。-D或dereference-args 显示指定符号连接的源文件大小。-h或human-readable 以K,M,G为单位,提高信息的可读性。-H或si 与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。-k或kilobytes 以1024 bytes为单位。-l或count-links 重复计算硬件连接的文件。-L或dereference 显示选项中所指定符号连接的源文件大小。-m或megabytes 以1MB为单位。-s或summarize 仅显示总计,即当前目录的大小。-S或separate-dirs 显示每个目录的大小时,并不含其子目录的大小。-x或one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。-X或exclude-from= 在指定目录或文件。exclude= 略过指定的目录或文件。max-depth= 超过指定层数的目录后,予以忽略。help 显示帮助。version 显示版本信息。linux中的du命令使用示例:1 要显示一个目录树及其每个子树的磁盘使用情况du /home/linux这在/home/linux目录及其每个子目录中显示了磁盘块数。2 要通过以1024字节为单位显示一个目录树及其每个子树的磁盘使用情况du -k /home/linux这在/home/linux目录及其每个子目录中显示了 1024 字节磁盘块数。3 以MB为单位显示一个目录树及其每个子树的磁盘使用情况du -m /home/linux这在/home/linux目录及其每个子目录中显示了 MB 磁盘块数。4 以GB为单位显示一个目录树及其每个子树的磁盘使用情况du -g /home/linux这在/home/linux目录及其每个子目录中显示了 GB 磁盘块数。5查看当前目录下所有目录以及子目录的大小:du -h .“.”代表当前目录下。也可以换成一个明确的路径-h表示用K、M、G的人性化形式显示6查看当前目录下user目录的大小,并不想看其他目录以及其子目录:du -sh user-s表示总结的意思,即只列出一个总结的值du -h max-depth=0 usermax-depthn表示只深入到第n层目录,此处设置为0,即表示不深入到子目录。7列出user目录及其子目录下所有目录和文件的大小:du -ah user-a表示包括目录和文件8列出当前目录中的目录名不包括xyz字符串的目录的大小:du -h exclude=*xyz*9想在一个屏幕下列出更多的关于user目录及子目录大小的信息:du -0h user-0(杠零)表示每列出一个目录的信息,不换行,而是直接输出下一个目录的信息。10只显示一个目录树的全部磁盘使用情况du -sk * | sort -n /从小到大看看当前目录下的空间使用情况不包含swap 你一共三个分区 / /access /data ,这个已经很明了了 你根分区已经满了 access和data还有剩余空间,du -h是没用的,因为你access data都挂到了根下,就是说你du -h /其实是计算根、access以及data的文件总大小,即你说的107G,你可以到/var下看看是不是log太多了,简之你跟分区已经满了,其他分区再大也没用,你必须为你的根腾出空间grep grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包 括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能 更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。功能说明:查找文件里符合条件的字符串。语法:grep -abcEFGhHilLnqrsvVwxy-A-B-C-d-e-f-help范本样式文件或目录.补充说明:grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。参数: -a或-text 不要忽略二进制的数据。 -A或-after-context= 除了显示符合范本样式的那一列之外,并显示该列之后的内容。 -b或-byte-offset 在显示符合范本样式的那一列之前,标示出该列第一个字符的位编号。 -B或-before-context= 除了显示符合范本样式的那一列之外,并显示该列之前的内容。 -c或-count 计算符合范本样式的列数。 -C或-context=或- 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。 -d或-directories= 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。 -e或-regexp= 指定字符串做为查找文件内容的范本样式。 -E或-extended-regexp 将范本样式为延伸的普通表示法来使用。 -f或-file= 指定范本文件,其内容含有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每列一个范本样式。 -F或-fixed-regexp 将范本样式视为固定字符串的列表。 -G或-basic-regexp 将范本样式视为普通的表示法来使用。 -h或-no-filename 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。 -H或-with-filename 在显示符合范本样式的那一列之前,表示该列所属的文件名称。 -i或-ignore-case 忽略字符大小写的差别。 -l或-file-with-matches 列出文件内容符合指定的范本样式的文件名称。 -L或-files-without-match 列出文件内容不符合指定的范本样式的文件名称。 -n或-line-number 在显示符合范本样式的那一列之前,标示出该列的列数编号。 -q或-quiet或-silent 不显示任何信息。 -r或-recursive 此参数的效果和指定“-d recurse”参数相同。 -s或-no-messages 不显示错误信息。 -v或-revert-match 反转查找。 -V或-version 显示版本信息。 -w或-word-regexp 只显示全字符合的列。 -x或-line-regexp 只显示全列符合的列。 -y 此参数的效果和指定“-i”参数相同。 -help 在线帮助。如果您要在几个文本文件中查找一字符串,可以使用‘grep命令。grep在文本中搜索指定的字符串。假设您正在/usr/src/linux/Documentation目录下搜索带字符串magic的文件:$ grep magic /usr/src/linux/Documentation/*sysrq.txt:* How do I enable the magic SysRQ key?sysrq.txt:* How do I use the magic SysRQ key? 其中文件sysrp.txt包含该字符串,讨论的是 SysRQ 的功能。默认情况下,grep只搜索当前目录。如果此目录下有许多子目录,grep会以如下形式列出:grep: sound: Is a directory这可能会使grep的输出难于阅读。这里有两种解决的办法:明确要求搜索子目录:grep -r或忽略子目录:grep -d skip当然,如果预料到有许多输出,您可以通过 管道 将其转到less上阅读$ grep magic /usr/src/linux/Documentation/* | less这样,您就可以更方便地阅读。有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用 *)。如果您忘了,grep会一直等着,直到该程序被中断。如果您遇到了这样的情况,按 ,然后再试。下面是一些有意思的命令行参数:grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,grep -l pattern files :只列出匹配的文件名,grep -L pattern files :列出不匹配的文件名,grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配magic,而不是magical),grep -C number pattern files :匹配的上下文分别显示number行,grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。这里还有些用于搜索的特殊符号: 分别标注单词的开始与结尾。例如:grep man * 会匹配 Batman、manic、man等,grep man * 匹配manic和man,但不是Batman,grep 只匹配man,而不是Batman或manic等其他的字符串。:指匹配的字符串在行首,$:指匹配的字符串在行尾,如果您不习惯命令行参数,可以试试图形界面的grep,如 reXgrep 。这个软件提供 AND、OR、NOT 等语法,还有漂亮的按钮 :-) 。如果您只是需要更清楚的输出,不妨试试 fungrep 。.grep 搜索字符串命令格式:grep string filename寻找字串的方法很多,比如说我想找所有以M开头的行.此时必须引进pattern的观念.以下是一些简单的例,以及说明:M 以M开头的行,表示开始的意思M$ 以M结尾的行,$表示结束的意思0-9 以数字开始的行,内可列举字母124ab 以1,2,4,a,或b开头的行b.503 句点表示任一字母* 星号表示0个以上的字母(可以没有)+ 加号表示1个以上的字母. 斜线可以去掉特殊意义 cat passwd | grep b 列出大学部有申请帐号者名单cat passwd | grep s 列出交换学生申请帐号者名单cat passwd | grep b.503 列出电机系各年级.grep . myfile.txt 列出所有以句点开头的行lslist功能说明:列出目录内容。语法:ls -1aAbBcCdDfFgGhHiklLmnNopqQrRsStuUvxX-I -T -w -block-size=-color=-format=-full-time-help-indicator-style=-quoting-style=-show-control-chars-sort=-time=-version文件或目录.补充说明:执行ls指令可列出目录的内容,包括文件和子目录的名称。参数: -1 每列仅显示一个文件或目录名称。 -a或-all 下所有文件和目录。 -A或-almost-all 显示所有文件和目录,但不显示现行目录和上层目录。 -b或-escape 显示脱离字符。 -B或-ignore-backups 忽略备份文件和目录。 -c 以更改时间排序,显示文件和目录。 -C 以又上至下,从左到右的直行方式显示文件和目录名称。 -d或-directory 显示目录名称而非其内容。 -D或-dired 用Emacs的模式产生文件和目录列表。 -f 此参数的效果和同时指定aU参数相同,并关闭lst参数的效果。 -F或-classify 在执行文件,目录,Socket,符号连接,管道名称后面,各自加上*,/,=,|号。 -g 次参数将忽略不予处理。 -G或-no-group 不显示群组名称。 -h或-human-readable 用K,M,G来显示文件和目录的大小。 -H或-si 此参数的效果和指定-h参数类似,但计算单位是1000Bytes而非1024Bytes。 -i或-inode 显示文件和目录的inode编号。 -I或-ignore= 不显示符合范本样式的文件或目录名称。 -k或-kilobytes 此参数的效果和指定block-size=1024参数相同。 -l 使用详细格式列表。 -L或-dereference 如遇到性质为符号连接的文件或目录,直接列出该连接所指向的原始文件或目录。 -m 用,号区隔每个文件和目录的名称。 -n或-numeric-uid-gid 以用户识别码和群组识别码替代其名称。 -N或-literal 直接列出文件和目录名称,包括控制字符。 -o 此参数的效果和指定-l 参数类似,但不列出群组名称或识别码。 -p或-file-type 此参数的效果和指定-F参数类似,但不会在执行文件名称后面加上*号。 -q或-hide-control-chars 用?号取代控制字符,列出文件和目录名称。 -Q或-quote-name 把文件和目录名称以号标示起来。 -r或-reverse 反向排序。 -R或-recursive 递归处理,将指定目录下的所有文件及子目录一并处理。 -s或-size 显示文件和目录的大小,以区块为单位。 -S 用文件和目录的大小排序。 -t 用文件和目录的更改时间排序。 -T或-tabsize= 设置跳格字符所对应的空白字符数。 -u 以最后存取时间排序,显示文件和目录。 -U 列出文件和目录名称时不予排序。 -v 文件和目录的名称列表以版本进行排序。 -w或-width= 设置每列的最大字符数。 -x 以从左到右,由上至下的横列方式显示文件和目录名称。 -X 以文件和目录的最后一个扩展名排序。 -block-size= 指定存放文件的区块大小。 -color= 培植文件和目录的列表格式。 -full-time 列出完整的日期与时间。 -help 在线帮助。 -indicator-style= 在文件和目录等名称后面加上标注,易于辨识该名称所属的类型。 -quoting-syte= 把文件和目录名称以指定的引号样式标示起来。 -show-control-chars 在文件和目录列表时,使用控制字符。 -sort= 配置文件和目录列表的排序方式。 -time= 用指定的时间戳记取代更改时间。 -version 显示版本信息。 ntsysv 图形化设置系统服务命令功能说明:设置系统的各种服务。语法:ntsysv -back-level 补充说明:这是Red Hat公司遵循GPL规则所开发的程序,它具有互动式操作界面,您可以轻易地利用方向键和空格键等,开启,关闭操作系统在每个执行等级中,所要执行的系统服务。参数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论