Linux基本指令介绍

news2024/11/24 13:46:33

目录

前言

指令操作与图形化界面的对比

adduser

passwd

whoami

ls指令

pwd指令

 cd指令

touch指令

mkdir指令

rmdir指令 && rm 指令

 man指令

cp指令

mv指令

cat(显示文件内容(全部),且不可修改的)

 重定向

输出重定向

追加输出重定向

输入重定向

more指令

less指令

head指令&&tail指令

date指令

Cal指令

find指令(非常重要) 

grep指令

zip/unzip指令:

tar指令(重要)

bc指令

uname –r指令(查看内核版本,体系结构)

​编辑 重要的几个热键[Tab],[ctrl]-c, [ctrl]-d

shutdown-关机

指令的本质

shell命令以及运行原理


前言

之前给大家介绍了LInux操作系统的历史以及教大家自己配置了一个属于自己的操作系统,那么我们今天就给大家介绍一些基本指令,教会大家如何去基础的这款操作系统。


指令操作与图形化界面的对比

对于指令操作大家没接触过的肯定对其有点迷茫,但是我们对标我们的图形化界面的操作,可以说两者都是我们用于操作系统的一种方式,但是对于图像化界面的操作我们在我们的日常接触的比较多,也比较熟悉,而我们的指令操作,对应的可能就是图形化界面的鼠标的一次点击,文件的一次创建等等,可能大家比较有疑问的就是既然我们图形化操作这么方便我们为什么要使用指令去操作一个操作系统呢? 

首先一点就是我们企业对应的服务器运行的操作系统是不需要图形化界面的,图形化界面的增加反而是我们的一种累赘,还有就是命令行的系统在执行效率上更快,而我们的图形化界面是经过多次封装运行速度反而得到了更加的缓慢,此外指令是操作系统直接为我们提供的操作接口,我们对其的操作也更加的贴合操作系统。

adduser

之前我们在搭建好Linux环境后,我们此时的用户只有我们的超级用户,但是在我们后续的指令学习中,只有通过普通用户才会让我们对指令和操作系统的相关知识有着更好的理解,所以我们的adduser指令的作用就是我们用来创建普通用户的。这里我给大家简单演示一下:

这里我们使用我们的超级用户创建用户xhj3,然后我们使用我们的ls指令(马上介绍),打开我们存储的用户目录的 home目录下,发现我们的xhj3用户创建成功。

passwd

 这个指令是给我们的用户进行密码设置的指令,这里我们建议我们的普通用户不要设置和root账号一样的密码,那么具体操作如下:

这里说明一下,我们在输入密码时,屏幕是不回显的,这就需要我们输入时自己注意。

那么创建好普通用户后我们就可以自己登入到我们的普通用户了,这里我给大家说明一下登入的步骤:

 首先ssh 对应用户名  公网ip

然后弹出我们对应的窗口:

 输入我们刚刚设置的密码即可。

 这样我们就登入成功了。

whoami

 这是用于我们查询我们当前登入用户的指令,比如:

在介绍下面这些的指令之前,我需要给大家说明我们文件的组成,大家都看过我们windows操作系统下的文件:

 这里的文件展示包含了我们对应的文件属性,而我们的文件本质上也就是:文件内容+文件属性,而我们对文件的操作也就是对文件内容的操作or对文件属性的操作。那么我们就看到我们第一个指令。

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 一行只输出一个文件。

 对于这么多选项,大家看到肯定特别头疼,但是我们并不需要去特殊去记忆,日常生活中我们只需要使用几个常见得,对于特殊情况,我们可以去查看相应得文档进行解决,这里我简单给大家简单演示一下几个常用选项:

ls -l:

ls  -a:

 这里我们发现,我们出现了一下以 .  开头的文件,而这个就是我们文件中的隐藏文件,具体的我们继续往下看。

ls -a -l (组合使用): 

 这里我们发现我们的文件不仅显示了详细的文件信息,也显示了我们的隐藏文件,那么这里对应的一些文件相关,我给大家简单介绍一下

