Unix发展史
1965年,美国麻省理工学院(MIT),通用电气公司(GE)及AT&T的贝尔实验室联合开发Multics工程计划,其目标是开发一种交互式的具有多道程序处理能力的分时操作系统,但因Multics追求的目标过于庞大,项目进度远落后于计划,最后贝尔实验室宣布退出。
1969年,贝尔实验室的肯·汤普森因游戏《宇宙漫游》在DEC POP-T机器上开发UNIX系统。
1971年,肯·汤普森的同事丹尼斯·里奇发明了C语言(为了重写UNIX),在1973年UNIX系统的绝大部分代码用C语言重写,为UNIX的可移植性打下了基础。
常见Unix
操作系统 公司 硬件平台
AIX IBM PowerPC
HP-UX HP PA-RISC
Solaris Sun SPARC
Linux的发展
minix由谭宁邦发明,开源发布与1987年,用于教学研究,2000年重新改为BSD授权,称为自由和开放的源码软件。
Linus Torvalds (李纳斯·托瓦兹)在芬兰大学用Minix的操作平台搭建了一个新的操作系统内核,把他叫做Linux。
常见Linux
内核版
2.6.32 REHL 6 (内核官网:www.kernel.org)
3.10.x REHL 7
发行版
RedHat系列
个人版:Fedora
企业版:REHL(Redhat Entetprise Linux)5 、 6 、 7
社区版:CentOS
SUSE
Debian系列
Ubuntu
注:
内核是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
常见开源软件
Apache web服务器
Nginx web服务器
MySQL 数据库(SQLserver,Oracle)
MongoDB NoSQL数据库 (用于优化MySQL数据库,redis新的软件,更好用)
Samba Linux和Windows之间的内网文件服务器
PHP 脚本语言
Python 脚本语言
Ruby 脚本语言
Sphinx 中文分词
GPL原则:如果使用开源软件,那么再开发软件也必须是开源的。
Linux应用领域:网站、游戏、嵌入式
Linux文件系统:EXT2 EXT3 EXT4(主要使用) XFS(支持动态扩容)
分区步骤:
①分区
②格式化
③设备文件名
④挂载点(挂载点是用户访问分区的接口)
挂载:把设备名和空目录链接起来的过程
注意事项
1)Linux下所有内容都是文件
2)Linux下严格区分大小写
3)Linux不以扩展名区分文件类型,而是靠权限,但是有特例,如压缩文件rpm软件包文件
4)所有的可存储设备都必须挂载使用,包括硬盘
5)Linux分区表示 /dev/hda1 a:第一块硬盘 1:第一个分区
hd:IDE接口硬盘,
sd:SCSI,STAT接口硬盘
6)Linux分区
至少要有根分区和swap分区才能启动,建议还要有boot分区
boot 启动分区 200MB
swap 交换分区(虚拟内存)如果真实内存小于4G,swap是内存2倍,大于4G,则一致
/ 根分区(必须要有)
Linux IP配置
1) setup On boot打星号*(开启网卡)
2) on boot=yes(开启网卡)
3) service network restart(重启网卡服务)
4) 虚拟机设置
设置为桥接
连接到有线网卡
service network restar
5) UUID冲突(唯一识别符)(只针对复制镜像生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth0(删除MAC地址行)
rm -rf /etc/udev/rules.d/70-persistent-net.rules(删除MAC和UUID绑定文件)
reboot(重启系统)
常用配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 网卡配置文件
/etc/udev/rules.d/70-persistent-net.rules MAC与UUID的绑定文件(CentOS 6.8)
网卡配置
ONBOOT=yes 网卡开机自启
BOOTPROTO=static IP获取方式(none | static | dhcp)
IPADDR=192.168.28.179 ipv4地址
NETMASK=255.255.255.0 子网掩码
GATEWAY=192.168.28.1 默认网关
DNS1=202.106.0.20 DNS1
DNS2=8.8.8.8 DNS2
ifconfig eth0 192.168.28.179/24 临时配置ip和netmask ,重启后失效
关闭防护
iptables:(防火墙)
iptables -F 清空防火墙法则
service iptables stop 停止防火墙服务
chkconfig iptables off 让防火墙服务开机不自启动
SELinux:行为控制工具(内核级控制工具)
临时:setenforce 0 (0/1) 0:半关闭(规则失效) 1:开启
getenforce 获取当前selinux状态
永久:vim /etc/selinux/config
SELINUX = enforcing(1)
= permissive(0)
= disabled(关闭)
注:重启服务器才生效
常见远程工具
Putty SecureCRT Xshell
注意事项
1) Linux下严格区分大小写(Linux没有大写命令,但有大写选项)
2) Linux系统中一切皆文件
3) Linux不以扩展名区分文件 (人为标注文件格式.gz .bz2 .tar.bz2 .tgz .rpm)
4) 所有设备都要挂载
5) Windows程序不能在Liunx下直接安装和运行
6) Linux中出现大写X一般指图形
常用位置(约定俗成)
1) /usr/local/ 软件安装位置
2) /usr/local/src/ 源程序保存位置
3) /usr/srv/kernels/ 内核源码
4) /var/lib/mysql/ MySQL(rpm安装)
5) /var/www/html/ 网页位置(rpm安装)
服务器维护建议
1) 服务器不能关机,只能重启(因为在远程,建议4点到5点,用定时任务重启)
2) 重启时应关闭服务(保护硬盘,因为服务开始时硬盘在高速读写)
3) 不要在访问高峰运行高负载命令(4点到5点,用定时任务运行)
4) 远程配置防火墙时不要把自己踢出服务器(用定时任务运行脚本让防火墙每5分钟清空一次)
5) 密码三原则
6) 合理分配权限(不要随便分配太高权限,不要嫌麻烦,自己操作,管理员权限不要随便给别人)
7) 定期备份重要数据和日志(数据备份必须是异地,多次,防止意外使数据丢失)
注:
软件的两种安装方式会导致安装位置不同
MySQL安装后会在/tmp/中生成粉色套接字文件(.sock)可人为指定
配置文件修改永久生效
函数库:函数是具有特定功能的代码
目录介绍
/ 根目录
├── bin 系统命令目录,所有用户可执行。
├── boot 存放用于系统引导时使用的各种文件
├── cgroup
├── dev 设备文件保存位置
├── etc 系统管理文件和配置文件
├── home 普通用户家目录
├── lib 标准程序设计库,又叫动态链接共享库,即函数库保存位置
├── lib64 系统调用函数库保存位置
├── lost+found 保存意外关机时的无家可归的碎片文件
├── media 挂载目录,系统建议挂载媒体设备
├── misc 挂载目录,系统建议挂载NFS服务等的共享目录
├── mnt 挂载目录,早期Linux中只有这一个挂载目录,可在该目录下建相应的目录挂载设备
├── net
├── opt 第三方软件安装位置,但习惯安装在/use/loacl/
├── proc 虚拟文件系统,数据只保存在内存中
├── root 超级用户(root)家目录
├── sbin 系统环境设置相关命令,超级用户执行,部分命令普通用户可查看
├── selinux 行为控制工具相关目录
├── srv 服务数据目录
├── sys 虚拟文件系统,与proc类似,主要保存内核相关信息
├── tmp 临时文件目录,不能保存重要数据,建议每次开机都清空
├── usr 系统软件资源目录
│ ├── bin 系统命令目录,所有用户可执行,但这些命令与系统启动无关
│ ├── sbin 根文件系统不必要的系统管理命令
│ ├── lib 函数库保存
│ ├── local 软件安装目录,新建相应的目录安装软件
│ │ ├── src 源码包保存位置,手工下载的源码包习惯保存在这里
│ ├── share 系统应用程序资源保存位置,如帮助文档等
│ ├── src 源码包保存位置,但习惯保存在/usr/local/src/
│ ├── linux 内核源码保存位置,需新建该目录
└── var 动态数据保存位置
├── lib 程序调用或改变的数据保存位置
├── spool 队列数据目录,比如打印队列,邮件队列
│ ├── mail 新邮件队列保存位置
│ ├── cron 系统定时任务队列保存位置
├── log 系统日志保存位置
├── run 服务或程序的PID(进程号)文件保存位置