1.FHS文件系统层级标准
文件系统:
对于一个存储设备(或者是分区)明确了存放文件的方法和数据结构类型。
即如何放,放什么
/ | 系统所有数据文件 |
bin | 所有用户可以执行的二进制文件 |
sbin | 系统中只有管理员可以执行的命令文件 |
lib | 32位相关的库文件 |
lib64 | 64位相关的库文件 |
root | 管理员默认的家目录 |
home | 所有普通用户的主路径 |
boot | 系统引导文件 |
dev | 主机的设备文件 |
etc | 所有的配置文件(软件程序初始化的参数文件) |
media | 挂载点目录(永久连接) |
mnt | 挂载点目录(临时连接) |
opt | 可选目录 |
proc | 内核进程文件路径 |
sys | 设备驱动程序路径 |
run | 应用层进程文件路径 |
srv | 服务程序的数据文件 |
var | 动态可变化的数据文件(日志和邮件) |
tmp | 临时文件目录 |
2.文件相关的操作命令
文件名限制:
1.同一个路径下不能有两个相同的文件名
2.严格区分大小写
3.文件命令不能以/字符命令 ab touch “ab”
4.文件命名字符不能超过255字符
stat (文件名):查看文件详细属性
touch (文件名) :本身是更改文件时间,但当一个文件不存在对于文件时,
可以通过touch来创建文本文件。
#touch a b c (一次性创建多个文件)
#touch {1,2,3,4}
#touch {a..d} 注:两个“..”表示省略
eg:#touch /root/a b c (a在绝对路径,b和c都是在当前路径下)
#touch /root/{a..c}
#touch {abc}
#touch test{1..100}
mkdir
#mkdir d1 d2 d3
mkdir -p(可以用于一次性创建一个多层结构)
mkdir -pv(可以把创建的多层结构详细显示出来)
-p 父目录 多级目录
-v 详细信息
tree /(多级目录名) 可以树状显示目录结构
rm 删除文件
rm -r (文件名)
-r 表示递归的意思
-f (force) 强制的意思
ctrl c 可以决定当前命令的进行
eg:
#touch {1..100}
#rm -rf {1..100}
#rm -rf /root/1*
#rm -rf /root/*1
mv移动文件
#mv 源文件 目标的路径(目录)
eg:
#touch /root/file
#mv /root/file / 将/root/file移动到/
#touch /root/{a..c}
#mv /root/{a..c} / ==mv /root/a /root/b /root/c /
即源文件可以一次性移动多个但目标文件唯一
移动并改名
#mv /root/file /newfile
1.当newfile不存在时,自动把file移动到/目录并改名为newfile
2.当newfile存在时,newfile是文本文件,将/root/file文件移动到/目录下并改名为newfile,提示是否覆盖
newfile是目录文件,将/root/file文件移动到/newfile目录下
重命名
#mv /root/file /root/newfile
cp复制文件
#cp 源文件... 目标路径(目录) 复制文本文件
#cp -r 源文件 目标路径(目录) 复制目录文件
查看文本文件内容的6个命令
/etc/passwd 默认配置文件
cat /etc/passwd 一次性全部输出
tac
more 分页显示(” “切换到下一页,”b“切换到上一页,”q“退出)最后把所有的结果打印到终端
less 分页显示,打开阅读的方式
/“关键词”(快速匹配) ”n“跳转到下一个关键词,"N"跳转到上一个关键词
” “下一页,”b“上一页
q(quit)退出
head 默认查看一个文件的前10行
head -n 5 /etc/passwd ==head -5 /etc/passwd 查看前5行
tail 默认查看一个文件的后10行
tail - 2 /etc/passwd 查看后2行
wgt下载
#wget -r (目录文件链接) 默认下载到当前路径
#wget (文本文件链接)
-r 通过链接下载目录文件
-o 可以下载到对应路径并改名
# wget -o /root/qq (链接名)
-P(大写) 把链接文件下载到指定路径下
#wget -p /root (链接)
-c 断点续传(防止中途文件下载断续)
作业
[root@localhost ~]# mkdir /mnt/{boot,systoot}
[root@localhost ~]# mkdir /mnt/boot/grub
[root@localhost ~]# mkdir -pv /mnt/sysroot/{proc,sys,bin,sbin,lib,usr,var,etc,dev,home,root,tmp}
[root@localhost ~]# mkdir -pv /mnt/sysroot/usr/{bin,sbin}
[root@localhost ~]# mkdir -pv /mnt/sysroot/lib/modules
[root@localhost ~]# mkdir -pv /mnt/sysroot/var/{run,log,lock}
[root@localhost ~]# mkdir -pv /mnt/sysroot/etc/init.d
[root@localhost ~]# touch /test/abc{1..100}
[root@localhost ~]# mkdir /mnt/boot
[root@localhost ~]# cp -r /mnt/boot /test
[root@localhost ~]# mv /test/boot /test/boot.bak
[root@localhost ~]# mkdir /pub
[root@localhost ~]# cp -v /test/{9,19,29,39,49,59,69,79,89,99} /pub
[root@localhost ~]# mv /test/{1,11,21,31,41,51,61,71,81,91,100} /pub