DAY 3
1.FHS 文件系统层级标准
文件系统:存储设备指定存放数据文件的方法和数据结构
/ 所有数据文件
bin 所有用户都可以做执行的命令文件
sbin 只有管理员才能执行的命令文件
lib 32数据的库文件
lib64 64数据的库文件
usr 核心资源文件
root root(管理员)用户的家目录
home 所有普通用户的主路径
boot 系统加载引导相关所有文件
dev 设备目录人间
etc 系统中所有的配置文件(软件程序初始化参数文件)
opt 可选自定义软件安装路径
proc 系统内核相关的进程信息
sys 硬件驱动程序
run 应用程序的进程信息
srv 服务程序文件路径
tmp 临时目录
var 动态可变化的数据文件路径
2.(-/d)文件相关操作命令
(1)同一个路径下不能有两个相同的文件名
(2)严格区分大小写
(3)文件命名不能以斜杠字符命名 (/表示路径分割或/目录)
(4)文件命名字符不能超过255个字符
touch 创建文本文件
当一个路径下不存在该文件通过touch可以创建普通文本文件,若存在则改变文件触摸时间
touch FILENAME
touch a b c
touch {1,2,3,4}
touch {1..10}//创建多个文件
eg:
touch /root/a b c
touch /root/{1..3}==touch /root/1 /root/2 /root/3
mkdir FILENAME
-p 创建父目录(目录多级)
-pv 创建父目录详情
eg:
[root@localhost ~]# mkdir -pv /root/1/2/3
mkdir: created directory '/root/1/2'
mkdir: created directory '/root/1/2/3'
stat 列出文件的详细信息
stat FILENAME
[root@localhost ~]# stat Music
File: Music
Size: 6 Blocks: 0 IO Block: 4096 directory
Device: fd00h/64768d Inode: 52610172 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2022-11-23 13:44:05.615498719 -0500
Modify: 2022-11-22 13:30:38.639683316 -0500
Change: 2022-11-22 13:30:38.639683316 -0500
Birth: 2022-11-22 13:30:38.639683316 -0500
tree 树状结构显示目录文件
rm删除文件
-r 递归
-f 强制
rm FILENAME 删除文本文件
rm -r DIRNAME 删除目录文件
rm -rf FILE 强制删除一个文件
*表示任意长度的任意字符
rm -rf a* 删除开始以a字符命名的所有文件
rm -rf *a 删除以a结尾命名的所有文件
rm -rf *a*删除有a命名的所有文件
rm -rf /
mv 移动文件
mv 源文件名 目标路径
#touch /root/file
#mv /root/file / ||将root下的file移动到/下
#mv /root/file /newfile ||
(1)当/下的newfile不存在,将file移动到/目录并改名为newfile
(2)当存在,如果是目录文件,表示file移动到/newfile目录下
如果是文本文件,表示file移动到/目录并改名为newfile
cp 复制文件
cp 源文件名 目标路径
-r 递归 (复制目录文件)
#touch /root/file
#cp /root/file / ||将root下的file复制到/下
#cp /root/file /newfile ||
(1)当/下的newfile不存在,将file复制到/目录并改名为newfile
(2)当存在,如果是目录文件,表示file复制到/newfile目录下
如果是文本文件,表示file复制到/目录并改名为newfile
3.查看文本文件内容的6个命令
cat -n FILENAME
tac FILENAME
more FILENAME 分屏显示文件内容,最后将内容输出到终端
less 分屏显示文件内容,打开文件阅读
快捷用法: 退出q 换页 空格 b切换上一页 / 或 ?关键字匹配 n N
head FILENAME 查看文件前十行
head -n 数字 FILENAME==
tail FILENAME 查看文件后十行
head -数字 FILENAME 查看文件后数字行
4.wget下载文件
-O将链接文件下载到对应路径并进行改名
-P将链接文件下载到对应路径
-c实现断点续传
-r 下载目录文件
## 作业题:
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
# mkdir -p /mnt/{boot,sysroot} /mnt/boot/grub /mnt/sysroot/lib/modules /mnt/sysroot/usr/{bin,Sabin,lib} /mut/sysroot/var/{run,log,lock} /mnt/sysroot/etc/init.d /mnt/sysroot/{proc,sys,bin,sbin,dev,home,root,tmp}
mkdir: 已创建目录 '/mnt/boot'
mkdir: 已创建目录 '/mnt/sysroot'
mkdir: 已创建目录 '/mnt/boot/grub'
mkdir: 已创建目录 '/mnt/sysroot/modules'
mkdir: 已创建目录 '/mnt/sysroot/usr'
mkdir: 已创建目录 '/mnt/sysroot/usr/bin'
mkdir: 已创建目录 '/mnt/sysroot/usr/sbin'
mkdir: 已创建目录 '/mnt/sysroot/usr/lib'
mkdir: 已创建目录 '/mnt/sysroot/var'
mkdir: 已创建目录 '/mnt/sysroot/var/run'
mkdir: 已创建目录 '/mnt/sysroot/var/log'
mkdir: 已创建目录 '/mnt/sysroot/var/lock'
mkdir: 已创建目录 '/mnt/sysroot/etc'
mkdir: 已创建目录 '/mnt/sysroot/etc/init.d'
mkdir: 已创建目录 '/mnt/sysroot/proc'
mkdir: 已创建目录 '/mnt/sysroot/sys'
mkdir: 已创建目录 '/mnt/sysroot/bin'
mkdir: 已创建目录 '/mnt/sysroot/sbin'
mkdir: 已创建目录 '/mnt/sysroot/dev'
mkdir: 已创建目录 '/mnt/sysroot/home'
mkdir: 已创建目录 '/mnt/sysroot/root'
mkdir: 已创建目录 '/mnt/sysroot/tmp'
[root@localhost ~]# tree /mnt
/mnt
├── boot
│ └── grub
└── sysroot
├── bin
├── dev
├── etc
│ └── init.d
├── home
├── modules
├── proc
├── root
├── sbin
├── sys
├── tmp
├── usr
│ ├── bin
│ ├── lib
│ └── sbin
└── var
├── lock
├── log
└── run
22 directories, 0 files
2.如何一次性在/test目录创建以abc表示的100个文件,例如abc1,abc2,abc3,..abc100
\# touch /test/{abc1..abc100}
3.复制/mnt/boot目录文件到/test并改名为/boot.bak。
\# cp -r /mut/boot /test/boot.bak
4.复制/test所有有9字符命名的文件到/pub下。
\# cp -r /test/*9* /pub
\5. 移动/test所有有1字符命名的文件到/pub目录下。
\# mv -r /test/*1* /pub