Linux《基础指令》

在之前的Linux《Linux简介与环境的搭建》当中我们已经初步了解了Linux的由来和如何搭建Linux环境,那么接下来在本篇当中我们就要来学习Linux的基础指令。在此我们的学习是包括两个部分,即指令和关于Linux的基础知识;因此本篇指令和基础知识的学习方式是在学习指令的过程中将相关的基础知识了解。相信通过本篇的学习能让你了解Linux的更多知识,一起加油吧!!!


1. Linux下基本指令

注:在以下指令的学习默认都是在root账号当中使用的,到接下来我们学习到开发工具之后再切换到普通账号 

1.1 adduser与userdel

在之前我们使用Xshell远程登入Linux时使用的其实是root账号登入,那么是不是一个云服务器就只能登入一个root账号呢?

其实除了root能登入之外还可以使用普通账号登入,只不过要先创建相应的普通账号才能进行登入。

那么在Linux当中创建普通账号的指令如下所示:

adduser [用户名]

设置普通账号密码的指令如下所示:
 

passwd [用户名]

 

以上操作进行之后就在Linux添加了新的普通账号,那么如果不想使用这个账号了呢,该如何移除创建等账号呢?

在此移除普通用户账号的指令如下所示:
 

userdel -r [用户名]

注意:以上指令的-r不可省略,现在你还无法理解其中的原因,不必担心,之后学习了更多的知识之后就能理解了

1.2 pwd

在此pwd指令的作用是显示用户当前所在的目录

pwd

在以上就是使用超级用户登入时的默认路径,那么这里的/代表的是什么呢?

在此在linux的文件路径表示当中/表示的是路径分隔符,这和windows是类似的。

注:在windows当中将存储多个文件的叫做文件夹,但在Linux当中一般都叫做目录,在此需要记住

知识点

此外在两个路径分隔符之间的一定是一个目录 ,并且路径的末尾可能是一个目录也可能是一个普通文件

在Linux当中文件的存储其实是一个多叉树的结构,路径当中的/其实表示的就是根目录

因此在使用root账户登入时,使用pwd指令之后显示的是/root,这是因为root账户默认的路径就是/root,在此/表示的就是根目录,root就是根目录内的文件

1.3 whoami

当我们想知道当前用户的名称就可以使用whoami指令

whoami

输入之后点击回车就会显示当前你所登入的账号用户的名称 

超级用户(该超级用户被我命名为root) 

普通用户(该普通用户被我命名为zhz)

1.4 touch

touch指令的作用是在当前的目录当中创建一个普通文件

touch [文件名]

知识点 

在Linux当中文件分为普通文件和目录,普通文件包括文本文件、二进制可执行文件、动静态库、视频、音频、图片等。并且在Linux当中文件的类型是于文件的后缀是无关的,但在此还是建议不同类型的文件带上对应的后缀,这是因为在Linux的一些软件下文件的类型还是和后缀相关的,例如之后要学习的gcc、g++等。

在此我们创建了一个文件之后,此时文件内还任何内容都不存在,是否就说明该文件什么内容都不存在呢?

要解答这个问题就要了解到在Liunx当中文件是由内容加属性组成的,因此以上提到的文件为空是文件的内容为空,而文件被创建出来就拥有文件存储位置,文件的大小等文件属性;这就使得文件的属性不可能为空,因此文件就不为空

知识点

在Linux下文件=文件内容+文件属性,文件内容和文件属性都是数据,都要被保存起来

 

1.5 mkdir

mkdir指令的作用是在当前的目录下创建一个目录

mkdir [目录名]

那么如果我们要在创建目录时在其内部再创建目录;之后再在目录内创建普通文件以上的指令还能实现对应的功能吗?接下来就来试试看

通过以上到的结果就可以看出mkdir无法实现我们的要求,那么有什么其他的方法呢?
在此我们要知道的是由于Linux的文件存储其实是一个多叉树的结构,因此以上创建一个带路径的目录时一定是要进行递推式的创建的

那么在此在学习ls指令的同时,我们要从此了解到的是在Linux的指令当中除了直接使用指令之外还可以使用携带选项的指令

格式为:指令 空格 -选项

在此在mkdir指令当中就提供了 -p选项 此时-p之后的就是路径,这时系统将自动建立好那些尚不存在的目录,即⼀次可以建立多个目录

mkdir -p [路径]

