上篇文章只要是讲了Linux1些基本概述。
我们这次开始打好命令行操作的基础,以后再靠1些图形化的操作来提升我们的工作效力。
既然要学习Linux操作系统,我们就要去学习它的命令,总所周知,Linux的图形界面是不稳定的,它的图形界面只不过是1个利用程序,所以很容易奔溃。所以我们应当学习图形下面的1些机制,包括用命令行去实现1些东西,用shell去实现1些东西,包括去理解它的内部机制。
固然这些命令去死记硬背是不行的。
启动虚拟机,启动Ubuntu。
图形界面 切换到 命令行 是按 ctrl+alter+ F2 或 F3 或 F4
命令行 切换回 图形界面 ctrl+alter+ F7
1、第1个命令:ls
列出文件下的所有文件,ls其实就是list的1个缩写
现在我们来分析1下这个命令是怎样实现的,实现机制是甚么样的?
从字面理解,shell是贝壳/外壳的意思。
比方说 A--》这个是操作系统的内核kernel,在kernel之上呢我们就会有用户接口的定义,然后再往上我们有1个外壳把它包裹起来,这个外壳里有很多命令工具,我们通过这些命令工具和编写我们自己的Shell脚本命令,有点类似于Windows下面的批处理,通过这些来实现对下面的访问。
所以ls的实现进程是这样的:
(1)输入了ls
(2)ls->去相应的目录去找shell命令程序,那这个shell去哪里找呢,固然是在path里找,那末这个path在哪里设置呢?环境变量。
(3)找到了以后就要履行,履行是基于Shell的1些基本库,比如说在Ubuntu里面我们的Shell采取的是Bash
(4)最后就是访问kernel内核
现在我们来看1下这个path是在哪里配置的,这样我们才能知道ls命令在哪里。
我们看path之前呢,先看1个新的命令
whereis ls
打印出来ls: /bin/ls /usr/share/man/man1/ls.1.gz
我们来查找1下/bin/ls这个目录
ls /bin/ls
打印出来 /bin/ls 显示是绿色,说明它是个可履行文件
那下面我们看1下环境变量是不是真的指向 /bin/ls ,那末环境变量在哪呢?我们想象1下我们之前说的那个文 件夹是做配置的,好像是etc这个文件夹对不对。
我们进入etc文件夹看1下
cd etc
那末环境变量是在 /etc/environment下,我们ls1下
ls /etc/environment
打印出来 /etc/environment , 我们得知是1个1般文件
我们用vi工具打开该文件
vi /etc/environment
我们可以看到确切有个PATH
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/bin:/usr/games"
也就是说ls履行的时候就会去这些文件下去找可履行文件
通过bash对ls进行解析
2、Linux是如何实现Shell的
(1)Bash
(2)Coreutils
要了解这两块我们不能不去说1下GNU,去查1下GNU的翻译
Bash和Coreutils是在GNU上开发的
GNU的官网: http://www.gun.org/
里面有对GNU Bash的介绍
下载1下bash
我们可以通过bash -version查看当前bash版本
怎样办bash移植到我们的系统里面,不用命令怎样手动移植,可以查看帮助文档
1定要理解GUN与Linux的关系