这里我们的 . 文件以及 ..文件是什么呢?

Linux任何一个目录下都有两个隐藏文件 ./..

.. 指的是我们当前路径的上级路径

. 表示的是当前路径,该存在的意义是帮用户定位当前目录的下一个文件

pwd指令

语法: pwd

功能:显示用户当前所在的目录

常用选项:无

具体使用如下:

这里显示的就是我存在的当前目录路径。

 cd指令

介绍这个指令前,我需要给大家普及Linux操作系统的路径的相关知识。

在Linux中/有两种身份:

1.一串路径分隔符,Linux /,win \

2./  我们称之为”根目录“

基本上,所有的操作系统,组织文件的方式,都是树型结构,多叉树,Linux也不例外

对于Linux操作系统,他的叶子节点,一定是空目录或者非空目录,路上节点一定是一个非空目录

所以我们定义一个文件,通常用路径来定位 

绝对路径:我们把/开始定位到指定位置,具有唯一性的路径叫做绝对路径

相对路径:我们以自己当前所处的路径为起始参照位置,来进行特定文件的定位,我们就把这种路径叫做相对路径。

对于绝对路径和相对路径使用:

1.绝对路径往往是比较长,但是不变,一般在一些固定场景,配置文件中使用

2.一般命令行输入,比较常用相对路径 

那我们为什么会使用”路径“这样的方式进行文件定位?原来这种定位方式,具有唯一性。,而我们们的cd指令就是通过对应路径进入相应得目录,也相当于windows操作系统下的双击进入某个目录的操作,那么具体使用如下:

语法:cd 目录名

功能:改变工作目录。

举例:cd .. : 返回上 目录

 cd /home/litao/linux/ : 绝对路径

 cd ../day02/ : 相对路径

 cd ~:进入用户家目(~指的是当前用户的主工作目录)

具体的我给大家演示一下:

touch指令

语法:touch [选项]... 文件...

功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

常用选项:

-a   或--time=atime或--time=access或--time=use只更改存取时间。

-d  使用指定的日期时间,而非现在的时间。

-f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

-m   或--time=mtime或--time=modify  只更改变动时间。

-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

-t  使用指定的日期时间,而非现在的时间。

touch指令我们可以用其创建一个普通文件,而不是目录,对于普通文件和目录的区别,我想大家应该也都知道,但是Linux区分普通文件和目录的方式是:

这里我们简单给大家创建一个普通文件:

mkdir指令

语法:mkdir [选项] dirname...

功能:在当前目录下创建一个名为 “dirname”的目录

常用选项:

-p, --parents  可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;

mkdir –p test/test1 : 递归建立多个目录

 也就是:

这里如果我们需要查看我们的目录结构,我们可以使用tree指令,但是需要自己在root账户下安装,安装指令如下;yum install -y tree.这里我给大家看一下我们刚刚安装好的目录结构。

rmdir指令 && rm 指令

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。

语法:rmdir [-p] [dirName]

适用对象:具有当前目录操作权限的所有使用者

功能:删除空目录

常用选项:

-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

rm命令可以同时删除文件或目录(所以一般使用中我们都只使用rm指令)

语法:rm [-f-i-r-v] [dirName/dir](rm 不带·默认选项删除的是普通文件)

适用对象:所有使用者

功能:删除文件或目录

常用选项:

-f 即使文件属性为只读(即写保护),亦直接删除(强制删除并且不提示)

-i 删除前逐一询问确认(在超级用户目录的文件,删除后会自动询问)

-r 删除目录及其下所有文件(递归式)

这里我给大家演示一下:

这里我们就可以发现dir2连同该子目录和文件都被全部删除。

 man指令

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man

语法: man [选项] 命令

常用选项

-k 根据关键字搜索联机帮助

num 只在第num章节找(当man指令后面没有接数字(直接接命令),它是从手册的第一章开始按顺序往后访问)

-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

这里的手册我们一共分为8章

