Linux文件管理

Linux文件管理

个人学习记录

文件目录结构

CentOS7目录结构

 - / : 根目录,所有目录的起点
 - /bin : 存放经常使用的命令
 - /boot : 存放启动Linux系统时的一些核心文件,包括一些链接文件和镜像文件
 - /dev : 该目录下存放的是外部设备
 - /etc : 存放所有系统管理所需要的配置文件和子目录
 - /home : 用户的主目录
 - /root : 该目录为系统管理员,也被称为超级管理员的主目录
 - /run : 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
 - /sbin : 存放的是系统管理员使用的系统管理程序。
 - /tmp : 存放一些临时文件的。
 - /usr : 用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
 - /var : 存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
 - /opt : 给主机额外安装软件所存放的目录(软件安装包存放)。
 - /mnt : 为了让用户临时挂载别的文件系统的

文件类型

Linux系统的文件类型一共有7种文件类型
  1. 普通文件
    第一列第一个字符为 “-” 的文件为普通文件,如下图所示;普通文件一般为灰色字体,绿色字体的是可执行文件,红色字体的是压缩文件。
    普通文件

  2. 目录文件
    在Linux系统中目录也是文件,第一个字符为"d"。
    目录文件

  3. 设备文件
    Linux 中的硬件设备也都被表示为文件,即为设备文件。设备文件一般存放在 /dev/ 目录下,文件名为黄色。
    设备文件
    3.1. 块设备文件
    块设备文件支持以块为单位的访问方式。应用程序可以随机访问块设备文件的数据,程序可以自行确定数据的位置,硬盘、软盘等都是块设备。第一个字符是 “b”。
    3.2. 字符设备文件
    字符设备文件以字节流的方式进行访问,由于字符设备文件是以文件流的方式进行访问的,因此可以顺序读取,但通常不支持随机存取。第一个字符是 “c”。

  4. 链接文件
    链接文件一般指的是一个文件的软连接(或符号链接),第一个符号为 “l”,文件名为浅蓝色,如下:
    链接文件

  5. 管道文件
    管道文件主要用于进程间通信,第一个字符为 “p”。
    管道文件

  6. 套接字文件
    接字文件主要用于通信,特别是在网络上,第一个字符为 “s”。

文件基本属性

文件的属性可以通过命令 ' ls -l 文件名' 来获取。该命令将得到9列的内容。

文件属性

  • 第一列:包含文件的类型、所有者、所属组、其他人对文件的权限,一共10位。
  • 第二列:表示文件占有的节点数,如果是目录,那么该数字表示目录下子目录的数量。
  • 第三列:文件的所属者。
  • 第四列:文件的所属组
  • 第五列:文件的大小
  • 第六列:最后一次修改的月份
  • 第七列:最后一次修改的日期
  • 第八列:最后一次修改的时间
  • 第九列:文件名称

每个文件的属性由左边第一部分的 10 个字符来确定(如下图)。
文件属性第一列
从左至右用 0-9 这些数字来表示。
第 0 位确定文件类型。
第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。
第4-6位确定属组(所有者的同组用户)拥有该文件的权限。
第7-9位确定其他用户拥有该文件的权限。
其中,
第 1、4、7 位表示读权限,如果有读权限就用“r”表示,如果没有读权限就用“-”字符表示。
第 2、5、8 位表示写权限,如果有读权限就用“w”表示,如果没有读权限就用“-”字符表示。
第 3、6、9 位表示可执行权限,如果有读权限就用“x”表示,如果没有读权限就用“-”字符表示。

更改文件属性

更改文件属组
方法一:
	语法:
		chgrp [-R] 属组名 文件名

方法二:
	语法:
		chown [-R] 属主名:属组名 文件名
	
	备注:
		当属主不进行修改时可以省略属主名,变为  chown [-R] :属组名 文件名

实例:

# 将test.txt文件的属组改为zhou
# 方法一
[root@localhost ~]# chgrp -R zhou test.txt
# 方法二 
[root@localhost ~]# chown -R :root test.txt 
更改文件属主
语法:
	chown [–R] 属主名 文件名
