且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

RHEL6入门系列之十,常用命令3

更新时间:2022-09-14 12:24:58

今天首先要介绍两个比较重要的查找命令:find、grep。在介绍这两个命令之前,先把它们的区别解释一下。
find命令是在某个指定的路径下找我们需要的文件或目录,目标是文件或目录。
grep命令是在某个文件中找我们所需要的某部分内容,目标是字符串。
如果与Windows系统做下对比的话,find命令类似于在Windows系统中执行的“搜索”操作,而grep命令则类似于在WORD中执行的“查找”操作,两个命令的性质是完全不一样的。

11、find命令——文件或目录查找命令
 
find命令采用递归的方式,可以在指定的目录及其子目录中进行查找。
find命令的基本使用格式:
find [查找范围] [查找条件表达式]
较常用的几种查找条件类型如下:
-name”选项,按名称查找,允许使用通配符。
例:在/etc目录中查找所有名称以“net”开头、以“.conf”结尾的文件。
[root@localhost ~]# find /etc -name "net*.conf"
-type”选项,按文件类型查找,这里的类型指的是普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等。
例:在/boot目录中查找所有的子目录。
[root@localhost ~]# find /boot -type d
-user”选项,按文件属主查找,根据文件是否属于某个目标用户进行查找。
例:在/home目录下查找所有属于用户student的文件或目录。
 [root@localhost ~]# find /home -user student
-size”选项,按文件大小查找,一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件。常用的容量单位包括k(注意是小写)、M、G。
例:在/boot目录中查找大小超过1024KB的文件。
[root@localhost ~]# find /boot -size +1024k
find命令中可以同时指定多个查找条件,各个条件之间默认是逻辑与的关系。
例:在boot目录中查找大小超过1024KB而且文件名以“init”开头的文件。
[root@localhost ~]# find /boot -size +1024k -name "init*"
find命令还可以对查找到的结果进行进一步的过滤处理,用到的是“-exec”选项,在该选项后设置过滤用的命令即可。在过滤命令中,使用“{}”表示find命令查找到的结果,最后需要添加“ \;”表示命令结束(注意前面有个空格)。
例:查找/boot目录下的以“init”开头的文件,并将其复制到/root/test目录下。
[root@localhost ~]# find /boot -name "init*" -exec cp {} /root/test \;
例:查找所有属于普通用户jerry的文件,并复制到/root/find目录下。
[root@localhost ~]# find / -user jerry -type f -exec cp {} /root/find \;
 
12、grep命令——文件内容查询命令
 
grep命令用于在文件中查找并显示包含指定字符串的行,grep命令的基本格式:
grep [选项] 查找条件 目标文件
例:在/etc/passwd文件中查找包含“root”字符串的行:
[root@localhost ~]# grep root /etc/passwd
注意,grep命令不支持“*”和“?”这些普通意义上的通配符,而是通过使用正则表达式来设置所要查找的条件。正则表达式定义了很多表示不同含义的通配符,对于初学者没必要一次性记住所有的正则表达式,只需掌握那些最常用的通配符即可。如符号“^”表示以什么字符开头,符号“$”表示以什么字符结尾,如“^word”表示以“word”开头,“word$”表示以“word”结尾,“^$”则表示空行。
例:在/etc/httpd/conf/httpd.conf文件中查找所有以“#”开头的行。
[root@localhost ~]# grep “^#” /etc/httpd/conf/httpd.conf
 
常用选项:
-v,反转查找,即输出与查找条件不相符的行。
例:在/etc/httpd/conf/httpd.conf文件中查找所有不是以“#”开头的行。
[root@localhost ~]# grep -v “^#” /etc/httpd/conf/httpd.conf
 
13、wc命令——文件内容统计
 
wc命令用于统计指定文件中的行数、单词数、字节数。
如,依次统计/etc/resolv.conf文件中的行数、单词数、字节数。
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
domain localdomain
search localdomain
nameserver 192.168.232.1
[root@localhost ~]# wc /etc/resolv.conf
 4 10 93 /etc/resolv.conf
