文章目录
一、Linux文件简述
1、一切都是文件
在Linux中,一切都是文件是指:
- 所有数据以及设备都是以文件形式存在的,包括数据、目录、进程、驱动、磁盘等……因此在Linux中对这些文件的操作,都可以用fopen()、fclose()、fwrite()、fread()进行处理,这样做屏蔽了硬件的区别,为用户提供了统一的接口。
之所以能够实现这样,是因为Linux用到了虚拟文件系统,这就是Linux一切都是文件的由来。
2、Linux文件分类
大多数人在刚接触Linux操作系统时,看到 1.txt 会认为该文件是一个文本文件,看到 1.pdf 会认为这是一个PDF文件,而看到 1.exe 会认为这是一个可执行文件。
这是Windows文件的分类规范,采用文件后缀的形式对文件进行分类,但是在Linux中并不是这样的,Linux中文件没有后缀,所谓的后缀也只是文件名的一部分,不代表文件的属性(但是为了直观显示文件用途以方便使用,建议创建文件时加上必要的“后缀”)。
在Linux中,所有的文件分为以下几类:
- 普通文件(xxx.xxx)
文件属性:-(file) - 目录(/usr/ /home/)
文件属性:d(dictionary) - 字符设备文件(键盘等)
文件属性:c(character device) - 块设备文件(一号硬盘:/dev/hda1)
文件属性:b(block device) - 套接字文件(进程通信)
文件属性:s(socket) - 管道文件(……)
文件属性:p(pipe) - 符号链接文件(软链接文件)
文件属性:l(symbolic link)
3、Linux文件属性
Linux中,文件属性由10个字符组成,如:-rw-rw-r--
,使用ll 或 ls -l
查看文件属性:
将这10个符号分为4组,除第一组是一个字符外,其余三组都是三个字符,且均由“rwx”组成,不存在该权限则用“-”代替。其中:
- r:读(读取、查看)
- w:写(管理、更改)
- x:执行
可执行文件示例:
分别介绍各组含义:
- 第一组:文件类型
“-” 代表普通文件 - 第二组:文件所有者权限
“rw-” 代表文件所有者对文件可读、可写、不可执行 - 第三组:同用户组权限
“rw-” 代表同用户组用户对文件可读、可写、不可执行 - 第四组:其他用户权限
“r–” 代表其他用户对文件只可读,不可写和执行
二、普通文件操作
介绍以下几条命令:
- 创建(touch)
- 修改(chgrp、chown、chmod)
- 编辑(vi、vim、gedit)
- 移动(mv——move)
- 复制(cp——copy)
- 删除(rm——remove)
逐一举例:
1、创建文件
touch fileName
2、修改文件
2.1、修改文件所有者
chown userName fileName
2.2、修改文件所在用户组
chgrp groupName fileName
2.3、修改文件权限
chmod permissionValue fileName
其中权限值是这样计算的:
- 将三组权限都看做一组二进制数,一组rwx为一组二进制数,有该权限则为1,无该权限则为0,算出其对应的十进制数,将三组都算出来,即为权限值。
例如:-rw-rw-r--
,
- 第一组权限 rw- 值就为 6
第二组权限 rw- 值也为 6
第二组权限 r-- 值为 4
因此该文件的权限值为 664 - 如果要将该文件的其他用户权限改为无任何权限,即读、写、执行都为0,那么其属性值就为 660。
演示:
3、编辑文件
vi/vim/gedit fileName
其中 vi 是终端编辑,vim 和 gedit是图形化界面编辑。
4、移动文件
mv fileName newName
重命名操作为可选,也可以用该功能进行文件的重命名。
5、复制文件
cp fileName newName
复制文件与移动文件类似。
6、删除文件
rm fileName
rm -f fileName
为强制删除。
三、目录文件操作
介绍以下几条命令:
- 切换目录(cd)
- 查看当前路径(pwd)
- 列出该目录下所有文件(ls)
- 以树形递归列出该目录下所有文件(tree)
- 创建目录(mkdir)
- 删除目录(rmdir)
注:目录中,.
代表当前目录,..
代表父目录,~
代表当前用户目录(home)
逐一举例:
1、切换目录
cd path
cd ..
:退回上一目录
cd ~
:切换至当前用户目录
2、查看当前路径
pwd
3、列出目录下所有文件
ls
4、树形递归列出目录下所有文件
tree path
:path可选,默认为本目录
5、创建目录
mkdir dirName
6、删除目录
6.1、删除空目录
rmdir dirName
当使用该指令删除非空目录时提示目录非空:
6.2、删除非空目录
rm -rf dirName
其中 :
-r 表示向下递归删除
-f 表示强制删除,不做提示
可选择性地添加参数。