Unix/Linux环境使用(基础篇)(一)

简介: Unix/Linux环境使用(基础篇)(一)

Unix/Linux操作系统介绍


e53de2390da64a8d8de5b7683b918afc.png


1.1 操作系统的作用

作为用户与计算机硬件系统之间的接口

操作系统算是一个巨大的软件,用来给软件系统提供能够简单控制硬件系统的接口。通过操作系统,用户能够方便、快捷的操纵计算机硬件和运行自己的程序。

  • 1.1.1 操作系统的目标


fbeb3d043764487f8bbdda4c2a36493c.jpg


  1. 方便:使计算机系统易于使用
  2. 有效:以更有效的方式使用计算机系统资源
  3. 扩展:方便用户有效开发、测试和引进新功能


1.1.2 操作系统的地位

操作系统在计算机系统中承上启下的地位:向下封装硬件,向上提供操作接口。


f7e9c49abead497cb21517e6329513b0.png


1.2 Unix/Linux操作系统介绍

1.2.1 Unix家族

  1. 1965:贝尔实验室(Bell Labs)加入一项由通用电气和麻省理工学院合作的计划,该计划要建立一套多使用者、多任务、多层次的MULTICS操作系统。后来因为项目太为复杂失败。
  2. 1969:其主要开发者Thompson(后被称为UNIX之父)和Ritchie领导一组开发者,开发了一个新的多任务操作系统—UNICS,后来被改名为Unix,最初的Unix是用B语言和汇编语言混合编写而成。
  1. 1971:两人在贝尔实验室共同发明了C语言,并于1973用C语言重写了Unix。
  1. 1974:UNIX第一次出现在贝尔实验室以外。此后UNIX被政府机关,研究机构,企业和大学注意到,并逐渐流行开来。
  1. 1980:有两个最主要的Unix的版本线,一个是Berkeley的BSD UNIX,另一个是AT&T的Unix,两者的竞争最终引发了Unix的战争,最终导致Unix出现各种各样的变种。
  1. 1982:AT&T基于版本7开发了UNIX System Ⅲ的第一个商业版本,并不再开源。
  1. 1992~2001:由于版权问题,AT&T公司与BSD开发组开始了一场将近10年的版权官司。UNIX由于其昂贵的费用,仅局限于大型机的应用;BSD因为版权问题,失去了宝贵的发展时期。


1.2.2 Linux家族

Minix(mini-UNIX)最初是由Andrew Tanenbaum教授,仿照4.3BSD的源代码,白手起家完成了12000行C语言的编写工作这个系统只是一个教学工具,没有什么实际应用价值。



080056d3ea3a4dd9b0a104109fa40f61.jpg


  1.   1990年,Linus Torvalds决定编写一个自己的Minix内核,初名为Linus' Minix,意为Linus的Minix内核,后来改名为Linux,此内核于1991年正式发布,并逐渐引起人们的注意。
  2.   Linux操作系统的诞生、发展、和成长过程依赖于五个重要支柱:unix操作系统、minix操作系统、GNU计划、POSIX标准和互联网。
  3. GNU计划:GNU是“GNU is Not Unix”的递归缩写,由Richard M.Stallman于1984年创办,旨在开发一个免费、类unix的操作系统-GNU系统及其开发工具;Emacs编辑系统、BASH shell程序、GCC、GDB等开发工具都是GNU组织的产品。
  4. 1992年Linux与其他GNU软件结合,完全自由的操作系统正式诞生。该操作系统往往被称为“GNU/Linux”或简称。
  5. POSIX标准:POSIX标准定义了操作系统应该为应用程序提供的接口标准,POSIX标准用来统一Unix、Linux各分支编程接口,以提高其通用型和可移植性。


1.2.3 Linux的两类用户

1b55425637a245dd9ab86bf7e7b6cc1e.jpg


1.2.4 Linux的远亲



a7974078653747ba943e45b97ce10ddc.png


1.2.5 Linux和Unix的联系

