目标

  • 查看目录内容: ls
  • 切换目录:cd
  • 创建和删除操作:touch 、rm、mkdir
  • 拷贝和移动文件:cp、mv
  • 查看文件内容:car、more、grep
  • 其他:echo、重定向>和>>、管道|

    1. 查看目录内容

    1.1 终端使用技巧

    (1)自动补全
    在敲出文件/目录/命令的前几个字母之后,按下tab键

  • 如果输入的没有歧义,系统会自动补全;

  • 如果还存在其他 文件/目录/命令,再按一下Tab键,系统会提示可能存在的命令

(2)曾经使用过的命令

  • 按 上/下 光标键可以在曾经使用过的命令之间来回切换
  • 如果想要退出选择,并且不想使用执行当前选中的命令,可以按Ctrl+c

(3)Terminal中的复制粘贴:
Ctrl+Shift+C/V

1.2 ls命令说明

ls 是英文单词list的缩写,其功能为列出目录的内容,是用户最常用的命令之一,类似于DOS下的dir命令
Linux下文件和目录的特点

  • Linux文件或者目录名称最长可以有256个字符;
  • 以.开头的文件为隐藏文件,需要用-a参数才能显示;
  • .代表当前目录。故cd .表示的就是当前目录;
  • ..代表上一级目录。cd .. 表示的就是切换到上一级目录。

    1.3 ls常用选项

    | 参数 | 含义 | | —- | —- | | -a | 显示指定目录下所有子目录与文件,包括隐藏文件 | | -l | 以列表方式显示文件的详细信息 | | -h | 配合 -l以人性化的方式显示文件大小 |

image.png

使用 ls -l 命令以后: 如果开头的是小写字母d,则表示的是目录; 如果开头的是-,表示的是文件。

  1. ls -l -h ls -lh 的效果是一样的

ls命令的参数是可以分开写也是可以合并在一起写的。

1.4 ls通配符的使用

通配符是一些特殊的字符,在日常使用的过程中可以代表其他的字符

通配符 含义
* 代表任意个数个字符
? 代表任意一个字符,至少一个
[] 表示可以匹配
[abc] 表示可以匹配字符组中的任意一个
[a-f] 匹配从a到f范围内的任意一个字符

image.png

如果需要搜索的字符在后面,则必须跟上文件的扩展名。当然 * 也可以代表文件类型这一串字符

2. 切换目录

2.1 cd

cd是英文单词change directory的简写,其功能为更改当前的工作目录
注意:Linux所有的目录和文件名都是大小写敏感的

命令 含义
cd 切换到当前用户的主目录(home/用户目录) 【也可以简称为家目录】
cd ~ 切换到当前用户的主目录(home/用户目录)
cd . 保持在当前目录不变
cd .. 切换到上机目录
cd - 可以在最近两次工作目录之间来回切换

2.2 相对路径和绝对路径

绝对路径:在输入路径时,最前面是/或者~,表示从根目录/家目录开始的具体目录位置。【不管当前的工作路径是在哪里,通过cd命令和绝对命令,都可以准确地切换到目标工作目录下 】;
image.png
相对路径:在输入路径时,最前面不是/或者~。表示相对于当前目录所在的目录位置。

3. 创建和删除操作

3.1 touch

创建文件或修改文件时间

  • 如果文件不存在,可以创建一个空白文件;
  • 如果文件已经存在,可以修改文件的末次修改日期

    3.2 mkdir

    创建一个新的目录
选项 含义
-p 可以递归创建目录
  1. cd ~
  2. mkdir -p a/b/c/d 这样就可以在该目录下创建一个嵌套的目录

新建目录的名称不能与当前目录中已有的目录或文件同名

3.3 rm

删除文件或目录

使用rm命令要小心,因为文件删除后不能恢复

选项 含义
-f 强制删除,忽略不存在的文件,无需提示
-r 递归地删除目录下的内容,删除文件夹时必须加此参数

4. 拷贝和移动文件

序号 命令 对应英文 作用
01 tree[目录] tree 以树状图列出文件目录结构
02 cp 源文件 目标文件 copy 复制文件或者目录
03 mv 源文件 目标文件 move 移动文件或者目录/文件或者目录重命名

4.1 tree

tree命令可以以树状图列出文件目录结构

选项 含义
-d 只显示目录
  • 以树状图形式显示家目录下的文件目录结构:

    1. tree ~
  • 显示指定目录的文件结构

    1. tree /a/b/c 也就是tree + 参数(目录位置)

    4.2 cp

    Linux中复制文件和文件夹操作
    cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令

选项 含义
-i 覆盖文件前提示
-r 若给出的源文件是目录文件,则cp
将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名

