数据学习教程:Linux基础教程(下)

本文继上一篇《Linux基础教程(上)》的下一篇,欢迎收藏。

4 Linux常用基础命令

Linux刚面世时并没有图形界面, 所有的操作全靠命令完成, 如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等 在职场中,大量的服务器维护工作 都是远程通过SSH客户端来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成。Linux部分常用命令:

命令

对应英文

作用

ls

list

查看当前目录下的内容

pwd

print working derectory

查看当前所在文件夹

扫描二维码关注公众号,回复: 15958340 查看本文章

cd [目录名]

change directory

切换文件夹

touch [文件名]

touch

如果文件不存在, 新建文件

mkdir [目录名]

make directory

创建目录

rm [文件名]

remove

删除指定的文件名

clear

clear

清屏

Linux文件系统目录树

windows系统可以拥有多个盘符, 如 C盘、D盘、E盘。

Linux没有盘符这个概念, 只有一个根目录/, 所有文件都在它下面:

图片

Linux主要目录:

图片

/bin:二进制命令所在的目录

/boot :系统引导程序所需要的文件目录,引导系统开机

/dev :设备软件目录,磁盘,光驱,  

/etc:系统配置,启动程序

/home:普通用户的家,目录默认数据存放目录

/lib:启动系统和运行命令所需的共享库文件和内核模块存放

/mnt:临时挂载储存设备的挂载点,

/proc:操作系统运行时,进程信息和内核信息存放在这里  

/root:Linux超级权限用户root的家目录

/sbin:和管理系统相关的命令,【超级管理员用】

/tmp:临时文件目录,这个目录被当作回收站使用

/usr:用户或系统软件应用程序目录

/var:存放系统日志的目录

注意:一般不要操作非自己创建的目录和文件,否则可能导致服务器崩溃。

1 命令帮助手册

因为一个命令有很多可选项, 死记硬背肯定不行, 所以需要借助手册查阅.

在线手册:https://www.runoob.com/linux/linux-command-manual.html

1.1 help命令

命令格式:command --help

例子:ls  --help

说明: 显示 command 命令的帮助信息

缺点: 虽然可以查询命令的帮助信息, 但是没有提供 翻页、搜索功能.

1.2 man命令

命令格式:man command

例子:man  ls

说明: 查询command命令的使用手册 man 时 manual 的缩写, 是Linux提供的一个手册, 包含了绝大部分的命令、函数的详细使用说明.

使用 man 时的操作键:

操作键

功能

空格键

显示手册的下一屏

Enter键

一次滚动首页也得一行

b

回滚一屏

f

前滚一屏

q (quit)

退出

/word

搜索word字符串

n(next)

搜索下一个

N

搜索上一个

2 文件和目录的常用命令

目标:学习掌握以下命令

  • 查看目录内容:ls

  • 切换目录:cd

  • 创建和删除操作:touch、 rm、 mkdir

  • 拷贝和移动文件:cp、 mv

  • 查看文件内容:cat、 less、tail、head、 grep

  • 其他:echo、 重定向 > 和 >>、  管道 |

2.1、查看目录内容

2.1.1、终端使用技巧

A、自动补全

  • 在敲出 文件/ 目录 / 命令 的前几个字母之后, 按下 tab键

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

B、曾经使用过的命令

  • 使用 上 / 下 光标键可以在曾经使用过的命令之间来回切换

  • 如果想要退出选择, 并且不想执行当前选中的命令, 可以按 ctrl + c

2.1.2、ls命令说明

ls 是英文单词list的简写, 其功能为列出目录的内容,是用户最常用的命令之一 因为需要编辑服务器上的文件, 所以需要先确认指定目录下是否存在 linux 下文件和目录的特点:

  • linux文件 或者 目录 名称最长可以 256 个字符

  • 以 . 开头的文件为隐藏文件, 需要用 -a 参数才能显示

  • . 代表当前目录

  • .. 代表上一级目录

案例:

1 创建文件 01.txt  

2 创建隐藏文件 02.txt

3 罗列隐藏文件和非隐藏文件

2.1.3、ls命令常用选项

如果 只使用ls命令 就只能看到当前目录下 非隐藏 文件。