那么如何验证我们使用mkdir -p指令之后真的创建了我们要求的目录呢?

接下来就在学习mkdir指令的同时再了解一个指令tree,该指令的作用是将指定的目录以树的形式展示出文件和目录结构

tree [目录]

注:在此tree指令一般系统不会自带

需要使用以下的指令进行安装

yum install -y tree

安装了之后就可以使用tree指令来验证之前我们使用mkdir创建的目录是否符合我们的要求

通过以上的输出结果就可以看出是满足我们的要求的 

1.6 ls

ls指令的作用如下:
对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

ls [目录或者文件]

例如以下就是使用ls将当前目录下的文件信息展示出来:

在ls指令当中也是也可以携带选项的,以下的完整的ls选项以及各自的作用

• -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录像文件⼀样显示,而不是显示其下的文件。 如:ls ‒d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls ‒ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls ‒alk 指定文件
• -l 列出文件的详细信息
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上⼀个字符以说明该⽂件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序
-t 以时间排序
-s 在l文件名后输出该⽂件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-1 ⼀行只输出⼀个文件。 

以上的选项众多但是其实需要重点掌握的只有两个就是-a 和 -l

在了解ls指令的同时还要了解的是 ,指令之后的选项其实是可以一起传入的

就例如ls当中的-a和-l就可以在同一条ls指令当中使用:ls -l -a ,并且指令其实还也可以组合传入,例如以上的指令就可以变为ls -la,在此选项的顺序是随意的

在了解ls当中-a选项之前先要来理解在Linux当中的隐藏文件是什么

我们知道在windows当中是存在隐藏文件的

其实和windows一样Linux当中也是存在隐藏文件的,在此隐藏文件存在的意义是操作系统一般会将重要的文件默认隐藏起来,这样即使用户误操作也不会将重要的文件删除,保证的操作系统的稳定。

知识点

在Linux当中以.开头的文件或者是目录都是隐藏文件,使用-a选项就可以将隐藏文件展示出来

知识点

在ls指令使用-a选项当中显示出的 . 和 . . 分别表示当前路径和上级路径,并且对于任何一个目录一定都存在 . 和 . .

在ls指令使用-l选项当中每个文件或者目录显示的的第一个字符表示文件的类型;-表示是普通文件,d表示是目录


注:在此文件的类型其实除了以上提到的两种之外还有很多类型的文件,但目前我们还不会接触到,到之后接触到再进行补充

 那么这时你可能就会疑惑了,以上提到的 . 和 . .文件有什么作用呢?

在此就先要了解两个概念——绝对路径和相对路径
 

在以上了解pwd指令时我们就知道在Linux下每个文件都是有路径的,但其实之前提到的都是绝对路径也就是都是从根目录/开始的,通过之前数据结构的学习知道绝对路径是具有唯一性的。
其实寻找一个文件除了从根目录开始的绝对路径之外还可以使用相对路径的方式来查找。

相对于当前用户所处目录,定位⽂件的路径方式

例如以下示例:


 

在以上的根目录下存在许多的文件和目录,在此如果要定位到名为src的文件可以通过/user/src绝对路径的方式来查找,如果此时处于local下就可以通过local的位置来定位,由于local和src的父节点相同因此使得src相对local的相对路径也是唯一的。

这时 .. 文件的作用就体现出来了,当我们要从local切换到local路径;此时 ../ 就定位到user,../user/src就定位到src文件。

因此通过以上的示例就可以看出 ..可以帮助快速的实现路径的切换,但要切换路径还需要cd指令,接下来我们就来学习该指令的使用方法

知识点

定位文件既可以通过绝对路径也可以通过相对路径,两个路径都具有唯一性

1.7 cd

cd指令的作用是改变工作目录。将当前工作目录改变到指定的目录下

cd [目录名]

例如以下示例: 

在之前我们创建一个目录a,那么要进入到该目录内的b目录就可以使用cd指令

我们知道在root用户当中默认登入所处的路径是就是/root,那么普通账号默认的路径是什么呢?

接下来我们就使用几个普通账号来登入看看

通过以上的两个普通账号默认路径就可以看出普通账号一开始都处在home目录下,那么home目录是什么呢?

知识点

在此home路径称为家目录,所有普通账户的数据都是存储在家目录下的,之后不同账户的信息在存储在各自的账户路径下,这样做的目的是为了保护用户的信息,在普通用户登入时默认就处在对应的家目录下

那么在Linux是任何实现普通账号防止其他人进入其的家目录下的呢?
这个问题等到以下我们讲到权限时再来细致的讲解

那么在了解了家目录的相关知识之后接下来就再来了解cd指令的两个选项

//切换到用户的家目录
cd ~

//快速的切换回最近的一次路径
cd -

 

1.8 rm

rm指令可以实现删除文件或者目录

rm [目录/文件]

在此使用rm删除时如果是普通文件就只需要 rm 文件名 即可 

但在删除目录时rm 目录名就无法删除

这是因为目录是递归创建的,那么在删除时也要递归的删除,因此在删除目录时就需要给rm指令带上-r,表示递归删除

在一些情况下在递归删除目录时命令行还会问你是否确定,如果你想直接删除没有这个过程就可以加上-f选项。因此在删除目录时一般使用的是以下所示的指令

rm -rf [目录]

 

1.9 man

在此在Liunx当中有很多指令,我们不可能将全部指令的功能和使用方法记住,如果想快速的查阅相关的指令就可以使用man手册来查询,在此man手册对应的指令就是man指令

使用方式如下所示:

man [选项] 指令

例如要查阅之前我们学习的ls指令就在命令行当中输入man ls,输入之后就会显示ls指令的相关信息,要退出就只需要点击q


在此man除了可以查询Linux系统当中的·指令之外还可以查询C库当中的函数,例如要想知道C语言中的printf函数的功能就可以使用 man printf 指令来查询,但是以下的输出的printf指令,不是我们想查询的C库内的printf函数,那么这就需要我们来进一步了解man指令

man除了能查询以上的系统指令和C库当中的函数之外还可以查询其他的信息,那么接下来就使用man指令来查询man

在此就可以看出man手册一共是有9号的,但一般情况下我们自会使用到man手册当中的前三号手册内容,其他的基本不会使用到,因此在此我们也就不做了解

• 1 是普通的命令
• 2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么
头文件)
• 3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备⽂件
• 4 略
• 5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
• 6 是给游戏留的,由各个游戏自己定义
• 7 是附件还有⼀些变量,比如像environ这种全局变量在这里就有说明
• 8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
• 9 略

那么以上我们要查询的C库当中的printf函数就要使用 man 3 printf 指令来查询

1.10 cp

在以上我们学习了文件在Linux下该如何创建和删除,那么有时我们还要将一个文件进行复制粘贴,这时就需要用到cp指令

cp指令得作用是复制文件或目录

指令得形式如下所示:
 

cp 源⽂件或⽬录 ⽬标文件或⽬录

但在详细了解cp指令之前要再来了解一些Liunx的知识

 知识点

在Linux下,一切皆文件

在此我们要了解一个指令——echo,作用是将文本输入到指定的文件当中,默认情况下在为指定文件时就直接将文本输入到显示器文件当中。在使用echo之后的文本内容最好使用" "引起来,这样要输入的内容就更加显著

 

当我们指定输入的文件时就会将文本的内容该为输入到指定的文件当中

以上出现的一个之前我们没有学习到的指令——cat,其实该指令的作用就是获取指定文件内的文本信息,接下来还会细致讲解,在此只是先使用一下。

以上我们先test文件当中输入了字符串hello world,那么如果在将字符串AAA输入到test文件当中会追加到原来的hello world 之后吗?
接下来就来试试看

通过使用可以看出输入的AAA会将test内原本文本覆盖。其实以上指令当中的 >  叫做输出重定向,在echo之后使用>就会先将原来文件内文本清空;之后再将新的内容写入。并且不带echo直接使用>之后带文件名,当文件之前就存在就会将文件内的文本全部清除

若文件原来不存在就会创建相应名称的文件在当前路径下 

那么这时就有问题了,如果此时我们想向指定的文件当中追加指定的文本,以上的 > 就无法满足我们的要求,那么这时有什么办法呢?
在此要实现追加的功能就需要用到 >> 来实现追加重定向
 

其实除了以上提到的输出重定向和追加重定向,还存在输入重定向,使用到的符号是

因此以上的内容就可以总结出以下的知识点

知识点

echo默认是向显示器输出,要向指定的文件写入就需要使用到  > 进行输出重定向, 如果要进行追加重定向就需要使用 >> ,如果进行输入重定向就需要使用到 < 

