linux基础:10、基础命令(4)

查询文件类型与文件位置命令)

file

作用:查看文件类型(linux下的文件类型不以后缀名区分)

语法:file [选项] filename

=================================================================================
[[email protected] ~]# file /etc/passwd
/etc/passwd: ASCII text              #文本文档
[[email protected] ~]# file /etc
/etc: directory                      #目录文档
[[email protected] ~]# file /bin/ls         #二进制文件
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
[[email protected] ~]# file test11.gz       #压缩文件
test11.gz: gzip compressed data, was "test11", from Unix, last modified: Thu Mar  5 05:30:10 2015
=================================================================================

which

作用:搜索命令用

语法:which command

PS:只是在系统定义的PATH路径下搜索。

=================================================================================
[[email protected] ~]# which chkconfig
/sbin/chkconfig

#which只可以检查PATH变量路径下的命令
[[email protected] ~]# which cd
/usr/bin/which: no cd in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[[email protected] ~]# type cd
cd is a shell builtin      #因为此命令是一个系统内建命令,所以无法在PATH中查到

#扩展、PATH变量
[[email protected] ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
=================================================================================

whereis

作用:locates source/binary and manuals sections for specified files.

语法:whereis [选项] 关键字

选项:

-b 只找 binary 格式的文件;

-m 只找在说明手册文件manual 路径下的文件;

-s 只找 source 来源的文件;

-u
查找不在上述三个参数中的其他特殊文件。

=================================================================================
[[email protected] doc]# whereis vim
vim: /usr/bin/vim /usr/share/vim /usr/share/man/man1/vim.1.gz
[[email protected] doc]# whereis -m vim
vim: /usr/share/man/man1/vim.1.gz
[[email protected] doc]# whereis -b vim
vim: /usr/bin/vim /usr/share/vim
=================================================================================

locate

作用:从特定资料库里查询文件

语法:locate keywords

安装:yum install
-y mlocate,安装完成后需要用updatedb命令更新一下数据库

资料库文件:/var/lib/mlocate/mlocat.db

=================================================================================
#安装locate
[[email protected] doc]# yum install mlocate

#使用前要提前updatedb一下
[[email protected] doc]# locate test11.gz
locate: can not stat () `/var/lib/mlocate/mlocate.db‘: No such file or directory
[[email protected] doc]# updatedb
[[email protected] doc]# locate test11.gz
/root/test11.gz

#db文件位置
[[email protected] doc]# ls -l /var/lib/mlocate/mlocate.db
-rw-r-----. 1 root slocate 769272 Mar 10 15:39 /var/lib/mlocate/mlocate.db
=================================================================================

find

说明:最强大的查询工具。

语法:find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

表达式:

  • -mtime 以改变文件内容时间为搜索条件查询文件

我们事先约定,从现在时间开始往前推24小时为第1天,n=1。以此类推第一天再往前推24小时是第2天,n=2...

-mtime 
n :n为数字,意为查询第n+1天当天24小时内改动过内容的文件;

-mtime +n :意为查询n+1天之前(不含n+1天本身)被改动过內容的文件;

-mtime -n :列出在 n
天之內(含 n 天本身)被改动过内容的文件;

-newer file :file 为一个已存文件,列出比 file被改动内容更早之前的文件。

上图摘自鸟哥教程

从上图可以看出,当n=4的时候

-mtime 4 是查询第5天改动过内容的文件;

-mtime +4 是查询5天前改动过内容的文件;

-mtime -4 是查询4天内改动过内容的文件。

  • -mmin 同-mtime,只是n不代表天数,代表分钟。
  • -type 以文件类型为搜索条件查询文件

文件类型:f(普通文件),d(目录文件), l(链接文件),s(套接字),p(管道),c(字符文件)和b(块设备)。

  • -i 忽略查询条件的大小写
  • -inum 以文件的inode号为查询条件查询文件。
  • -maxdepth 后面跟数字,代表最大查询路径的层数,0,1,2...
=================================================================================
#查询家目录一天之内修改过的文件
[[email protected] ~]# find . -mtime 0|xargs ls -dl
dr-xr-x---. 5 root root  4096 Mar 10 14:50 .
-rw-------. 1 root root 12863 Mar  9 23:19 ./.bash_history
-rw-r--r--. 1 root root   175 Mar 10 00:04 ./.bashrc
-rw-r--r--. 1 root root    96 Mar 10 01:17 ./crontab.sh
-rw-------. 1 root root   129 Mar 10 15:52 ./.lesshst
-rw-r--r--. 1 root root     8 Mar 10 00:23 ./newfile

#查询dir4目录下的普通文件
[[email protected] ~]# find ./dir4 -type f|xargs ls -l
-rw-r--r--. 1 root root 0 Mar  5 04:58 ./dir4/03/test03
-rw-r--r--. 1 root root 0 Mar  5 04:35 ./dir4/03/test4
-rw-r--r--. 1 root root 0 Mar  5 04:34 ./dir4/dir3/test3
#如何不查询子目录下的普通文件呢?
[[email protected] ~]# find ./dir4 -maxdepth 1 -type f   #由于dir4下面没有普通文件,所以为空
[[email protected] ~]# find ./dir4 -maxdepth 2 -type f   #当我们向下延伸一层后,可查到2层的文件
./dir4/dir3/test3
./dir4/03/test03
./dir4/03/test4
=================================================================================

-perm权限详解

-perm  数字权限(3位),表示匹配项必须严格匹配此权限

-perm
-数字权限(3位),表示匹配项必须不少于此权限

-perm
/数字权限(3位),表示匹配项ugo中任何一组包含要求权限中的任意一个普通权限即可

-perm
/数字权限(4位),和3位的数字权限规则一致,区别在于特殊权限和普通权限分别独立考虑

-perm
+数字权限(3位),已经被/代替

=================================================================================
#分别创建不同权限的文件
[[email protected] ~]# ll perm|awk ‘NR>1{printf("perm:%-11sname:%s\n",$1,$9)}‘
perm:----------    name:001
perm:-----w----   name:002
perm:---------x    name:003
perm:-r--------     name:004
perm:---------T    name:005
perm:-r-s------     name:006
perm:-------rw-    name:007
perm:---x------     name:017
perm:-----w-rw-   name:037
perm:----rw-rw-   name:077
perm:---x-w-r--    name:177
perm:--w-rw-rw-  name:377
perm:-rw-rw-rw-  name:777

#查找权限066 即为---rw-rw-
[[email protected] perm]# find . -perm 066 -ls |sed ‘s/[[:space:]]\+/ /g‘|cut -d ‘ ‘ -f 3,11
 ----rw-rw- ./077    #只有数字"066"严格匹配
[[email protected] perm]# find . -perm /066 -ls|sed ‘s/[[:space:]]\+/ /g‘|cut -d ‘ ‘ -f 3,11
-----w---- ./002     #/066,只要9位权限中有r或者w的全部匹配
---x-w-r-- ./177
-------rw- ./007
--w-rw-rw- ./377
----rw-rw- ./077
-rw-rw-rw- ./777
-----w-rw- ./037
[[email protected] perm]# find . -perm -066 -ls|sed ‘s/[[:space:]]\+/ /g‘|cut -d ‘ ‘ -f 3,11
--w-rw-rw- ./377     #-066,只要不小于066权限的都匹配
----rw-rw- ./077
-rw-rw-rw- ./777
=================================================================================

stat

作用:查看三个时间

语法:stat file/dir

=================================================================================
[[email protected] ~]# stat test11.gz
  File: `test11.gz‘
  Size: 122             Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d      Inode: 12133       Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-03-10 14:50:52.616930866 +0800
Modify: 2015-03-05 05:30:10.555977000 +0800
Change: 2015-03-10 14:50:44.910931488 +0800
=================================================================================

PS:更改ctime不一定更改mtime

PS:更改mtime一定会改动ctime

时间: 2024-11-04 03:45:38

linux基础:10、基础命令(4)的相关文章

Linux系统性能10条命令监控

Linux系统性能10条命令监控 如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断. 概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. uptime dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat -xz 1 free -m sar -n DEV 1 sar -n

Linux基础文本查看命令之 cat,tac,more,less,head,tail

在使用linux的过程中多多少少都会涉及到文本的操作,因此掌握一些文本操作的工具命令能大大的提高我们的工作效率. cat命令 cat命令的用途是链接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者是从标准输入读取内容并显示,它常与重定向符号配合使用. 1)命令格式 cat    [选项]    [FILENAME] 2)命令功能 将文件或标准输入组合输出到标准输出. 3)命令参数 -E:在每行结束处显示 $ -n:对输出的所有行编号 -s:不输出多行空行 4)常