如果想增强功能,就需要学习更多的选项

选项

英文

含义

-a

all

显示指定目录下所有子目录与文件, 包含隐藏文件

-l

以列表方式显示文件的详细信息

-h

human-readable

配合 -l 以人性化的方式显示文件大小

案例:

1 切换到 /usr/tmp 清空内容  

2 创建隐藏文件 非隐藏文件 目录

3 查看当前目录内容 (缺点: 隐藏文件看不到)

4 查看当前目录所有内容 (既包含隐藏, 也包含非隐藏)

5 查看目录内容的详细信息(查看文件类型、权限、大小等 缺点:文件大小没有单位)

6 简化合并 查看目录内容的详细信息(要显示文件大小)

命令如下:

图片

2.1.4、ls命令中通配符的使用

准备工作

 
 
 
 

# 切换到临时目录(先使用, 稍候讲解)
cd /usr/tmp
# 清空目录内容(先使用, 稍候讲解)
rm -rf *
# 创建文件
touch a23.txt 11.txt 111.txt 112.txt 123.txt 223.txt 323.txt 423.txt 523.txt
# 查看目录内容
ls

代码如下

图片

通配符

含义

*

代表 任意个数 的字符

?

代表任意一个字符, 且只能是一个

[abc]

匹配a、b、c中任意一个

[a-f]

匹配从a到f范围内的任意一个字符

案例:

1 查看以 1 开头的文件或目录

2 查看以 3.txt 结尾的 文件或目录

3 查看含有3的文件列表

4 查看第二个字符是2的文件

5 查看 第一个字符是 1到5, 以23.txt结尾 的 目录或文件名

图片

2.2、切换目录

2.2.1、cd命令

cd 是英文单词 change directory 的缩写, 其功能为 更改当前的工作目录, 也是用户最常用的命令之一

注意: linux的所有 目录 和 文件名 都是大小写敏感的

命令

含义

cd 目录

切换到指定目录下

cd ..

切换到上级目录

cd -

可以在最近的两次目录之间切换

需求:1 查看当前所在目录

2 切换到 /usr/local

3 切换到 上一级目录 /usr

4 后退到上一次访问的目录中 代码如下:

图片

2.2.2、相对路径和绝对路径

2.2.2.1、相对路径

特征: 相对路径输入路径时, 最前面不是以 "/" 开始的, 表示相对 当前目录 所在的位置

缺点: 参照工作目录 发生变化 相对路径也要发生变化

演示案例:

需求1: 当前工作目录是 /usr, 使用相对路径 切换到 /usr/tmp 目录下  

需求2: 当前工作目录是 /root, 使用相对路径 切换到 /usr/tmp 目录下  

在root目录下时,无法使用相对路径实现切换到/usr/tmp目录

代码如下:

图片

2.2.2.2、绝对路径

特征: 绝对路径 在输入路径时, 最前面是以 / 开始的, 表示从 根目录 开始的具体目录位置

优点: 定位准确, 不会因为 工作目录变化 而变化

演示案例:

需求1: 当前工作目录是 /usr, 使用绝对路径 切换到 /usr/tmp 目录下  

需求2: 当前工作目录是 /root, 使用绝对路径 切换到 /usr/tmp 目录下

小结:

相对路径 在输入路径时, 最前面不是以 / 开始的 , 表示相对 当前目录 所在的目录位置

绝对路径 在输入路径时, 最前面是以 / 开始的, 表示 从 根目录 开始的具体目录位置

2.3、创建和删除操作

2.3.1、创建文件

命令格式:touch 文件

案例:

第一步: 创建一个空白文件

touch 不存在的文件

第二步: 修改文件的末次修改日期

touch 存在的文件

小结:

通过 touch 文件名 创建文件 和 修改文件的末次访问时间

2.3.2、创建目录

命令格式:mkdir 文件目录

案例:

第一步: 创建 没有层级关系的目录(单层次目录)

mkdir 目录名

第二步: 创建 有层级关系的目录(创建多层次目录)

mkdir -p 目录1/目录2/目录3

mkdir命令选项:

选项

英文

含义

-p

parent

可以递归创建目录