2.5 Linux和Unix的联系


  1. UNIX系统是工作站上最常用的操作系统,它是一个多用户、多任务的实时操作系统,允许多人同时访问计算机, 并同时运行多个任务。UNIX系统具有稳定、高效、安全、方便、功能强大等诸多优点,自20世纪70年代开始便运行在许多大型和小型计算机上。
  2. UNIX虽然是一个安全、稳定且功能强大的操作系统,但它也一直是一种大型的而且对运行平台要求很高的操作系统,只能在工作站或小型机上才能发挥全部功能,并且价格昂贵,对普通用户来说是可望而不可及的,这为后来Linux的崛起提供了机会,Linux是一个类UNIX操作系统。
  3. Linux是免费的、不受版权制约、与UNIX兼容的操作系统。


总结一下 Linux 和 UNIX 的关系/区别


Linux 是一个类似 Unix 的操作系统,Unix 要早于 Linux,Linux 的初衷就是要替代 UNIX,并在功能和用户体验上进行优化,所以 Linux 模仿了 UNIX(但并没有抄袭 UNIX 的源码),使得 Linux 在外观和交互上与 UNIX 非常类似。

说模仿可能会被人喷,你也可以说微创新或者改进。


相比于 UNIX,Linux 最大的创新是开源免费,这是它能够蓬勃发展的最重要原因;而目前的 UNIX 大部分都是收费的,小公司和个人都难以承受


1.2.6 Linux内核及发行版介绍


(1) Linux内核版本

内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。


998a1861a5bf420f8f26a6a7b6b9d808.jpg


Linux内核版本又分为稳定版和开发版,两种版本是相互关联,相互循环:


  1. 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序。
  2. 开发版:由于要试验各种解决方案,所以变化很快。


内核源码网址:http://www.kernel.org,所有来自全世界的对Linux源码的修改最终都会汇总到这个网站,由Linus领导的开源社区对其进行甄别和修改最终决定是否进入到Linux主线内核源码中。

 

2) Linux发行版本


Linux发行版 (也被叫做 GNU/Linux 发行版) 通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。


这些操作系统通常由Linux内核、以及来自GNU计划的大量的函式库,和基于X Window的图形界面,在X Window中用户同样可以通过使用鼠标对窗口、菜单等进行操作来完成相应的工作。


X Window系统是一个非常出色的图形窗口系统,是类UNIX系统的图形用户界面的工业标准。X Window系统最重要的特征之一就是它的结构与设备无关。


X Window系统的主要特点有如下几点:


  1. X Window系统是客户机/服务器结构的。X Window的实现是与操作系统内核分开的,其主要由X Server和X Client两部分组成。
  2. X Window系统不是Unix/Linux操作系统的必须的构成部分,而只是一个可选的应用程序组件。


0ec87db7912649f089ab8a8de34b4a9d.png


POSITION

2015

2014

1

Linux Mint

Linux Mint

2

Debian

Ubuntu

3

Ubuntu

Debian

4

openSUSE

openSUSE

5

Fedora

Fedora

6

Mageia

Mageia

7

Manjaro

Arch

8

CentOS

Elementary

9

Arch

CentOS

10

Elementary

Zorin


1.2.7 Unix/Linux开发应用领域介绍


  1. Unix/Linux服务器

是目前Unix/Linux应用最多的一个领域,可以提供Web、FTP、Gopher、SMTP/POP3、Proxy/Cache、DNS等服务器,支持服务器集群,支持虚拟主机、虚拟服务、VPN等。

  1. 嵌入式Linux系统

嵌入式Linux是将流行的Linux操作系统进行剪裁修改,能够在嵌入式计算机系统上运行的一种操作系统。Linux嵌入式系统能够支持多种CPU和硬件平台,性能稳定,剪裁性好,开发和使用容易。其中包括Embedix、uCLinux、muLinux等。



1e58e61ff0c7460bbdf06deb0ebdfd33.jpg

1.桌面应用


近年来,Linux系统特别强调在桌面应用方面的改进,并且已达到相当的水平,完全可以作为一种集办公应用、多媒体应用、网络应用等多方面功能于一体的图形界面操作系统,在办公应用方面,Unix/Linux集成了openOffice、SUN公司的StarOffice以及KOffice等工具。

b1f3610fa2e445f3b8086868b31eaf0f.jpg


  1. 电子政务

随着Linux的快速发展,Linux已逐渐成为Windows系统重要的竞争力量。尤其是Linux在安全性方面的独特优势,又使得Linux在政府应用领域得到很大的发展。目前一些国家正将其电子政务系统向Linux平台迁移。中国政府也对Linux给予极大的支持。


