文章目录

  • tmpwatch:删除临时文件
  • 案例练习
  • touch:更新文件目录时间
  • 案例练习
  • tree:以树状图显示目录内容
  • 案例练习
  • umask:指定在建立文件时预设的权限掩码
  • 案例练习


tmpwatch:删除临时文件

  • 作用:修改文件时间信息。
  • 用法:touch [选项]...[目录]...
  • 主要选项如下:

命令

描述

-a

改变文件的读取时间记录。

-c, --no-create

不建立任何文件。

-d, --date=STRING

设定时间与日期,可以使用各种不同的用法。

-F SEC, --forward=SEC

使用参考文件的时间记录。

-m

改变文件的修改时间记录

-r, --reference=文件

使用指定文件的时间属性而非目前的时间。

-t STAMP

使用[[CC]YY]MMDDhhmm[.ss]用法的时间而非目前的时间。

案例练习

(1)将文件的时间记录改为现在的时间。

touch myfile

若文件不存在,系统会建立一个新的文件。

(2)将文件 myfile 的时间记录改为 1 月 6 日 18∶03。

touch -c -t 01061803 myfile

时间的用法可以参考 date 命令,至少需要输入 MMDDhhmm,也就是月、日、时与分。

(3)将 myfile 的时间记录改成公元 2005 年 1 月 6 日 18∶03。

touch -d "6:03pm 01/06/2005" file

时间可以使用 am、pm,是 24 小时的用法。日期可以使用其他用法,如 6 JAN 2005。

(4)应用进阶。

有时 Linux 文件系统空间被占满了,要查询滥用磁盘的用户。首先要查出哪些文件是新创 建的、哪些是更新的,以便找出不正常的大文件。使用命令 touch 生成一个文件,时间戳会根 据情况设定为比较近的日期,再使用 find 命令找出更新的文件。

touch -d "6:03pm 02/06/2005" test 
find /home -newer test –print

系统会在屏幕上显示那些更新的文件的位置,也就知道了它的用户。

touch:更新文件目录时间

  • 作用:修改文件时间信息。
  • 用法:touch [选项]...[目录]...
  • 主要选项如下:

命令

描述

-a

改变文件的读取时间记录。

-c, --no-create

不建立任何文件。

-d, --date=STRING

设定时间与日期,可以使用各种不同的用法。

-F SEC, --forward=SEC

使用参考文件的时间记录。

-m

改变文件的修改时间记录

-r, --reference=文件

使用指定文件的时间属性而非目前的时间。

-t STAMP

使用[[CC]YY]MMDDhhmm[.ss]用法的时间而非目前的时间。

案例练习

(1)将文件的时间记录改为现在的时间。

touch myfile

若文件不存在,系统会建立一个新的文件。

(2)将文件 myfile 的时间记录改为 1 月 6 日 18∶03。

touch -c -t 01061803 myfile

时间可以使用 am、pm,是 24 小时的用法。日期可以使用其他用法,如 6 JAN 2005。

(4)应用进阶。

有时 Linux 文件系统空间被占满了,要查询滥用磁盘的用户。首先要查出哪些文件是新创 建的、哪些是更新的,以便找出不正常的大文件。使用命令 touch 生成一个文件,时间戳会根 据情况设定为比较近的日期,再使用 find 命令找出更新的文件。

touch -d "6:03pm 02/06/2005" test 
find /home -newer test –print

tree:以树状图显示目录内容

  • 作用:有时候我们想了解一个文件夹或者驱动器根目录下的所有文件,并希望它以资源管 理器的树形视图方式显示文件结构。
  • 用法:tree [选项] [目录...]
  • 主要选项如下:

命令

描述

-a

显示所有文件和目录。

-A

使用 ASNI 绘图字符显示树状图而非以 ASCII 字符组合。

-C

给文件和目录清单加上色彩,便于区分各种类型。

-d

显示目录名称而非内容。

-D

列出文件目录的更改时间。

-f

在每个文件目录之前,显示完整的相对路径名称。

-F

在执行文件、目录、Socket、符号链接、管道名称前各自加上“*”、“/”、“=”、“@”、“|”号