2.3.3、删除文件或目录

通过 rm -rf 文件/目录 命令实现删除文件和目录的功能

rm 对应的英文是 remove 含义: 删除

案例1: 删除文件 (有提示)

rm 文件

案例2: 删除文件 (取消提示)

rm -f 文件

参数

英文

含义

-f

force (强制)

强制删除,忽略不存在的文件, 无需提示

案例3: 删除目录 rm -rf 目录

参数

英文

含义

-r

recursive (递归)

递归地删除目录下的内容, 删除文件夹 时必须加此参数

案例4: rm 结合 通配符  

常用通配符:?[abc][a-z]

rm -rf .txt

小结: 通过 rm -rf 文件/目录 完成删除 文件或目录的功能.

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

记住:在企业开发中,自己只删除自己创建的文件

2.4、拷贝和移动文件

命令

对应英文

作用

tree [目录名]

tree

以树状图 列出目录中的内容

cp 源文件 目标文件

copy

复制文件或者目录

mv 源文件 目标文件

move

移动文件或目录 或者 重命名

2.4.1、tree命令

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

准备工作:

创建目录

 
 
 
 

mkdir -p /export/aaa/bbb/ccc

创建文件

 
 
 
 

touch /export/aaa/01.txt /export/aaa/02.txt
touch /export/aaa/bbb/03.txt /export/aaa/bbb/04.txt
touch /export/aaa/bbb/ccc/05.txt /export/aaa/bbb/ccc/06.txt

案例1:以树形结构显示目录中的文件和目录

如果指定目录, 就显示指定目录的内容

如果不指定目录,就显示当前目录的内容

tree [目录]

提示:默认没有安装tree时,需要联网安装

安装 tree组件

 
 
 
 

yum -y install tree

卸载 tree组件

 
 
 
 

yum -y remove tree

案例2:只显示当前目录中的文件夹(目录)

 
 
 
 

tree -d [目录]

选项

英文

含义

-d

derictory (目录)

只显示目录, 不显示文件

案例3:显示指定的两层

 
 
 
 

tree -L n [目录]

选项

英文

含义

-L

level (层级)

显示几层目录

2.4.2、cp命令(拷贝)

通过 cp 实现复制将指定的 文件 或 目录 复制到 两一个 文件 或 目录中

案例1: 备份指定文件

cp  文件1  备份文件名

使用场景:当需要对服务器中的相关配置文件进行修改时,或其他软件中的配置文件进行修改时(例:mysql):建议先对要修改的配置文件进行:cp操作 备份操作

案例2: 将文件复制到目录中

cp 文件1 目录/

案例3: 将文件复制到另一个文件中, 实现覆盖效果

cp 文件1 文件2(存在的)

案例4: 复制目录 到指定 目录中

cp -r 目录1/ 目录2/

命令

英文

作用

-r

recursive (递归)

递归复制目标目录的内容

小结: cp命令的功能是将给出的 文件 或 目录 复制到另一个 文件 或 目录中

2.4.3、mv命令(移动)

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

案例1: 将文件 移动 另一个目录中

 
 
 
 

mv 文件 目录/

案例2: 重命名

 
 
 
 

mv 旧文件名 新文件名

案例3: 将目录移动到 另一个目录中

 
 
 
 

mv 被移动目录 目标目录

2.5、查看文件内容

命令

对应英文

作用

cat 文件名(小文件)

concatenate

查看小文件内容

less -N 文件名

less

分屏 显示大文件内容

head -n 文件名

查看文件的前一部分

tail -n 文件名

查看文件的最后部分

grep 关键字 文件名

grep

根据关键词, 搜索文本文件内容

准备工作:

清空指定目录内容

 
 
 
 

cd /export/
rm -rf *

复制 /etc/passwd 文件 到 /export/ 目录中

 
 
 
 

cp /etc/passwd /export/

复制 /etc/profile 文件 到 /export/ 目录中

 
 
 
 

cp /etc/profile /export/

罗列目录中内容

 
 
 
 

tree /export

2.5.1、cat命令

通过 cat 会一次显示所有的内容, 适合 查看内容较少 的文本文件

案例1: 显示文件内容

 
 
 
 