第十三天(linux常用的基础命令 )

按照下面的要求创建一个新的逻辑卷:    *) 逻辑卷命名为database, 属于 datastore 卷组.    *) 在 datastore卷组中的逻辑卷,500M.    *)使用{ext3|ext4|xfs}文件系统对新的逻辑卷进行格式化    *)逻辑卷应该在系统启动的时候自动挂载在/mnt/database 目录下.    *)lvm扩大至1G, 并且保留其原有资料的完整性; 新增加一个 SWAP 分区    *) 大小为512MB,    *) 使该 SWAP 能够每次开机生效

Linux运维基础命令笔试题--看看你会多少?

老男孩Linux运维基础2728期课后学习效果上机闭卷考试题详解 http://edu.51cto.com/course/course_id-5577.html 如果你觉得不错,请为他点赞和评价.这样可以激发他更强的回报小伙伴的欲望!   老男孩教育linux运维就业班第一周课后学习效果能力上机大考察 (每题10分共130分,过100即可,请给出详细步骤) 1.创建目录/data/oldboy ,并且在该目录下创建文件oldboy.txt,然后在文件oldboy.txt里写入内容"inet ad

linux简介和基础命令使用

1.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别. linux主流发行版本主要有 slackware系列:主要代表有S.u.S.E,openSUSE openSUSE:根据使用者的不同,可选择适用于各自的版本. debian系列:主要衍生分支ubuntu,mint ubuntu:在国内名气较大,使用广泛,其突出特点使用简单,容易上手.可为装完就能用 mint:基于ubuntu,显著特点安装时可选择桌面环境后,即可使用,简单,方便易用 redhat系列:主要代表rehl,Cent

