菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
107
0

Linux初识

原创
05/13 14:22
阅读数 7649

一、 Linux的由来

UNIX发展史和发行版本

  1. 起初是由美国麻省理工学院(MIT)、通用电气公司(GE)及AT&T( 美国电话电报公司)的贝尔实验室联合开发Multics工程计划,其目标是开发一种交互式的具有多道程序处理能力的分时操作系统,但因Multics追求的目标过于庞大复杂,项目进度远远落后于计划,最后贝尔实验室宣布退出。导致了这个工程计划的搁置。
  2. 在1969 贝尔实验室的肯·汤姆森在这个工程上写了一个类似宇宙大战的类似游戏,发现运行速度极其缓慢,非常影响游戏的体验,为了提高他自己玩游戏的这样一个体验,所以他又自己写了一个 Unix,但是由于他所在的贝尔实验室是隶属于AT&T这个公司,这个公司的主要是业务,不是很重视软件这一方面的业务,所以得不到大量的推广以及使用,所以呢,Unix也没有在当时火起来
  3. 之后在1971年, 肯·汤姆森和他的朋友丹尼斯·李琦 他们又在一起玩这个游戏的时候,丹尼斯·李琦觉得这个游戏玩起来很垃圾,于是在这样一个原因的驱动下,他们开始将Unix大部分使用c重写,因为当时Unix是用B语言写的,改成C 后,UNix便可以不怎么对硬件要求很高的情况下,使用者在使用时对环境做一些纤维的变化,便可以很好的使用Unix,这也为后来的提升系统的可移植性打下基础;

MINIX发展史

  1. 但是由于Unix一些版权方面的限制,它不是开源的软件,所以它的学习成本很高,但是当时为了方便可以更好地教学,荷兰的一位教授决定写一个不包含任何AT&T源代码的UNIX系统,名为MINIX(即小型的UNIX),并开放全部源代码给大学教学和研究工作,也正是由于它的开源,所以它很快的风靡全球,短时间内便迅速的活了起来,同时在使用者们使用的同时,也发现了minix存在一些漏洞,这时有一些大佬便写了这个minix的补丁,发给了荷兰的这位教授,但是教授当时回复说,为了保证minux的纯洁性,所以这个补丁也没有被采用。

Linux的诞生

  1. 之后在1991 芬兰大学生 Linus Torvalds (林纳斯),便想开发一个一套免费使用和自由传播的类Unix操作系统,Linus Torvalds虽然深受Minix的启发写出了第一版本的Linux内核,但这种启发更多的是精神上的,Linux的设计与MInix的微内核设计理念截然相反,由此便写了 linux(log戴帽子的企鹅),源代码开放的Unix;伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善Linux,使其最大化地适应用户的需要。由于是开源软件。开放源码、没有版权、技术社区用户多等特点,linux由此由此在来自全世界的各位大佬的不断地修补,更新,也使linux系统的更加的安全,稳定,健壮。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,它还被当作服务器,甚至当作网络防火墙,这是Linux的一大亮点。

  2. 关于linux的logo:

    企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于当今世界上的任何国家,当今任何国家无权将南极洲纳入其版图。Linux选择企鹅图案作标志,其含意也是表明:开源的Linux,为全人类共同所有,任何公司无权将其私有。

