文件权限的相关操作请查看:https://mp.csdn.net/postedit/81407821
1、观察文件类型
命令:$ file ~/.bashrc
/root/.bashrc: ASCII text <==告诉我们是 ASCII 的纯文本档啊!
命令:$ file /usr/bin/passwd
/usr/bin/passwd: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically
linked (uses shared libs), for GNU/Linux 2.6.32,
BuildID[sha1]=0xbf35571e607e317bf107b9bcf65199988d0ed5ab, stripped
# 执行文件的数据可就多的不得了!包括这个文件的 suid 权限、兼容于 Intel x86-64 等级的硬件平台
# 使用的是 Linux 核心 2.6.32 的动态函式库链接等等。
命令:$ file /var/lib/mlocate/mlocate.db
/var/lib/mlocate/mlocate.db: data <== 这是 data 文件!
指令与文件的搜索
1、脚本文件名的搜索
命令:$ which (寻找『执行档』)
命令:$ which [-a] command
选项或参数:
-a :将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称
范例三:请找出 history 这个指令的完整文件名
命令:$ which history
/usr/bin/which: no history in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
which指令是根据『PATH』这个环境变量所规范的路径,去搜寻『执行档』的档名~ 所以,重点是
找出『执行档』而已!且 which 后面接的是『完整档名』
怎么 history 这个常用的指令竟然找不到啊!为什么呢?这是因为 history 是『bash 内建的指令』啦! 但是 which 预设是找 PATH 内所规范的目录,所以当然一定找不到的啊(有 bash 就有 history!)!我们可以透过 type 这个指令喔!
2、文档名的搜索
whereis (由一些特定的目录中寻找文件文件名)
命令:$ whereis [-bmsu] 文件或目录名
选项与参数:
-l :可以列出 whereis 会去查询的几个主要目录而已
-b :只找 binary 格式的文件
-m :只找在说明文件 manual 路径下的文件
-s :只找 source 来源文件
-u :搜寻不在上述三个项目当中的其他特殊文件
locate / updatedb ##在已建立的数据库 /var/lib/mlocate 中寻找,不在硬盘中直接存储数据
命令:$ locate [-ir] keyword
选项与参数:
-i :忽略大小写的差异;
-c :不输出档名,仅计算找到的文件数量
-l :仅输出几行的意思,例如输出五行则是 -l 5<