cat 文件名

案例2: 显示文件内容(显示行号 包含空行)

 
 
 
 

cat -n 文件名

参数

英文

含义

-n

number

显示行号

缺点: 空行也显示行号

案例3: 显示文件内容(显示行号 排除空行)

 
 
 
 

cat -b 文件名

参数

英文

含义

-b

number-nonblank

非空行 显示行号

扩展:nl 文件名 也可以实现 非空行显示行号的效果

命令

英文

含义

nl 文件

number lines of files

查看文件内容 且 非空行显示行号

小结: 通过 cat 文件名 查看小文件内容

2.5.2、less命令

  • 通过 less [参数] 文件名 命令可以用于分屏显示文件内容, 每次只显示一页内容

  • less 命令适合查看 内容较多 的文本文件

准备工作:

>> 重定向这个命令, 为了课程需要 我们先用, 后面我们会讲

将文件 /etc/profile 的内容 追加到 /export/01.txt目录中

 
 
 
 

cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt

案例1 : 分屏显示文件内容 less -N 文件名  ###分屏展示文件内容,适合大文件

参数

英文

含义

-N

number

显示文件内容 且 显示行号

使用 less 的操作键:

操作键

功能

空格键

显示下一屏幕

Enter 键

一次滚动一行

b

回滚一屏

f

向前一屏

q

退出

/word

搜索word字符串

案例2 : 根据关键词搜索内容

根据关键词搜索

/word

操作键

功能

n

向下找

N

向上找

小结:针对 linux中的文本文件信息,可以使用cat或less进行查看

通常cat适用于文本内容比较少的情况下 命令:cat 文件名 cat -n 文件名 nl 文件名

less适用文本内容比较多的情况 命令:less -N 文件名

常用操作:       

f 下一页        

b 上一页        

q 退出        

/检查的关键字 搜索文本中的关键字

n:向下继续检索                    

N:向上检索

2.5.3、head命令

通过 head 命令查看文档的前几行内容

准备工作:

 
 
 
 

# 准备一个26个字母的文件,上传到 /export/ 目录下

案例1: 查看文件的前5行内容

 
 
 
 

head -n 数字 文件

参数

英文

含义

-n

number

表示显示前几行内容

2.5.4、tail命令

tail命令用来查看文档(日志)的后几行内容

案例1: 查看文档的最后10行内容

 
 
 
 

tail -10 文件

案例2: 动态显示文档的最后内容,一般用来查看日志

 
 
 
 

tail -f 文件名

使用场景:在开发中当某个服务启动后,需要监控该服务中的相关参数信息时,会查看服务的日志文件信息

在开发中,通常会把一些日志信息,写入到一个log文件中。当遇到一些bug时,需要对当前的log文件进行日志的监控或查看。会使用:tail -f log日志文件 监控日志中输出的信息,从而来排查bug

案例3: 动态显示文档的最后10行内容

 
 
 
 

tail -100f 文件名

小结:

通过

head 命令查看文档的前几行内容

head -n 数值 文件名 --查看文件的前n行信息

通过

tail -10f 文件 命令 查看文档(日志)的后几行内容

tail -数值 文件名 --查看文件的后n行信息

tail -f 文件名 --动态的查看文件中的信息 (会一直滚屏)

2.6、其他命令

2.6.1、管道 |

通过 命令1 | 命令2 可以将命令1的结果 通过 命令2 作进一步的处理

案例1 : 过滤 /etc/ 目录下 以 pro 开头的文件

 
 
 
 

ls /etc/ | grep ^pro

案例2 : 搜索 存在关键字 的行数

 
 
 
 

ls /etc | grep ^pro | wc -l

命令:wc[参数] [文件]   ###打印文件的行数, 单词数, 字节数

参数:-l  ###显示行数

图片

小结:  管道符:|  

作用:把执行的第一个命令结果,放入到管道中,用来执行第二个命令

例:ls /etc | grep ^pro

第一个命令:查看/etc下所有的文件或目录    

第一个命令执行结果:/etc下所有的文件和目录

第二个命令:grep ^pro 搜索以pro开头的文件或目录 第二个命令执行结果:把/etc下所有的文件或目录中,以pro开头检索出来