# 将test.txt文件的属主改为zhou
[root@localhost ~]# chown zhou test.txt 
更改文件权限
Linux文件属性有两种设置方法,一种是数字,一种是符号。
Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。
各权限的分数对照表如下:
	r:4
	w:2
	x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,
例如当权限为: -rwxrwx--- 分数则是:
	owner = rwx = 4+2+1 = 7
	group = rwx = 4+2+1 = 7
	others= --- = 0+0+0 = 0
通过数字修改文件权限
语法:
	chmod [-R] xyz 文件或目录

选项或参数:
	xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
	-R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更	

实例:

# 将test.txt文件的权限改为rwxrwx---
[root@localhost ~]# chmod 770 test.txt
符号类型更改文件权限
还有一个改变权限的方法,从之前的介绍中我们可以发现,基本上就九个权限分别是:
	user:用户
	group:组
	others:其他
那么我们就可以使用 u, g, o 来代表三种身份的权限。
此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x

也就是可以使用下表的方式来看:
符号权限表
实例:

# 为test.txt文件的用户赋予rwx权限,组赋予rx权限,其他赋予r权限
[root@localhost ~]# chmod u=rwx,g=rx,o=r test.txt
# 去掉test.txt文件的用户的w权限
[root@localhost ~]# chmod u-w test.txt

路径

在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置。
指明一个文件存放的位置,有 2 种方法,分别是使用绝对路径和相对路径。
绝对路径
绝对路径一定是由根目录 / 开始写起。
例如,使用绝对路径的表示方式指明 bin 文件所在的位置,该路径应写为 /usr/bin
相对路径
相对路径不是从根目录 / 开始写起,而是从当前所在的工作目录开始写起。
使用相对路径表明某文件的存储位置时,经常会用到 2 个特殊目录,
	即当前目录(用 . 表示)和父目录(用 .. 表示)。

[root@localhost ~]# cd ./Desktop
./Desktop 表示的就是 Destop 文件相对于 /root 所在的路径。

文件管理命令

目录切换
cd命令用来变换工作目录的命令
语法:
	cd [路径]

切换工作目录到nginx

[root@localhost ~]# cd nginx
显示当前的目录
pwd命令显示目前所在目录的命令,打印出来的是当目录的绝对路径。
语法:
	pwd [-P]
参数:
	-P:显示出确实的路径,而非使用链接路径
[root@localhost nginx]# pwd
/root/nginx

列出目录及文件名
在Linux系统当中, ls 命令可能是最常被运行的。该命令是列出指定目录的下的所有目录及文件名。当目录省略不写时列出当前目录的目录和文件

语法:
	ls [参数] [目录]

参数:
	-a:列出全部文件,包括隐藏的文件也一起列出来
	-d:仅列出目录本身,而不是列出目录内的文件数据
	-l: 长数据串列出,包含文件的属性与权限等等数据

长数据串列出当前目录下的目录和文件

[root@localhost ~]# ls -l 
创建目录
在Linux系统中,创建目录的命令是:mkdir
语法:
	mkdir [参数] 目录名称
参数:
	-m: 在创建目录时直接为目录赋予权限,不使用默认的权限
	-p:直接将所需要的目录(包含上一级目录)递归创建起来
# 创建当个目录,使用默认权限
[root@localhost ~]# mkdir a
# 创建单个目录,并为这个目录赋予指定的权限
[root@localhost ~]# mkdir -m 771 a
# 创建多级目录
[root@localhost ~]# mkdir -p b/c

创建文件
touch命令的功能是用于创建空文件与修改时间戳。如果文件不存在,则会创建出一个空内容的文本文件;
如果文件已经存在,则会对文件的Atime(访问时间)和Ctime(修改时间)进行修改操作。
语法:
	touch [参数] 文件
参数:
	-a:改变文件的读取时间记录
	-m:改变文件的修改时间记录
	-c:不创建新文件
	-d:设定时间金额日期,可以使用各种不同的格式
	-t:设定文件的时间记录,格式与date命令相同
	--no-create:不创建新文件
	--version:列出版本信息
