linux 基础概念

自己对Linux的一些理解,从基础开始,以后会持续更新,不太对的地方还望指教

linux简介:

linux 是一个支持多用户,多进程,多线程的实时性较好的功能强大而稳定的操作系统;

多用户理解: 同一时刻,可以有多个用户远程登录一个linux(windows 也可以远程连接,但是当再有一个用户登录时候,前一个会被强制断开远程连接

Linux与UNIX的区别:

最大区别: Linux是开发源代码的自由软件,UNIX是对源代码实行知识产权保护的传统商业软件(当然两者都是操作系统的名称)

Linux的特性:

1.开放性:(指系统遵循开放系统互联(OSI) 国际标准)

2.多任务:(指计算机可以同时执行多个程序,各个程序的运行相互独立)

3.多用户:(系统资源可以被不同的用户使用,每个用户对自己的资源有特定的权限,互不影响)

4.良好的用户界面:(Linux向用户提供了两种界面:GUI界面和命令界面(黑框框的那种))

(还有个系统调用,说是给用户提供编程使用的界面,但是这个不太懂,个人理解就是两个界面,可能有点疏漏。。。。)

5.设备独立性:(指操作系统把所有的外部设备统一看成文件来看待,只要安装他们的驱动程序,任何用户都可以像使用文件一样,使用这些设备,而不必知道他们的具体存在形式(内核具有高度适应能力))

6.提供了丰富的网络功能:(完善的内置网络,网络功能:支持Internet,可以内部文件传输,可以远程登录等)

7.可靠的系统安全:(对权限的控制,带保护的子系统等等)

8.良好的可移植性:(可移植性就是,将操作系统从一个平台移动到另一个平台上,他还可以按照自己的方式运行的能力)

Linux相关名词及解释:

1.GNU:(GNU‘s not UNIX) 是一个自由的操作系统,被自由软件之父 理查德·斯托尔曼 发起开始于1864年;

2.GPL:GNU的通用许可证

Linux的选择:

我选择用centos 7 版本

另外还要Ubuntu, 红旗等。。。

获取Linux镜像地址:

http://mirrors.163.com/centos/

http://mirrors.sohu.com/centos/

https://mirrors.aliyun.com/centos/

https://www.centos.org/

安装:

。。。(安装虚拟机和centos步骤不详说了)

分区注意:

swap分区:相当于windows的虚拟内存,也就是内存数据与硬盘的交换。

swap分区大小:

物理内存<4G ,一般设置为物理内存2倍;

物理内存在4G到16G中间,一般等于物理内存;

物理内存>16G,设置为16G。

至少只需要根分区和交换分区,就可以完成系统安装,但不建议,以下分区建议安装时独立分配:

/boot:存储系统引导信息和内核信息。

/usr:存储系统应用软件信息。

/var:存储系统日志信息。

(Centos 7 下可以选择自动分区。。。。)

Linux启动过程:

BIOS自检--->系统引导GRUB--->启动内核----->系统初始化init

1.BOIS自检:(BOIS 又称输入输出系统)

BOIS 自检就是检测硬件设备是否能正常运行,(例如,最常见的内存松动, BOIS就会检测并报错,系统就无法启动,然后会对硬件设备进行初始化操作(比如开始去执行硬盘驱动器的第一个扇区,但并不关心里面内容是什么,只要去读取扇区内容并执行,然后进行下一步)

(注 : 个人电脑中,Linux启动是从OxFFFF0地址开始的)

2.系统引导lilo/Grub

名词解释:MBR :主引导记录,存储于磁盘的头部,大小为512bytes

GRUB: 多系统启动程序(记住这个就行了,lilo 不需要了解,因为我也不太清楚lilo)

通常情况下,诸如lilo、grub这些常见的引导程序都直接安装在MBR中。我们以grub为例来分析这个引导过程。

GRUB程序会根据/boot/grub/grub.conf文件查找Kernel的信息,然后开始加载Kernel程序,当Kernel程序被检测并在加载到内存中,GRUB就将控制权交接给了Kernel程序。

   注:实际上这个步骤/boot还没被挂载,GRUB直接识别grub所在磁盘的文件系统,所以实际上应该是/grub/grub.conf文件

3.启动内核:

这里就不讲内核怎么启动了,就讲讲内核的作用吧,我不太了解底层知识,所以就直接上有用的干货:

内核的五大作用:管理进程,管理内存,文件系统,设备管理,网络管理;(名词不懂,后续命令时介绍)

4.初始化系统(init):

/sbin/init进程是系统其他所有进程的父进程,当它接管了系统的控制权先之后,它首先会去读取/etc/inittab文件来执行相应的脚本进行系统初始化,如设置键盘、字体,装载模块,设置网络等

(init有7种默式,可以在/etc/inittab 下面查看)

执行/etc/rc.d/rc脚本。该文件定义了服务启动的顺序是先K后S,而具体的每个运行级别的服务状态是放在/etc/rc.d/rc*.d(*=0~6)目录下,所有的文件均是指向/etc/init.d下相应文件的符号链接,rc.sysinit通过分析/etc/inittab文件来确定系统的启动级别,然后才去执行/etc/rc.d/rc*.d下的文件

(/etc/rc.d/rc3.d目录,该目录下的内容全部都是以 S 或 K 开头的链接文件,都链接到"/etc/rc.d/init.d"目录下的各种shell脚本,S表示的是启动时需要start的服务内容,K表示关机时需要关闭的服务内容)

执行用户自定义引导程序/etc/rc.d/rc.local;

完成了系统所有的启动任务后,linux会启动终端或X-Window来等待用户登录

好了,Linux到这就启动了!!!

Linux的组成:

内核,shell,应用程序,文件系统

认识SHELL

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。

查看当前shell: cat /etc/shells

当前系统默认shell: echo $SHELL

Linux命令入门及常用快捷键:

TAB : 自动补全

(^ 表示 Ctrl)

^C 终止前台运行的程序

^D 退出 等价exit

^L 清屏

^A 光标移到命令行的最前端 //编辑命令

^E 光标移到命令行的后端 //编辑命令

^U 删除光标前所有字符 //编辑命令

^K 删除光标后所有字符 //编辑命令

^R 搜索历史命令,利用关键词

ESC.引用上一个命令的最后一个参数,等价于!$

history : 查看历史命令(默认可以保存1000条)(想应的输出结果可以在/etc/profile 中修改,但是要重启才生效,因为改变的是系统的环境变量)

^R //搜索历史命令(输入一段某条命令的关键字:必须是连续的)

!220 //执行历史命令中第220条命令

!字符串 //搜索历史命令中最近一个以xxxx字符开头的命令,例如!ser

!$ //引用上一个命令的最后一个参数

alias : 命令别名

建立临时别名: alias 别名=’内容‘

取消别名: unalias 别名

永久别名: /etc/bashrc 里面添加

命令帮助:

命令 --help

man (man man 可以查看man手册的类型,常用的为 1,5,8)

info (同man)

 

 

你可能感兴趣的:(linux 基础概念)