第二周作业
描述Linux发行版的系统目录名称命名规则以及用途。
[root@Centos7 cd]# tree -L 1 /
/
├── bin -> usr/bin 所有用户使用的基本命令
├── boot 引导文件存放目录
├── data 自己分区时用到的独立分区的挂载点
├── dev 设备文件及特殊文件存储位置
├── etc 配置文件目录
├── home 普通用户家目录
├── lib -> usr/lib 启动时程序依赖的基本库文件以及内核块文件
├── lib64 -> usr/lib64 专用x86_64系统上的辅助共享库文件存放位置
├── media 便携式移动设备挂载点
├── misc 这个目录可以用来存放杂项文件或目录
├── mnt 临时文件系统挂载点
├── net
├── opt 第三方应用程序的安装位置
├── proc 用于输出内核与进程信息相关的虚拟文件系统
├── root 管理员的家目录
├── run 被识别为"tmpfs"临时文件系统的一个挂载点,内的文件和目录没有存储在磁盘上,只存储在内存中。
├── sbin -> usr/sbin 管理类的基本命令
├── srv 系统上运行的服务用到的数据
├── sys 用于输出当前系统上硬件设备相关信息虚拟文件系统
├── tmp 保存系统两次重启之间产生的临时数据
├── usr Unix操作系统软件资源所放置目录;所有系统默认的软件都会放置到这个目录。
└── var 主要针对常态性变动的文件,包括缓存,登录档以及某些动作所产生的文件
描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
文件的元数据信息:
- file:文件名
- size:文件大小
- block:文件占了多少个数据块
- IO Block:文件所占数据块的块大小
- Device:硬件,文件在硬盘的那个柱面
- Inode:节点号 Access(第一个):权限
- UId:该文件所属的属主
- Gid:该文件所属的属组
- context:安全上下文
- Access(第二个):文件上一次的访问时间
- Modify:文件上一次修改时间
- Change:文件上一次属性更改的时间
修改文件的时间戳信息:
touch [option]...file...
-c 指定的文件路径不存在时不予创建
-a 仅修改atime
-m 仅修改mtime
-t 指定日期时间,而非现在的时间
总结软连接和硬连接区别,并用实例操作说明。
- 本质上的区别:硬链接是同一个多个文件名,软链接是不同的文件
[root@Centos7 data]# echo 111 > f1.txt
[root@Centos7 data]# ln f1.txt f1.txt.hardlink
[root@Centos7 data]# ll -i f1.txt f1.txt.hardlink
67 -rw-r--r--. 2 root root 4 Dec 6 21:57 f1.txt
67 -rw-r--r--. 2 root root 4 Dec 6 21:57 f1.txt.hardlink
[root@Centos7 data]# echo 2222 > f2
[root@Centos7 data]# ln -s f2 f2.link
[root@Centos7 data]# ll -i f2*
69 -rw-r--r--. 1 root root 5 Dec 6 22:01 f2
68 lrwxrwxrwx. 1 root root 2 Dec 6 21:59 f2.link -> f2
- 跨分区的区别:硬链接不支持跨分区,软链接支持跨分区
[root@Centos7 data]# ln f3 /root/f3.hardlink
ln: failed to create hard link ‘/root/f3.hardlink’ => ‘f3’: Invalid cross-device link
[root@Centos7 data]# ln -s ../data/f3 /root/f3.softlink
[root@Centos7 data]# ll ../data/f3 /root/f3.softlink
-rw-r--r--. 1 root root 4 Dec 6 22:03 ../data/f3
lrwxrwxrwx. 1 root root 10 Dec 6 22:05 /root/f3.softlink -> ../data/f3
- 硬链接不支持对目录创建,软链接支持
[root@Centos7 data]# mkdir -p d1/d2
[root@Centos7 data]# ln d1/ d1.hardlink
ln: ‘d1/’: hard link not allowed for directory
[root@Centos7 data]# ln -s d1/ d1.software
[root@Centos7 data]# ls -ld d1*
drwxr-xr-x. 3 root root 16 Dec 6 22:09 d1
lrwxrwxrwx. 1 root root 3 Dec 6 22:10 d1.software -> d1/
- 硬链接文件与原始文件是相互平等独立的关系,软链接文件依赖于原始文件
[root@Centos7 data]# ll f2*
-rw-r--r--. 1 root root 5 Dec 6 22:01 f2
lrwxrwxrwx. 1 root root 2 Dec 6 21:59 f2.link -> f2
[root@Centos7 data]# rm -rf f2
[root@Centos7 data]# ll f2*
lrwxrwxrwx. 1 root root 2 Dec 6 21:59 f2.link -> f2 f2是红色的还闪烁
[root@Centos7 data]# ll -i f1*
67 -rw-r--r--. 2 root root 4 Dec 6 21:57 f1.txt
67 -rw-r--r--. 2 root root 4 Dec 6 21:57 f1.txt.hardlink
[root@Centos7 data]# rm -f f1.txt
[root@Centos7 data]# cat f1.txt.hardlink
111
- 硬链接i文件与原始文件inode编号相同,软件文件与原始文件inode编号不一样
- 链接数的增加与减少问题
- 软链接的原始文件路径相对的是软链接文件的路径,硬链接的原始文件路径相对的是当前工作目录
- 文件类型不一样
Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
文件管理类相关命令
目录管理命令
ls 命令列出目录下的内容
Usage: ls [OPTION]... [FILE]...
ls /etc
ls -a /etc/
ls -l /etc
ls -lh /etc
ls -i /etc
ls -lt /etc
ls -R /etc/sysconfig/
ls -F1 /run
ls -ld /etc
ls -l --time=atime anaconda-ks.cfg
mkdir命令
mkdir -pv /testdir/dir1/{x,y}/{a,b}
mkdir -pv /testdir/{dir3,dir4,dir5/{dir6,dir7}}
mkdir -pv /testdir/dir2/{x/{a,b},y}
rmdir命令
rmdir -pv /testdir/dir1/{x,y}/{a,b}
cd 命令
[root@Centos7 data]# cd
[root@Centos7 ~]# cd /etc/sysconfig/network-scripts/
[root@Centos7 network-scripts]# cd -
/root
[root@Centos7 ~]# cd -
/etc/sysconfig/network-scripts
[root@Centos7 network-scripts]# cd ~
[root@Centos7 ~]# useradd zs;echo zs|passwd --stdin zs
Changing password for user zs.
passwd: all authentication tokens updated successfully.
[root@Centos7 ~]# cd ~zs
[root@Centos7 zs]# cd
pwd 命令
[root@Centos7 bin]# cd /bin/
[root@Centos7 bin]# pwd -P
/usr/bin
[root@Centos7 bin]# pwd
/bin
[root@Centos7 bin]# pwd -L
/bin
[root@Centos7 bin]# pwd -P
/usr/bin
文件管理命令
cp 命令
-i 覆盖前提示
-n 不覆盖,注意两者顺序
-r, -R 递归复制目录及内部的所有内容
-a 归档,相当于-dR --preserv=all
-d --no-dereference --preserv=links 不复制原文件,只复制链接名
-p 等同--preserv=mode,ownership,timestamp
-v --verbose
-f --force
--preserv[=ATTR_LIST]
mode: 权限
ownership: 属主属组
timestamp:
links
xattr
context
all
-u --update 只复制源比目标更新文件或目标不存在的文件
-b 目标存在,覆盖前先备份,形式为 filename~
--backup=numbered 目标存在,覆盖前先备份加数字后缀
cp -av /etc/ /data/backup`date +"%F-%T"`
cp -rv --preserve=mode /root/ /data/rootdir
mv 命令
Usage: mv [OPTION]... [-T] SOURCE DEST
or: mv [OPTION]... SOURCE... DIRECTORY
or: mv [OPTION]... -t DIRECTORY SOURCE...
常用选项:
-i 交互式
-f 强制
-b 目标存在,覆盖前先备份
rm 命令
Usage: rm [OPTION]... FILE...
常用选项:
-i 交互式
-f 强制删除
-r 递归
--no-preserve-root 删除/
复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符
cp /etc/profile /tmp
sed -r 's@^[[:space:]]+@@;/^$/d' /tmp/profile
在vim中设置tab缩进为4个字符
[root@Centos7 data]# cat <<-EOF > ~/.vimrc
> set tabstop=4
> EOF
随堂笔记
硬链接:在一个分区里针对某个文件起多个不同的名称。当创建硬链接时,链接数会增长。只要是相同的文件,节点编号就相同。
硬链接在使用的时候会有一定的限制,不能对文件夹创建硬链接。可能会产生死循环嵌套。
针对不同分区不能创建硬链接。
在同一个分区的不同目录下,可以来实现不同的硬链接。
ln f1 d1/d2/d3/f1 //相对当前目录的
文件夹的链接数是怎么来的?
软链接 ln -s f1 f1.link
f1与f1.link的inode不一样,不是同一个文件
符号链接文件的大小实际上是由指向的那个文件的路径决定的
访问f1与访问f1.link效果是一样的
跨分区创建软链接
更改软链接文件的内容,原文件也跟着更改了。
如果删除了原文件,访问软链接文件,结果就会报错
f1.link实际上就是一个指针,它本身并没有什么东西,它就是一个指路版而已。
指路版指向的真正的文件不存在了,那指路版就没有什么意义了。
软链接依赖于原文件。
如果我创建一个f1,那么f1.link就正常了
f1.link并不关心原来的文件内容是什么,只要原文名是那个就行。
相对路径大部分是相对当前路径
[root@Centos7 data]# ln -s f1 d1/d2/f1.link
d1/d2/f1.link是相对f1的路径来找f1的,上面都没有写f1的路径,系统就会认为是在同一目录下的,
d1/d2/下都没有f1这个文件就会报错
原始文件的路径一定要写相对于软链接的路径,而不是相对于当前目录
[root@Centos7 data]# ln -s …/…/f1 /data/d1/d2/f1.link2
在创建软链接的时候,如果原始文件要写相对路径,一定是相对于软链接的路径,而不是相对于当前工作目录。
在工作中,基本上用的全都是相对路径,没有用绝对路径的。
写绝对路径也可以,但是不建议。
ln -s [相对于软链接的路径]source [相对于当前目录|绝对路径]dest
/data/f1
/data/d1/f1.link
如果把/data/下的所有目录移动到/testdir/目录下
/testdir/f1
/testdir/d1/f1.link
删除软链接应将软链接当成文件删除
rm -rf d1.link/ 并没有把软链接删除而是把d1.link/目录下的文件删除了