1 是普通的命令

2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)

3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件

5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义

6 是给游戏留的,由各个游戏自己定义

7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明

8 是系统管理用的命令,这些命令只能由root使用,如ifconfifig

cp指令

语法:cp [选项] 源文件或目录 目标文件或目录(同一个目录下不能存在同名文件,所以我们这里的目标文件和源文件如果在同一个目录中是不可以同名的)(所以我们这里的目标文件可以用同目录下的不同名文件,也可以是其他路径的同名(不同名)文件)

功能: 复制文件或目录

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

常用选项:

-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在

-i 或 --interactive 覆盖文件之前先询问用户

-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理(通常用于拷贝目录)

-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

这里给大家演示一下:

mv指令

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

语法: mv [选项] 源文件或目录 目标文件或目录

功能:

1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。

2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。

3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

这里先给大家演示一下:

当mv  文件名    目录名(这里只是单纯的将该文件移到我们指定的目录)

mv  mytext.c   dir/text.c

这里发生了先将mytext.c移到了dir目录下,然后重命名为text.c

当 mv  源文件名    目标文件名(这里做的是将文件重命名,但这里也可以写为 mv  源文件名  ./目标文件(这里我们其实也是我们理解上的剪切和重命名同时进行,但是我们剪切的时候只是把该文件移到当前文件))

对于目录操作其实大部分和文件操作是一致的,但是这里我们需要考虑到的是

比如:mv  dir1 ../newdir

这里有两种情况,当newdir不存在时,我们这里进行的操作就是将dir1目录移到上一个目录,然后重命名为newdir,

当newdir存在时,就是将dir1文件移入newdir目录

用选项:

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

cat(显示文件内容(全部),且不可修改的)

语法:cat [选项] [文件]

功能: 查看目标文件的内容(只能显示文件)

常用选项:

-b 对非空输出行编号

-n 对输出的所有行编号

-s 不输出多行空行(有连续多行的空行会压缩成一行空行输出)

在使用cat指令之前,我们需要先在一个文件中写入内容才可以该大家具体展示,这里我们需要使用到echo和我们的 >>,这里echo的功能大家可以认为是将该后面的文本内容写入到某个文件中。而如果我们后面不接文件,该会直接将其打印在屏幕上(在Linux中我们现阶段可以将其理解为该中一切皆文件,我们的屏幕也是对应的文件),那么接下来我给大家具体演示一下:

那么我们的 >>的作用就是将其写入到,对应的其他文件,那么接下来我们往文件中写一点内容,去给大家演示一下,cat命令的作用。

 重定向

上面大家简单的看到了追加重定向的用法,但是对于具体的作用大家暂时还不了解,那么这里小编就给大家简单的介绍,三个重定向符号。

输出重定向

输出重定向的符号是:>

作用:这里 >的作用是将原本要写入其他文件的内容写到我们>后指定的文件当中。

这里我给大家简单的演示一下:

 这里我们还发现一个问题就是,我们这里连续写入两次hello world,但是我们的文件当中并没有两条对应语句,这里我们就可以发现,我们输出重定向其实是:向文件进行写入的时候,覆盖文件

该本质上是:

1.先清空文件

2.再写入到文件当中

所以我们也可以使用 > 文件名 ,去自动清理一个文件,例如:

 这里我们的text.txt就已经被清理了。

那么我们该如何将文件中如何在上一次写入的基础是继续写入相应内容呢?相信大家通过我们上面对于cat文本的相关演示已经发现了。我们的追加输出重定向就是起到这个作用。

追加输出重定向

那么具体的我们已经演示过了,这里大家只需要记住其作用是在进行内容写入时不对文件进行清空,直接会重我们上次写入的位置继续写入。

输入重定向

输入重定向这里我举一个例子给大家解释一下:

 

这里首先cat后面不跟文件表示的是后重键盘读到什么就输出什么(默认从输入设备读取,然后打印到显示器),但是cat< 文件名   这里表示原本是从键盘读取现在是从指定文件读取打印到屏幕,这里也就叫做输入重定向(这里其实和 cat 文件名是有区别的,但是这里得到的效果是一致的)