那么在了解echo以及输入重定向的相关知识之后接下来就来进一步的了解cp指令

以下就是将我们之前在b目录下的test文件复制到b目录当中就按照以下的形式实现:

那么若要将test文件复制到zhz目录下并且还要将文件重命名为newtest,那么就需要在指定的目录下再将新的文件名也创建

注:在此新文件名一定要是不存在的

 

 

在此要复制一个目录呢,也是直接使用cp指令吗?

在此我们来试着看看

通过以上的报错就可以看出在复制目录时直接使用cp无法满足我们的要求,此时要完成目录的复制也是要带上-r 选项的,就和之前我们删除目录一样,-r 表示递归,毕竟目录是也是一棵子树如果能直接使用cp复制,那么也显的很不合理。

                                                                                                                                                                                                                                                                                                                                                            


 1.11 mv

在以上我们了解了文件的复制,但有时还需要进行文件的剪切,此时就需要使用到mv指令

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files,经常用来备份文件或者目录

在此也可以使用mv来实现目录的剪切

 

1.12 which 

如果我们要搜索系统下指令的路径就课使用which指令

which [指令]

 那么有了which指令之后就可以来查询之前我们学习的cp、ls等指令在系统内的路径了。 

通过以上就可以看出ls、cp都是在 /usr/bin 路径下的文件,那么了解了这些之后就可以引入一个知识了

知识点

在Linux下,一切指令都是程序,并且系统特定路径/usr/bin下的程序

在此使用ls指令将 /usr/bin 内的文件展示出来就可以看到确实系统的指令都是在该目录下的

 

因此在使用系统的指令时使用带绝对路径的方式也是可以调用的

那么为什么在之前调用系统的指令时我们不用带路径直接输入指令名就可以使用呢?

在此该问题就不进行解答,到之后学习到进程部分再来解答,现在你在需要知道指令就是特定路径下的指令即可

如果我们直接使用绝对路径来调用ls,那么目录就不会带颜色,而直接使用ls就会带,那么这是为什么呢?

这就需要再使用which来观察了

 

这时就可以看到ls指令其实原来是被加上了 --color=auto选项的,在此alias是给原来的ls起别名,这就使得在使用ls指令时默认的就是使用ls --color=auto 

在此再补充一个指令ll,该指令其实就是ls -l 的别名,之后我们要使用ls -l 指令就可以直接使用 ll

 

 

1.13 cat

在此cat的作用在之前就已经提到了就是查看目标文件的内容

cat [文件]

若要使得输出的文件内的文本带上行编号就需要用到 -n 选项

cat -n [文件名]

 

但是如果文件内的文本内容非常多,此时就会刷屏,那么此时想要退出就需要按 CTRL+c 就可以强制退出

 

注:在此要从末尾开始查看文件的文本内容可以使用tac指令,其使用方式和cat类型

1.14 more

在以上的cat指令在打开大文本内容的文件会出现刷屏的问题,那么此时就适合适用more指令了

more [文件]

例如当打开系统的日志时就可以使用more来查看

more /var/log/messages

 

使用more指令打开文件后会先显示满一屏,在左下方会显示出现在所处的进度,要向下翻阅只需要点击ENTER即可

要按照关键字查询就点击 / 之后再输入要查询的关键字,之后再点击 ENTER 就会输出关键字,之后再点击 n 就能继续向下查询 

1.15 less

以上我们了解了more指令,其实more在查看大文本的文件是确实是要比cat指令要好用,但是more指令也纯在问题就是在more指令内不能进行前后的翻阅,因此在此我们就来学习一个比more更好用的指令——less

less的功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。

在此还是打开系统的日志使用指令 less /var/log/messages

此时在查询关键字就会发现在less指令内还会将查询的关键字高亮标注出来

 

1.16 head与tail

在以上我们已经了解了cat以及more和less来查看文件的文本内容,但是这几个指令在查看时都是将整个文件的文本都输出出来,要是我们只是想看文件当中的开头几行或者是末尾几行时;这几个指令就会效率较低了

这时以上提到的场景就适合使用 head 以及 tail 指令了。
head 与 tail 就像它的名字⼀样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。

head功能head 用来显示档案的开头至标准输出中,默认head命令打印其相应⽂件的开头10行。
tail功能用于显示指定文件末尾内容,不指定文件时,作为输⼊信息进行处理。常用查看日志文件。

head和tail都拥有选项:• -n <行数> 显示的行数 