2.  文件系统


2.1 目录和路径

目录是一组相关文件的集合。

一个目录下面除了可以存放文件之外还可以存放其他目录,即可包含子目录。

72c29d2a793e4116861cf56446644ac3.jpg

2.1.2 路径

Unix/Linux路径由到达定位文件的目录组成。在Unix/Linux系统中组成路径的目录分割符为斜杠“/”,而DOS则用反斜杠“\”来分割各个目录。

路径分为绝对路径和相对路径:


  1. 绝对路径
  2. 绝对路径是从目录树的树根“/”目录开始往下直至到达文件所经过的所有节点目录。
  3. 下级目录接在上级目录后面用“/”隔开。
  4. 注意:绝对路径都是从“/”开始的,所以第一个字符一定是“/”



e841d88ed1ef4218b47d709c52d210ac.jpg



 

  相对路径

  1. 相对路径是指目标目录相对于当前目录的位置。
  2. 如果不在当前目录下,则需要使用两个特殊目录“.”和“”了。目录“.”指向当前目录,而目录“..”。



2.2 文件系统

2.2.1 Windows和Linux文件系统区别


在 windows 平台下,打开“计算机”,我们看到的是一个个的驱动器盘符:


1dd8a61bcaa944ab96dbaaf7d6a28453.png

每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示:

3c711e3964314115addbe0c19fb88b7c.png


在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录):



86e681e75a9245e1a3fc6cf53136a263.png



193316d78a1f4234bb877d6b000b1cc0.png


在早期的 UNIX 系统中,各个厂家各自定义了自己的 UNIX 系统文件目录,比较混乱。Linux 面世不久后,对文件目录进行了标准化,于1994年对根文件目录做了统一的规范,推出 FHS ( Filesystem Hierarchy Standard ) 的 Linux 文件系统层次结构标准。FHS 标准规定了 Linux 根目录各文件夹的名称及作用,统一了Linux界命名混乱的局面。


和Windows操作系统类似,所有Unix/Linux的数据都是由文件系统按照树型目录结构管理的。而且Unix/Linux操作系统同样要区分文件的类型,判断文件的存取属性和可执行属性。


Unix/Linux也采用了树状结构的文件系统,它由目录和目录下的文件一起构成。但Unix/Linux文件系统不使用驱动器这个概念,而是使用单一的根目录结构,所有的分区都挂载到单一的“/”目录上,其结构示意图如图所示:


beca0180e2b44a4ea730ce9ed24b82a1.jpg


无论何种版本的 Linux 发行版,桌面、应用是 Linux 的外衣,文件组织、目录结构才是Linux的内心。


2.2.2 Linux目录结构


  1. /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。
  2. /bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
  3. /boot:放置linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub。
  4. /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。
  5. /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d。
  6. /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~edu 表示用户 edu 的家目录。
  7. /lib: /usr/lib: /usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助。
  8. /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下。
  9. /mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载。
  10. /opt:给主机额外安装软件所摆放的目录。
  11. /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。
  12. /root:系统管理员root的家目录。
  13. /sbin: /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用。
  14. /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。
  15. /srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内。
  16. /usr:应用程序存放目录,/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man:  程序说明文件存放目录。
  17. /var:放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。
相关文章
|
15天前
|
Ubuntu Linux Shell
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
(已成功解决)Linux环境报错—bash: wget: command not found;常见Linux发行版本,Linux中yum、rpm、apt-get、wget的区别;Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
182 68
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
|
3月前
|
安全 Linux 网络安全
Linux环境中安装和使用Paramiko
Linux环境中安装和使用Paramiko
183 12
|
3月前
|
Java 关系型数据库 MySQL
Linux环境
Linux环境
43 5
|
12天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
19天前
|
Unix Linux 编译器
UNIX/Linux 上的安装
UNIX/Linux 上的安装。
37 2
|
2月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
46 4
|
3月前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
573 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
2月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
138 3
|
2月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
59 3
|
3月前
|
Ubuntu 应用服务中间件 Linux
Linux下搭建Nginx环境的搭建
Linux下搭建Nginx环境的搭建
82 6