# Unix
`Unix` 是在`1969`年美国贝尔实验室的 肯.汤普森开发出来的一款操作系统,什么是操作系统?大家正在玩的 `Windows` 和 `Max OS`就是两个操作系统。操作系统是用户和计算机的接口,同时也是计算机硬件和应用程序的接口,也就是说我们和计算机打交道以及计算机底层硬件和应用程序打交道都是通过操作系统。
而我们所说的`Unix`也是一个操作系统,其源代码大部分都是用C语言写的。它是一个强大的多用户、多任务操作系统,而且支持多种处理器架构。在`1984`年,`Unix`用户协会颁发了使用标准。后来IEEE为此制定了`POSIX`标准(即`IEEE1003`标准)国际标准名称为`ISO/IEC9945`,它通过一组最小的功能定义了在`UNIX`操作系统和应用程序之间兼容的语言接口。这个标准很重要,后面很多系统的开发都是遵循这个标准来的。
虽然`Unix`系统这么好用,但是很不幸,它是一个对源代码实行知识产权保护的传统商业软件,也就是说`Unix`系统源代码不开源,而且`Unix`系统也是一个收费软件。这也直接导致了`Linux`系统的诞生。
# Linux
`UNIX` 最初免费发布,在`1990`年,`UNIX` 在服务器市场尤其是大学校园成为主流操作系统,许多校园都有`UNIX` 主机,当然还包括一些研究它的计算机系的学生。这些学生都渴望能在自己的电脑上运行 `UNIX` 。不幸的是,从那时候开始,`UNIX` 开始变得商业化,它的价格也变得非常昂贵。而唯一低廉的选择就是 `MINIX `,这是一个功能有限的类似 `UNIX` 的操作系统,作者 `Andrew Tanebaum` 开发它的目的是用于教学。
`1991` 年 `10` 月,`Linus Torvalds`(`Linux` 之父)在赫尔辛基大学接触 `UNIX` ,他希望能在自己的电脑上运行一个类似的操作系统。可是 `UNIX` 的商业版本非常昂贵,于是他从 `MINIX` 开始入手,而 `Linus Torvalds` 对`Minix`不是很满意,于是决定自己编写软件。他以学生时代熟悉的`Unix`作为原型, 在一台`Intel 386 PC`上开始了他的工作。他的进展很快,受工作成绩的鼓舞,他将这项成果通过互连网与其他同学共享,主要用于学术领域。他第一次发行的版本很快吸引了一些黑客。尽管最初的 `Linux` 并没有多少用处,但由于一些黑客的加入使它很快就具有了许多吸引人的特性,甚至一些对操作系统开发不感兴趣的人也开始关注它。每当出现新问题时,有人会立刻找到解决办法并加入其中,很快的, `Linux`成为了一个操作系统。值得注意的是 **`Linux`并没有包括`Unix`源码,它是按照公开的`POSIX`标准重新编写的**。`Linux`大量使用了由麻省剑桥免费软件基金的`GNU软件`,同时`Linux`自身也是用它们构造而成。
# Unix 和 Linux 的区别
`Linux`和`UNIX`的最大的区别是,前者是**开放源代码的自由软件**,而后者是对源代码实行知识产权保护的传统**商业软件**。这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主权,而对后者却只能去被动的适应;这种不同还表现在前者的开发是处在一个完全开放的环境之中,而后者的开发完全是处在一个黑箱之中,只有相关的开发人员才能够接触的产品的原型。具体区别如下:
* UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上
* UNIX是商业软件,收费,而Linux是自由软件,免费、公开源代码的
* Linux商业化的有RedHat Linux 、SuSe Linux、slakeware Linux、国内的红旗等,还有Turbo Linux
* Unix主要有Sun 的Solaris、IBM的AIX, HP的HP-UX,以及x86平台的的SCO Unix/Unixware
- 序言
- Linux 的安装
- VMware 的安装
- VMware 的配置
- CentOS 下载与虚拟机硬件配置
- Linux 的分区
- ContOS 安装
- 虚拟机网络配置
- 远程连接工具安装
- 基础(旧)
- Linux 和 Windows 的区别
- 目录结构
- 注意事项
- Linux的常用命令
- 用户及用户组
- 文件及权限
- 目录与文件权限的意义
- 文件及目录管理相关
- 常用命令
- 系统安装
- Linux的简介
- Linux 各发行版介绍
- CentOS的部署
- 基础
- 文件和用户管理
- Linux目录结构
- 文件管理相关
- cd 切换目录
- pwd 显示当前位置
- ls 列出目录下的文件和子目录
- touch 创建文件
- mkdir 创建目录
- cp 复制文件/目录
- mv 移动或改名文件/目录
- rm 删除文件/目录
- chattr 改变文件属性
- lsattr 显示文件属性
- 用户管理
- useradd 添加用户
- passwd 修改用户密码
- id 查看用户ID信息
- userdel 删除用户
- usermod 修改用户信息
- groupadd 创建用户组
- groupdel 删除用户组
- su 切换用户帐号
- sudo 以管理员的身份执行命令
- 权限管理
- chmod 修改文件/目录权限
- chown 修改文件拥有者或所属组
- chgrp 修改文件所属组
- setfacl 设置文件权限列表
- getfacl 查看文件权限列表
- vim的使用
- 进程管理
- ps 查看进程
- top 动态显示进程
- kill 杀死进程
- nice 修改进程优先级
- jobs 显示后台任务列表及任务状态
- fg 将后台运行的进程调整至前台运行
- bg 将在后台暂停进行继续执行
- 磁盘管理
- lsblk 列出块设备信息
- fdisk 磁盘分区
- partprobe 重新读取分区表
- mkfs 建立文件系统(格式化)
- mont 挂载设备
- df 查看磁盘使用情况
- unount 卸载挂载设备
- 交换空间 swap
- free 查看内存使用状态
- mkswap 设置交换分区
- swapon 激活交换空间
- LVM逻辑卷管理
- LMV的工作原理
- pvcreate 创建物理卷
- pvs 查看物理卷
- pvscan 查看每个PV的信息
- pvdisplay 显示物理卷详细信息
- vgcreate 创建卷组
- vgs 查看卷组
- vgscan 查看每个VG的信息
- vgdisplay 显示卷组详细信息
- lvcreate 创建逻辑卷
- vgextend 扩展卷组空间
- lvextend 扩展逻辑卷空间
- resize2fs 调整文件系统大小
- RAID
- 文件查找和压缩
- which 命令查找
- find 根据文件名查找文件
- locate 查找文件
- tar 文件打包
- 软件安装
- RPM包管理
- yum 安装软件
- rpm 安装软件
- 源码包管理
- 计划任务
- at 一次性计划任务
- cron 循环任务
- 日志系统
- 网络管理
- ip 显示或设置网络设备
- OSI简介