所以通过上面我们就可以理解为,输入重定向是将原本的输入文件改为其他输入文件。

more指令

(只给我们打印一屏幕的文件内容,按回车后会自动进行下翻,适合自顶向下看文件内容)

语法:more [选项][文件]

功能:more命令,功能类似 cat

常用选项:

-n 对输出的所有行编号

q 退出more

/字符串(向下搜索相关内容)

/数字(会给我们直接跳转到某行的内容)

对于该指令的介绍,我们需要搞一些大文本文件,而这里需要使用到我们的一些脚本,这里大家不用去理解该含义,可以直接使用:

cnt=0; while [ $cnt -le 10000 ]; do echo "hello Linux $cnt"; let cnt++; done

这里的意思就是输出10000行的hello Linux。

 这里我们将输出内容写入text.txt文件,然后我们使用more指令进行查看,查看结果如下:

 这里我们可以发现该输入了一屏内容,在我标红的位置可以进行,相关搜索指令,进行搜索。

less指令

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜

语法: less [参数] 文件

功能:

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

选项:

-i  忽略搜索时的大小写

-N  显示每行的行号

/字符串:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

q:quit

这里我们继续给大家演示一下:

 用less打开文件后,这里就可以输入相关命令进行相关搜索的指令,这里大家可以自己去尝试一下。

head指令&&tail指令

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然就是看档案的结尾。

语法: head [参数]... [文件]...

功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

选项:

-n<行数> 显示的行数

语法: tail[必要参数][选择参数][文件]

功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

选项:

  -f 循环读取

  -n<行数> 显示的行数

这里我们分别使用一下,看看对应效果:

 这里我们看到一个输入前10行,一个输出后10行。但是我们这两个一起讲解的原因还有一点是,我们这里可以使用该两个指令去截取对应文本的部分。

但是在讲解之前需要给大家讲解一下,管道命令,也就是:

| 管道:是用来数据传导的

| 一种符号会被系统解释成为管道文件(内存级)

管道是可以级联多条命令的,每条命令的结果输出,都作为输入,导入下一条命令。

 正是由于管道这个特性,那么我们就可以让head去截取一个文本的前n行,然后其作为一个输入导入tail指令,然后让tail指令截取head截取片段的后面一部分,那么也就实现了片段的截取。

这里假设我们需要截取40行到59行的数据,那么我们做法如下:

 

date指令

date 指定格式显示时间: date +%Y:%m:%d

date 用法:date [OPTION]... [+FORMAT]

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

%H : 小时(00..23)

%M : 分钟(00..59)

%S : 秒(00..61)(显示的是时间戳,从1970年的某一天到现在)

%X : 相当于 %H:%M:%S

%d : 日 (01..31)

%m : 月份 (01..12)

%Y : 完整年份 (0000..9999)

%F : 相当于 %Y-%m-%d

这里我们在Linux操作系统下,我们的时间打印出来的格式是固定的,所以我们就可以自己去设置格式

 2.时间戳

时间->时间戳:date +%s

时间戳->时间:date -d@(时间戳数字)1508749502

Cal指令

cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。

命令格式: cal [参数][月份][年份]

功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份

常用选项:

-3 显示系统前一个月,当前月,下一个月的月历

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

-y  显示当前年份的日历

cal 接年份,查看该年份的日历信息。

 演示如下:

find指令(非常重要) 

Linux下find命令在目录结构中搜索文件,并执行指定的操作。

Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。

即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。

在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

语法: find pathname -options

功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

常用选项:

-name  按照文件名查找文件

 对于查找指令,我们除find指令之外,下面这两条也是我们需要经常使用到的:

which:可以在指令路径下(/uesr/bin),搜索我们对应的指令文件

whereis:在系统特定的路径下查找,既可以找到可执行程序,又可以找到手册,安装包压缩包之类

