目录
前言
通过前面的操作,我们已经将ubuntu系统安装到了树莓派上面,并且实现了两种方式的连接树莓派的方式,接下来就是对ubuntu系统的使用了,也就是对常用linux系统命令行的了解和使用。
实验目的
- 掌握Ubuntu操作系统的使用界面和各项功能
- 掌握Ubuntu系统下文件系统命令行的使用
实验内容
本次实验主要是掌握Linux系统下的文件系统部分的使用,主要包括以下内容:
第一部分(文件管理部分):
1.ls命令
2.cp命令
3. mkdir命令
4. mv命令
5. pwd命令
实验环境
树莓派4B,系统为Ubuntu 20.10系统 。实验的编程环境为Terminal终端程序
实验步骤
1.ls命令 – 显示指定工作目录下的内容及属性信息
(1)命令格式
ls [选项][目录名]
(2)命令功能
ls命令是linux系统中最常用的命令之一,ls命令可以用来打印出当前目录的清单,也可以用ls指定其他目录, 然后就可以看到指定目录下的文件及文件夹清单。同时也可以查看到linux文件夹包含的文件,同时也可以看到文件权限以及查看到目录信息等。
(3)命令参数
参数 | 功能说明 |
---|---|
-a | 显示所有文件及目录(包括以"."开头的隐藏文件) |
-l | 使用长格式列出文件及目录信息 |
-r | 将文件以相反次序显示(默认依英文字母次序) |
-t | 根据最后的修改时间排序 |
-A | 同-a,但不列出"."(当前目录)以及"…"(父目录) |
-S | 根据文件大小排序 |
-R | 递归列出所有子目录 |
-v | 根据版本进行排序 |
-1 | 每行只列出一个文件 |
-help | 显示帮助信息并离开 |
-version | 显示版本信息并离开 |
-m | 所有项目以逗号分隔,并填满整行行宽 |
-h | 以容易理解的格式列出文件大小 (例如 1K 234M 2G) |
-i | 印出每个文件的 inode 号 |
(4)使用范例
例一:列出根目录下面的所有文件及目录
命令:
ls -a
输出:
例二:列出Documents文件夹下的文件信息
命令:
ls Documents
ls -a Documents
输出:
可以看出加上-a的参数就会列出以”." 和"…"的文件信息。
例三:列出当前目录中所有以“D”开头的目录的详细内容。
命令:
ls -1 D*
输出:
可以查看当前目录下文件名以“t”开头的所有文件的信息。其实,在命令格式中,方括号内的内容都是可以省略的,对于命令ls而言,如果省略命令参数和操作对象,直接输入“ ls ”,则将会列出当前工作目录的内容清单。
例四、只列出文件下的子目录
命令:
ls -F /Documents |grep /$
输出:
例五、以容易理解的格式列出目录中所有文件目录的大小
命令:
ls -alh
输出:
可以看出来以上文件是通过易于理解的格式输出出来的。
例六:列出目前工作目录下所有名称是s 开头的档案,按时间升序排序,可以使用如下命令:
ls -ltr s*
输出:
可以看出Documents文件夹下面的文件按照时间升序顺序进行了排列。
2.cp命令 – 复制文件或目录
(1)命令格式
cp [参数] 源 目的
(2)命令功能
cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。
(3)命令参数
参数 | 功能说明 |
---|---|
-f | 若目标文件已存在,则会直接覆盖原文件 |
-i | 若目标文件已存在,则会询问是否覆盖 |
-p | 保留源文件或目录的所有属性 |
-r | 递归复制文件和目录 |
-d | 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录 |
-l | 对源文件建立硬连接,而非复制文件 |
-s | 对源文件建立符号连接,而非复制文件 |
-b | 覆盖已存在的文件目标前将目标文件备份 |
-v | 详细显示cp命令执行的操作过程 |
-a | 等价于“dpr”选项 |
(4)使用案例
例一:复制单个文件到目标目录,文件在目标文件中不存在。
命令:
cp test2.txt shiyan
输出:
例二:如目标文件存在的话,会询问是否覆盖。
输出:
可以看出如果加上参数-i 那么在复制时会询问是否覆盖文件。回答y代表接受覆盖。
例三:复制整个目录
将一整个目录复制到另一个目录中
命令:
cp -a shiyan test1
输出:
3.mkdir命令 – 创建目录
(1)命令格式:
mkdir [参数] [目录]
(2)命令功能:
mkdir命令是“make directories”的缩写,用来创建目录。默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。 所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。mkdir命令还可以同时创建多个目录。
(3)常用参数
参数 | 功能 |
---|---|
-p | 递归创建多级目录 |
-m | 建立目录的同时设置目录的权限 |
-z | 设置安全上下文 |
-v | 显示目录的创建过程 |
(4)使用实例
例一:创建一个空目录
创建wenjian3目录
命令:
mkdir wenjian3
输出:
例二:递归创建多个目录
递归创建wenjian4目录和他的子目录 test
命令:
mkdir -p wenjian4/test
输出:
例三:创建权限为777的目录
命令:
mkdir -m 777 test3
输出:
说明:test3 的权限为rwxrwxrwx
例四:创建目录并显示信息
命令:
mkdir -v test4
输出:
例五:创建一个带有复杂结构的目录结构
命令:
mkdir -vp scf/{lib/,bin/,doc/{info,product},logs/{info,product},service/deploy/{info,product}}
输出:
通过使用-vp参数就可以直接创建出一个复杂的目录结构。
4.mv命令 – 移动或改名文件
(1)命令格式:
mv [参数] 源文件或目录 目标文件或目录
(2)命令功能:
mv命令是“move”单词的缩写,其功能大致和英文含义一样,可以移动文件或对其改名。
这是一个使用频率超高的文件管理命令,我们需要特别留意它与复制的区别:mv与cp的结果不同。mv命令好像文件“搬家”,文件名称发生改变,但个数并未增加。而cp命令是对文件进行复制操作,文件个数是有增加的。
视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
(3)常用参数
参数 | 功能 |
---|---|
-i | 若存在同名文件,则向用户询问是否覆盖 |
-f | 覆盖已有文件时,不进行任何提示 |
-b | 当文件存在时,覆盖前为其创建一个备份 |
-u | 当源文件比目标文件新,或者目标文件不存在时,才执行移动的操作 |
(4)使用实例
例一:将文件目录test1重命名为test2
命令:
mv test1 test2
输出:
可以看到文件test1已经被重命名为test2
例二:将文件test2.txt移动到目录test2下面
命令:
mv test2.txt test2
输出:
可以看到原来在Documents目录下的文件test2.txt被移动到了test2目录下。
例三:将目录wenjian4移动到wenjian1下面去(前提是目录wenjian1已经存在,否则就是重命名操作
命令:
mv wenjian4 wenjian1
输出:
例四:将目录wenjian1下的文件移动到当前目录下
命令:
mv wenjian1/* .
输出:
5.pwd命令 – 显示当前路径
(1)命令格式:
pwd [参数]
(2)命令功能:
Linux中用 pwd 命令来查看”当前工作目录“的完整路径。 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录。
在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。
(3)常用参数
一般情况下不带任何参数
如果目录是链接时:
格式:pwd -P 显示出实际路径,而非使用连接(link)路径。
(4)使用实例
例一:用pwd命令查看默认工作目录的完整路径
命令:
pwd
输出:
例二:目录连接链接时,pwd -P 显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径
命令:
pwd -P
输出: