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

news2024/11/25 19:12:59

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

4 Linux常用基础命令

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

命令

对应英文

作用

ls

list

查看当前目录下的内容

pwd

print working derectory

查看当前所在文件夹

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:进入到编辑模式后,在当前行的前面,添加一行空行

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/796640.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C盘满了怎么清理?最全c盘清理攻略!

“c盘怎么会那么容易满啊&#xff1f;而且每次清理好像也释放不了多少空间。谁懂啊&#xff1f;一天要清理好几次c盘&#xff01;真的很麻烦。有谁能告诉我应该怎么做吗&#xff01;” 电脑c盘对我们来说真的是很重要。当我们在电脑上安装软件、存储文件或者浏览网站&#xff0…

提升打印品质:解决Excel表格乱套问题的实用技巧

作为办公人员&#xff0c;我们经常需要打印大量的数据表格。然而&#xff0c;打印表格并不是一件简单的事情&#xff0c;如果不注意&#xff0c;打印效果可能会变得混乱不堪。那么该怎么办呢&#xff1f;在这里&#xff0c;我将为大家分享9个关于Excel表格打印的技巧&#xff0…

django自定义app,创建子应用

1.工程里创建apps包 &#xff1b; 2.创建子应用&#xff0c;pycharm terminal 运行&#xff1a;python ./nanage.py startapp app名称&#xff1b; 3.子应用移动到apps包里&#xff1b; 4.settings.py里设置INSTALLED_APPS如“apps.users”&#xff0c;该名字跟子应用apps.py文…

KBYCMS框架后台使用帮助介绍

后台入口文件 后台入口文件默认是public目录下的admin.php。访问后台时加上admin.php访问,您可根据需要,重命名后台入口文件。 重命名后需要在config/app.php文件中修改配置,配置如下,如果没有以下配置那么该版本无需理会。 // 入口文件绑定,无需写index app_file …

Fastjson远程命令执行漏洞总结

## 1.FastJson 简介 ##### fastjson.jar包原始下载地址&#xff1a;https://github.com/alibaba/fastjson ##### fastjson用于将Java Bean序列化为JSON字符串&#xff0c;也可以从JSON字符串反序列化到JavaBea... 1.FastJson 简介 fastjson.jar包原始下载地址&#xff1a;Git…

设计模式-模版方法模式

生活中处处存在模版&#xff0c;模版定义了大的框架&#xff0c;具体内容由使用者填充即可&#xff0c;这给很多人的生活、工作带来了很大的遍历。比如&#xff1a; PPT模版&#xff1a;好的PPT模版提供了更全面的叙述框架&#xff0c;更优美的UI画面&图标&#xff0c;提升…

算法训练营第五十一天||309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 ●总结

309.最佳买卖股票时机含冷冻期 这道题主要就是搞懂dp数组含义以及状态之间的转换&#xff0c;没看答案能自己做出来 class Solution { public:int maxProfit(vector<int>& prices) {vector<vector<int>> dp(prices.size(),vector<int>(5,0));//前…

jMeter使用随记

参数化BodyData 先制作参数文件 再设置一个csv data set config 最后在body data里面写上参数${xxxxx}

【外卖系统】更新员工信息

需求分析 员工管理列表界面&#xff0c;需要对某个员工的账号进行启用和禁用操作。账号禁用的员工不能登录系统&#xff0c;启用后的员工可以正常登录。只有admin可以对其他普通用户进行启用、禁用的操作&#xff0c;普通用户登录系统后启动、禁用按钮都是不显示的编辑员工信息…

家庭有必要买洗地机吗、洗地机排行榜推荐

洗地机相信大家都认识吧&#xff0c;在清洁家电领域这可谓是个“名人”。在清洁工具的名单中&#xff0c;要说一机多用&#xff0c;使用体验好的&#xff0c;洗地机绝对名列前茅。和传统清洁工具相比&#xff0c;洗地机可以很快速的就清洁干净地面&#xff0c;十多分钟就能还你…

数据库—用户权限管理(三十三)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、概述 二、用户权限类型 ​三、用户赋权 四、权限删除 五、用户删除 前言 数据库用户权限管理是指对数据库用户的权限进行控制和管理&#xff0c;确保用户只能执…

探究Spring Bean的六种作用域:了解适用场景和使用方式

这里写目录标题 单例&#xff08;Singleton&#xff09;作用域&#xff1a;原型&#xff08;Prototype&#xff09;作用域&#xff1a;请求&#xff08;Request&#xff09;作用域&#xff1a;会话&#xff08;Session&#xff09;作用域&#xff1a;全局&#xff08;applicati…

【一文搞懂】—带霍尔编码器的直流有刷减速电机

文章目录 一、直流有刷电机二、减速比三、霍尔编码器3.1 霍尔编码器3.2 霍尔编码器测速原理 四、测速程序设计4.1 跳变沿检测4.2 计算转速 一、直流有刷电机 宏观上说直流有刷电机由固定部分&#xff08;定子&#xff09;和旋转部分&#xff08;转子&#xff09;组成。在定子上…

Web Worker的概念、用法、使用场景

​ 目录 1. 简介 2. 适用场景 2.1 复杂计算 2.2 后台下载 2.3 数据处理 2.4 实时通信 3. 代码示例 3.1 Worker特性检测 3.2 Worker API 3.3 SharedWorker API 3.4 创建 JavaScript 文件 3.5 创建 Web Worker 4. 总结 1. 简介 Web Worker 使得在一个独立于 Web 应…

2023-07-27 LeetCode每日一题(删除每行中的最大值)

2023-07-27每日一题 一、题目编号 2500. 删除每行中的最大值二、题目链接 点击跳转到题目位置 三、题目描述 给你一个 m x n 大小的矩阵 grid &#xff0c;由若干正整数组成。 执行下述操作&#xff0c;直到 grid 变为空矩阵&#xff1a; 从每一行删除值最大的元素。如果…

VS2022和QT混合编程打包发布程序

1.在开始菜单输入 CMD 找到 Qt5.15.2(MSVC 64-bit) 2.输入windeployqt exe所在路径 3.运行完毕后&#xff0c;双击打开exe文件&#xff0c;可能会报错&#xff0c;缺少相关的dll,找到缺少的dll拷贝到运行文件夹下即可。

数字化管理能给企业带来哪些好处?

企业数字化管理&#xff08;EDM&#xff09;是指使用数字技术和工具来管理企业运营和流程的各个方面。如果有效实施&#xff0c;EDM 可以给企业带来多种好处&#xff0c;提高企业的整体效率、生产力和竞争力。以下是一些主要优点&#xff1a; 1.提高效率&#xff1a;EDM 通过自…

参数自定义配置比例阀放大器

模拟指令输入比例阀放大器通常使用模拟信号来控制其输出&#xff0c;例如10V, 0~5V,0~10V,4~20mA模拟量信号。它可以将输入的模拟信号放大并转换为一个与输入信号成正比的输出信号&#xff0c;从而实现对执行机构的位置或速度控制。 适配各种不带位置反馈比例阀的控制&#xf…

Python 并发编程 Futures

文章目录 说明1. 并发与并行2. Futures 模块2.1 顺序执行2.2 并发执行2.3 并行执行2.4 Executor 对象 3. 全局解释器锁3.1 为什么有 GIL3.2 GIL 工作过程3.3 线程安全 后记 说明 编程中如果能合理利用编程语言的并发编程技巧&#xff0c;都可以极大提升程序的性能。在 Python …

手把手教你激活虹科物联网HMI/网关数据库功能

前言 JMobile Studio 4.5的更新使得虹科物联网HMI/网关可以本地支持MySQL、PostgreSQL以及支持ODBC驱动连接的数据库&#xff0c;实现设备数据的存储&#xff0c;方便企业数据的统筹管理。 因此&#xff0c;本文主要介绍如何激活虹科物联网HMI/网关的数据库功能。 操作步骤 …