此时有了head和tail指令确实可以直接将文本的从头开始的指定行输出或者是末尾的指定行输出,但是问题就来了,如果我们要输出的是中间的指定行;就例如要输出50~60行,那么该怎么实现呢?

首先你可能会想到的是先使用head得到前面60行存入到临时文件当中,之后再对临时文件使用tail得到后21行。以上操作下来就可以得到原来文件当中的50~60行

以上这种方式确实能解决问题,但是解决的过程显得较为繁琐,那么有什么更加简便的方式呢?
在此要解决该问题就需要引入管道的相关概念,使用管道来实现以上操作指令如下所示

head -60  /var/log/messages | tail -21

以上的 | 就是管道实现的大致的过程就是将head之后的文本再使用tail进行加工,最后形成的文本就是我们想要的内容具体的实现过程之后的篇章再进行讲解

 

1.17 date

在此如果要在Linux当中获取当前的时间就可以使用到date指令

date

但是以上天/月/年的形式不太符合我们的直觉,这时要系统输出年/月/日的格式就要输出以下的指令

在显示方面,使用者可以设定欲显示的格式,格式设定为⼀个加号后接数个标记,其中常用的标记
列表如下 

• %H : 小时(00..23)
• %M : 分钟(00..59)
• %S : 秒(00..61)
• %X : 相当于 %H:%M:%S
• %d : 日 (01..31)
• %m : 月份 (01..12)
• %Y : 完整年份 (0000..9999)
• %F : 相当于 %Y-%m-%d

在每个%之前需要使用-、_等字符进行不同的划分 

 

但其实在学习date指令当中date指令的使用不是最为重要的,在此我们最需要了解的是一个叫做时间戳的概念

 

知识点

那么首先来看时间戳是什么:

有了时间戳之后世界不同区域的计算机都能有统一的计时的方式,这是互联网的一次大进步。 

那么在Liunx当中我们该如何来获取时间戳呢?

在此就来讲解写一个非常简单的方式来获取当前的时间戳。

注:在此我们使用nano只是当前较为容易理解,该记事本不是之后我们要进行使用的,在之后的篇章学习了vim之后,基本都是使用vim进行代码的编写

首先我们要来了解一个叫做nano的文本计事本,你可以类比Windows当中的记事本,nano的作用是和记事本类似的,就是用于记入文本内容

 

在Linux当中打开nano只需要输入 nano [文件] 指令(当nano打开的文件不存在会自动的创建对应的文件)

输入以上指令之后就会进入nano记事本内

注:之后我们要使用gcc进行编译,这就使得创建的文件后缀要为.c


#include<stdio.h>
#include<time.h>


int main()  
{
        printf("%lu",time(NULL));

        return 0;
}

之后在nano记事本内输入以下的代码,之后在nano内点击CTRL+x,再点击y+ENTER即可保存退出nano


#include<stdio.h>
#include<time.h>


int main()  
{
        printf("%lu\n",time(NULL));

        return 0;
}

使用gcc编译之后就形成了a.out的可执行程序,在此你可能还无法理解这个过程是如何实现的,在此不必担心,之后的Linux基础开发工具篇章会进行细致的讲解

 运行a.out就可以得到当前的时间戳

其实要快速的获取当前的时间戳可以直接使用以下指令来实现

date +%s

以上我们已经知道该如何获取当前的时间戳了,那么如果要将时间戳转换为 年 月 日 的格式要进行什么样的操作呢?

这时只需要使用以下的指令

date +%Y-%m-%d\ %H:%M:%S -d @0

 

1.18 cal

al命令可以用来显示公历(阳历)日历

cal

 

常用选项:
-3 显示系统前⼀个月,当前月,下⼀个月的月历


-j 显示在当年中的第几天(⼀年日期按天算,从1月1号算起,默认显示当前月在⼀年中的天数)


-y 显示当前年份的日历

此时你可能就会有疑惑了,为什么Linux下要提供日历?

其实在任何操作系统下都是要提供日历的,就例如Windows下就有

那么你可能还会有疑惑就是其他设备上都能看到时间,什么情况下才会使用cal来获取呢?

这对于我们普通用户确实是作用不大的,但对于一些底层开发的系统工程师,他们在开发时可能不能将手机等电子设备带入到机房内,这时date和cal指令的作用就显示出来了

1.19 find

