更多源代码请参考我的
【GitHub】
Linux的文件和目录管理
增加文件目录
创建文件
- 语法:touch filename
不存在创建一个空文件
存在则更新该文件的修改访问时间
touch rourou.txt //在当前目录下创建一个rourou.tet文件
创建目录
- 语法:mkdir [-p] directory_name
-p
:目录不存在是可以创建目录
mikdir rourou //创建一个肉肉目录
删除文件目录
删除文件
- 语法: rm [-i/-f] filename
-i
:询问是否删除-f
:强制删除
rm -i rourou
rm -f rourou
删除目录
- 语法:
- rm [-rifr] directory_name(s)
- rmdir directory_name(s) 删除空目录
-r
:删除非空目录,表示递归-i
:删除前询问是否删除-fr
:删除目录及其所有文件
rmdir rourou1 //删除rourou1这个空目录
rm -r rourou2
查看文件目录
1、pwd
- 显示当前工作目录,不一定是用户的主目录
2、cd
-
改变当前工作目录
-
语法:cd (directory _name)
cd
:不输入位置默认进入用户主目录cd rourou
:进入指定的用户主目录cd ..
:进入用户的上级目录
3、ls
- 列出当前目录的文件和子目录
- 语法:ls 可选项
ls -a
:列出文件所有的目录、子目录、文件、隐藏目录ls -R
:累出文件目录开始的所有子目录、文件,并且一层层往下显示ls -F
:列出文件、目录并且显示出文件类型ls -t
:以修改时间为倒序来列出文件、子目录ls -l
:以长列表显示文件、目录的详细信息
显示文件内容
1、cat
-
不分屏显示文本内容
-
语法: cat filename(s)
-
把小文件连接成大文件
2、mode
-
查找文件的前多少行
-
语法: head [-n] filename(s)
head -5 /etc/passwd //查看文件的前五行
3、head
- 语法:more filename(s)
- spacbebar 向下显示一屏
- Enter 向下显示一行
- b 向上一屏
- f 向下一屏
- h 显示帮助菜单
- q 退出
- /string 查找字符串string
- n 查找下一个string
4、tail
- 查找文件的末尾多少行
- 语法:tail [-n] filename(s)
tail -10 /etc/passwd //查看文件的后10行
拷贝移动文件目录
1、cp
拷贝文件
- 语法
- cp [-i] source_file destination_file
- cp [-i] source_file(s) destination_directory
-i
:当目标文件存在,会询问是否覆盖,没有-i选项则直接覆盖
拷贝目录
- 语法 :cp -r source_directory(s) destination_directory(s)
cp -r rourou1 rourou2 //拷贝rourou1到rourou2
cp -r rourou3 rourou4 rourou5 //拷贝rourou3、rourou4到rourou5目录下
2、mv
- 移动文件目录或重命名文件目录
- 语法
- mv [-i] source_file target_file 重命名源文件为目标文件
- mv [-i] source_file target_directory 移动文件到目标目录
文件目录权限
- Linux系统中的每个文件和目录都有访问许可权限,用他来确定谁能通过何种方式对文件和目录进行访问和操作。
权限分类
r
:读写权,可以打开文件、目录读取查看w
:写权限,对文件、目录可以编写更改x
:执行权限,对文件可执行(可执行文件)、对目录可查找该目录下的内容
ls -l
rwxr-xr-x //没有写权限
权限所属对象:
1.拥有者
生成文件或目录时登陆的当前人,权限最高,用u表示。
2.同组人
系统管理员分配的同组的一个或几个人,用g表示。
3.其他人
除拥有着,同组人以外的人,用o表示。
4.所有人
包括拥有着、同组人及其他人,用a表示。
修改文件目录文件
chmod
1、使用字母表示权限
2、使用数字表示权限
编写文件
1、vim
- 语法: vim filename //进入浏览模式
insert
:进入插入模式,开始编辑字符esc
:退出插入模式shift+:
wq
:保存退出
系统结构
- (目录下的文件的内容)
/bin
#常用系统命令
/sbin
#系统管理命令
/boot
#启动分区
/sys
#内核参数调整
/dev
#设备文件
/lib
#32位库文件
/lib64
#64位库文件
/media/run/mnt
#临时设备的挂载点
/opt
#第三方软件安装位置
/proc
#系统信息
/etc
#系统配置目录
/home
#普通用户家目录
/root
#超级用户家目录
/var,/srv
#系统数据
查找文件
find
file path expression [action] 查找文件和目录
前提条件:要对被查找的目录及其所有子目录有读权限才能查找。
查找选项:通过文件属性来查找
-name
按文件名-user
按用户(文件属主)-size
按大小-mtime
按最后一次修改时间-atime
按最后一次访问时间-type
按文件类型 f:file d:directory-perm
按权限
find / -name b*
- //找根目录下面名字以b开头的所有文件
find . -mtime 10 -print
- //查找当前目录下最后一次修改时间距离今天之前10天的那一天修改的文件和目录,并显示出来
find /etc -user 0 -size +400 -print
- //查找根目录下的/etc下的子目录中由用户id=0,创建的文件大小要大于200k的,并把它显出来
find ~ -perm 777 > ~/holes
- //在用户住目录下查找权限为777的,即拥有者,同组的,和其他人的的权限都具有读写权限的文件和子目录,并且将查找结果都放在用户主目录下的/holes文件中
find /export/home -type f -atime +365 -exec rm {};
- //查找/export/home下的文件,最后一次访问时间是距离今天是大于365天的文件,再将找到的文件执行一个进程,并删除这些文件。;代表转义,即就代表分号本身。
Locate
- 速度比find快
locate [-d <数据库文件>][–help][–version][keywords]
tabase=<数据库文件> :设置locate指令使用的数据库。
locate指令预设的数据库位于/var/lib/slocate目录里,文件slocate.db,您可使用这个参数另行指定。
-
–help
在线帮助。 -
–version
显示版本信息。 -
速度快很多,它是通过inode,文件索引来找,它会把文件索引维护在一个数据库里面,它在数据库去找;比较麻烦的是需要更新数据updatedb。
locate -c b* //查看当前以bj开头的文件个数
locate --help //查看帮助文档
locate -V //查看版本
本文均属原创,如有错误欢迎指出1
今天的学习先到这里,内容不完整,后续会继续更新1
希望大家给我点个赞