2.6.2、echo命令

echo string 将字符串输出到控制台 , 通常会和 重定向 联合使用

演示案例:

 
 
 
 

echo hello
# 如果字符串有空格, 为了避免歧义 请增加 双引号 或者 单引号
echo "hello world"

2.6.3、重定向 >(覆盖)和>>(追加)

图片

默认情况下linux执行命令后,命令的结果会输出到控制台

通过 重定向 可以将结果 输出到文件

案例1: 将 命令的成功结果 覆盖 指定文件内容

 
 
 
 

echo 2222 > 01.txt

命令

作用

结果 > 文件名

> 表示输出, 会覆盖文件的原有内容

案例2: 将 命令的成功结果 追加 指定文件的后面

 
 
 
 

echo 3333333 >> 01.txt

命令

作用

命令 >> 文件名

>> 表示追加, 会将内容追加到已有文件的末尾

案例3: 将 命令的失败结果 追加 指定文件的后面

 
 
 
 

cat 不存在的目录 &>> error.log

命令

作用

命令 &>> 文件

&>> 表示不区分错误类型 通通放到 日志中

小结:通过 命令 > 文件 将命令的成功结果 覆盖 指定文件内容

通过 命令 >> 文件 将命令的成功结果 追加 指定文件的后面

通过 命令 &>> 文件 将 命令的失败结果 追加 指定文件的后面

2.6.4、&&和||

图片

案例1:如果创建目录成功, 就提示创建成功

命令

作用

命令1 && 命令2

如果 命令1执行成功了, 才执行 命令2

 
 
 
 

mkdir -p 正确目录 && echo "提示创建目录成功

案例2:如果创建目录失败, 就提示创建失败

命令

作用

命令1 || 命令2

如果 命令1 执行失败了, 才执行 命令2

 
 
 
 

mkdir 错误目录 || echo "提示创建目录失败"

练习:

 
 
 
 

1 如果创建目录成功, 就切换到指定目录
2 如果创建文件成功, 就罗列新建文件 所在目录的内容

2.6.5、软链接(创建快捷方式)

图片

软链接也叫符号链接,相当于windows的快捷方式。主要使用场景:当文件存储的目录比较深时,为了快速的去访问藏的比较深的文件,可以给这类文件创建一个访问的快捷方式。

软链接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体。删除源文件,软链接文件依然存放,但是无法访问指向的源文件路径内容了。失效的时候一般是红字白底闪烁提示。

命令格式:ln -s /源文件的绝对路径 快捷方式的访问路径

命令

英文

作用

ln -s 目标文件绝对路径 快捷方式路径

link

给目标文件增加一个软链接, 通俗讲就是快捷方式

小结: 注意: 必须 增加 -s , 否则 就变成了 硬链接。

硬链接的作用之一是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据。

之所以文件建立了硬链接就会防止数据误删,是因为文件系统的原理是,只要文件的索引节点还有一个以上的链接(仅删除了该文件的指向),只删除其中一个链接并不影响索引节点本身和其他的链接(数据的实体并未删除),只有当最后一个链接被删除后,此时如果有新数据要存储到磁盘上,被删除的文件的数据块及目录的链接才会被释放,空间被新数据暂用覆盖。

4.3 Linux搜索命令

3.1、find搜索

find是linux中最常见的搜索命令。

find命令在linux系统的整个目录结构中搜索文件,并对搜索结果执行指定的操作。find的使用格式如下:  

find <指定目录> <指定条件> <指定动作>

- <指定目录>:所要搜索的目录及其所有子目录。默认为当前目录   

- <指定条件>:所要搜索的文件的特征   

- <指定动作>:对搜索结果进行特定的处理

如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

3.1.1、find命令基本应用

通过find命令 在特定目录下(包含它的后代目录) 搜索符合条件的文件。

find命令的基本使用格式:

命令格式

作用

find [路径] -name '*.txt'

查找指定路径下扩展名是 .txt的文件, 包括子目录

说明:1、如果省略路径, 表示在当前文件夹下查找  

2、之前学习的通配符, 在使用find命令时同时可用

准备工作

 
 
 
 

