定义
linux是一个操作系统,与Windows、macos一样,是常见的操作系统之一,一般服务器会部署在Linux操作系统中,稳定应用广泛,Android系统是基于Linux内核的,所以了解Linux相关知识对于程序员来说是很重要的。
前言
Unix是Linux的前身,贝尔实验室的Ken·Thompson(肯 ·汤姆森)发明出来Unix,从批处理到Multics,再到Unix(多用户、分时的操作系统),Unix最开始用汇编语言进行编写,后来开发出高级语言B语言之后是C语言,沿用至今。
Unix仍然非常稳定高效,很多包含重要数据的服务器依然是基于Unix系统的,但是它不是开源免费的,大型公司会买入去开发主机服务器,Unix也发行过很多商业版本,IBM-AIX、HP-UX等,Unix对硬件要求比较高,大家更追求在一台普通的主机上搭建服务。
所以Andrew借鉴了unix的思想,发明了Minux,完全开源,供大家学习,Linus·Torvalds(林纳斯)也是基于这些发明出了Linux,渐渐的Linux占据了越来越多的市场。
git也是linus开发出来的,进行版本管理。
GNU/Linux
所有的操作系统都包含:计算机硬件、内核Kernel(硬件接口层)、命令解释层(Shell)、应用层
GNU/Linux表示一个具体的Linux发行版本,也是一个完整的Linux系统,指的是基于一个Linux内核,添加不同的外围应用程序就可以构建出不同的Linux。内核也是一个核心部分,做内存管理、进程管理、设备驱动、文件系统等。
比较著名的发行版本有
1 Red Hat,包括RHEL(企业版)、CentOS(免费版)
2 Debian,下面的Ubuntu、基于Ubuntu的Mint
3 SUSE,桌面好看基于KDE而不是Gnome
4 Gentoo,安装复杂,速度快(对新手不友好)
5 archLinux(对新手不友好)
另外Android和鸿蒙系统也是基于Linux内核的。
Linux和Windows
安装Linux的发行版本(Centos)
ubuntu更适合个人学习,我之前博客记录过下载安装过程:安装centos也是大同小异,可以参考。
安装VMware Ubuntu系统_Tsuky1的博客-CSDN博客
centos适合做一些服务部署,这次来安装centos ,下载地址:centos下载
选择好对应主机版本,点进去/isos文件夹,接下来进入下一个文件夹,然后会看到很多镜像,选择一个下载即可。
WSL是Windows下提供的一个Linux环境 有时间可以研究一下
linux的文件系统
linux一切皆文件,区别于Windows系统,它只有一个根目录/,像树结构,Windows的盘符C、D、E像是一个森林,
Windows是\,Linux下是/,接下来介绍Linux根目录下的各个文件。
bin目录:binary的缩写,二进制目录,存放机器码,存放可以直接执行的常用命令。
sbin目录:和bin一样,这两个目录都有一个小箭头,这个小箭头是代表链接,是对其地址的引用,sbin存放的是系统级的命令。
lib\lib32\lib64\:代表library的简称,是一个库目录,类似于Windows下的system的目录,也是有着箭头指向的。
usr:包含了用户所需要的所有的应用程序和文件数据
boot:逻辑上单独挂载在一个分区上,引导启动的时候需要的一些核心文件,内存不需要太大。
dev:device的缩写,是一个设备目录,硬件设备在上面有对应的映射。
etc:系统管理需要的配置文件,比如安装数据库的对应的配置文件就会在这里
home:家目录,每个普通用户自己相关的个性化的文件和属性
root:超级用户的家目录,桌面目录
opt:optional,可选目录,给第三方软件包留下的位置
media:可移动光驱的挂载点,识别U盘光驱等
mnt:另外一个media,加外部存储指定挂载在某个路径下
proc:进程目录,存放的是一些硬件和当前进程的信息
run:存储当前系统运行起来的所有实时信息,重启后就没有了
srv:service的缩写,是存放和系统服务相关的信息
sys:存放系统硬件信息的文件。
tmp:临时文件
var:变量,存放可以修改的东西,比如日志等