目标
- 查看目录内容: ls
- 切换目录:cd
- 创建和删除操作:touch 、rm、mkdir
- 拷贝和移动文件:cp、mv
- 查看文件内容:car、more、grep
-
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以人性化的方式显示文件大小 |
使用 ls -l 命令以后: 如果开头的是小写字母d,则表示的是目录; 如果开头的是-,表示的是文件。
ls -l -h 和 ls -lh 的效果是一样的
ls命令的参数是可以分开写也是可以合并在一起写的。
1.4 ls通配符的使用
通配符是一些特殊的字符,在日常使用的过程中可以代表其他的字符
通配符 | 含义 |
---|---|
* | 代表任意个数个字符 |
? | 代表任意一个字符,至少一个 |
[] | 表示可以匹配 |
[abc] | 表示可以匹配字符组中的任意一个 |
[a-f] | 匹配从a到f范围内的任意一个字符 |
如果需要搜索的字符在后面,则必须跟上文件的扩展名。当然 * 也可以代表文件类型这一串字符
2. 切换目录
2.1 cd
cd是英文单词change directory的简写,其功能为更改当前的工作目录
注意:Linux所有的目录和文件名都是大小写敏感的
命令 | 含义 |
---|---|
cd | 切换到当前用户的主目录(home/用户目录) 【也可以简称为家目录】 |
cd ~ | 切换到当前用户的主目录(home/用户目录) |
cd . | 保持在当前目录不变 |
cd .. | 切换到上机目录 |
cd - | 可以在最近两次工作目录之间来回切换 |
2.2 相对路径和绝对路径
绝对路径:在输入路径时,最前面是/或者~,表示从根目录/家目录开始的具体目录位置。【不管当前的工作路径是在哪里,通过cd命令和绝对命令,都可以准确地切换到目标工作目录下 】;
相对路径:在输入路径时,最前面不是/或者~。表示相对于当前目录所在的目录位置。
3. 创建和删除操作
3.1 touch
创建文件或修改文件时间
选项 | 含义 |
---|---|
-p | 可以递归创建目录 |
cd ~
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 | 只显示目录 |
以树状图形式显示家目录下的文件目录结构:
tree ~
显示指定目录的文件结构
tree /a/b/c 也就是tree + 参数(目录位置)
4.2 cp
Linux中复制文件和文件夹操作
cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令
选项 | 含义 |
---|---|
-i | 覆盖文件前提示 |
-r | 若给出的源文件是目录文件,则cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
Practice 将文档下的Readme.txt文件复制到桌面来
复制的过程中直接使用 ~ 可以达到家目录/milanotang下,相当于代替了/home/milanotang的操作
cp 命令的简化使用,如果需要把目录下的文件复制到当前工作的目录下(而不改变文件名),只需要使用以下的形式即可:
cp ~/文档/Readme.txt .
如果当前工作的目录是桌面,则可以直接把文档中的Readme.txt文件复制到桌面。
使用 -i 选项可以给出一个提示
cp命令对于目录的复制和rm命令一样,必须添加一个选项 -r 才可以对其进行操作
4.3 mv
使用 mv 命令对文件重命名的方法【必须要加文件的格式名】:
这种直接移动文件的方法是非常不安全的,可能会替换中的内容,因此可以加一个选项来进行提醒:
选项 | 含义 |
---|---|
-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命令可以用于分屏显示文件内容,每次只显示一页内容
- 适合于查看内容较多的文本文件
5.3 grep
- Linux系统中grep命令是一种强大的文本搜索工具
grep允许对文本文件进行模式查找,所谓模式查找,又被称为正则表达式。 | 选项 | 含义 | | —- | —- | | -n | 显示匹配行及行号 | | -v | 显示不包含匹配文本的所有行(相当于求反) | | -i | 忽略大小写【忽略的是搜索对象的大小写】 |
常用的两种模式查找 | 参数 | 含义 | | —- | —- | | ^a | 行首,搜寻以a开头的行。在需要搜索的文本前面添加即可。 | | ke$ | 行尾,搜寻以ke结束的行。在需要搜索的文本末尾添加即可。 |
grep as Readme.txt
搜索的同时将行号也进行注明:
grep -n as Readme.txt
搜索的同时将所有不包含as的行显示出来(将行号也显示出来,并且连接在一起)
grep -vn as Readme.txt
如果搜索的是一个不连续的字符串怎么办?
grep -in "Hello Python" 1.txt
找到所有以f开头的文本在文本中所处的位置
grep -n ^f 1.txt
同理,找到所有以f结尾的文本及其所在的位置:
grep -n f$ 1.txt
6. 其他
6.1 echo文字内容
echo会在终端中显示参数指定的文字,通常会和重定向联合使用
6.2 重定向> 和 >>
- Linux允许将命令执行结果重定向到一个文件
- 将本应显示在输出端上的内容 输出/追加 到指定文件夹中
其中
>表示输出,会覆盖文件原有的内容
>>表示追加,会将内容追加到已有文件的末尾
echo Hello Python > a
若想要把一个文件的信息输出到另外一个文件中,可以使用以下命令:
ls -lh > a
同理,也可以把一个目录输出到文件中:
ls >> a
将tree输出到文件中
tree ~ >> a
echo 和 touch 的区别
- echo 可以在创建文件的同时指定其内容
-
6.3 管道
Linux允许将一个命令的输出可以通过管道作为另一个命令的输入
- 可以理解为显示生活中的管子,管子的一头塞东西进去,另一头取出来,这里的|的左右分别为两端,左端塞东西(写),右边取东西(读)
常用的管道命令有:
more :分屏显示内容
grep:在命令执行结果的基础上查询指定的文本
如:使用管道和more命令分屏显示结果
ls -lha ~ | more
在查看目录的同时使用grep 进行查询
ls -lha ~ | grep Do