第一章 Linux系统入门
1、操作系统与硬件
无论是linux、OS X、windows操作系统,他们都是由以下部分组成(分层结构):
最底层:硬件
底层之上:将硬件的接口抽象成为系统调用(kernel)
再之上:库
再此之上为:应用程序
用户空间:User space
用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃,内核也不受影响
只能执行简单的运算,不能直接调用系统资源,必须通过系统接口( system call),才能向内核发出指令
内核空间:Kernel space
是 Linux 内核的运行空间
可以执行任意命令,调用系统的一切资源
2、终端的概念:
早期的大型主机,主机只有一个不可能做到人手一台。但想使用的用户有很多,为了多用户使用在主机上接上了一个分屏器,分屏器的每一个端子上可以接上一套键盘鼠标显示器,就可以直接在主机上进行一些操作了。这就相当于每个人在独立的操作一台计算机一样。像这样我们把一个端子上面所接入的鼠标,键盘,显示器所组成的一个组合,称之为终端。
(1)物理终端:我们可以将显示器、键盘、鼠标直接接在主机接口之上,这样的终端称之为物理终端;
(2)虚拟终端:除了物理终端,系统会提供给我们6个虚拟终端,这些终端是附加在物理终端之上的,以软件形式虚拟实现;可以用快捷键进行切换:Ctrl + Alt [F1-F6]
表示:/dev/tty/#
(3)图像化终端:也是附加在物理终端之上的,用软件方式虚拟实现,但额外会提供桌面环境。切换方式:Ctrl + Alt + F7
(4)伪终端:图形界面下打开的命令行接口,还有基于ssh协议或telnet协议等远程打开的命令行界面;
表示:/dev/pts/#
查看当前的终端设备命令:tty
3、交互式程序分类:
交互式接口:启动终端后,在终端设备附加一个交互式应用程序
交互式程序有两类:GUI 和 CLI
GUI:图形化界面,是基于X协议实现的窗口管理器(桌面、按钮的作用等)
CLI:命令行界面(对应的叫shell程序,用户想要与系统交互必须通过shell)
查看当前环境使用的shell:#echo $SHELL
小结:什么是shell?
Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行
shell也被称为LINUX的命令解释器(command interpreter)
shell是一种高级程序设计语言
4、命令提示符
#表示命令提示符,提示符有两种:
(1)#表示管理员登录
(2)$表示普通用户登录
5、shell中的命令
在shell中可执行的命令有两类:
(1)內建命令:由shell自带的,而且通过某命令形式提供;
(2)外部命令:在当前系统某文件系统路径下有对应的可执行程序文件;可通过which、whereis命令来查找到期可执行程序文件
如何查看一个命令是内建还是外部的:
通过type命令,格式:type COMMAND(注意linux严格区分大小写的)
运行命令格式:
COMMAND [OPTIONS...] [ARGUMENTS...]
命令 选项 参数
选项:用于启用或关闭命令的某个或某些功能
短选项:-c 多个短选项可合并使用
长选项:--word 如--long等
参数:命令的作用对象(就是向命令提供数据的),命令的参数可以有多个
注意:(1)多选项,以及多参数和命令之间都应该使用空白字符分割;
(2)取消命令执行:Ctrl + c
6、Linux的哲学思想:
一切皆文件(包括硬件),99.9%
小型,单一用途的程序
链接程序,共同完成复杂的任务
避免令人困惑的用户界面
配置数据存储在文本中