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的基础知识;因此本篇指令和基础知识的…...
9.进程间通信
9.进程间通信 **1. 进程间通信(IPC)概述****2. 无名管道(Pipe)****3. 有名管道(FIFO)****4. 信号通信(Signal)****5. 练习与作业****6. 信号的应用****7. 总结** 1. 进程间通信&…...
Windows中本地组策略编辑器gpedit.msc打不开/微软远程桌面无法复制粘贴
目录 背景 解决gpedit.msc打不开 解决复制粘贴 剪贴板的问题 启用远程桌面剪贴板与驱动器 重启RDP剪贴板监视程序 以上都不行?可能是操作被Win11系统阻止 最后 背景 远程桌面无法复制粘贴,需要查看下主机策略组设置,结果按WinR输入…...
供应链系统设计-供应链中台系统设计(十二)- 清结算中心设计篇(一)
概述 在之前的文章中,我们通过之前的两篇文章中,如下所示: 供应链系统设计-供应链中台系统设计(十)- 清结算中心概念片篇 供应链系统设计-供应链中台系统设计(十一)- 清结算中心概念片篇 说…...
Vue.js 单页应用(SPA)开发教程:从零开始构建你的第一个项目
单页应用(SPA,Single Page Application)是现代前端开发的主流模式。Vue.js 是一个非常适合构建 SPA 的框架,它通过 Vue Router 实现页面导航,通过组件化开发和状态管理实现复杂的交互功能。本篇教程将带你了解 SPA 的基…...
Linux C openssl aes-128-cbc demo
openssl 各版本下载 https://openssl-library.org/source/old/index.html#include <stdio.h> #include <string.h> #include <openssl/aes.h> #include <openssl/rand.h> #include <openssl/evp.h>#define AES_KEY_BITS 128 #define GCM_IV_SIZ…...
你了解哪些Java限流算法?
大家好,我是锋哥。今天分享关于【你了解哪些Java限流算法?】面试题。希望对大家有帮助; 你了解哪些Java限流算法? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Java 中常用的限流算法主要有以下几种,它们广泛应用于处理流量控…...
【漫话机器学习系列】065.梯度(Gradient)
梯度(Gradient) 在数学和机器学习中,梯度是一个向量,用来表示函数在某一点的变化方向和变化率。它是多变量函数的一阶偏导数的组合。 梯度的定义 设有一个标量函数 ,它对 是可微的,则该函数在某一点的…...
BswM(基础软件管理)详解
BswM(基础软件管理)详解 BswM(Basic Software Manager) 是 AUTOSAR BSW 的核心模块之一,负责协调基础软件(BSW)各模块的行为,根据系统状态、规则或事件动态配置其他模块。其设计目标…...
上位机知识篇---GitGitHub
文章目录 前言Git&GitHub是什么?GitGitHub Git和GitHub的区别定位功能使用方式开源协作 Git常用命令操作1. 配置2. 仓库操作3. 文件操作4. 分支与合并5.远程操作6.撤销更改7.查看历史 GitHub常用操作1.创建仓库2.Fork仓库3.Pull Request4.Issue跟踪5.代码审查 G…...
网站快速收录:提高页面加载速度的重要性
本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/32.html 网站快速收录中,提高页面加载速度具有极其重要的意义。以下从多个方面详细阐述其重要性: 一、提升用户体验 减少用户等待时间:页面加载速度直接…...
Vue.js组件开发-实现全屏背景图片滑动切换特效
使用 Vue 实现全屏背景图片滑动切换特效的详细步骤、代码、注释和使用说明。 步骤 创建 Vue 项目:使用 Vue CLI 创建一个新的 Vue 项目。准备图片资源:准备好要用于背景切换的图片,并将它们放在项目的合适目录下。编写 HTML 结构࿱…...
DeepSeek r1本地安装全指南
环境基本要求 硬件配置 需要本地跑模型,兼顾质量、性能、速度以及满足日常开发需要,我们需要准备以下硬件: CPU:I9内存:128GB硬盘:3-4TB 最新SSD,C盘确保有400GB,其它都可划成D盘…...
LitGPT - 20多个高性能LLM,具有预训练、微调和大规模部署的recipes
文章目录 一、关于 LitGPT二、快速启动安装LitGPT高级安装选项 从20多个LLM中进行选择 三、工作流程1、所有工作流程2、微调LLM3、部署LLM4、评估LLM5、测试LLM6、预训练LLM7、继续预训练LLM 四、最先进的功能五、训练方法示例 六、项目亮点教程 一、关于 LitGPT LitGPT 用于 …...
deepseek R1 14b显存占用
RTX2080ti 11G显卡,模型7b速度挺快,试试14B也不错。 7B显存使用5.6G,14B显存刚好够,出文字速度差不多。 打算自己写个移动宽带的IPTV播放器,不知道怎么下手,就先问他了。...
无用知识研究:对std::common_type以及问号表达式类型的理解
先说结论: 如果问号表达式能编译通过,那么std::common_type就能通过。因为common_type的底层依赖的就是?: common_type的实现里,利用了问号表达式:ternary conditional operator (?:) https://stackoverflow.com/questions/14…...
MapReduce概述
目录 1. MapReduce概述2. MapReduce的功能2.1 数据划分和计算任务调度2.2 数据/代码互定位2.3 系统优化2.4 出错检测和恢复 3. MapReduce处理流程4. MapReduce编程基础参考 1. MapReduce概述 MapReduce是面向大数据并行处理的计算模型、框架和平台: 1. 基于集群的高性能并行…...
循环神经网络(RNN)+pytorch实现情感分析
目录 一、背景引入 二、网络介绍 2.1 输入层 2.2 循环层 2.3 输出层 2.4 举例 2.5 深层网络 三、网络的训练 3.1 训练过程举例 1)输出层 2)循环层 3.2 BPTT 算法 1)输出层 2)循环层 3)算法流程 四、循…...
Mac cursor设置jdk、Maven版本
基本配置 – Cursor 使用文档 首先是系统用户级别的设置参数,运行cursor,按下ctrlshiftp,输入Open User Settings(JSON),在弹出的下拉菜单中选中下面这样的: 在打开的json编辑器中追加下面的内容: {"…...
WPS数据分析000005
目录 一、数据录入技巧 二、一维表 三、填充柄 向下自动填充 自动填充选项 日期填充 星期自定义 自定义序列 1-10000序列 四、智能填充 五、数据有效性 出错警告 输入信息 下拉列表 六、记录单 七、导入数据 编辑 八、查找录入 会员功能 Xlookup函数 VL…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...

