二、Linux内核版本与发行版本

  • 内核版本:原生态的linux,内核版可以在官网:www.kernel.org 进行下载。

  • 发行版本:各个公司或者个人拿来内核版本作了私人处理,比如加上自己喜欢的界面、对内核版本微调整等。

    Linux的魅力或威力来自哪里?那就是,由于众多发行版百花齐放,Linux的阵营日益壮大,每一款发行版都拥有一大批用户,开发者自愿为相关项目投入精力。Linux发行版可谓是形形色色,它们旨在满足每一种能想得到的需求。

    1. Debian

    Debian运行起来极其稳定,这使得它非常适合用于服务器。Debian平时维护三套正式的软件库和一套非免费软件库,这给另外几款发行版(比如Ubuntu和Kali等)带来了灵感。Debian这款操作系统派生出了多个Linux发行版。它有37500多个软件包,这方面唯一胜过Debian的其他发行版只有Gentoo。Debian使用apt或aptitude来安装和更新软件。

    Debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户。Debian支持如今的大多数架构(处理器)。

    下载Debian ISO映像文件:http://www.debian.org/distrib/

    2. Gentoo

    与Debian一样,Gentoo这款操作系统也包含数量众多的软件包。Gentoo并非以预编译的形式出现,而是每次需要针对每个系统进行编译。连Gentoo社区都觉得Gentoo安装和使用起来很困难;不过它被认为是最佳学习对象,可以进而了解Linux操作系统的内部运作原理。提到Gentoo总有人这么说:"如果你要学用Linux发行版,那就学用该发行版吧;如果你学会了Gentoo,也就学会了Linux。"Gentoo使用portage来安装和更新软件。

    Gentoo这款操作系统适合对Linux已经完全驾轻就熟的那些用户。

    下载和安装Gentoo:http://www.gentoo.org/main/en/where.xml

    3. Ubuntu

    Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。作为Debian Gnu Linux的一款衍生版,Ubuntu的进程、外观和感觉大多数仍然与Debian一样。它使用apt软件管理工具来安装和更新软件。它也是如今市面上用起来最容易的发行版之一。Ubuntu使用基于apt的程序包管理器。

    Ubuntu是新手用户肯定爱不释手的一款操作系统。

    下载Ubuntu ISO映像文件:http://www.ubuntu.com/download

    4. Damn Vulnerable Linux

    当然,大多数人可能对这款发行版前所未闻,不过该发行版在本文中还是占有一席之地。那么,它有何过人之处呢? Damn Vulnerable Linux恰如其名:其字面意思就是"该死的易受攻击的Linux"。Vulnerable Linux(DVL)根本不是一般意义上的优秀的Linux发行版。它有意捆绑了坏的、配置不当的、过时的、很容易被不法分子攻击的软件。

    它的目的在于借机训练Linux管理员。还有什么比给Linux管理员一款坏的发行版去排解问题来得更管用的吗?面对Apache、MySQL、PHP、FTP和SSH等比较旧或破的版本,接受训练的管理员够有得忙了。

    Damn Vulnerable Linux堪称旨在训练管理员的实验室。

    5. 红帽企业级Linux

    这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管理员进行培训和认证。就全球市场而言,总利润中80%来自支持,另外20%来自培训和认证,不过在印度不是这样。

    在印度,红帽的利润中80%来自认证和培训,只有20%来自支持。而Fedora是个平台,而不是开发新产品或新应用程序的测试环境;一旦成为稳定版,就与红帽企业级Linux捆绑在一起,包括支持。红帽提供了非常多的稳定版应用程序,但是众所周知的缺点是,把太多旧程序包打包起来,支持成本确实相当高。不过,如果安全是关注的首要问题,那么红帽企业级Linux的确是款完美的发行版,它使用YUM程序包管理器。红帽企业级Linux是系统管理员的第一选择,它有众多的程序包,还有非常到位的支持。由于该发行版是商业化产品,所以不是免费的

    补充说明:通常认为,开发了该发行版的Marc Ewin将该产品命名为红帽,因为他丢失了似乎很心爱的那顶红色帽子,帽子是他爷爷在他过生日时送的礼物。

    6. CentOS

    CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红帽企业级Linux;对他们来说,CentOS值得一试。此外,CentOS的外观和行为似乎与母发行版红帽企业级Linux如出一辙。 CentOS使用YUM来管理软件包。非常稳定的程序包;谁要是想在桌面端测试一下服务器的运作原理,都应该试试这款操作系统。

    下载CentOS 6.4 DVD ISO映像文件:http://wiki.centos.org/Download

    7. Fedora

    小巧的Fedora适合那些人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包。Fedora同样使用YUM来管理软件包。

    下载Fedora 18(Spherical Cow)DVD ISO映像文件:http://fedoraproject.org/en/get-fedora

    8. Kali Linux

    Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。Kali的前身是Backtrack。用于Debian的所有Binary软件包都可以安装到Kali Linux上,而Kali的魅力或威力就来自于此。此外,支持Debian的用户论坛为Kali加分不少。Kali随带许多的渗透测试工具,无论是Wifi、数据库还是其他任何工具,都设计成立马可以使用。Kali使用APT来管理软件包。毫无疑问,Kali Linux是一款渗透测试工具,或者是文明黑客(我不想谈论恶意黑客)青睐的操作系统。

    9. Arch Linux

    Arch是一款采用滚动发行方式的操作系统:只要安装一次就够了;每当发行了某个新版本,就可以升级发行版,不需要重新安装。Pacman是Arch Linux的软件包管理器。Arch Linux既支持X86处理器架构,又支持X86_64架构,安装程序可以从光盘或U盘来运行。Arch旨在从开发者的角度而不是从用户的角度做到力求简单。Arch配置和安装起来超容易。它真是一款面向高手的发行版,让你可以了解Linux系统的每一个细枝末节。

    下载Arch Linux ISO映像文件:https://www.archlinux.org/download/

    10. OpenSuse

    OpenSuse这款Linux发行版是免费的,并不供商业用途使用,仍然供个人使用。OpenSuse的真正竞争对手是红帽企业级Linux。它使用Yast来管理软件包。有了Yast,使用和管理服务器应用程序就非常容易。此外,Yast安装向导程序可以配置电子邮件服务器、LDAP服务器、文件服务器或Web服务器,没有任何不必要的麻烦。它随带snapper快照管理工具,因而可以恢复或使用旧版的文件、更新和配置。由于让滚动发行版本成为可能的Tumbleweed,可将已安装的操作系统更新到最新版本,不需要任何的新发行版。

    SUSE在管理员当中的名气更大,因为它有Yast以及让系统管理员能够自动管理任务的其他此类应用程序,同样水准的其他发行版没有这项功能。

    下载OpenSuse 12.3 DVD ISO映像文件:http://software.opensuse.org/123/en

  1. 服务器端:
    redhab和Fedora属于一个公司的两个版本;
    centOS 社区开发版本;
  2. 桌面版
    debian | ubuntu | knoppix|suse|arch|(下载镜像就可以直接运行,免安装);