find指令的功能是用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)

 find -options [文件名]

 find当中的常用选项为• -name 作用是按照文件名查找文件

那么find和之前我们学习的which指令有什么区别呢?

find进行的是系统目录的直接查找,可以查找任意的文件;而which只能用来查找系统自带的可执行程序,也就是只能查询 /usr/bin/ 路径下的指令

1.20 whereis

除了以上的which和find指令能进行查询之外,还有一个指令whereis也能进行查询,不同的是whereis用于找到程序的源、二进制文件或手册

例如以下示例: 

1.21 grep

在Linux当中当我们要进行行文本的过滤就可以使用grep指令

该指令的功能就是在文件中搜索字符串,将找到的行打印出来

grep [搜索的字符串] [文件]

例如以下示例: 

在此如果要在过滤时显示行号就需要带上选项 -n 

grep -n [搜索的字符串] [文件]

 

在grep指令当中除了以上的 -n 选项之外以下的选项也较为常用
• -i :忽略大小写的不同,所以大小写视为相同
• -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

1.22 zip 

在以上当中我们了解了在Liunx下如何创建文件,复制、剪切文件,删除文件等操作,但如果要进行文件的传输就需要来了解如何在Linux下进行文件的打包和压缩

知识点

首先要了解的是什么是打包压缩

打包压缩是使用特定的算法将文件进行合并或者压缩的操作,从而达到减小文件的体积,最终实现的效果就是将文件打包压缩为一个整体

那么为什么要进行打包压缩呢?

首先是文件的体积太大在存储时就很浪费空间,将文件进行压缩之后文件的体积减少,就实现了节省资源;节省磁盘空间。

此外打包压缩之后将多个文件转化为一个文件,这就使得在进行文件传输时的容错性大大提升。

了解了打包压缩的作用之后接下来我们就来学习如何进行打包压缩

注:在以下学习的打包压缩当中是将这两个步骤直接使用一个指令来实现,没有分开实现,这样更易于操作

要进行打包压缩就可以使用以下的指令

zip (-r)[目录] dst.zip src

在以上的指令当中src要进行打包压缩的文件,dst是打包之后的文件名,以zip结尾。当要打包的为目录时就需要带上-r 选项

如果在使用以上的指令时,显示出以下,这就说明你的Liunx系统当中没有安装zip软件,此时你就要输入 yum install -y zip unzip

以下就是使用zip指令进行打包压缩的示例展示 

 

学习了如何打包压缩之后接下来我们继续来学习如何进行解压解包

unzip XXX.zip 
unzip XXX.zip -d [路径]

以上两个指令就展示如何进行解压解包,如果是直接在unzip之后带压缩包;那么此时就是直接将对应的压缩包解压到当前路径下。如果在之后带上 -d 选项再外加上要解压到的路径就可以实现将压缩包解压到指定的路径上

解压到当前路径下:

解压到指定的路径下:

 

我们知道在Windows之间是可以进行文件的回传的,其实Linux和Windows之间也是可以进行文件的传输的,那么接下来就来讲解如何操作

知识点 

使用lrzsz这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件。

使用以下的指令可进行该软件的安装

sudo yum install -y lrzlz

此时要将Linux内的文件传输到Windows当中只需要在命令行当中输入sz 文件名,之后就可以选择Wndows当中接收该文件的位置

要将Windows当中的文件传输到Linux当中就是要指令 rz 来实现,输入之后回车就可以选择要传输的文件

但其实还有一种比以上更简单的方式,那就是直接将Windows中的文件拖拽到Xshell中即可

 

1.23 tar

除了以上的zip指令将文件压缩为zip格式之外,较为常见的压缩包格式还有tgz格式。要将文件压缩为tgz压缩包就需要使用tar指令

tar -czf dst.tgz src

以上src表示的是要进行压缩的文件,dst.tgz是压缩之后的压缩包名称。选项中的 -c 表示创建一个打包压缩的文件,-z表示进行压缩,-f 表示之后紧跟的文件就是打包压缩之后要形成的文件

注:如果要在执行以上指令时显示过程就要再加上 -v 选项

要将tgz格式的压缩包进行解压解包就要使用以下指令

tar -xzf XXX.tge

 以上XXX.tge表示的是要进解压解包的压缩包。选项中的 -x 表示解开一个压缩文件,-z表示进行压缩,-f 表示之后紧跟的文件就是打包压缩之后要形成的文件