image.png

Practice 将文档下的Readme.txt文件复制到桌面来

image.png

复制的过程中直接使用 ~ 可以达到家目录/milanotang下,相当于代替了/home/milanotang的操作

cp 命令的简化使用,如果需要把目录下的文件复制到当前工作的目录下(而不改变文件名),只需要使用以下的形式即可:

  1. cp ~/文档/Readme.txt .

如果当前工作的目录是桌面,则可以直接把文档中的Readme.txt文件复制到桌面。

使用 -i 选项可以给出一个提示
image.png

cp命令对于目录的复制和rm命令一样,必须添加一个选项 -r 才可以对其进行操作

4.3 mv

mv命令可以用来移动文件或目录,也可以给文件或目录重命名

使用 mv 命令对文件重命名的方法【必须要加文件的格式名】:

image.png
这种直接移动文件的方法是非常不安全的,可能会替换中的内容,因此可以加一个选项来进行提醒:

选项 含义
-i 覆盖文件前提示

使用mv命令对目录进行重命名【不需要添加目录的后缀格式名】:

5. 查看文件内容

序号 命令 对应英文 作用
1 cat 文件名 concatenate【连接合并】 查看文件内容,创建文件、文件合并、追加文件内容等功能
2 more 文件名 more 分屏显示文件内容
3 grep搜索文本文件名 grep 搜索文本文件内容

5.1 cat

  • cat 命令可以用来查看文件内容、创建文件、文件合并、追加文件内容等功能
  • cat会一次显示所有的内容、适合查看内容较少的文本文件 | 选项 | 含义 | | —- | —- | | -b | 对非空输出行编号 | | -n | 对输出的所有行编号 |

Linux中还有一个nl的命令和cat -b 的效果等价

5.2 more

  • more命令可以用于分屏显示文件内容,每次只显示一页内容
  • 适合于查看内容较多的文本文件

使用more的操作键和man命令一样

5.3 grep

  • Linux系统中grep命令是一种强大的文本搜索工具
  • grep允许对文本文件进行模式查找,所谓模式查找,又被称为正则表达式。 | 选项 | 含义 | | —- | —- | | -n | 显示匹配行及行号 | | -v | 显示不包含匹配文本的所有行(相当于求反) | | -i | 忽略大小写【忽略的是搜索对象的大小写】 |

  • 常用的两种模式查找 | 参数 | 含义 | | —- | —- | | ^a | 行首,搜寻以a开头的行。在需要搜索的文本前面添加即可。 | | ke$ | 行尾,搜寻以ke结束的行。在需要搜索的文本末尾添加即可。 |

  1. grep as Readme.txt
  • 搜索的同时将行号也进行注明:

    1. grep -n as Readme.txt
  • 搜索的同时将所有不包含as的行显示出来(将行号也显示出来,并且连接在一起)

    1. grep -vn as Readme.txt

    如果搜索的是一个不连续的字符串怎么办?

  1. grep -in "Hello Python" 1.txt
  • 找到所有以f开头的文本在文本中所处的位置

    1. grep -n ^f 1.txt
  • 同理,找到所有以f结尾的文本及其所在的位置:

    1. grep -n f$ 1.txt

    6. 其他

    6.1 echo文字内容

  • echo会在终端中显示参数指定的文字,通常会和重定向联合使用

作用:相当于把参数又在终端中显示了一遍,类似于print?

6.2 重定向> 和 >>

  • Linux允许将命令执行结果重定向到一个文件
  • 将本应显示在输出端上的内容 输出/追加 到指定文件夹中

其中
>表示输出,会覆盖文件原有的内容
>>表示追加,会将内容追加到已有文件的末尾

  1. echo Hello Python > a

若想要把一个文件的信息输出到另外一个文件中,可以使用以下命令:

  1. ls -lh > a

同理,也可以把一个目录输出到文件中:

  1. ls >> a

将tree输出到文件中

  1. tree ~ >> a

echo 和 touch 的区别

  • echo 可以在创建文件的同时指定其内容
  • touch 只能指定一个空文件

    6.3 管道

  • Linux允许将一个命令的输出可以通过管道作为另一个命令的输入

  • 可以理解为显示生活中的管子,管子的一头塞东西进去,另一头取出来,这里的|的左右分别为两端,左端塞东西(写),右边取东西(读)

常用的管道命令有:
more :分屏显示内容
grep:在命令执行结果的基础上查询指定的文本

如:使用管道和more命令分屏显示结果

  1. ls -lha ~ | more

image.png

在查看目录的同时使用grep 进行查询

  1. ls -lha ~ | grep Do

image.png