linux 文件系统及基础命令 (亢龙有悔.)

linux文件系统及基础命令 命令详解及范例: 1.pwd :此命令为显示工作目录 [[email protected] sysconfig]# pwd /etc/sysconfig 2.echo :此命令为回显示命令 [[email protected] sysconfig]# echo $PATH /usr/lib64/qt3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root 3.cd :此命令为

Linux安装与基础命令

首先准备一个liunx镜像和一台安装好虚拟机的电脑. 配置好虚拟机,选在稍后安装.选择镜像文件,开启虚拟机进行安装. 配置yum源.首先插入光盘.由于是虚拟机,用的光盘镜像, 在/mnt/下面创建一个文件夹yum .      复制所有光盘里的内容到/mnt/yum   cp -rf /media/RHEL_5.9\ x86_64\ DVD/*  /mnt/yum 用vim编辑器配置文件   vim /etc/yum.repo.d/rhel-debuginfo.repo 配置如下: [rhel]

【Linux基础】常用命令大全

Linux基础之常用命令大全 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /

Linux基础之基础命令1

基本命令一.Linux的基本原则:1. 由目的单一的小程序组成: 组合小程序完成复杂任务:2. 一切皆文件:3. 尽量避免捕获用户接口: (尽量不和用户进行交互, 就是一个程序一但开始运行, 就不需要用户进行任何操作, 如ls命令, ifconfig命令)4. 配置文件保存为纯文本格式:用户接口: 是一种独特的应用程序, 能够为用户提供启动其他应用程序的机制CLI: 命令提示符, 用户输入命令即可shell: sh,csh,ksh,bash,zsh,tcshGUI:图形界面用户接口, 一般通过点

Linux系统优化及基础命令

1.Linux系统优化及基础命令 2. vim编辑器 vim 操作命令 在命令模式下操作 pageup 往上翻页(重要指数****)pagedown 往下翻页(重要指数****)H 移动到屏幕首行gg 移动光标到文档的首行(重要指数****) 前面加数字n表示移动到n行内容G 移动到文档最后一行(重要指数*****)?/nologin 在整个文档中从上往下查找(重要指数*****) 再按n 选择下一个单词 N 选择上一个单词??root 在整个文档中从下往上查找(重要指数*****) 再按n 选