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权限的相关知识,未完待续……
相关文章:
Linux《基础指令》
在之前的Linux《Linux简介与环境的搭建》当中我们已经初步了解了Linux的由来和如何搭建Linux环境,那么接下来在本篇当中我们就要来学习Linux的基础指令。在此我们的学习是包括两个部分,即指令和关于Linux的基础知识;因此本篇指令和基础知识的…...
2024.12.28测试 总结
还是超级无敌寀啊~ 目录 T1 赠送笔记本T2 中位数T3 好子集T4 异或总结 T1 赠送笔记本 link 题意 有 n n n 个宿舍,每个宿舍 4 4 4 头奶牛,第 i i i 个宿舍有 a i a_i ai 头牛有笔记本(每头牛的笔记本都不同)。现在所有奶…...
工业相机开发操作流程
建议按照如下的流程操作相机(其中有一些步骤是可选的,已经标明): 一、载入SDK的动态链接库档MVCAMSDK.DLL。可以使用动态或者静 态加载两种方式。 如果使用C/C进行开发,在工程引用 CameraApi.h头文件(位于安装目录的SDK/DEMO/VC/include中)和…...
DeepSeek-R1 模型及GRPO算法学习
总结DeepSeek-R1 模型算法,并对其中的GRPO算法做一些学习补充。 DeepSeek-R1 论文总结 提出了通过强化学习提升大语言模型推理能力的方法,开发出 DeepSeek-R1-Zero 和 DeepSeek-R1 模型,在多个推理任务上表现出色,并开源模型推动…...
Vue 3.0打造响应式用户界面的新方式
1 简介 Vue.js 是一个用于构建用户界面的渐进式框架。Vue 3.0 是其最新版本,引入了许多新特性和改进,使得开发者能够更高效地构建响应式的Web应用程序。本文将带你深入了解如何使用Vue 3.0来打造响应式用户界面,并通过实际案例和代码示例帮助你快速上手。 2 环境搭建 要开…...
爬虫基础(二)Web网页的基本原理
一、网页的组成 网页由三部分构成:HTML、JavaScript、CSS。 (1)HTML HTML 相当于网页的骨架,它通过使用标签来定义网页内容的结构。 举个例子: 它把图片标签为img、把视频标签为video,然后组合到一个界面…...
Kotlin开发(六):Kotlin 数据类,密封类与枚举类
引言 想象一下,你是个 Kotlin 开发者,敲着代码忽然发现业务代码中需要一堆冗长的 POJO 类来传递数据。烦得很?别急,Kotlin 贴心的 数据类 能帮你自动生成 equals、hashCode,直接省时省力!再想想需要多种状…...
我的AI工具箱Tauri+Django内容生产介绍和使用
在现代内容生产环境中,高效、自动化的工具能够显著提升生产力,降低人工成本。Tauri 与 Django 结合打造的工作箱,集成了强大的 音频处理、视频剪辑、内容下载 以及 AI 文章撰写 等模块,帮助用户在多媒体内容生产的各个环节实现高效…...
openssl 生成证书 windows导入证书
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
AJAX笔记入门篇
黑马程序员视频地址: 黑马程序员前端AJAX入门到实战全套教程https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p2https://www.bilibili.com/video/BV1MN411y7pw?vd_source…...
DOM操作中childNodes与children的差异及封装方案
引言 在JavaScript的DOM操作中,childNodes和children是开发者常用的属性,但它们在浏览器中的行为差异可能导致兼容性问题。尤其是在处理空白符(如换行符\n)时,某些浏览器(如Chrome和Edge)会将空…...
数据分析系列--④RapidMiner进行关联分析(案例)
一、核心概念 1.1项集(Itemset) 1.2规则(Rule) 1.3支持度(Support) 1.3.1 支持度的定义 1.3.2 支持度的意义 1.3.3 支持度的应用 1.3.4 支持度的示例 1.3.5 支持度的调整 1.3.6 支持度与其他指标的…...
危机13小时:追踪一场GitHub投毒事件
事件概要 自北京时间 2024.12.4 晚间6点起, GitHub 上不断出现“幽灵仓库”,仓库中没有任何代码,只有诱导性的病毒文件。当天,他们成为了 GitHub 上 star 增速最快的仓库。超过 180 个虚假僵尸账户正在传播病毒,等待不…...
LLMs之WebRAG:STORM/Co-STORM的简介、安装和使用方法、案例应用之详细攻略
LLMs之WebRAG:STORM/Co-STORM的简介、安装和使用方法、案例应用之详细攻略 目录 STORM系统简介 1、Co-STORM 2、更新新闻 STORM系统安装和使用方法 1、安装 pip安装 直接克隆GitHub仓库 2、模型和数据集 两个数据集 FreshWiki数据集 WildSeek数据集 支持…...
使用QSqlQueryModel创建交替背景色的表格模型
class UserModel(QSqlQueryModel):def __init__(self):super().__init__()self._query "SELECT name, age FROM users"self.refresh()def refresh(self):self.setQuery(self._query)# 重新定义data()方法def data(self, index, role): if role Qt.BackgroundRole…...
低代码产品插件功能一览
下图是统计的目前市面上流行的低代码、零代码产品的插件功能。 产品名称 产品类型 官方插件数量 支持拓展 官方插件功能 宜搭 零代码 3 暂不支持 云打印、CAD看图、打印表单详情 微搭 低代码 1 暂不支持 小程序 明道云 低代码 2 支持 视图、工作流节点 简道…...
buu-rip-好久不见26
简单的栈溢出,找到后面函数和输入的个数即可...
Flutter 新春第一弹,Dart 宏功能推进暂停,后续专注定制数据处理支持
在去年春节,Flutter 官方发布了宏(Macros)编程的原型支持, 同年的 5 月份在 Google I/O 发布的 Dart 3.4 宣布了宏的实验性支持,但是对于 Dart 内部来说,从启动宏编程实验开始已经过去了几年,但…...
新手项目管理的实用工具推荐
项目启动的实用工具推荐 1. MindManager MindManager 是一款功能强大且广受欢迎的思维导图工具,对于项目启动阶段的新手而言,它就像是一位贴心的 “思路梳理助手”。在项目启动初期,各种信息和想法往往杂乱无章地充斥在脑海中,而…...
2025一区新风口:小波变换+KAN!速占!
今天给大家分享一个能让审稿人眼前一亮,好发一区的idea:小波变换KAN! 一方面:KAN刚中稿ICLR25,正是风口上,与小波变换的结合还处于起步阶段,正是红利期,创新空间广阔。 另一方面&a…...
Django ORM解决Oracle表多主键的问题
现状 以Django 3.2为例 Django ORM 设计为默认使用单一主键(通常是自增的 id 字段),这一选择主要基于以下核心原因: 简化ORM设计与操作 统一访问方式外键关联简化 避免歧义冲突 主键语义明确防止隐式依赖 性能与数据库兼容 索引…...
solidity高阶 -- 线性继承
Solidity是一种面向合约的高级编程语言,用于编写智能合约。在Solidity中,多线继承是一个强大的特性,允许合约从多个父合约继承属性和方法。本文将详细介绍Solidity中的多线继承,并通过不同的实例展示其使用方法和注意事项。 在Sol…...
无公网IP 外网访问 本地部署夫人 hello-algo
hello-algo 是一个为帮助编程爱好者系统地学习数据结构和算法的开源项目。这款项目通过多种创新的方式,为学习者提供了一个直观、互动的学习平台。 本文将详细的介绍如何利用 Docker 在本地安装部署 hello-algo,并结合路由侠内网穿透实现外网访问本地部署…...
系统思考—蝴蝶效应
“个体行为的微小差异,可能在系统中引发巨大且不可预测的结果。” — 诺贝尔经济学得主托马斯谢林 我们常说,小变动带来大影响,这种现象,在复杂系统理论中被称为“蝴蝶效应”:即使极小的变化,也能在动态系…...
钉钉群机器人设置——python版本
钉钉群机器人设置——python版本 应用场景钉钉界面操作程序开发效果展示 应用场景 由于工作需要,很多项目执行程序后出现报错信息无法第一时间收到,因此实时预警对于监控程序还是有必要。(仅个人观点) 参考文档及博客:…...
sem_wait的概念和使用案列
sem_wait 是 POSIX 标准中定义的一个用于同步的函数,它通常用于操作信号量(semaphore)。信号量是一个整数变量,可以用来控制对共享资源的访问。在多线程编程中,sem_wait 常用于实现线程间的同步。 概念 sem_wait 的基…...
深度学习在金融风控中的应用:突破传统模型的瓶颈
深度学习在金融风控中的应用:突破传统模型的瓶颈 金融风险控制(简称“风控”)是现代金融体系中至关重要的一环,关系到金融机构的稳定性、客户的安全以及整体经济的健康运行。近年来,随着深度学习的迅猛发展,传统的风控模型正面临被颠覆的挑战,新的技术手段和思维方式正…...
【Rust自学】15.0. 智能指针(序):什么是智能指针及Rust智能指针的特性
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 15.0.1 指针的基本概念 指针是一个变量在内存中包含的是一个地址,指向另一个数据。 Rust 中最常见的指针是引用,…...
Spring AI 在微服务中的应用:支持分布式 AI 推理
1. 引言 在现代企业中,微服务架构 已成为开发复杂系统的主流方式,而 AI 模型推理 也越来越多地被集成到业务流程中。如何在分布式微服务架构下高效地集成 Spring AI,使多个服务可以协同完成 AI 任务,并支持分布式 AI 推理&#x…...
QT串口通信,实现单个温湿度传感器数据的采集
1、硬件设备 RS485中继器(一进二出),usb转485模块、电源等等 => 累计115元左右。 2、核心代码 #include "MainWindow.h" #include "ui_MainWindow.h"MainWindow::...

















