【Linux】1:基本指令

目录

一、pwd指令

二、ls指令(重要)

[2.1 ls的使用](#2.1 ls的使用)

[2.2 ls -l 的使用](#2.2 ls -l 的使用)

[2.3 ls -a 的使用](#2.3 ls -a 的使用)

[2.4 ls -d的使用](#2.4 ls -d的使用)

三、cd指令(重要)

[四、 .和..的介绍](#四、 .和..的介绍)

五、touch指令

[5.1 用法1:创建文件](#5.1 用法1:创建文件)

[5.2 用法2:更改文档或目录的日期时间,包括存取时间和更改时间](#5.2 用法2:更改文档或目录的日期时间,包括存取时间和更改时间)

六、mkdir指令

七、指令是什么?

八、rmdir指令和rm指令(重要)

九、*号的使用

十、man指令

十一、cp指令

十二、echo指令

十三、文件类型

十四、mv指令

十五、cat指令

十六、more指令

十七、less指令(重要)

十八、head指令

十九、tail指令

二十、date指令

二十一、cal指令

二十二、find指令

二十三、which指令

二十四、whereis指令

二十五、alias指令

二十六、grep指令

二十七、zip/unzip指令

二十八、tar指令

二十九、bc指令(很少使用)

三十、uname指令

三十一:重要的几个热键

三十二:关机指令

三十三:shell命令以及运行原理


一、pwd指令

语法: pwd
**功能:**显示用户当前所在的目录

window:\路径分隔符

linux:/路径分隔符

二、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 以时间排序

2.1 ls的使用

列出该目录下的所有子目录名与文件名

执行第一个ls指令,此时这个lesson2目录下没有文件,所以我们使用mkdir来创建一个mkdir目录,然后再使用ls来查看这个目录下的子目录和文件

如果建立一个空文件,这个文件也会占据磁盘空间,需要存放一个属性信息,如文件名,权限,访问时间等等,属性也要占用磁盘空间。

文件=内容+属性

学习文件:要么对文件内容操作,要么对文件属性操作

2.2 ls -l 的使用

列出该目录下的所有子目录与文件的详细信息

先解释一部分:

mydir:文件名

Dec 15 14:51:文件创建日期

4096:文件大小

第一个字母d:表示这个mydir是一个目录。如果第一个是字符"-",表示它是一个普通文件

使用ls -l查看指定路径下的文件,如下所示:

2.3 ls -a 的使用

列出目录下的所有文件,包括以 . 开头的隐含文件。

ls后面可以带多个选项,并且没有顺序要求,如下所示:

这个表示列出目录下的所有文件的详细信息,包括以 . 开头的隐含文件。

在linux中,以 . 开头的文件是隐藏文件

2.4 ls -d的使用

我们在使用ls后面接一个目录时,会显示这个目录下的文件信息,但是我们的目录也是一个文件啊,那么如何查看这个文件呢?我们可以使用ls -d,这个只看这个目录的信息,不看这个目录里面有什么。

三、cd指令(重要)

cd全称:change directory

语法:cd 目录名

功能:改变工作目录。将当前工作目录改变到指定的目录下

cd ~:切换到当前用户的家目录

cd -:切换到最近访问的目录

cd /:切换到根目录

cd ..:切换到上级目录

四、 .和..的介绍

在任何一个目录,即使是一个空目录,默认系统都会自带.和..目录。

.表示当前目录

..表示该目录的上级目录

我们cd到.这个目录,然后再次使用pwd查看当前所在的目录,发现和之前的工作目录是一样的。

在上述图片中,我们一直执行cd ..,然后执行pwd,发现每一次执行cd ..,都会退到上一级目录,当工作的目录是/时,不能退到上一级目录了。

/叫做linux系统的根目录。

所以这里我们就能知道linux系统下的结构和路径了。

Linux理论知识:路径的认识

  • Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件
  • 其中普通文件一定是目录树的叶子节点
  • 目录可能是叶子(空目录),也可能是路上节点
  • 理解路径存在的意义:树状组织方式,都是为了保证快速定位查找到指定的文件,而定位文件就需要具有唯一性的方案来进行定位文件。其中任何一个节点,都只有一个父节点,所以,从根目录开始,定位指定文件,路径具有唯一性
  • 绝对路径:一般从/开始,不依赖其他目录的定位文件的方式
  • 相对路径:相对于当前用户所处目录,定位文件的路径方式
  • 绝对路径一般不会随着用户的路径变化而丧失唯一性,一般在特定服务的配置文件中经常被使用
  • 相对路径因为它的便捷性,一般在命令行中使用较多

五、touch指令

5.1 用法1:创建文件

语法:touch 文件名

注意:touch只能创建文件,不能创建文件夹

5.2 用法2:更改文档或目录的日期时间,包括存取时间和更改时间

stat 指令:后面加文件可以查看这个文件的详细介绍,如下所示:

Access表示文件访问时间。

Modify表示文件修改时间。

Change表示文件修改时间

我们使用touch就可以修改Modify和Change时间。

使用touch修改时间用的不多。

六、mkdir指令

语法: mkdir dirname..·
功能: 在当前目录下创建一个名为"dirname"的目录
常用选项:

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

此时有这样的场景,我想要在当前目录下创建a目录,在a目录下创建b目录,在b目录下创建c目录,在c目录下创建d目录,在d目录下创建e目录,如下所示:

不能创建成功。此时我们可以在mkdir后面加上 -p选项,我们就可以创建成功。如下所示:然后使用tree来查看结构。

也可以tree .来查看当前目录结构

mkdir -p a/b/c/d/e :递归创建目录
如果用不了tree指令。

CentOS:yum install -y tree

ubuntu:apt install -t tree

七、指令是什么?

我们刚刚学了很多指令,如ls,pwd,mkdir等等,那么指令是什么呢?

我们使用which来查看一下。

发现他们都是/usr/bin文件下的文件,命令本身就是系统当中的文件,也是-开头的普通文件。

当我们在系统里面执行指令(命令)时,实际上执行的就是对应的文件。

因为命令是对应文件,我们也可以在路径里面来执行这个命令

命令的本质==可执行文件==我们写的C/C++程序!

八、rmdir指令和rm指令(重要)

rmdir是一个与mkdir相对应的命令,mkdir是建立目录,而rmdir是删除命令
语法:rmdir [-p] [dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:

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

rmdir只能删除空目录,非空目录不能删除,如下所示:

并且rmdir不能删除文件,如下所示:

所以rmdir很少使用,我们大部分都是使用rm指令,

但是rm默认只能删除普通文件,不能删除目录,如下所示:

但是我们为什么说rm常用呢?

这是因为rm的选项更丰富。

rm -f:强制删除

rm -r:删除目录

rm -rf :强制递归删除目录

九、*号的使用

在linux中,*叫做通配符,它可以匹配任何内容,如下所示:

也可以使用**rm -rf ***来删除所有文件,不会删除隐藏文件。

十、man指令

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

语法:man [选项] 命令

常用选项

  • -k根据关键字搜索联机帮助
  • num只在第num章节查找
  • -a将所有章节的都显示出来,比如man printf它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕

解释一下:man手册分为9章(不同系统可能会有差别)

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

十一、cp指令

语法: cp【选项] 源文件或目录 目标文件或目录
功能 :复制文件或目录
说明:

  • cp指令用于复制文件或目录
  • 如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中

常用选项

  • -f或-force强行复制文件或目录,不论目的文件或目录是否已经存在
  • -i或-interactive覆盖文件之前先询问用户
  • -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理

cp 拷贝普通文件:

cp srcfile dstfile:在当前目录下拷贝srcfile,重命名为dstfile

cp srcfile dstdir/ :把当前目录下的文件srcfile 拷贝到dstdir目录下,名字不变

cp srcfile dstdir/dstfile :把当前目录下的文件srcfile 拷贝到dstdir目录下,并且重命名为dstfile

cp拷贝目录:

默认不支持拷贝目录。因为目录是一个递归定义的内容,所以需要带-r选项。如下所示:

此时我们再次执行cp lesson2 lesson2_backup -r,如下所示:

我们可以发现lesson2目录被拷贝到了lesson2_backup里面了。

这是因为我们在拷贝文件或者目录到一个目录时,如果这个指定的目录不存在,就会创建这个目录,如果存在就会拷贝文件或者目录到这个目录内部。

十二、echo指令

echo指令就是将后续的内容打印出来,如下所示:

printf也可以往屏幕打印内容,如下所示:

如果单纯的想要在屏幕回显一个字符串,就可以使用printf或者echo。

知识点:

1:在linux系统中,一切皆文件,包括键盘和显示器。

2:重定向操作

我们执行echo "hello world" 这句指令是将hello world写道显示器文件里面,所以我们才看见了,我们可以把它重定向到hello.txt文件里面(如果这个hello.txt可以不存在,会新创建一个),如下所示:

我们把本来应该写到显示器中的内容,写到了hello.txt里面,这个操作叫做输出重定向。

我们再次执行这个操作,会把原本的文件内容清空,如下所示:

>符号有一个特点:如果后面的文件不存在,就会新建。并且它会先清空,再写入

结论1:所以我们以后在新建文件的时候可以不用再使用touch来创建文件了,可以直接使用>符号来创建文件,如下所示:

结论2:>符号会将文件里面的内容先清空,在写入,所以我们也可以使用**>符号来清空文件**,如下所示:

>符号会将文件内容给清空,如果我们不想将这个文件清空,想在后面追加,那怎么办呢?

我们可以使用>>符号,如下所示:

上面这种重定向叫做追加重定向
cat指令是打印文件内容,如果我们在后面不写文件名字呢?如下所示:

我们输入什么内容就会显示什么内容。

请看以下两段指令:

这两段指令有什么关系,首先cat后面没有跟文件时,我们在键盘里面输入什么,都会写到显示器文件里面,cat < hello.txt 这句指令的意思就是,我不想从键盘里面读,而是从文件里面读取,这叫做输入重定向

cat hello.txt和cat < hello.txt这两个有什么区别呢?虽然结果都是一样的。

cat hello.txt:这个是从命令行参数获得文件名的

cat < hello.txt:这个是从将hello.txt输入重定向到显示器文件里面。

十三、文件类型

在linux系统中,文件类型不看文件后缀,而是通过ls -l显示的文件属性中的第一列。

文件类型包括如下几种:

-:普通文件(linux不看后缀,文本,图片,视频,可执行程序等,系统不关心后缀,不代表工具(gcc)不关心)

d:目录文件

c:字符文件(键盘,显示器,终端)

b:块设备文件(磁盘)

l:连接文件

p:管道文件(用于进程之间通信)

十四、mv指令

mv命令 是move的缩写,可以用来移动文件 或者将文件改名 (move(rename)files,经常用来备份文件或者目录
语法: mv [选项] 源文件或目录 目标文件或目录
功能:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
  2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

常用选项:

  • -f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i:若目标文件(destination)已经存在时,就会询问是否覆盖!

我们在113目录下面创建一个hello.txt的文件,然后将他移动到上一级目录,如下所示:

mv srcfile destdir:将srcfile文件移动到destdir目录下。(srcfile也可以是目录)

mv指令也可以给指定文件给重命名。如下所示:

mv到底是剪切还是重命名呢?取决于后面的dst,如果dst不存在或者不是目录就是重命名,如果是目录就是剪切。

如果想要将一个目录重命名呢?只要后面的dst不存在就是重命名了,如下所示:

十五、cat指令

语法 :cat [选项] [文件]
功能 :查看目标文件的内容
常用选项:

  • -b对非空输出行编号,空行不做编号
  • -n对输出的所有行编号
  • -s不输出多行空行

查看文件内容,如下所示:

查看文件内容,并且显示行号,如下所示:

tac也能显示文件内容,只不过是从最后一行开始显示。

cat只适合我们去看短文件的,如果文件内容太多不适合使用cat。如下所示:

使用cat查看日志:

日志信息太多了,使用cat很不方便。

十六、more指令

语法: more [选项]
功能: more命令,功能类似cat
常用选项:

  • -n指定输出行数
  • q退出more

使用more不会全部打印完,他只会打印一个屏幕,我们可以使用回车或者上下来控制,如下所示:

q退出more。现在不推荐使用more,推荐使用less指令

十七、less指令(重要)

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

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

  • ·i忽略搜索时的大小写
  • ·-N显示每行的行号
  • ·/字符串:向下搜索"字符串"的功能
  • ·?字符串:向上搜索"字符串"的功能
  • ·n:重复前一个搜索(与/或?有关)
  • N:反向重复前一个搜索(与/或?有关)
  • q:quit

我们使用以下代码创建一个文件,如下所示:

然后使用cat查看:

这个文件里面有2000个hello

十八、head指令

head与tail就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head用

来显示档案的开头至标准输出中,而tail想当然尔就是看档案的结尾。
语法:

head [参数] [文件]
功能:

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

选项:

  • -n<行数>显示的行数

head默认显示10行

head显示15行,如下所示:

十九、tail指令

tail命令从指定点开始将文件写到标准输出,使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail-ffilename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容.
语法: tail [文件]
功能 :用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项

  • -f循环读取
  • -n<行数>显示行数

tail默认显示最后10行

tail显示倒数15行,如下所示:

我们可以使用head和tail查看开头和结尾,那我们如何查看中间的内容呢?

例如我们想要查看500行到509行,这10行,那怎么办呢?

我们可以使用head查看前510行,然后使用输出重定向到一个temp1.txt文件里面,然后使用tail查看最后10行,如下所示:

可是这种方法有点不太好,我们还要新建一个临时文件来存放中间的内容,如果我们不想生成临时文件呢?那有什么其他的方法呢?

如下所示:

竖线左侧是一条命令,右侧是一条命令,左侧命令的执行结果,经过这个竖线,这个竖线也叫做管道,右侧命令就会处理这个左侧命令的执行结果。

更多使用如下所示:

所以我们可以使用管道来组合各种各样的命令。

二十、date指令

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

用法:date [OPTION] [+FORMAT]

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

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

2.在设定时间方面

  • date-s//设置当前时间,只有root权限才能设置,其他只能查看。
  • date-s20080523//设置成20080523,这样会把具体时间设置成空00:00:00
  • date-s 01:01:01//设置具体时间,不会对日期做更改
  • date -s"01:01:01 2008-05-23" //这样可以设置全部时间
  • date-s"01:01:0120080523"//这样可以设置全部时间
  • date -s"2008-05-23 01:01:01" //这样可以设置全部时间
  • date-s"20080523 01:01:01" //这样可以设置全部时间

3.时间戳

  • 时间->时间戳:date +%s
  • 时间戳->时间:date -d@1508749502
  • Unix时间戳(英文为Unix epoch,Unix time,POSIXtime 或Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒

二十一、cal指令

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

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

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

常用选项:

  • -3显示系统前一个月,当前月,下一个月的月历
  • j显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
  • y显示当前年份的日历

二十二、find指令

  • Linux下find命令在目录结构中搜索文件,并执行指定的操作。
  • Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
  • 即使系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
  • 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

语法: find pathname -options
功能: 用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)
常用选项

  • -name按照文件名查找文件
  • 其他选项需要在查,这个命令其实比较复杂

二十三、which指令

功能: 搜索系统指定的命令
举例:

二十四、whereis指令

功能: 用于找到程序的源、二进制文件或手册
举例:

二十五、alias指令

功能:设置命令的别名

举例:

alias zhangsan=pwd

此时我们使用zhangsan就是使用pwd,如下所示:

我们所起的别名是临时的,重新进去linux系统就重置了。

二十六、grep指令

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

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

常用选项:

  • -i: 忽略大小写的不同,所以大小写视为相同
  • -n:顺便输出行号
  • -v:反向选择,亦即显示出没有'搜寻字符串'内容的那一行

ubuntu@VM-0-10-ubuntu:~ cat temp.txt abcd ABCD hello bite 1234 *#* *基本查找* ubuntu@VM-0-10-ubuntu:\~ grep "abcd" temp.txt
abcd
# 忽略⼤⼩写的不同,所以⼤⼩写视为相同
ubuntu@VM-0-10-ubuntu:~ grep -i "abcd" temp.txt abcd ABCD *#* *顺便输出⾏号* ubuntu@VM-0-10-ubuntu:\~ grep -n "abcd" temp.txt
1:abcd
ubuntu@VM-0-10-ubuntu:~ grep -ni "abcd" temp.txt 1:abcd 2:ABCD *#* *反向选择,亦即显⽰出没有* *'* *搜寻字符串* *'* *内容的那⼀⾏* ubuntu@VM-0-10-ubuntu:\~ grep -v "abcd" temp.txt
ABCD
hello
bite
1234
ubuntu@VM-0-10-ubuntu:~ grep -vn "abcd" temp.txt 2:ABCD 3:hello 4:bite 5:1234 ubuntu@VM-0-10-ubuntu:\~ grep -vni "abcd" temp.txt
3:hello
4:bite
5:1234

二十七、zip/unzip指令

知识点:

打包和压缩是什么?

打包:文件和平

压缩:减少体积

为什么要把文件打包和压缩?

打包:防止文件丢失

压缩:减少体积,节省存储空间,网络传送的时候可以有效的减少下载时间

打包和压缩在linux系统下不做明显区分

使用zip和unzip需要下载:

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

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

常用选项

  • -r:递归处理,将指定目录下的所有文件和子目录一并处理

我现在想要将lesson4下的文件全部打包压缩,如何操作呢?

如下所示:我们使用zip打包压缩后形成了一个lesson4.zip的压缩包

那我们真的打包成功了吗?如下所示:我们将lesson4.zip移动到other里面,然后在里面解压,发现里面什么都没有。只打包了一分空目录,没有打包里面的内容,所以打包失败。

我们在打包的时候需要携带-r选项,才能打包里面的目录内容,如下所示:

总结:

zip -r dst.zip src (压缩单个文件可以不用-r,但是压缩目录需要带-r)

unzip dst.zip (解压到当前目录下)

unzip dst.zip -d / (解压到/目录下)

linux和windows压缩互传:sz和rz指令

执行这条命令之后,然后选择放到windows电脑的哪一个文件夹。之后我们就能在windows看见这个压缩包了,如下所示:

使用rz命令然后选择windows电脑压缩包,如下所示:

二十八、tar指令

打包/解包,不打开它,直接看内容
语法: tar [-cxtzjvf] 文件与目录
参数:

  • -c:建立一个压缩文件的参数指令(create的意思);
  • -x:解开一个压缩文件的参数指令!
  • -t:查看tarfile里面的文件!
  • -z:是否同时具有gzip的属性?亦即是否需要用gzip压缩?
  • -j:是否同时具有bzip2的属性?亦即是否需要用bzip2压缩?
  • -v:压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
  • -f:使用档名,请留意,在f之后要立即接档名喔!不要再加参数!
  • -C:解压到指定目录

打包压缩示例:tar -czf xxx.tgz 目录或者文件

解压示例:tar -xzf xxx.tgz

如果想要展示压缩和解压过程,可以在选项增加一个v选项。

如果想要将压缩包解压到指定目录下,可以加一个**-C**选项

二十九、bc指令(很少使用)

bc命令可以很方便的进行浮点运算,

如下所示:

三十、uname指令

**语法:**uname [选项]

**功能:**uname用来获取电脑和操作系统的相关信息。

**补充说明:**uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

常用选项:

  • -a或-all详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
  • -r:显示linux内核版本和体系结构

三十一:重要的几个热键

  • [Tab]按键:具有『命令补全』和『档案补齐』的功能
  • Ctrl\] -c按键:让当前的程序『停掉』

  • 上下键:查看历史命令
  • clear :清屏指令
  • whoami:查看我是谁
  • nano+普通文件:编辑文件

linux系统会记录我们输入的命令,使用history就可以查看

三十二:关机指令

shutdown:关机

  • -h:将系统的服务停掉后,立即关机。
  • -r:在将系统的服务停掉之后就重新启动
  • -tsec:-t后面加秒数,亦即『过几秒后关机』的意思

halt:挂起操作系统

reboot:重启

但是云服务器永不关键,除非维护或者是不用了。

三十三:shell命令以及运行原理

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

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

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者。

对比windowsGUI,我们操作windows不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)

shell对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

为什么要存在外壳程序:

  1. 方便用户操作
  2. 外壳程序可以保护内核
相关推荐
OliverH-yishuihan2 小时前
在win10上借助WSL用VS2019开发跨平台项目实例
linux·c++·windows
早川9192 小时前
Linux系统
linux·运维·服务器
郝学胜-神的一滴3 小时前
Linux进程与线程控制原语对比:双刃出鞘,各显锋芒
linux·服务器·开发语言·数据结构·c++·程序人生
山上三树3 小时前
进程状态详解
linux·运维·服务器
oMcLin3 小时前
如何打造Linux运维监控平台:Prometheus + Grafana实战与性能优化
linux·运维·prometheus
木卫二号Coding4 小时前
jupyterlab-安装与启动
linux·运维·服务器
fengyehongWorld4 小时前
Linux logger命令
linux·运维·服务器
南知意-4 小时前
GitHub 6K Star! 一款完全免费的音乐播放器,爽听VIP歌曲!
linux·windows·开源·github·开源软件·mac
好好学习啊天天向上4 小时前
最新:ubuntu上源码安装llvm,还没有成功
linux·运维·ubuntu