1,Linux命令的分类?
(1)系统命令: /bin 和 /sbin下的(管理员命令)
应用程序命令:/usr/bin 和 /usr/sbin下的
(2) 内部命令:打开了新的shell时会自动加载的
外部命令:通过安装软件包有的
2,关于$PATH这个变量?
$PATH 是命令搜索路径
[root@vm_hosts test]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
which命令
(1)在PATH变量指定的路径中,查询命令存放的路径;(2)返回第一个搜索结果且不再继续寻找;
(3)alias别名优先于PATH查找;(使用的时候也是优先别名的)
(4)找的对象必须具有可执行权限,且只能查找外部命令
[root@vm_hosts ~]# which cp
alias cp='cp -i'
/bin/cp
[root@vm_hosts ~]# which alias //which alias 发现找不到,说明alias是内部命令
/usr/bin/which: no alias in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
whereis命令
(1)在PATH变量指定的路径中,查询命令存放的路径、帮助文件路径;
(2)返回所有搜索到的结果;
[root@localhost ~]# whereis cp
cp: /bin/cp /usr/share/man/man1/cp.1.gz /usr/share/man/man1p/cp.1p.gz
locate命令
(1)locate string 可以查看包含string字样的所有的文件路径;
(2)locate命令使用时,会遍历locate专用的一个数据库文件 /var/lib/(整个linux目录树结构形成的),从中查找;
(3)updatedb命令可更新这个数据库 //新建与删除后都要更新才能locate出效果。
find命令
一、按各种方式查找
(1)-name:按文件名称查找
(2)-size:按文件大小查找(单位K、M、G)
“+n”表示大于这个值
“-n”表示小于这个值
“n” 表示等于这个值
(3)-type:按对象类型查找(目录d,普通文件f,链接文件l,字符设备文件c,块设备文件b,管道文件p)
(4)-mtime:按对象内容修改时间查找(天数)
-atime:按对象被访问的时间查找(天数)
-ctime:按对象状态被修改的时间去查找(天数)
-mmin/-amin/-cmin:(分钟数)
“+ n” n天/分钟前的
“- n” n天/分钟内的
(5)-user:按文件属主查找
(6)-perm:按文件权限查找
二、常配合exec和xargs使用
(1)-exec 表示执行后面的命令;“{}”表示存放find命令查找的结果 ;“\;”表示结束标志。
(2)xargs 表示将前面命令的输出做为参数送给后面的命令使用。
[root@teacher ~]# find /boot -name "vmlinuz*" | xargs ls -l
-rwxr-xr-x. 1 root root 4044560 Jan 30 2013 /boot/vmlinuz-2.6.32-358.el6.x86_64
[root@teacher ~]# find /boot -name "vmlinuz*" -exec ls -l {} \;
-rwxr-xr-x. 1 root root 4044560 Jan 30 2013 /boot/vmlinuz-2.6.32-358.el6.x86_64
三、逻辑运算及一些特殊选项
(1)-a 且
(2)-o 或
(3)!/ -not 非
(4)-ok 提醒你是否要执行后面的删除命令
[root@teacher lianxi]# find / -name zhongguohehuoren -ok rm -rf {} \;
< rm ... /bin/zhongguohehuoren > ? y
< rm ... /lianxi/zhongguohehuoren > ? y
< rm ... /zhongguohehuoren > ? y</span>
(5)-maxdepth 后面跟数字num,表示在当前目录下往下num层深度查找(默认为1层)
四,应用实例
find /boot -size +1024k -o -name "vmlinuz*" |xargs ls -l
find /boot -size +1M -a -name "vmlinuz*" -a -type f|xargs ls -l
find /boot -type d -name "grub*"|xargs ls -dlh
find /boot -size +1M ! -size +4M -exec ls -lh {} \;
find /boot -size +1M -size -4M -exec ls -lh {} \; //语法没有问题,但结果并未完全显示
find /etc/ -maxdepth 1 -name "p*" | grep passwd </span>