2018-08-11 自学笔记

发现一个Linux大神的博客,地址是https://www.cnblogs.com/jplatformx/p/4295358.html  

一、Linux中终端、虚拟终端、伪终端以及shell的区别联系。 

       该文章转自 https://www.cnblogs.com/jplatformx/p/4366278.html

十年运维系列之基础篇 - Linux

作者:曾林 

联系:[email protected]

网站:www.jplatformx.com

感觉介绍非常清晰明了,感谢大佬的分享,放在此处,供自己学习用,或者可以帮到其他有相同困惑的人

二、伪终端

  图形界面下的命令行窗口,叫做伪终端。但是这个伪终端是跟那个脱离图形界面的、黑漆漆的、按Alt+Ctrl+F1~F6组合键出来的那个终端而说的。伪终端的工作方式是在桌面上申请一个窗口,然后在里面模拟显示出一个黑漆漆的界面。比如Gnome终端、Konsole终端、xterm终端、urxvt终端等等。

三、虚拟终端

  虚拟终端就是那些没有图形界面,像DOS那样的命令行。虚拟终端就是把一台全功能的电脑(比如咱们的PC)通过软件模拟成另外一台计算机的终端设备。

四、终端 

  其实终端最初是一种输入/输出硬件设备,有键盘显示器和连接主机的接口电缆,是过去大中小型计算机上的概念。咱们用的PC(也就是微型机)是没有终端这个概念的。

  以上介绍了终端、虚拟终端、伪终端。有些人可能会有所顾忌,觉得在这些终端里面执行的Linux命令不是真正的Linux命令。这里其实需要澄清一个概念,那就是终端本身是不会解析命令的。它只是一个界面而已,是负责人机交互的一个接口而已。真正处理命令的并不是这些终端,真正处理命令行的是shell。终端只是负责提供一个输入命令的交互界面而已,在里面运行的命令并不归终端界面去解析,而是找到专门的命令行程序,这种程序我们一般将其称之为shell。

五、shell

  Linux本质上是一个内核,这个内核可以用来做很多的事情,整个电脑都归内核来管理。显卡、声卡、内存、硬盘,以及硬盘上的各种程序也归内核调度。那么,内核让硬件、软件去做什么事情呢?内核本身是不清楚的,它需要接受指令,那么下指令的是谁呢?就是人类用户。

  可以人类用户要做什么操作,靠嘴说是无济于事的。因为内核根本就不会懂。因此就需要一个软件来作为人机之间的桥梁,这个软件可以将人类的操作意图转述给内核,那么这个软件就是shell。它就像一个罩在操作系统和人之间的一个外壳一样,在人和操作系统之间传达着信息。

  shell广义上可以指操作系统和用户接口的界面,图形界面也是一种shell。因为图形界面的本质也是实现“把人类用户的操作意图转述个内核”。 

六、shell和终端的关系

  shell是一个程序,一个二进制可运行可执行的程序,一般情况下,我们并不会感觉它的存在,因为我们很少主动去调用它,除非我们人为去执行bash程序。那么shell跟终端有什么关系呢?

  shell和终端的关系就是终端程序会自动调用shell程序。体现在每次打开终端(伪终端、虚拟终端)的时候,终端程序都会去调用shell。终端调用终端程序成功的情况下,终端就会显示如下的信息:

[user@host ~]$

  其中user指示的就是登录人是谁,host指示登录到的主机,~表示当前操作目录,$表示的是命令提示符(如果登陆人是root的话就显示为#),表示等待输入命令。

*这个是我在距离上次学习几天之后又看到的内容,从百度知道上查到的,附到此地,以作补充学习

1)、首先明确:
控制终端(/dev/tty) 这是个在应用程序中的一个概念,前台进程有个控制终端,就对应这个。不过它并不指任何物理意义上的终端,其实/dev/tty会映射到当前的设备(通过tty命令可以看到),比如你如果在控制台界面下(即字符界面下)那么dev/tty就是映射到dev/tty1-6之间的一个(取决于你当前的控制台号),但是如果你现在是在图形界面(Xwindows),那么你会发现现在的/dev/tty映射到的是/dev/pts的伪终端上。比如你可以输入命令 #tty 那么将显示当前映射终端如:/dev/tty1或者/dev/pts/0等。