# 创建单个文件
[root@localhost tmp]# touch file.txt
# 创建多个文件
[root@localhost tmp]# touch file{1..3}.txt
删除目录或文件
用于删除文件或目录,一次可以删除多个文件,或递归删除目录及其内的所有子文件。
语法:
	rm [参数] 文件或目录
参数:
	-f:强制删除,不会进行二次询问
	-i:删除前询问用户是否操作
	-r/R:递归删除
	-v:显示指令的详细执行过程
# 使用rm命令删除目录时必须添加-r参数才能进行删除
# 删除目录a
[root@localhost ~]# rm -r a  
# 强制删除目录b
[root@localhost ~]# rm -rf b
# 强制删除文件test.txt
[root@localhost ~]# rm -f test.txt
复制目录或文件
用于将一个或多个文件或目录复制到指定位置,亦常用于文件的备份工作。
-r参数用于递归操作,复制目录时若忘记加则会直接报错,
而-f参数则用于当目标文件已存在时会直接覆盖不再询问,这两个参数尤为常用。

语法:
	cp [参数] 源文件 目标文件
参数:
	-f:若目标文件已经存在,直接覆盖原文件
	-i:若目标已经存在,询问是否覆盖原文件
	-p:保留源文件或目录的所有属性
	-r:递归复制文件和目录
	-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
	-l:对源文件建立硬链接,而非复制文件
	-s:对源文件建立符号链接,而非复制文件
	-b:覆盖已经存在的目标文件前将目标文件进行备份
	-v:显示详细的复制操作过程
	-a:等价于“pdr”选项
# 将test文件复制一份到tmp目录下
[root@localhost ~]# cp test /tmp
# 将目录a复制到tmp目录下
[root@localhost ~]# cp -rf a /tmp
移动文件或重命名文件
mv用于对文件进行移动和重命名。
在同一个目录内对文件进行移动的操作,实际应理解成重命名操作.
语法:
	mv [参数] 源文件 目标文件
参数:
	-i:若存在同名文件,向用户询问是否覆盖
	-f:覆盖已有文件时不进行任何提示
	-b:当文件存在时,覆盖前为其创建一个备份
	-u:当源文件比目标文件新,或者目标文件不存在时,才执行移动操作
# 将test.txt文件移动到/tmp目录下并保持文件名不变
[root@localhost ~]# mv test.txt /tmp
# 将test.txt文件移动到/tmp目录下并将文件名修改为test2.txt
[root@localhost ~]# mv test.txt /tmp/test2.txt
# 将test.txt文件重命名为test2.txt
[root@localhost tmp]# mv test.txt test3.txt
查看文件内容
Linux系统中使用以下命令来查看文件的内容:
	cat : 由第一行开始显示文件内容
	tac : 从最后一行开始显示
	nl  : 显示的时候,顺道输出行号!
	more :  一页一页的显示文件内容
	less : 与 more 类似,但是比 more 更好的是,他可以往前翻页!
	head : 只看头几行
	tail : 只看尾巴几行
cat
语法:
	cat [参数] 文件
参数:	
	-n:显示行数(空行也编号)
	-s:	显示行数(多个空行算一个编号)
	-b:	显示行数(空行不编号)
	-E:	每行结束处显示$符号
	-T:将TAB字符显示为 ^I符号
	-v:使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
	-e:等价于”-vE”组合
	-t:等价于”-vT”组合
	-A:等价于 -vET组合
[root@localhost ~]# cat -n initial-setup-ks.cfg
head
head命令的功能是显示文件开头的内容,默认为前10行。
语法:
	head [参数] 文件
参数:
	-n:定义显示行数
	-c:指定显示头部内容的字符数
	-v:总是显示文件名的头信息
	-q:不显示文件名的头信息
# 指定显示文件的前5行内容
[root@localhost ~]# head -n 5 initial-setup-ks.cfg
tail
tail命令的功能是用于查看文件尾部内容,默认显示尾部10行。
语法:
	tail [参数] 文件
参数:
	-n:定义文件尾部输出几行内容
	-f:持续显示文件最新追加的内容
# 指定显示文件的后5行内容
[root@localhost ~]# tail -n 5 initial-setup-ks.cfg 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值