-g

列出文件目录的所属群组名称,没有对应的名称时,则显示群组识别码。

-i

不以阶梯状列出文件目录名称。

-I<范本样式>

不显示符合范本样式的文件目录名称。

-l

如遇到性质为符号链接的目录,直接列出该链接所指向的原始目录。

-n

不给文件和目录清单加上色彩。

-N

直接列出文件和目录名称,包括控制字符。

-p

列出权限标识。

-P<范本样式>

只显示符合范本样式的文件目录名称。

-q

用“?”取代控制字符,列出文件和目录名称。

-s

列出文件目录大小。

-t

按文件和目录的更改时间排序。

-u

列出文件目录的拥有者名称,没有对应的名称时,则显示用户识别码。

-x

将范围局限在现行的文件系统中。若指定目录下的某些子目录存放于另一个文件系统上,则将该子目录排除在寻找范围外。

案例练习

查看/root/ossec-hids-1.5 目录树结构,分页显示。

# tree /root/ossec-hids-1.5 |more 
/root/ossec-hids-1.5 
|-- BUGS 
|-- CONFIG 
|-- CONTRIB 
|-- INSTALL 
|-- LICENSE 
|-- README 
|-- active-response 
| |-- disable-account.sh 
| |-- firewall-drop.sh 
| |-- firewalls 
| | |-- ipfw.sh 
| | |-- ipfw_mac.sh 
| | `-- pf.sh 
| |-- host-deny.sh 
| `-- route-null.sh

umask:指定在建立文件时预设的权限掩码

  • 作用:指定在建立文件时预设的权限掩码。
  • 用法:umask [-p] [-S] [mode]
  • 主要选项如下:

命令·

描述

-S

以文字的方式表示权限掩码。

-p

以数字的方式表示权限掩码。

mode

权限掩码。

说明 当最初登录到系统中时,umask 命令就确定了创建文件的默认模式。这一命令实 际上和 chmod 命令正好相反。系统管理员必须要为用户设置一个合理的 umask 值, 以确保用户创建的文件具有所希望的默认权限,防止其他非同组用户对用户的文件具 有写权限。在已经登录之后,可以按照个人的偏好使用 umask 命令来改变文件创建的默 认权限。相应的改变直到退出该 Shell 使用另外的 umask 命令之前一直有效。一般来说, umask 命令是在/etc/profile 文件中设置的,每个用户在登录时都会引用这个文件,所以如 果希望改变所有用户的 umask,可以在该文件中加入相应的条目。如果希望永久性地设 置自己的 umask 值,那么就把它放在自己的$HOME 目录下的.profile.bash_profile 文件中。

umask 命令允许设定文件创建时的默认模式,对应每一类用户(文件属主、同组用户、其 他用户)存在一个相应的 umask 值中的数字。对于文件来说,这一数字的最大值是 6。系统不 允许在创建一个文本文件时就赋予它执行权限,必须在创建后用 chmod 命令增加这一权限。目 录则允许设置执行权限,这样针对目录来说,umask 中各个数字最大可以是 7。

常用的 umask 值及对应的目录和文件权限

umask 值

目录权限

文件权限

022

775

644

027

750

640

002

755

664

006

771

660

007

770

660

案例练习

(1)如果想知道当前的 umask 值,可以使用没有任何参数的 umask 命令。

#umask 
0022

(2)如果想要改变 umask 值,只要使用 umask 命令设置一个新值即可。

#umask 002

(3)确认系统是否已经接受了新的 umask 值。

# umask 002 
# umask 
0002

在使用 umask 命令之前,一定要弄清楚到底希望文件/目录具有什么样的默认权限,否则 可能会得到一些非常奇怪的结果。例如,如果将 umask 值设置为 600,那么所创建的文件/目录 的默认权限就是 066。

(4)使用 umask 命令设置安全权限。

# umask 117 
# umask -S 
u=rw,g=rw,o=

上述命令把 umask 值改为 117,结果只有文件所有者具有读/写文件的权限,其他用户不能 访问该文件。这显然是一种非常安全的状态。