下面我给大家分别演示一下他们的作用:

这里我们可以看到他们都展示了他们对应路径下的文件。

grep指令

语法: grep [选项] 搜寻字符串 文件

功能: 在文件中搜索字符串,将找到的行打印出来

常用选项:

-i :忽略大小写的不同,所以大小写视为相同

-n :顺便输出行号

-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

-r:递归式的将一个目录下的所有对应内容都打印出来

演示如下:

zip/unzip指令:

语法: zip 压缩文件.zip 目录或文件

功能: 将目录或文件压缩成zip格式

常用选项:

-r 递 归处理,将指定目录下的所有文件和子目录一并处理(不加选项-r,默认只对我们指定的文件/目录进行压缩)

打包和压缩:

1.能被打包和压的,一定是一个整体,由多个文件->一个文件->不容易造成文件丢失

2.打包压缩,可以让我们文件体积变小,而体积较大,就会导致下载时间变长,和存储空间变大

 这里的聚体使用如下:

压缩文件:

 这里我们将目录dir1进行了压缩,这里产生了压缩文件dir.zip文件。

解压缩:

对于解压缩,这里有个选项,大家需要注意一下

-d选项将我们的文件和目录解压到指定目录

那我们实际操作一下,看看效果:

这里我们将刚压缩好的文件,解压到dir1目录,我们可以看到我们的dir1目录下,多了一个dir1目录。

tar指令(重要)

打包/解包,不打开它,直接看内容

选项如下:

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令!

-t :查看 tarfile 里面的文件!

-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

-C : 解压到指定目录

那么通过上面的选项就构成了我们常用的几个选项,所达到的内容:

tar czf XXX --打包压缩

tar tzf XXX.tgz==预览

tar xzf XXX.tgz---解压文件(tar打包后缀,.gz压缩后缀)

 那么我们再来实际操作一下:

 

bc指令

bc命令相当于Linux的计算器,可以很方便的进行浮点运算

这里简单的给大家演示一下:

uname –r指令(查看内核版本,体系结构)

语法:uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
常用选项:
-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

 重要的几个热键[Tab],[ctrl]-c, [ctrl]-d

[Tab]按键---具有『命令补全』和『档案补齐』的功能
[Ctrl]-c按键---让当前的程序『停掉』
[Ctrl]-d按键---通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit
Ctrl-r-----检索历史使用过的指令(这也就说明我们的Linux会自己记录历史命令(Linux会记录默认记录最新的1000条(可以修改)))

shutdown-关机

语法:shutdown [选项] 常见选项:

-h : 将系统的服务停掉后,立即关机

-r : 在将系统的服务停掉之后就重新启动

-t sec : -t 后面加秒数,亦即『过几秒后关机』的意思

如果是后面购买了云服务器,尽量不要使用shutdown来关机,因为云服务器一般都要保证服务器一直在线,使用exit或者ctrl+d退出即可

指令的本质

给大家介绍了一堆指令,通过这些指令我相信大家肯定已经能基础的控制我们的操作系统了,那么指令到底是一种什么东西呢?

其实我们的指令就是可执行程序,那么指令是如何我们直接写出来就会调用的呢?原来在执行指令之前,我们需要先在系统中查找指令,而我们的指令是在系统中特定的路径下存在的(/uesr/bin)

 这里我们进入相应的bin目录就可以看到我们一些存在于系统中指令,既然指令是可执行程序,那么我们也可以将我们的可执行程序移到该目录下,那么我们的可执行程序也可以当作命令使用,但是我们不建议大家这么做。

shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

  1. 将使用者的命令翻译给核心(kernel)处理。

  1. 同时,将核心的处理结果翻译给使用者。

(本质上我们的指令最终都需要在操作系统中运行,但是我们直接使用操作系统难度较高)

对比windows GUI(图形化界面),我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户

命令行解释器存在的意义:

1.进行命令解释

2.保护操作系统,对用户的非法请求直接进行拦截