# 切换目录到 /root/test_tar/
mkdir /root/test_tar cd test_find/
# 新增目录 且 切换目录 且 新增文件
mkdir -p aaa/bbb/ccc/ddd/eee/ touch aaa/bbb/ccc/ddd/eee/abc.txt touch aaa/123.txt touch aaa/312.txt
# 查看 /root/test_tar 目录中的内容
tree /root/test_tar

案例1: 搜索指定目录下, 文件是 abc.txt的文件

 
 
 
 

# ===================实现目标============================
# 方式一: 指定全目录
find /root/test_tar/ -name 'abc.txt'
# 方式二: 当前目录
find . -name 'abc.txt'
# 方式三: 当前目录 可以 省略 不写
find -name 'abc.txt'

案例2: 搜索指定目录下, 文件名 包含 1 的文件

 
 
 
 

# =================准备工作===============
# 创建测试文件
touch /root/test_tar/12.txt /root/test_tar/616.txt /root/test_tar/321.txt
# =================实现目录===============
find /root/test_tar/ -name "1"

图片

案例3: 搜索指定目录下,所有以.txt 为扩展名的文件

 
 
 
 

find /root/test_tar/ -name "*.txt"

案例4: 搜索指定目录下, 以数字1开头的文件

 
 
 
 

find /root/test_tar -name "1*"

图片

3.1.2、find扩展实例

find命令的基本格式:find 目录 -name  ‘.txt’

find . -name ".log" -ls  在当前目录查找以.log 结尾的文件, 并显示详细信息。

find /root/ -perm 777  查找/root/目录下权限为 777 的文件  

find . -type f -name "*.log"  查找当目录,以.log 结尾的普通文件  

find . -type d | sort  查找当前所有目录并排序

find . -size +100M 查找当前目录大于 100M 的文件

3.2、grep命令

grep 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

使用实例: 

ps -ef | grep sshd 查找指定 ssh 服务进程

ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除 gerp 本身

ps -ef | grep sshd -c 查找指定进程个数  

cat a.txt | grep -f b.txt 从文件中读取关键词进行搜索 输出 a.txt 文件中含有从 b.txt 文件中读取出的关键词的内容行  

cat a.txt | grep -nf b.txt  从文件中读取关键词进行搜索, 显示行号  

grep -n 'linux' test.txt 从文件中查找关键词,并显示行号

cat test.txt | grep ^u 找出以 u 开头的行内容

cat test.txt |grep ^[^u] 输出非 u 开头的行内容  

cat test.txt |grep hat$ 输出以 hat 结尾的行内容  

cat test.txt | grep -E "ed|at" 显示包含 ed 或者 at 字符的内容行

3.3、locate命令

locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

如果是精简版 CentOS 系统需要安装 locate 命令  

yum -y install mlocate

updatedb 命令来创建 locate 命令依赖的数据库  

updatedb

使用实例: 

locate /etc/sh  搜索 etc 目录下所有以 sh 开头的文件  

locate pwd  查找和 pwd 相关的所有文件

4.4 解压缩命令

解压缩命令能做什么呢?

1、从第三方下载软件压缩包, 解压缩后安装软件到服务器上;

2、通过打包压缩备份文件

图片

4.1、打包和解包

准备工作

 
 
 
 

# 清空指定目录内容
mkdir /root/test_tar cd /root/test_tar/ && rm -rf *
# 创建测试文件
touch 1.txt 2.txt 3.txt
# 创建有内容的测试目录
mkdir -p /root/test_tar/aaa/ touch /root/test_tar/aaa/4.txt /root/test_tar/aaa/5.txt
# 查看结果
tree /root/test_tar

4.1.1、打包

生活中的事例:将冬天的衣服放到袋中

在linux中可以把多个文件打包成为一个大文件,且打包后的文件需要以 .tar 结尾

 
 
 
 

tar 是linux中打包命令
# 将 一系列文件 打包成 一个大文件
tar -cvf 打包名.tar 被打包的目录 tar -cvf 打包名.tar 被打包的文件1 被打包的文件2 被打包的文件3
tar 选项说明

命令

英文

含义

c

create

生成档案文件, 创建打包文件