控制台终端:控制台是一种人机接口, 不通过终端与主机相连, 而是通过显示卡-显示器和键盘接口分别与主机相连, 这是人控制主机的第一人机接口。一般PC机只有控制台没有终端。
如同其他UNIX类系统,Linux本身也是基于命令行的。试试“Ctrl”+“Alt”+“Fx”。(注:我在试验时,使用的是ubantu14,

同时按下键盘上的Ctrl +alt + F1键之后,从Linux界面上展示出一个纯黑色命令窗口,之后按下回车键,提示我要输入Linux的用户名,回车,提示我输入密码,然后成功登陆到Linux系统)这就是控制台,算是Linux的本来面目。

2)、tty0是tty1或者ttyn的一个别名或者链接,为什么这么说呢?
当我们使用tty0的时候,我们得到他的子设备号是0,于是在宏TTY_TABLE中,我们会得到tty_table[fg_console]这个终端设备。fg_console是当前的终端设备在tty_table数组中的下标。
通过这个宏,找到了tty0对应的ttyn,然后读键盘,写显示器这些操作都是对ttyn进行的。
所以说tty0只是一个别名,帮助你映射当前正在使用的某个ttyn。而tty1-tty6是控制台终端,是你用控制台上通过getty软件虚拟出来的(数量可以在/etc/inittab里自己调)。

3)、详见(1)

4)关于/dev/tty与/dev/tty0:列个表你就明白了,
串行端口终端(/dev/ttySn )
伪终端(/dev/pty/ )
控制终端(/dev/tty )
控制台终端(/dev/ttyn, /dev/console )

5)、详见(4)

二、Linux学习中遇到的问题

在查看以上文章时,遇到部分问题:

1、 file 命令的使用,未能正确理解博客中的内容,需要再了解

2、挂载点  不懂

3、不懂

/lib  包含核心系统程序使用的共享库文件。这与windows系统中的DDL类似 

4、type command     :感觉该命令很强大,可以了解自己输的命令是什么类型,“命令”的创造地,

  比如 输入  type cd ,按回车键

可以在命令行看到     cd 是shell 内建     字样,表示 cd命令是shell内置的命令

类似可以查看其它的

5、标准输入输出  I/O流 的重定向操作,在日志查看时特别有用,注意复习

6、Linux高级键盘技巧  博文没看懂,尴尬https://www.cnblogs.com/jplatformx/p/4297309.html

7、Linux中的进程   

             使用ps命令查看进程信息        可以在Linux 的命令行中输入   ps x  ,按回车键 查看

8、 感觉以下内容理解起来还是有点绕口,需要多加理解

一、引言

      在shell会话调用环境期间,shell会存储大量的信息。有一些程序会查找环境中存储的变量来调整自己的行为。知道了这一点之后,用户就可以使用环境来自定义shell。

二、环境中存储的是什么

      尽管shell在环境中存储了两种基本类型的数据,但是在bash中,这两种类型基本上没有区别。这两种数据类型分别是环境变量和shell变量。shell变量是由bash存放的少量数据,环境变量就是除此之外的所有其他变量。除变量之外,shell还存储了一些编程数据,也就是别名和shell函数。

      要了解环境中存储的内容,需要用到集成在bash中的set命令或者printenv程序。不同的是,set命令会同时显示shell变量和环境变量,而printenv只会显示环境变量。

9、Linux中的网络等等感觉很神奇的东西,还没好好看

10、Linux中的文件搜索命令,现在急需用

  Linux系统中含有非常多的文件!这就很自然地产生一个问题,那就是我们应该如何去查找文件。虽然我们知道Linux文件系统良好的组织架构,源自于类UNIX的操作系统代代传承的习俗,但是仅文件数量就会引起非常可怕的问题。

      本章我们主要介绍两个用在Linux系统中搜索文件的工具。

  • locate:通过文件名来查找文件
  • find:在文件系统目录框架中查找文件

      同时,我们还会介绍一个通常与文件搜索命令一起使用、处理搜素结果文件列表的命令。

  • xargs:从标准输入中建立、执行命令行

此外,还会介绍两个辅助工具。

  • touch:更改文件的日期时间
  • stat:显示文件或文件系统的状态

猜你喜欢

转载自blog.csdn.net/zxllynu/article/details/81590186