命令行解释器只是一个统称,相当于一个软件,所以它也是有着它自己的不同类型解释器的名称的而我们经常使用的就是bash

 

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

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

相关文章

【1++的C++初阶】之模板

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的C初阶】 文章目录 一&#xff0c;浅谈模板二&#xff0c;函数模板三&#xff0c;类模板 一&#xff0c;浅谈模板 在前面的文章【【1的C初阶】之C入门篇1】中我们对函数重载有了一定的认识&a…

Python-web开发学习笔记(3):Flask Demo,一个网站开发小案例

☕️ 推荐关注我的另一个专栏系列&#xff1a;大道至简&#xff0c;该系列收录了许多优质的人工智能算法博文&#xff0c;包括机器学习和自然语言处理等&#xff0c;持续更新中&#xff0c;欢迎各位关注~ 介绍完HTML标签&#xff0c;我们来搞一个简单的网站小案例&#xff0c;带…

一、CNNs网络架构-基础网络架构

目录 1.LeNet 2.AlexNet 2.1 激活函数&#xff1a;ReLU 2.2 随机失活&#xff1a;Droupout 2.3 数据扩充&#xff1a;Data augmentation 2.4 局部响应归一化&#xff1a;LRN 2.5 多GPU训练 2.6 论文 3.ZFNet 3.1 网络架构 3.2 反卷积 3.3 卷积可视化 3.4 ZFNet改…

6.4.6拓扑排序

用DAG&#xff08;有向无环图&#xff09;表示一个工程。顶点表示活动&#xff0c;有向边<Vi&#xff0c;Vj>表示活动Vi活动必须先与Vj活动进行。 所谓的拓扑排序&#xff1a;找到做事的先后顺序 以上根据拓扑排序的实现&#xff1a; 加入对有回路的图进行拓扑排序&#…

重磅,ChatGPT App 来了!(附保姆级教程)

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 日前&#xff0c;OpenAI宣布推出iOS移动版ChatGPT&#xff0c;为iPhone和iPad用户提供免费下载和使用机会。 总体而言&#xff0…

视频转换芯片MS7200概述 HDMI转数字RGB/YUV/HDMI RXReceive/替代IT66021FN

1. 基本介绍 MS7200 是一款 HDMI 接收芯片&#xff0c;兼容 HDMI1.4b 及 HDMI 1.4b 以下标准的视频 3D 传输格 式&#xff0c;最高分辨率可支持到 4K30Hz&#xff0c;最高采样率达到 300MHz。MS7200 支持 YUV 和 RGB 之 间的色彩空间转换&#xff0c;数字接口支持 YUV 及 RGB 格…

动态规划-完全平方数

动态规划-完全平方数 1 题目描述2 示例2.1 示例 1&#xff1a;2.2 示例 2&#xff1a;2.3 提示&#xff1a; 3 解题思路及方法3.1 解题思路3.1.1 确定状态3.1.2 转移方程3.1.3 初始条件和边界情况3.1.4 计算顺序 3.2 算法代码实现 跟着九章侯老师学习了动态规划专题之后根据学习…

联邦图神经网络:概述、技术和挑战

https://arxiv.org/pdf/2202.07256.pdf 摘要 图神经网络以其处理实际应用中广泛存在的图形数据的强大能力&#xff0c;受到了广泛的研究关注。然而&#xff0c;随着社会越来越关注数据隐私&#xff0c;GNN需要适应这种新常态。这导致了近年来联邦图神经网络&#xff08;FedGN…

一、阿里云oss

文章目录 一、阿里云oss1、开通“对象存储OSS”服务1.1创建Bucket1.2上传默认头像1.3获取用户acesskeys 2、使用SDK文档3、文件服务实现3.1搭建service-oss模块3.1.1 搭建service-oss模块3.1.2 修改配置3.1.3 启动类3.1.4配置网关 3.2 测试SDK3.3封装service接口3.4封装control…

【C++初阶】类和对象(下)构造函数(初始化列表) + explicit关键字 +static成员

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