v

verbosely(啰嗦的)

像 '唐僧' 一样报告进度

f

file

指定档案的文件名称, f后面一定是 .tar 文件, 所以必须放到左后

练习题:

 
 
 
 

练习1: 将1.txt、2.txt、3.txt 打包成 123.tar文件
tar cvf 123.tar 1.txt 2.txt 3.txt
练习2: 将有内容的aaa目录 打包成 aaa.tar 文件
tar cvf aaa.tar aaa/

4.1.2、解包

生活中的事例:从袋子中把冬天的衣服取出来

在linux中,使用tar 命令进行解包

 
 
 
 

# 将一个打包后的 分解成 一系列小文件, 分解位置为 当前目录
tar -xvf 打包名.tar ##解压到当前目录下
# 将一个打包后的 分解成 一系列小文件, 分解位置为 指定目录
tar -xvf 打包名.tar -C 解包路径位置 ## -C 指定目录 解压到指定的目录下

命令

英文

含义

x

extract (提取)

解包

C (大写C)

directory (目录)

默认保存到当前目录, 通过-C 更改解压目录, 注意: 解压目录必须存在

练习题:

 
 
 
 

练习1: 将 123.tar 解压到 当前目录中
tar xvf 123.tar
练习2: 将 aaa.tar 解包到 /root/test_tar/test/a1/b1/c1/ 目录中

4.2、压缩和解压缩

准备工作

 
 
 
 

# 创建测试文件
touch 1.txt 2.txt 3.txt
# 创建有内容的测试目录
mkdir -p /root/test_tar/aaa/
touch /root/test_tar/aaa/4.txt /root/test_tar/aaa/5.txt
# 查看结果
tree /root/test_tar

4.2.1、使用gzip格式压缩和解压缩

在 Linux 中, 最常用的压缩文件格式是 xxx.tar.gz

在 tar 命令中有一个选项 -z 可以调用 gzip , 从而可以方便的实现压缩和解压缩的功能

命令格式如下:

 
 
 
 

# 压缩文件
tar -zcvf 打包压缩文件名.tar.gz 被压缩的文件/目录
# 解压缩文件(记忆敲门: 至孝潍坊)
tar -zxvf 打包文件.tar.gz
# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目录路径

tar 的选项说明

命令

英文

含义

z

gzip

使用gzip压缩和解压缩

j

bzip2

使用bzip2压缩和解压缩

练习题:

 
 
 
 

练习1: 将1.txt、2.txt、3.txt 打包压缩成 123.tar.gz文件(gzip压缩格式)
tar zcvf 123.tar.gz 1.txt 2.txt 3.txt
练习2: 将有内容的aaa目录 打包成 aaa.tar.gz 文件(gzip压缩格式)
tar zcvf aaa.tar.gz aaa/
练习3: 将 123.tar.gz 解压到 当前目录中(gzip压缩格式)
练习4: 将 aaa.tar.gz 解包到 /root/test_tar/bbb 目录中(gzip压缩格式)

4.2.2、使用bzip2格式压缩和解压缩

在 Linux 中, bzip2 压缩文件格式是 xxx.tar.bz2

在 tar 命令中有一个选项 -j 可以调用 bzip2 , 从而可以方便的实现压缩和解压缩的功能

命令格式如下:

 
 
 
 

压缩文件
tar -jcvf 打包压缩文件名.tar.bz2 被压缩的文件/目录
解压缩文件
tar -jxvf 打包文件.tar.bz2
解压缩到指定路径
tar -jxvf 打包文件.tar.bz2 -C 目录路径

tar 的选项说明

命令

英文

含义

z

gzip

使用gzip压缩和解压缩

j

bzip2

使用bzip2压缩和解压缩

练习题:

 
 
 
 

练习1:将1.txt、2.txt、3.txt打包压缩成123.tar.bz2文件(bzip2压缩格式) tar jcvf 123.tar.bz2 1.txt 2.txt 3.txt
练习2: 将有内容的aaa目录 打包成 aaa.tar.bz2 文件(bzip2压缩格式)
练习3: 将 123.tar.bz2 解压到 当前目录中(bzip2压缩格式)
练习4: 将 aaa.tar.bz2 解包到 /root/test_tar/bbb 目录中(bzip2压缩格式)

