Linux命令进阶之一(useradd,file,which,whereis,find,locate)
1.useradd
useradd 命令用于建立用户帐号
语法:useradd 选参 用户名
useradd 指令所建立的帐号,实际上是保存在 /etc/passwd 文本文件中
userdel 删除帐号

2.查看文件的类型
利用file命令查看文件的类型
命令:file
语法:file [-bLvz] 文件
- -b:显示结果,但是不显示文件名称
- -L:直接显示符号链接所指向的文件的类型,显示符号链接的文件类型
- -v:显示版本信息
- -z:测试去读取压缩文件的内容

audit是目录文件

3.which搜寻
which 用于查找文件, 会在环境变量$PATH设置的目录里查找符合条件的文件
语法:which [-a] 查找文件名
- -a:将PATH中可以找到的指令都列出来,而不是第一个被找到的名称

4.档案查找命令
whereis 查找文件
语法:whereis [-bmsu] 目录或文件名
- -b:只找binary(二进制)格式的文件
- -m:只找在说明文件manual路径下的文件
- -s:只找source(原始代码)来源档案
- -u:搜索不在上述三个项目当真的其他特殊档案
注:只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令

locate 用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录
语法:locate [-irc] keyword
- -i :忽略大小写
- -r :使用正规运算式做寻找的条件
- -c, --count -- 只输出找到的数量
需要强调的是:
- locate 只在 /var/lib/slocate 资料库中找。
- locate查的是数据库(一般文件数据库在 /var/lib/slocate/slocate.db 中)
- locate 的查找并不是实时的,而是以数据库的更新为准
- locate 的速度比 find 快
locate查找的数据库一般是系统自己维护,也可以手工升级数据库 ,命令为:
updatedb
EG:
忽略大小写搜索当前用户目录下所有以 r 开头的文件 :
locate -i ~/r
系统自己维护了

find 用来在指定目录下查找文件
语法:find [路径] [option] [action]
(find的参数有很多,我们介绍简单一点的,更多用法记得man find )
与时间相关的选项:-atime,-ctime和-mtime,以-mtime说明:
-mtime n :n 为数字
-mtime +n :n天之前(不含n天本身)
-mtime -n:n天之内(含n天本身)
-nwer file:file为一个存在的文件,列出比file更新的文件
-name 文件名,查找文件名称符合 的文件
注:使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示



5.作业
请说明whereis和find有何区别?它们各自的优缺点是什么?
whereis只能用于查找二进制文件、源代码文件和man手册页且通过文件索引数据库而非PATH来查找的
find通过直接搜索硬盘的方式查找
优点 缺点
find 保证查找的信息绝对可靠 效率不高,比较慢
whereis 快 若没及时更新,信息会不准确,要常常更新
请使用man page,如何使用find 命令查找/etc下大于500K的文件?
find /etc -size +500k
![]()
让一个普通用户heetian能够进行cp /dir1/file1 /dir2的命令时,请说明dir1,file1,dir2的最小所需权限为何?
对于dir1最低肯定需要能够进入的权限x
对于file1肯定要有能读取的权限r
对于dir2肯定要有能创建的权限w以及能进入的权限x



浙公网安备 33010602011771号