1.FHS(Filesustem Hierarchy Standard)文件系统层级标准
文件系统:对于一个存储设备(或者分区)明确存放文件的方法和 数据结构类型
重点 ------------------------------ / 系统所以数据文件 • usr 核心资源目录 bin 所以用户可以执行的二进制命令文件 sbin 系统中只有管理员可以执行的命令文件 lib 32位相关的库文件 lib64 64位相关的库文件 root 管理员家目录 home 所以普通用户的主路径 boot 系统引导文件 dev 主机中的设备文件 etc 所以配置文件(软件程序初始化的参数文件) media 挂载点目录(永久连接) mnt 挂载点目录(临时连接) opt 可选目录 proc 内核进程文件路径 sys 设备驱动程序路径 run 应用层进程文件路径 srv 服务程序的数据文件 tmp 临时文件目录 var 动态可变化的数据文件
2.常用命令
clear 清除屏幕(ctrl+l 快速清除) find <目录> -name 'b' 查询目录下b的目录和文件 find <目录> -name 'b*' 查询目录下b开头的目录和文件
3.文件命名的限制
1.同一个路径下不能有两个相同的文件名 2.严格区分大小写 3.文件命名不能以/字符命名 (例如:a/b 不行) 4.文件命名字符不能超过255字符
touch 创建文件 (注:当一个路径下不存在对应文件可以通过touch创建文本文件,如果存在会更改文件的时间) touch一次性创建多个文本文件 #touch a b c #touch {1,2,3,4} #touch {a..d}
mkdir d1 d2 d3 mkdir {d1,d2,d3} mkdir d{1..3} mkdir -p 多级创建文件目录 mkdir -pv 创建目录的详情
4.tree 树状显示目录结构
5.rm 删除文件
-r 递归 -f 强制 * 任意长度的任意字符
6.mv 移动文件
mv <源文件> <目标路径>(目录名) 移动并改名 mv /root/file /newfile (1)/目录下不存在newfile文件,将/root/file文件移动到/目录下并改名newfile (2)/目录下查找newfile文件,newfile是文本文件,将/root/file文件移动到/目录下并改名为newfile,提示是否覆盖 newfile是目录文件,将/root/file文件移动到/newfile目录下 重命名 mv /root/file /root/newfile
-
cp 复制文件
cp 源文件... <目标路径> 复制文本文件 cp -r 源文件... <目标路径> 复制目录文件
8.查看文本文件内容的6个命令
cat cat -n 显示行号 tac 倒序显示cat的内容 more (分页显示,最后把内存打印到终端)(空格 下一页 b 上一页) less (分页显示,打开阅读方式)(可以关键词快速匹配 n下一个关键词 N上一个关键词 ) head -n 默认查看一个文件的前n行 tail -n 默认查看一个文件的后n行
9.wget下载文件
-r 通过链接下载目录文件 -O 把链接文件下载到指定链接并改名 -P 可以把目标文件下载到指定的路径下 -c 断点续传
作业:
1、#创建目录(尝试以下通过一条命令实现)
在/mnt下创建boot和sysroot目 在/mnt/boot下创建grub目录 在/mnt/sysroot下创建proc,sys,bin,sbin,lib,usr,var,etc,dev,home,root,tmp 在/mnt/sysroot/usr下创建bin,sbin,lib 在/mnt/sysroot/lib下创建modules 在/mnt/sysroot/var下创建run,log,lock 在/mnt/sysroot/etc下创建init.d
2.如何一次性在/test目录创建以abc表示的100个文件,例如abc1,abc2,abc3,..abc100
3.复制/mnt/boot目录文件到/test并改名为/boot.bak。
4.复制/test所有有9字符命名的文件到/pub下。
5.移动/test所有有1字符命名的文件到/pub目录下。
答案
1.mkdir -p /mnt/boot/grub /mnt/sysroot/{proc,sys,bin,sbin,lib,usr,var,etc,dev,home,root,tmp} /mnt/sysroot/usr/{bin,sbin,lib} /mnt/sysroot/lib/modules /mnt/sysroot/{run,log,lock} /mnt/sysroot/etc/init.d
2.mkdir /test
touch /test/abc{1..100}
3.cp -r /mnt/boot /test/boot.bak
4.cp -r /test/*9 /pub
5.mv /test/*1 /pub