locate 命令
(模糊查找文件或文件夹)
- 从系统的根目录/开始查找文件或者文件夹,根据文件名来查找,模糊匹配文件名。
- 只要文件名里有我们要查找的内容,就会帮助我们查找出来,相当于windows里的搜索功能。
- 缺点:新建的文件或者文件夹查找不到,需要手动更新数据库。
whereis和which的区别
- whereis 用来查找系统里的命令存放的路径。主要到PATH变量指定的目录下查找。作用和which非常的相似。
- which 不能显示man手册相关文件的存放路径
共同点:
- 都是查找系统的命令
- 都是到PATH变量指定的目录下查找
差异点:
- whereis 会显示man手册的路径
PS:cd是shell的内部命令,因此用which是查不到的!
shell的内部命令和外部命令
shell的作用:
是人和计算机进行交互的程序,也可以说是一个翻译。
bash 程序自带的命令—》内部命令
PS:外部命令—-》需要额外安装的命令(程序)
find命令
find命令 范围 条件 动作
用途:用于查找文件或目录
格式:find [查找范围] [查找条件] [动作]
常用查找条件
- -name:按文件名称查找
- -size: 按文件大小查找
- -user: 按文件属主查找 owner
- -type: 按文件类型查找
- -perm :按文件权限查找
- -mtime :按文件更改时间查找
- -newer : 按比某个文件更新的查找
特殊查找条件
- -o :逻辑或,只要所给的条件中有一个满足,寻找条件就算满足。o即or;
- -not :逻辑非,在命令中可用“!”表示。该运算符表示查找不满足所给条件的文件 —>取反
- -a:逻辑与,系统默认是与,可不加,表示只有当所给的条件都满足时,寻找条件才算满足。 and
-type 类型
- f (file) 普通文件
- d (directory) 目录(文件夹)
- c 字符设备(character)
- b 块设备 (block)
- l (link) 链接文件
- p 管道 pipe
find高级用法
# find /boot -size +1M -o -name "vmlinuz*"
+1M:大于1M
-1M:小于1M
1M:等于1M
*:通配符号,代表任意个字符
文件名里包含vm的文件查找出来:
# find /boot -size +1M -o -name "*vm*"
-mtime n (modify time)修改时间
+4:4天之前
-4:4天内
4:4天那一天
# find /root -mtime -2
查找2天以内的文件在/root目录下
PS:
- -mmin 根据分钟来查找
- 三个时间:
- atime: access time 访问时间 cat more less
- ctime: change time 改变属性的时间 chmod chown
- mtime: modified time 修改时间—》修改内容 vim
#stat lp.txt 可以查看以上三个时间
find的补充说明
find 范围 条件 动作
# find /lianxi -name "*.txt" -exec cp {} /backup ;
- find 是命令
- /lianxi:查找的目录—》范围
- -name:根据名字来查找
- *.txt:以.txt结尾的文件
- -exec:后面接执行的命令 (execute)
- cp:就是要执行的命令(动作) copy
- {} :用来存放find命令查找到的结果 —》相当于一个容器,用来存放前面find命令查找出来的结果
- /backup :目地文件夹
- ; 这条命令的结束符号
PS:
- -ok 就多了一个确认,每步操作都需要输入y或者n确认。
# find /lianxi -name "*.txt" -ok cp {} /back ;
< cp ... /lianxi/wenlijun.txt > ? y
< cp ... /lianxi/lihong.txt > ? y
< cp ... /lianxi/wangshuo.txt > ? y
< cp ... /lianxi/surunze.txt > ? y
练习:
- 在根目录下新建一个目录叫find;
- 进入find目录,复制/etc/passwd 到当前目录;
- 复制/boot目录到当前目录下;
- 新建一个目录叫hunantv;
- 新建一个空文件叫daydayup;
- 查找mkdir和touch命令的路径;
- 使用locate命令查找出ifconfig文件的路径;
- 使用find命令查找出/find目录下大小大于1M并且名字里包含vmlinuz的文件;
9. 使用find命令查找出/find目录下大小大于1M小于4M的文件; - 查找出你机器里包含rhel*.iso的文件并且此文件大小大于2G;
- 查找出mkdir的文件复制到/find目录下;
- 查找出daydayup的文件然后删除它;
- 查找出find目录下大于10K的文件复制到/tmp目录下;
- 查找出属于linghu这个用户的所有文件并且文件的大小大于5k;
- 查找出/tmp目录下最近3个小时内修改过的文件;
- 查找出/find目录下最近30分钟前修改过的文件。
8-16题参考答案:
# find /find -size +1M -name "*vmlinuz*" -type f
# find /find -size +1M ! -size +4M
# find / -name "rhel*.iso" -type f -size +2G
# find / -name mkdir -exec cp {} /find ;
# find /find -name "daydayup" -type f -exec rm -rf {} ;
# find /find -size +10k -type f -exec cp {} /tmp ;
# find / -user linghu -type f -size +5k
# find /tmp -mmin -180 -type f
# find /find -mmin +30 -type f
mkdir -p 命令
# mkdir -p a/b/c/d/e/f
- mkdir 是命令
- -p 选项—》可供你选择的项目 option ,接选项会使命令有不一样的效果。
- a/b/c/d/e/f 参数 —》参与进来的操作数 arguments parameter
-p, –parents
no error if existing, make parent directories as needed新建文件夹的时候,如果父目录不存在,就将父目录一起新建了。
扩展练习:
- 查找出/lianxi目录下有多少个文件夹,但是不能算上包含文件夹下的子文件夹
[root@chinaitsoft lianxi]# find . -maxdepth 1 -type d |tail -n +2|wc -l
9
- | 管道符号:将前面一个命令的输出送给后面的命令作为输入。
- wc 统计命令
- -l 统计行数 line
- depth 深度
- -maxdepth levels
Descend at most levels (a non-negative integer) levels
PS:“深度”
./tar/boot/grub
0 1 2 3
目录的深度从0开始算 ,0代表目录本身,1 代表当前目录下的文件夹 2代表当前目录下的文件夹里的子文件夹 ,以此类推。
初识 /proc 目录
/proc 此目录用来存放内核信息及相关的进程信息。process
- 此目录存放的信息是在内存里,停电会丢失。
- 每一个进程都有一个文件夹,一一对应。 根据进程的PID(进程号)建立
kernel:内核
其实就是一个软件,比较核心而已。
内核的作用
- 对cpu进行调度管理;
- 对内存进行管理;
- 对进程进行管理;
- 对文件系统进行管理;
- 对其他的硬件管理
# find / -user linghu -type f -size +1k 2>/dev/null
- > (正确的输出重定向):将在屏幕上的输出,重新转到别的地方。(乾坤大挪移),如果后面接的文件不存在,会自动新建。如果存在,会覆盖原文件里的内容。
- >>(追加输出重定向):不覆盖原来的内容,只是在末尾追加进去。如果后面接的文件不存在,会自动新建。
- 2>(错误的输出重定向):前面命令执行不成功或者出错的信息,重新定向到别的地方。
- 2>>(追加错误的输出重定向):前面命令执行不成功或者出错的信息,重新定向到别的地方。不会覆盖原来文件里的内容。
/dev/null
- 黑洞文件,任何内容只要重定向到此,都会消失,不保存。