成为进阶Linux大佬的第一步
一、操作系统
1、操作系统为接口的示意图
没由安装操作系统的计算机,被称为 裸机。
- 如果在 裸机 上运行自己所编写的程序,就必须用计算机语言书写程序。
- 如果计算机上安装了操作系统,就可以在操作系统上安装支持的高级语言环境,用高级语言开发程序。
2、不同领域的主流操作系统
桌面操作系统
- windows系列
用户群体大 - macOS
适合开发人员 - Linux
应用软件少
服务器操作系统
- Linux
- 安全、稳定、免费
- 占有率高
- Windows Server
- 付费
- 占有率低
嵌入式操作系统
- Linux
移动设备操作系统
- IOS
- Android(基于Linux)
3、虚拟机
虚拟机指通过软件模拟的具有完整硬件功能的、运行在一个安全隔离环境中的完整计算机系统。
- 虚拟系统通过生成现有的操作系统的全新虚拟镜像,具有真实操作系统完全一样的功能
- 进入虚拟系统后,所有操作系统都是在这个全新的独立的虚拟环境里面运行,可以独立安装进行安装进行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响
- 而且能够在现有系统与虚拟镜像之间灵活切换的一类操作系统
二、操作系统的发展史
1、Unix
1965年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘、显示器),连接一台电脑。
为了解决数量不够用的问题
- 1965年左后由贝尔实验室加入了麻省理工学院以及通用电气合作的计划–该计划要建立一套多使用者(multi-user)、多任务(multi-processor)、多层次(multi-level)的MULTICS操作系统,想让大型主机支持300台终端
- 1969年前后这个项目进度缓慢,资金短缺,贝尔实验室退出了研究
- 1969年从这个项目中退出的 Ken Thompson 当时在实验室无聊时,为了让一台空闲的电脑上能够运行"星际旅行(Space Travel) "游戏,在8月份左右趁着其妻子探亲的时间,用了1个月的时间,使用汇编写出了Unix操作系统的原型
- 1970年,美国贝尔实验室的 Ken Thompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母) ,并且他用B语言写了第一个UNIX操作系统
- 1971年,同样酷爱·星际旅行(Space Travel) 的Dennis M.Ritchie为了能早点儿玩上游戏,加入了Thompson 的开发项目,合作开发UNIX,他的主要工作是改造B语言,因为B语言的跨平台性较差
- 1972年,Dennis M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言
- 1973年初,C语言的主体完成,,Thompson 和Ritchie 迫不及待地开始用它完全重写了现在大名鼎鼎的Unix操作系统
C语言
- 在把UNIX移植到其他类型的计算机上使用时,C语言强大的移植性(Portability)在此显现
- 机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha、SPARC和ARM等机器上运行
- 而c语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后格C源代码编译、连接成目标二进制文件之后即可运行
2、Minix
- 因为AT&T (通用电气) 的政策改变,在Version 7 Unix 推出之后,发布新的使用条款,将UNIX源代码私有化,在大学中不再能使用UNIX源代码
- Andrew S.Tanenbaum (塔能鲍姆)教授为了能在课堂上教授学生操作系统运作的细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议以小型UNIX (mini-UNIX)之意,格它称为MINIX
3、Linux
- 1991年林纳斯(Linus)就读于赫尔辛基大学期间,对Unix产生浓厚兴趣,尝试着在Minix上做一些开发工作
- 因为Minix只是教学使用,因此功能并不强,林纳斯经常要用他的终端仿真器(Terminal Emulator)去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了Linux第一个内核的雏形,当时,他年仅21岁!
- 林纳斯利用GNU的bash当做开发环境, qcc当做编译工具,编写了Linux内核,一开始Linux并不能兼容Unix
- 即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致
- 一开始Linux只适用于386,后来经过全世界的网友的帮助,最终能够兼容多种硬件
三、Linux版本
1、Linux内核版本
- 内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在视设备与应用程序间的抽象层
- Linux内核版本又分为稳定版和开发版,两种版本是相互关联,相互循环
- 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序
- 开发版:由于要试验各种解决方案,所以变化很快
- 内核源码网址: http//www.kernel.org.
2、Linux发行版本
- Linux发行版(也被叫做GNU/Linux发行版)通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件
- 常见的发行版本如下
- Ubuntu
- Redhat
- Fedora
- opensUSE
- Linux Mint
- Debian
- Manjaro
- Mageia
- Centos
- Arch
四、Linux常见命令
[root@localhost ~]#
其中,root代表当前是管理员身份登录,lacalhost是当前主机名称。# 表示为管理员登录,$ 表示为普通用户登录。
- 切换用户
su 用户名 #切换后所在目录不变
su - 用户名 #切换后所在目录变成用户家目录
- 查看当前主机的完整名称
hostname
- 临时设置主机名
hostname 主机名
- 永久设置主机名
hostnamectl set-hostname 主机名
或
vi /etc/hostname(设置完后需重启系统才生效)
按i键先删除旧主机名,再输入新主机名(只有第一行有效)
按ESC键,再按SHIFT + “:” 组合键,输入 wq ,再按回车键退出
- 查看当前系统版本信息
cat /etc/redhat-release
或
cat /etc/*release
- 查看当前内核版本
uname -r
- 临时修改网卡IP
ifconfig ens33 192.168.80.3/24
或
ifconfig ens33 192.168.80.3 netmask 255.255.255.0
- 永久修改网卡IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet #设置网卡类型,“Ethernet”表示以太网
DEVICE=ens33 #设置网卡的名称
ONBOOT=yes #设置网卡是否在 Linux 操作系统启动时激活
BOOTPROTO=static #设置网卡的配置方式,“static”表示使用静态IP地址,“dhcp”时表示动态获取地址
IPADDR=192.168.80.3 #设置网卡的 IP 地址
NETMASK=255.255.255.0 #设置网卡的子网掩码
GATEWAY=192.168.80.2 #设置网卡的默认网关地址
DNS1=192.168.80.2 #设置DNS服务器的 IP 地址
- 重启网卡
systemctl restart network #重启所有的网卡
ifdown ens33 ; ifup ens33
ifdown ens33 #关闭某个网卡
ifup ens33 #启动某个网卡
ifconfig ens33 down #临时禁用某个网卡
ifconfig ens33 up #重新激活某个网卡(不会更新IP地址)
- 查看网卡地址
ifconfig
或
ip a
- 测试网络连接
ping
traceroute (静态跟踪)
mtr (动态跟踪)
- 重启系统
reboot
init 6
shutdown -r now
- 关机
poweroff
shutdown -h now
init 0
- 给命令行提示字符加颜色
PS1="\[\e[1;35m\][\u@\h \W]\\$\[\e[0m\]"