2. 文件的操作命令
这一节的主要目标是学习文件操作的命令。我们将学习创建、删除文件,修改文件的名称以及复制文件等操作。
用到的命令有:ls、touch、rm、cp、mv。
本节讲解的命令如下:
通常一个命令对应一个独立功能的程序。命令一定有命令名称,后面跟选项或参数,这些选项和参数通常用一个空格或多个空格分隔。
我们先学习命令的格式。
命令的格式如下:
命令名 [选项] [参数]
注:选项和参数用 中括号
[]括起来表示其中的内容可选。 通常选项在前,参数在后。具体要根据命令内部的实现来决定。
如:
weimingze@mzstudio:~$ ls -a /
. cdrom lib.usr-is-merged opt sbin.usr-is-merged usr
.. dev lib64 proc srv var
bin etc lost+found root swap.img
bin.usr-is-merged home media run sys
boot lib mnt sbin tmp
上述终端运行中,ls 是命令,-a 是选项, / 是参数,组合起来就形成了上述结果。
- 选项通常以 减号(
-) 或 两个减号(--) 开头。选项通常指示此命令执行那种类型的操作;一个命令有哪些选项由该命令来决定。 - 参数通常是要传递给命令的数据。
2.1 ls 命令
ls 命令用于列出当前文件夹或其他的某个文件夹下有哪些文件和文件夹。
命令格式:
ls [选项1] [选项2 ...] [参数1] [参数2 ...]
示例:
列出当前文件夹下有哪些文件或文件夹。
weimingze@mzstudio:~$ ls
hello.py 下载 公共 图片 文档 桌面 模板 视频 音乐
列出 根 / 下有哪些文件或文件夹。
weimingze@mzstudio:~$ ls /
bin home mnt sbin.usr-is-merged var
bin.usr-is-merged lib opt srv
boot lib.usr-is-merged proc swap.img
cdrom lib64 root sys
dev lost+found run tmp
etc media sbin usr
列出 /usr/ 下有哪些文件或文件夹。
weimingze@mzstudio:~$ ls /usr/
bin games include lib lib64 libexec local sbin share src
列出当前文件夹下的文件和文件夹的详细信息。
weimingze@mzstudio:~$ ls -l
total 40
-rw-rw-r-- 1 weimingze weimingze 23 May 16 13:02 hello.py
drwxr-xr-x 2 weimingze weimingze 4096 May 16 12:09 下载
drwxr-xr-x 2 weimingze weimingze 4096 May 16 12:09 公共
drwxr-xr-x 2 weimingze weimingze 4096 May 16 12:09 图片
drwxr-xr-x 2 weimingze weimingze 4096 May 16 12:09 文档
drwxr-xr-x 2 weimingze weimingze 4096 May 16 12:09 桌面
drwxr-xr-x 2 weimingze weimingze 4096 May 16 12:09 模板
drwxr-xr-x 2 weimingze weimingze 4096 May 16 12:09 视频
drwxr-xr-x 2 weimingze weimingze 4096 May 16 12:09 音乐
-l选项是列出文件或文件夹的详细信息。下面我们来说一下详细信息.
文件的详细信息说明
每一行是一个文件信息。该信息用空格分隔成八列。
- 第一列:文件类型和权限信息
- 每一行的第一个字母代表文件的类型:
d代表文件夹,-代表普通文件,l代表软链接文件,c代表字符设备文件(比如键盘),b代表块设备文件(比如 U 盘),s代表套接字文件,p代表管道文件等。 - 每一行的第2~10个字符为文件或文件夹的读、写和执行权限:
-代表无权限,r代表有读权限,w代表有写权限,x代表有执行权限。权限分为三组,分别是拥有者(属主)权限,拥有者所在的组(属组)权限和其他权限。如rwxr-xr--前三个rwx代表拥有者可以读写和执行,中间三个r-x代表 同组内的用户可以读和执行,但是不可以写。第8~10个r--代表 不是拥有者,也不是同组内的其他用户可以读,但是不可以写和执行。假设现实当中我在力学实验室的组中,我的一本书,他的属主是我,他的属组是力学实验室,书的权限是
rw-r-----,那么我可以读和修改,力学实验室中的老师都可以读,其他人则不能执行任何操作。
- 每一行的第一个字母代表文件的类型:
- 第二列:代表该文件的硬链接数。你可以理解成其他文件或文件夹关联到此文件的个数,文件一般都是1。
- 第三列:代表该文件或文件夹的拥有者用户,就是属主。上述文件的拥有者都是 weimingze。
- 第四列:代表该文件或文件夹的所在的组,就是属组,weimingze这个组内的所有成员都遵循 第 5-7 个字符所指示的权限。
- 第五列:该文件或文件夹所占用的空间。文件为内容的长度,文件夹一般显示 4096 是索引节点 (inode) 所占用的空间。
- 第六、七、八列:分别是此文件或文件夹的最后修改日期(月 日 时间)信息。
- 第九列:该文件或文件夹的名称。
ls命令的常用选项
-l-a. 开头的隐藏文件-t-S-r注:Linux 和 UNIX 系统中,默认以点开头的文件或文件夹为隐藏文件。它真实存在,但通常不显示,但在 Windows 系统中会正常显示。
这就是很多安卓手机的存储卡拿到 Windows 电脑上读取文件的时候,会发现很多以点开头的文件就是这个道理。
在 UNIX 和 Linux 操作系统的命令当中,有些选项是可以任意组合的,比如说下列用法是相同的,如:
列出当前文件夹下所有的文件和文件夹的详细信息。
weimingze@mzstudio:~$ ls -l -a
# 或
weimingze@mzstudio:~$ ls -a -l
# 或
weimingze@mzstudio:~$ ls -la
# 或
weimingze@mzstudio:~$ ls -al
上述命令的运行结果相同。
练习:
- 使用
ls列出/dev文件夹下的文件,看下里面有几种文件类型的文件? - 使用
ls列出/etc/apt文件夹下的所有文件,查看一下里面有几个文件夹?