注:如果要在执行以上指令时显示解压过程就要再加上 -v 选项

若要将解压出的文件到指定路径下就使用以下指令

tar -xvzf -C [指定路径] 

1.24 uname

当我们要获取当前 linux主机所用的操作系统的版本、硬件的名称等基本信息 就可以使用unam指令。

常用选项:
• -a或‒all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理
器类型,硬件平台类型,操作系统名称 

1.25 补充热键

在了解以上的基本指令之后接下来我们来了解几个Linux下的热键,学习了之后能显著的提高我们的效率

1.[Tab]按键---具有『命令补全』和『档案补齐』的功能

2. [Ctrl]-c按键---让当前的程序『停掉』

3. 使用上下键可以翻阅之前的历史命令

4.使用[Ctrl]-r可以翻阅历史命令

 

以上就是本篇的全部内容了,接下来在下一篇章中将继续带来Linux权限的相关知识,未完待续……

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

我的求职面经:(1)C++里指针和数组的区别

经典问题&#xff1a; char s1[]"hello"; char *s2"hello"; 1、s1的值是放在栈上的&#xff0c;值是可以修改的&#xff0c;而hello是一个字符串常量放在静态存储区是不能修改的。 2、内存大小不一样 #include<stdio.h>int main(){char s1[]&quo…

react中如何获取dom元素

实现代码 const inputRef useRef(null) inputRef.current.focus()

【LLM】Deepseek本地部署学习

文章目录 1. 访问ollama官网安装平台2. 选择配置3. 下载和运行 1. 访问ollama官网安装平台 https://ollama.com/ 2. 选择配置 参考以下配置要求 3. 下载和运行 ollama run deepseek-r1:7b

deepseek R1 14b显存占用

RTX2080ti 11G显卡&#xff0c;模型7b速度挺快&#xff0c;试试14B也不错。 7B显存使用5.6G&#xff0c;14B显存刚好够&#xff0c;出文字速度差不多。 打算自己写个移动宽带的IPTV播放器&#xff0c;不知道怎么下手&#xff0c;就先问他了。

【漫话机器学习系列】064.梯度下降小口诀(Gradient Descent rule of thume)

梯度下降小口诀 为了帮助记忆梯度下降的核心原理和关键注意事项&#xff0c;可以用以下简单口诀来总结&#xff1a; 1. 基本原理 损失递减&#xff0c;梯度为引&#xff1a;目标是让损失函数减少&#xff0c;依靠梯度指引方向。负梯度&#xff0c;反向最短&#xff1a;沿着负…

让万物「听说」:AI 对话式智能硬件方案和发展洞察

本文整理自声网 SDK 新业务探索组技术负责人&#xff0c;IoT 行业专家 吴方方 1 月 18 日在 RTE 开发者社区「Voice Agent 硬件分享会」上的分享。本次主要介绍了 AI 对话式智能硬件的发展历程&#xff0c;新一波 AI 浪潮所带来的创新机遇、技术挑战以及未来的展望。 在语音交…

SpringBoot 日志

目录 一. 日志概述 二. 日志的使用 1. 打印日志 (1) 获取日志对象 (2) 输出要打印的内容 2. 日志框架简介 (1) 门面模式简介 (2) SLF4J 框架简介 3. 日志的格式 4. 日志的级别 5. 日志配置 (1) 配置日志级别 (2) 日志持久化存储 ① 配置日志文件名 ② 配置日志的…

Python 梯度下降法(一):Gradient Descent

文章目录 Python 梯度下降法&#xff08;一&#xff09;&#xff1a;Gradient Descent一、原理1.1 多元函数1.2 梯度下降法 二、常见的梯度公式2.1 标量对向量的梯度2.2 向量对向量的梯度2.3 向量对标量的梯度2.4 标量对矩阵的梯度 三、常见梯度算法3.1 Batch Gradient Descent…

从AD的原理图自动提取引脚网络的小工具

这里跟大家分享一个我自己写的小软件&#xff0c;实现从AD的原理图里自动找出网络名称和引脚的对应。存成文本方便后续做表格或是使用简单行列编辑生成引脚约束文件&#xff08;如.XDC .UCF .TCL等&#xff09;。 我们在FPGA设计中需要引脚锁定文件&#xff0c;就是指示TOP层…

【2025年最新版】Java JDK安装、环境配置教程 (图文非常详细)