结果显示/etc/resolv.conf文件***有4行、10个单词、93个字节。
 
常用选项:
-l,统计行数;-w,统计单词数;-c,统计字节数。
其中最常用的是“-l”选项。
如,统计当前系统中的用户数量(/etc/passwd文件中的行数)。
[root@localhost ~]# wc -l /etc/passwd
35 /etc/passwd
 
14、ln命令——为文件或目录建立链接
 
ln命令用于为文件或目录建立快捷方式,(在Linux系统中称为链接文件)。
链接文件分为硬链接、软链接两种类型,主要区别是:不能对目录创建硬链接,也不能跨越不同分区创建硬链接文件,而软链接则没有这些限制,所以平时使用的大都是软链接。
在创建软链接时需要使用“-s”选项。
如,为网卡配置文件“/etc/sysconfig/network-scripts/ifcfg-eth0”在“/root”目录中创建一个名为“net”的软链接。
[root@localhost test]# ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 /root/net
查看这个链接文件的详细信息,可以看到其对应的源文件。
[root@localhost ~]# ls -lh /root/net
lrwxrwxrwx. 1 root root 41 1月   9 22:47 /root/net -> /etc/sysconfig/network-scripts/ifcfg-eth0
Windows中的快捷方式一样,对链接文件所做的任何操作都会对应到源文件上。
 
15、alias命令——设置命令别名
 
命令别名通常是命令的缩写,对于经常使用的命令,通过设置别名可以简化操作,提高工作效率。
单独执行alias命令可以列出当前系统中已经存在的别名命令。
[root@localhost ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
可以发现其中有一个系统定义的别名命令ll,执行“ll”就相当于执行“ls –l”命令。
例:设置别名命令cpd,其功能是查看/etc/passwd文件的内容。
[root@localhost ~]# alias cpd='cat /etc/passwd'
在执行这个命令时需要注意,“=”的两边不能有空格,在标准命令的两端要使用单引号。这样以后只要执行cpd就相当于执行了“cat /etc/passwd”命令。
如果要取消所设置的别名命令,可以使用unalias命令。
[root@localhost ~]# unalias cpd
 
16、clear命令——清屏
 
clear命令可以清除当前终端屏幕的内容。该命令很简单,这里就不举例了。
 
17、history——查看命令历史记录
 
Bash中查看命令历史记录最简单的方法是用上下方向键,而要查看所有或部分的命令历史记录则要使用history命令。
执行history命令可以列出用户登录后所有曾执行过的命令,另外也可以指定列出哪些历史命令,如“history 3”就是要列出最近执行过的3条历史命令。
[root@localhost ~]# history 3
   15 wc /etc/resolv.conf
   16 wc -l /etc/passwd
   17 history 3
在每一个执行过的shell命令行前均有一个编号,代表其在历史列表中的序号。如果想重新执行其中某一条命令,可以采用“!序号”的格式。如“!16”就表示把第16条历史命令重新执行一遍。
[root@localhost ~]# !16
wc -l /etc/passwd
35 /etc/passwd
 
18、shutdown命令——关闭或重启系统
 
使用shutdown命令可以安全地关闭或重启系统,只有管理员才可以执行该命令。
如,使用shutdown命令马上重启系统
[root@localhost ~]# shutdown –r now                                           
如,使用shutdown命令马上关闭系统
[root@localhost ~]# shutdown –h now                                           
使用该命令还可以设定一个时间,以延时关闭或重启系统。
如,使用shutdown命令设置在15分钟以后自动重启系统
[root@localhost ~]# shutdown –r +15                                           
对于延时运行的关机、重启操作,必要时可以按Ctrl+C组合键取消。
除了shutdown命令以外,在Linux系统中还有很多关闭或重启系统的方法,如halt命令可以马上关闭系统,reboot命令可以马上重启系统。另外,改变系统的运行级别也可以达到关闭或重启系统的效果,如“init 0”相当于关闭系统,“init 6”相当于重启系统。
 
本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1117518