5 vi/vim文本编辑器

1. 编辑器简介

vi编辑器是所有Unix及Linux系统下标准的编辑器,相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。是使用Linux系统不能缺少的工具。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的。

vim(vi improved)编辑器是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转、语法高亮等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的,不过功能已经很齐全了,但是还是有可以进步的地方。vim 则可以说是程序开发者的一项很好用的工具。vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。

vi/vim编辑器的核心设计思想:

让程序员的手指始终保持在键盘的核心区域, 就能完成所有的编辑操作

图片

2. 打开和新建文件

如果当前的linux系统中输出:vim命令后,出现命令的不识别的情况,需要安装VIM

安装方式:yum -y install vim*

在终端中输入vim在后面跟上 文件名 即可

vim 文件名

  • 如果文件已经存在, 会直接打开该文件

  • 如果文件不存在, 保存且退出时 就会新建一个文件

2.1、打开文件并且定位行

在日常工作中, 有可能会遇到打开一个文件, 并定位到指定行的情况。

例如: 在开发时候知道某一行代码有错误, 可以快速定位到出错误代码的位置,这个时候, 可以使用以下命令打开文件:

 
 
 
 

vim 文件名 +行数

提示: 如果只带上+ 而不指定行号, 会直接定位到文件末尾

2.2、异常处理

如果 vi 异常退出, 在磁盘上可能会保存有 交换文件

下次再使用 vi 编辑文件时, 会看到以下屏幕信息, 按下字母 d 删除交换文件即可。

图片

 

这种现象如何产生:编辑文件时没有退出, 直接关闭会话窗口。

图片

2.3、vi/vim三种工作模式

基本上 vi/vim 共分为三种模式,分别是:命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode).

图片

 

1、命令模式

打开文件首先进入命令模式, 是使用vim的入口。

命令模式下下敲击键盘动作会被Vim识别为命令,而非输入字符。

若想要编辑文本:必须切换到输入模式。

2、底线命令模式  

执行 保存 退出等操作 (是从命令模式进入的)

要退出 vi 返回到控制台, 需要在底线命令模式下输入命令,是 vi编辑器 的出口。

在底线命令模式中,基本的命令有(已经省略了冒号):

q 退出程序

w 保存文件

wq 保存且退出文件

wq! 强制保存且退出文件

3、输入编辑模式  

正常的编辑文字

3. 常用命令

vi命令还是比较多, 实际使用中也就是那么几个。不奢求一下子全部都记住, 个别命令忘记了, 只是会影响编辑速度而已 . 在使用vi命令时, 注意关闭中文输入法。

熟能生巧,多用多会。

3.1、光标移动

移动光标的方法

如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!

图片

3.2、复制粘贴

图片

3.3、搜索替换

图片

3.4、删除

图片

4. 撤销和恢复撤销

在学习编辑命令之前,先要知道怎样撤销之前一次 错误的 编辑操作

命令

英文

功能

u

undo

撤销上次的命令(ctrl + z)

Ctrl + r

uredo

恢复撤销的命令

5. 插入命令(重要)

在 vi 中除了常用 i 进入编辑模式 外, 还提供了一下命令同样可以进入编辑模式

命令

英文

功能

常用

i

insert

在当前字符前插入文本

常用

I

insert

在行首插入文本

较常用

a

append

在当前字符后添加文本

A

append

在行末添加文本

较常用

o

在当前行后面插入一空行

常用

O

在当前行前面插入一空行

常用

小结:在进入编辑模式之前,可以通常输入的命令,来进入到不同编辑状态

i:进入到编辑模式后,定位到当前光标前面

I:进入到编辑模式后,定位到当前行的首位置

a:进入到编辑模式后,定位到当前光标的后面追加要写入的内容

A:进入到编辑模式后,定位到当前行的行尾

o:进入到编辑模式后,在当前行的后面,添加一行空行

O:进入到编辑模式后,在当前行的前面,添加一行空行

图片

猜你喜欢

转载自blog.csdn.net/Blue92120/article/details/131956292
今日推荐