文章目录 【2025年最新版】Java JDK安装、环境配置教程 &#xff08;图文非常详细&#xff09;1. JDK介绍2. 下载 JDK3. 安装 JDK4. 配置环境变量5. 验证安装6. 创建并测试简单的 Java 程序6.1 创建 Java 程序&#xff1a;6.2 编译和运行程序&#xff1a;6.3 在显示或更改文件的…

WGCLOUD服务器资源监控软件使用笔记 - Token is error是什么错误

[wgcloud-agent]2025/01/30 10:41:30 WgcloudAgent.go:90: 主机监控信息上报server开始 [wgcloud-agent]2025/01/30 10:41:30 WgcloudAgent.go:99: 主机监控信息上报server返回信息: {"result":"Token is error"} 这个错误是因为agent配置的wgToken和serv…

MySQL(表空间)

​开始前先打开此图配合食用 MySQL表空间| ProcessOn免费在线作图,在线流程图,在线思维导图 InnoDB 空间文件中的页面管理 后面也会持续更新&#xff0c;学到新东西会在其中补充。 建议按顺序食用&#xff0c;欢迎批评或者交流&#xff01; 缺什么东西欢迎评论&#xff01;我都…

白嫖DeepSeek:一分钟完成本地部署AI

1. 必备软件 LM-Studio 大模型客户端DeepSeek-R1 模型文件 LM-Studio 是一个支持众多流行模型的AI客户端&#xff0c;DeepSeek是最新流行的堪比GPT-o1的开源AI大模型。 2. 下载软件和模型文件 2.1 下载LM-Studio 官方网址&#xff1a;https://lmstudio.ai 打开官网&#x…

知识管理平台在数字经济时代推动企业智慧决策与知识赋能的路径分析

内容概要 在数字经济时代&#xff0c;知识管理平台被视为企业智慧决策与知识赋能的关键工具。其核心作用在于通过高效地整合、存储和分发企业内部的知识资源&#xff0c;促进信息的透明化与便捷化&#xff0c;使得决策者能够在瞬息万变的市场环境中迅速获取所需信息。这不仅提…

关于MySQL InnoDB存储引擎的一些认识

文章目录 一、存储引擎1.MySQL中执行一条SQL语句的过程是怎样的&#xff1f;1.1 MySQL的存储引擎有哪些&#xff1f;1.2 MyIsam和InnoDB有什么区别&#xff1f; 2.MySQL表的结构是什么&#xff1f;2.1 行结构是什么样呢&#xff1f;2.1.1 NULL列表&#xff1f;2.1.2 char和varc…

【开源免费】基于SpringBoot+Vue.JS公交线路查询系统(JAVA毕业设计)

本文项目编号 T 164 &#xff0c;文末自助获取源码 \color{red}{T164&#xff0c;文末自助获取源码} T164&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

【Unity3D】实现横版2D游戏角色二段跳、蹬墙跳、扶墙下滑

目录 一、二段跳、蹬墙跳 二、扶墙下滑 一、二段跳、蹬墙跳 GitHub - prime31/CharacterController2D 下载工程后直接打开demo场景&#xff1a;DemoScene&#xff08;Unity 2019.4.0f1项目环境&#xff09; Player物体上的CharacterController2D&#xff0c;Mask添加Wall层…

讯飞智作 AI 配音技术浅析(二):深度学习与神经网络

讯飞智作 AI 配音技术依赖于深度学习与神经网络&#xff0c;特别是 Tacotron、WaveNet 和 Transformer-TTS 模型。这些模型通过复杂的神经网络架构和数学公式&#xff0c;实现了从文本到自然语音的高效转换。 一、Tacotron 模型 Tacotron 是一种端到端的语音合成模型&#xff…

初始化mysql报错cannot open shared object file: No such file or directory

报错展示 我在初始化msyql的时候报错&#xff1a;mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 解读&#xff1a; libaio包的作用是为了支持同步I/O。对于数据库之类的系统特别重要&#xff0c;因此…

DeepSeek介绍

目录 前言 1.介绍一下你自己 2.什么是CUDA CUDA的核心特点&#xff1a; CUDA的工作原理&#xff1a; CUDA的应用场景&#xff1a; CUDA的开发工具&#xff1a; CUDA的局限性&#xff1a; 3.在AI领域&#xff0c;PTX是指什么 1. PTX 的作用 2. PTX 与 AI 的关系 3. …