三、linux的应用领域

  1. 企业服务器

    在这里可以通过一个网址访问 www.netcraft.com 它是一个扫描工具,比如我们熟知的腾讯 www.qq.com,你去在这个扫描工具里面查会发现他用的服务器全是linux操作系统,还有淘宝www.taobao.com,采用的也全是linux操作系统,就连微软www.download.micrsoft.com,他们的服务器也是linux操作系统,当然还有其他的,比如运维人员 、开发人员也全部用的是linux

  2. 嵌入式领域

    例如手机,平板,熟知的有安卓系统和ios系统,其中安卓系统他就是采用linux内核的基础上建立的,iOS系统他的内核也是使用的Unix

    智能家电:机顶盒,智能电视,电饭锅基本上都是采用的安卓系统,就是linux做底层的系统支撑

  3. 电影娱乐业领域:

    比如好莱坞有名的影片阿凡达、坦坦尼克号、指环王 等也都是在linux的操作系统里面进行影片的剪辑,修改,还有迪士尼为了节约成本,将他所有的服务器全部都换成了linux操作系统

四、linux的系统安装

  1. VMware虚拟机安装与使用

    VMware是一个虚拟pc的软件,可以在现在操作系统上虚拟一个新的硬件环境,相当于模拟出一台新的PC,以此来实现一台机器上真正同时运行两个操作系统

    vmware官方网站 http://www.vmware.com

    1. vmware的主要特点
    • 不需要重新分区或重新开机就能在同一台pc上使用两种以上的操作系统,(最好的是这两个系统还可以相互通信)
      • 本机系统可以与虚拟机系统网络通信
      • 可以设定并且随时修改虚拟机操作系统的硬件环境(硬盘可随意修改)
    1. 建议的VMware配置
      • CPU:建议主频为1GHz以上
      • 内存:建议1GB以上
      • 硬盘:建议分区空闲空间8GB以上
  2. 磁盘分区

    1. 磁盘分区是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分。碟片一旦划分成数个分区(Partition),不同的目录与文件可以储存进不同的分区。

      eg:柜子--合理分区--数据合理的存取

    2. 分区类型:

      • 主分区:最多只能有4个

      • 扩展分区:

        1. 最多只能有一个
        2. 主分区加扩展分区最多有4个
        3. 不能写入数据,也不能格式化,只能包含逻辑区分
      • 逻辑分区:可以正确的写入数据和格式化(这个不是linux系统的限制,是硬盘的限制,只要硬盘的结构不发生变化,这种限制就会一直存在)

        eg:柜子--

  3. 格式化

    1. 硬盘必须经过格式化才能写入数据,当然这里的格式化指的是高级格式化,又称逻辑格式化(就是为了写入数据),(如windowns可识别的格式有--<FAT16、FAT32、NTFS>、linux可识别的格式有--<EXT2、EXT3、EXT4>等),在磁盘特定的区域写入特定的数据,在分区中划出一片用于存放文件分配表,目录表等用于文件管理的磁盘空间。当然有了格式化还是不能写入数据,他必须还要遵守一定得规则才能将数据正确的写进去,比如linux系统默认的格式EXT4,他在进入格式化的时候,必须要把此区域分为一个一个等大小的数据块(block),大小为4kb,为了数据可以更好地读取,有一个叫做磁盘碎片针,他可以将无序的、存了数据的4kb块有序的放在一起,从而方便数据的读取。当然了,有了磁盘碎片针,可以方便数据的读取,但是用户有怎么可以从这些数据块中,或者文件分区中读到正确的他自己想要的数据呢?这时候就出现了一个文件分区表,他会将每一个存放数据的文件编上编号,这个编号就称为i节点号

      大--小--格式化--block--i节点号

  4. 硬件设备文件名

    硬件 设备文件名
    IDE硬盘 /dev(硬件文件)/hd[a-d]
    SCSI/SATA/USB硬盘 /dev/sd[a-p]
    光驱 /dev/cdrom或/dev/sr0
    软盘 /dev/fd[0-1]
    打印机(25针) /dev/1p[0-2]
    打印机(USB) /dev/usb/1p[0-15]
    鼠标 /dev/mouse
  5. 分区设备文件名

    1. 设备文件名

      • /dev/hda1 (IDE硬盘接口第一个分区,数字指该硬盘下第几个分区)

        IDE硬盘:最古老的一种传输数据的硬盘,硬盘之间的不同主要他们接口的传输速度,ide传输速度133MB/s

      • /dev/sda1 (SCSI硬盘接口、SATA硬盘接口)

        SCSI硬盘:是与IDE硬盘同时代的硬盘,价格更加昂贵,SCSI硬盘传输速度200MB/s,主要用于服务器

        SATA:上面的已经被淘汰了,现在已经发展到了SATA1、SATA2、SATA3代,传输速度500MB/s,目前不论是服务器还是个人机,基本都是SATA硬盘。

  6. 挂载

    1. 必须分区

      • / (根分区)
      • swap分区(交换分区,内存2倍,不超过2GB、虚拟内存)
    2. 推荐分区

      • /boot (启动分区,200MB)

  7. 虚拟机的网络配置

    • Bridged(桥接模式)

    桥接模式相当于虚拟机和主机在同一个真实网段,VMWare充当一个集线器功能(一根网线连到主机相连的路由器上),所以如果电脑换了内网,静态分配的ip要更改。图如下:

    • NAT(网络地址转换模式)

    NAT模式和桥接模式一样可以上网,只不过,虚拟机会虚拟出一个内网,主机和虚拟机都在这个虚拟的局域网中。NAT中VMWare相当于交换机(产生一个局域网,在这个局域网中分别给主机和虚拟机分配ip地址)

    • Host-Only(仅主机模式)

    主机模式和NAT模式很相似,只不过不能上网,相当于VMware虚拟一个局域网,但是这个局域网没有连互联网