如何下载旧版的Chrome

&#xff08;下面网址需要科学上网&#xff09; 1.获得浏览器版本号 访问 https://www.google.com 然后在搜索框中输入要搜索的浏览器版本号&#xff0c;例如 : site:chromereleases.googleblog.com 96.0。其中96.0是大版本号。 2.查询浏览器版本号的具体信息 访问 https://…

CANopenNode Master RPDO 配置

文章目录 CANopenNode 简介CANopenNode 主栈SDO ClientRPDORPDO 通讯参数RPDO 通信参数设置实例PDO 映射参数RPDO 映射参数设置实例 CANopenNode 简介 CANopenNode 是一个开源的免费的开源 CANopen 协议栈。 对象字典为任何变量提供清晰灵活的组织。可以直接或通过读/写函数…

电力系统的虚假数据注入攻击和MTD系统研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

代码随想录算法训练营第十五天|树的层序遍历 、226.翻转二叉树 、101.对称二叉树

层序遍历&#xff08;广度优先遍历&#xff09;&#xff1a; 遍历思路&#xff1a; 借用队列来实现。 若根节点不为空&#xff0c;则先将根节点放入队列&#xff0c; 随后&#xff0c;在while循环中&#xff0c;判断队列当前的size&#xff0c;队列的size就是树在该层中的节点…

ubuntu换镜像源(ubuntu换源)

ubuntu换镜像源&#xff08;ubuntu换源&#xff09; 文章目录 ubuntu换镜像源&#xff08;ubuntu换源&#xff09;1. 备份镜像源文件2. 根据不同 ubuntu 版本设置不同的镜像源2.1 focal 版本镜像源2.2 bionic 版本镜像源2.3 ubuntu 自带源&#xff1a; 参考文献 1. 备份镜像源文…

数据库连接 ---MySQL的总结(八)

数据库连接 —MySQL的总结&#xff08;八&#xff09; mysql使用在c编程之中使用&#xff0c;需要调用官方c库进行使用。 库的安装 库文件&#xff0c;安装mysql的c链接库 yum install mysql-server接口介绍 初始化 MYSQL *mysql mysql_init(nullptr);连接 mysql_real_conn…

“智汇新算力,众启Z力量”惠普发布全新一代Z系列工作站,共赢算力黄金时代

5月23日&#xff0c; “智汇新算力&#xff0c;众启Z力量”惠普Z系列新品发布会在上海盛大举行。本次发布会上&#xff0c;惠普Z 系列工作站焕新升级&#xff0c;以高算力、强稳定、强拓展的产品及解决方案&#xff0c;帮助各行业用户专注自身领域、驾驭复杂工作&#xff0c;从…

HNU-电路与电子学-小班2

第二次讨论 讨论题目&#xff1a; 1、电子秤的电桥电路可以分别用 1 个压控电阻、 2 个压控电阻、 3 个压控电阻、 4 个压控电阻实现吗&#xff1f;试写出每种实现的 U AB 输出表达式&#xff0c;并分析哪种实现电桥 电压的灵敏度&#xff08;SV/ △ R &#xff09;高。 …

【Python Tableau】零基础也能轻松掌握的学习路线与参考资料

一、学习路线 Python和Tableau都是当前市场上非常热门的数据分析和可视化工具。下面是Python Tableau的学习路线&#xff1a; 学习Python基础知识&#xff1a;Python是一门非常易学易用的编程语言&#xff0c;可以选择相应书籍进行学习&#xff0c;如《笨办法学Python》、《Py…

Node.js中Buffer的一些实现原理

1.前言 在ES6之前&#xff0c;JavaScript无法直接处理二进制数据&#xff0c;Node.js为了弥补这个不足引入了 Buffer&#xff0c;其是Node.js的核心模块之一&#xff0c;底层实现基于C。本文将从 Node.js v14.20.0 的源码分析 Buffer 的一些实现原理。 2.ArrayBuffer 在介绍…