文件和目录的相关操作
command | arguments | expression |
---|---|---|
pwd | 无 | 查看当前目录位置(print work directory) |
cd | [url] (~家目录) | change directory 改变当前目录位置 |
ls | [url] (pwd) | list files,查看arguments的一级子目录 |
mkdir | dir_name | make directory创建目录 |
rmdir | dir_name | remove empty directory删除空目录 |
touch | file_name | 创建空文件, |
cp | file_name url | 将file_name复制到url下 |
move | file_name url | 将file_name移动到url下 |
chgrp | group_name file_name | 修改文件的属组【已存在属组】-R 递归 |
chown | gN : gN file_name | 修改文件的所有者 |
chmod | file_name | 修改文件的权限 |
chattr | file_name | 修改文件的特殊属性 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LceXXoW2-1614685149016)(C:\Users\86134\Desktop\新建文件夹\学习文件\Linux\屏幕截图 2020-10-29 170811.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-erqUNrbH-1614685149020)(C:\Users\86134\Desktop\新建文件夹\学习文件\Linux\屏幕截图 2020-10-29 171226.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XEPmLNBP-1614685149021)(C:\Users\86134\Desktop\新建文件夹\学习文件\Linux\屏幕截图 2020-10-30 165146.png)]
注:小括号为默认 gN为group_name
0.Linux中‘’文件的时间‘’
1.访问时间
access time: 当文件的内容被访问时,就会更新这个时间,例如我们使用cat、more、less等命令查看文件的内容时,文件的访问时间就会被更新
2.修改时间
Modification Time : 当“内容数据”被修改时,Linux系统会去更新这个时间,例如:我们用echo,vim等指令向文件写数据
3.状态时间
Status Time: 当文件的状态即文件的属性被改变是就会更改这个时间,例如文件系统中的links(链接数),size(文件的大小)、文件的权限、blocks(文件的block数);
4.查看“这些时间”
stat file_name
0-0.文件相关信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E6Wwde3q-1614685149024)(C:\Users\86134\Desktop\新建文件夹\学习文件\Linux\屏幕截图 2020-10-29 171533.png)]
umask 默认是 0022,目录的默认权限是 755 【即 0777 - 0022】,文件的默认权限是 644【即 0666 - 0022】。
所以当umask 0002时,目录的为 775,文件的为664.
1.pwd
option | expression |
---|---|
-help | 在线帮助 |
-version | 显示版本信息 |
2.cd 无选项
3.ls
options | expression |
---|---|
-a | all,查看所有的子目录,包括隐藏文件【.】 |
-t | time,按照时间顺序查看子目录 |
-l | use a long listing format,长格式显示 |
-lh | human,人性化显示【大小易读】 |
-R | Recursive,迭代子代 |
-r | reserve,倒序 |
4.mkdir
options | expression |
---|---|
-m 权限数字 | mode【模式】,设置目录的权限并建立目录 |
-p | parents,可来连续创建目录 |
5.rmdir
options | expression |
---|---|
-p | parents,删除自己及子类以下所有的 |
6.touch
options | expression |
---|---|
-a | access【访问】仅更新访问时间,不改变修改时间 |
-c | no create 假如目的文件不存在,不会建立新的文件 |
-m | modification【修改】仅更新修改时间,不改变访问时间 |
-r | reference【参考】设成参考文档或目录的日期时间相同【至少跟两个文件名】 |
-t | time【时间】指定文件目录时间如-t[yyyy]07081556[.mmm]代表七月八号十五点五十六分 |
7.cp
options | expression |
---|---|
-a | all,保留所有,如保留链接,文件属性,递归复制目录 |
-d | no derefence = link,复制时保留链接【类似于Windows的快捷方式】 |
-f | force【力,强行】不经用户同意,强行删除文件 |
-i | interactive【交互式】覆盖时,需要经过用户同意,与用户相交互 |
-p | 将修改时间和访问权限也复制到新文件中 |
-r | 复制目录时必须有 |
8.文本编辑器nano
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QvcKc76c-1614685149025)(C:\Users\86134\Desktop\屏幕截图 2020-10-23 162901.png)]
9.chattr
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vx9A9MT1-1614685149027)(C:\Users\86134\Desktop\新建文件夹\学习文件\Linux\屏幕截图 2020-11-06 143847.png)]
10.查找文件
命令 | 释义 |
---|---|
which filename | 查找文件的绝对路径,只能查找PATH路径下的文件 |
whereis b filename | 只查找二进制文件(binary) |
whereis m filename | 只查找帮助文档文件(man) |
whereis s filename | 只查找源代码文件(source code) |
find [路径] [参数] | |
find url atime +n/-n | 查找访问时间或执行时间在n天之前或n天之后的文件 |
find url mtime +n/-n | 查找写入时间在n天之前或n天之后的文件 |
find url ctime +n/-n | 查找写入或更改inode属性在n天之前或n天之后的文件 |
find url -name filename | 查找指定路径下的指定文件 |
find url -type f/b/c/d/l/s | 查找指定文件类型的文件 |
错误:find: ‘/run/user/42/gvfs’: 权限不够
# umount /run/user/***/gvfs // *** 是一串数字
# rm -rf /run/user/***/gvfs
11.文件的硬链接和软连接
1.硬链接:
正常情况下,文件和inode号码是一一对应关系,而硬链接就是将多个文件对应一个inode号码,这样我们就能用不同的文件名读取相同的内容。对一个文件内容的修改会影响到多个文件内容的改变。删除一个文件,只是将这个文件的文件名删除,而不会影响其他文件的内容。硬链接不能跨操作系统,因为不同操作系统有不同的inode table。不能链接目录。
2.软连接
软链接则是在一个特殊文件【A】里存放inode,当你打开这个特殊文件【A】时,他会打开inode所对应的文件【B】。如果将A删除,删除的只是A的文件名,里面所保存的inode并不会丢失。如果将B删除,打开A会报错。
应用场景: 比如我们将apache挂载到 /boot 下,而boot这个磁盘已经快满了,然而apache的日志文件还不断的在写,此时部门要求不能改变日志文件的路径。可以先将apache的日志文件复制到另一个磁盘下,然后将原来的日志文件删掉,最后再创建一个和原来日志文件名相同的软连接即可。
3. 理解 inode
硬盘存储的最小单位是扇区(sector),大约 0.5 KB;操作系统读取硬盘数据的最小单位是块(block),大约4KB;文件数据存储在块中,显然缺少代表文件数据的文件信息,包括文件的创建者等
inode包含的信息:
* 文件的字节数
-
文件拥有者的User ID
-
文件的Group ID
-
文件的读、写、执行权限
-
文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一 次打开的时间。
-
链接数,即有多少文件名指向这个inode
-
文件数据block的位置
-
使用stat file_name可以查看以息。
用户使用文件名打开文件的底层操作为:首先,系统先找到与文件名相对应的inode号码,然后再根据inode号码在获取inode信息,最后根据inode信息找到所对应的块。
4.实现软硬链接
命令 |
---|
ln 源文件 硬链接文件 【请务必使用绝对路径】 |
ln -s 源文件 软连接文件 【请务必使用绝对路径】 |
12.查看文件内容
1.使用 cat
从头查看文件内容,加 -n 可以添加行号,加 -A可以查看文件的所有内容【比如换行符等隐秘的信息】
2.使用 tac
从尾部【逆序】查看文件内容,
3.使用 more
查看大文件的数据,CTRL D 向上翻页,CTRL F向下翻页【同空格】。Q 退出。
4.使用 less
查看大文件使用,j 键是向下一行,k 键向上一行。/ 关键词使当前行和当前行以下含有的关键词变高亮,?关键词使当前行和当前行以上含有关键词变高亮,还可以使用 n 键来跳转到下一个高亮关键词,使用 N 键来跳转上一个高亮关键词。
5.使用 head
查看头部前十行信息,也可 - 数字来确定查看多少行【从头开始数】。
6.使用 tail
查看尾部最后十行信息,也可**- 数字**来确定查看多少行【从最后一行开始数】。
# tail -f file_name //实时的查看文件内容,如动态的日志信息。