五、Linux注意事项

  1. 命令令严格区分大小写(只有小写),文件命名,命令选项,用户名都是

  2. 所以内容以文件形式保存,包括硬件

  3. 硬盘文件是/dev/sd[a-p]

  4. 光盘文件是/dev/sr0等

  5. linux不靠扩展名区分文件类型

    压缩包:*.gz*.bz2*.tar.bz2*.tgz

    二进制软件包:.rpm

    网页文件:.html,*.php,

    脚本文件:*.sh,

    配置文件:*.conf

  6. linux所有的储存设备都必须挂载之后用户才能使用,包括硬盘、U盘、光盘、

  7. windows下的程序不能直接在linux中安装和运行

  • Linux各目录的作用
目录名 目录作用
/bin/ 存放系统命令的目录,普通用户和超级用户都可以操作。不过放在/bin下的命令在单用户模式下也可以执行
/sbin/ 保存和系统环境设置相关的命令,只有超级用户可以使用这些命令进行系统环境设置,但是有些命令可以允许普通用户查看
/usr/bin/ 存放系统命令的目录,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行
/usr/sbin/ 存放根目录系统不必要的系统管理命令,例如多数服务程序。只有超级用户可以使用。大家其实可以注意到Linux的系统,在所有的“sbin”目录中保存的命令只有超级用户可以使用,“bin”目录中保存的命令所有用户都可以使用
/boot/ 系统启动目录,保存系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
/dev/ 硬件设备文件保存位置,我们已经说过Linux中所有内容以文件形式保存,包括硬件。那么这个目录就是用来保存所有硬件设备文件的
/etc/ 配置文件保存位置。系统内所有采用默认安装方式(rpm安装)的服务的配置文件全部都保存在这个目录当中,如用户账户和密码,服务的启动脚本,常用服务的配置文件等
/home/ 普通用户的家目录。建立每个用户时,每个用户要有一个默认登录位置,这个位置就是这个用户的家目录,所有普通用户的家目录就是在/home下建立一个和用户名相同的目录。如用户user1的家目录就是/home/user1
/lib/ 系统调用的函数库保存位置
/lost+found/ 当系统以外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsckg工具会检查这里,并修复已经损坏的文件系统。这个目录只在每个分区中出现,例如/lost+found就是根分区的备份恢复目录,/boot/lost+found就是/boot分区的备份恢复目录
/media/ 挂载目录,系统建议是用来挂载媒体设备的,例如软盘和光盘
/mnt/ 挂载目录,早期Linux中只有这一个挂载目录,并没有细分。现在这个目录系统建议挂载额外设备,如U盘,移动硬盘和其他操作系统的分区
/misc/ 挂载目录。系统建议用来挂载NFS服务的共享目录。我们在刚刚已经解释了挂载,童鞋们应该知道只要是一个已经建立的空目录就可以作为挂载点。那么系统虽然准备了三个默认挂载目录/media、/mnt、/misc,但是到底在哪个目录中挂载什么设备都可以由管理员自己决定。例如超哥接触Linux的时候,默认挂载目录只有一个/mnt一个,所以养成了在/mnt下建立不同目录挂载不同设备的习惯。如/mnt/cdrom挂载光盘,/mnt/usb挂载U盘,这都是可以的。
/opt/ 第三方安装的软件保存位置。这个目录就是放置和安装其他软件的位置,我手工安装的源码包软件都可以安装到这个目录当中。不过我还是更加习惯把软件放置到/usr/local/目录当中,也就是说/usr/local目录也可以用来安装软件
/proc/ 虚拟文件系统,该目录中的数据并不保存到硬盘当中,而是保存到内存当中。主要保存系统的内核,进程,外部设备状态和网络状态灯。如/proc/cpuinfo是保存CPU信息的,/proc/devices是保存设备驱动的列表的,/proc/filesystems是保存文件系统列表的,/proc/net/是保存网络协议信息的
/sys/ 虚拟文件系统。和/proc目录相似,都是保存在内存当中的,主要是保存于内核相关信息的
/root/ 超级用户的家目录。普通用户家目录在“/home”下,超级用于家目录直接在“/”下
/srv/ 服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据
/tmp/ 临时目录。系统存放临时文件的目录,该目录下所有用户都可以访问和写入。我们建议此目录不能保存重要数据,最好每次开机都把该目录清空。
/usr/ 系统软件资源目录。注意usr不是user的缩写,而是“Unix Software Resource”的缩写,所以不是存放用户数据,而是存放用户数据,而是存放系统软件资源的目录。系统中安装的软件大多数保存在这里,所以除了/usr/bin/和/usr/sbin/这两个目录,我在介绍几个/usr/下的二级目录
/var/ 动态数据保存位置。主要保存缓存、日志以及软件运行所产生的文件

服务器注意事项

  • 远程服务器不允许关机,只能重启

  • 重启时应该关闭服务

  • 不要在服务器访问高峰运行高负载命令

    什么是高负载命令?----全盘扫描,复制,查找,压缩

  • 远程配置防火墙时不要把自己踢出服务器

    什么是防火墙?---- 他是一个过滤或门槛,主要靠ip地址,端口号,mac地址,还有包中的数据来判断是否可以通过---eg:渔网

    配定时任务,按时清空防火墙内容

  • 指定合理的密码规范并定期更新(强壮)

  • 合理分配权限(给用户分配权限,够用就好)

  • 定期备份重要数据和日志(人生苦短,快点备份)

发表评论

0/200
107 点赞
0 评论
收藏
为你推荐 换一批