Linux

一、Linux操作系统简介

1.1、Linux 发展史

        在Linux出现之前,还有一个家伙Minix,由Andrew S. Tanenbaum教授为了给自己的学员上课,买了Unix计算机操作系统,然后参考Unix但没有任何的代码抄袭,完成了Minix,他把Minix的代码全部开放给他们的大学做研究和教学,到2000年,他正式的把Minix开源,放到互联网上,放到互联网之后,大家发现这个东西非常好,所以在很短的时间内,得到了飞速的传播,大家在使用的过程中发现,这个家伙有点小问题,有人就写好补丁,咨询这个教授,让Minux越来越完善,但是呢Andrew S. Tanenbaum教授不这么想,当时他说,我写这个代码只是为了教学,你们能看懂,我的目的就达到了,我根本不需要任何外来代码,我也没有打算把它做商业发行。

        后来,Linus Torvalds,一个大三的大学生,他把Minix作为模板,然后自己开发了Linux操作系统,把它发布当时也就是91年。

                                 

        Linux经过了二十多年的发展已经拥有了非常众多的版本,分为内核版本和发行版本。

        Linux的核心版本,它的核心版本是由内核的官方网站www.kernel.org来进行发布,目前最新稳定内核是5.3.4,其中5叫做主版本,6叫做次版本,4叫做末版本。如果我在它的内核之上,开发一些工具,开发一个桌面,放我喜欢的图标,或者我把它做一下裁剪,它就会变成各个厂商的发行版本,换句话说,不同的发行版本,它使用的内核应该是基本一致的,区别只是版本不同,都是由内核官网提供的内核,只是它们加入了自己对Linux的理解,所以又把它叫做发行版本,现在Linux的发行版本最少已经有上千种了。

fedora:

        Redhat公司开发的,把它定义成个人版本,这个和Windows的个人版不一样,其实Windows的个人版是阉割版,Windows是这样的,它的一些功能,比如:防火墙服务等等这些服务器是不能在个人版里面安装的,只能安装在企业版中,其实只有一个原因,就是为了挣钱,个人版相对来说更便宜,服务器版买的会更昂贵,因为它的功能更多。而fedora是Redhat每开发一个新软件就把它扔到fedora,每开发一个新功能就把它扔进去,这个软件经过测试吗?这个功能稳定吗?它安全吗?其实都不太好说,所以,fedora不光不是阉割版,而且它的功能还更加强大,图形界面也要比Redhat和CentOS炫的多,如果单比图形界面的话fedora其实比Ubuntu也差不到哪去。但是fedora不适合个人操作,所以,在企业中,用的最多的还是Redhat和CentOS这两个家伙,不过CentOS已经被Redhat收购,所以它还能免费多久不太好说。

1.2、开源软件简介

        开源软件:顾名思义,开放源代码,也就是说,如果是开源软件,我把软件提供给你,你下载的时候,你下载的不是一个经过编译之后的二进制脚本,而是它的实实在在用abcd写的源代码。Linux当中最大的特点就是包括Linux自己在内,我们的软件基本上都是开源软件,给我们的就是源代码。来看一看Linux当中开源软件有哪些有什么特点。

        Apache,网站服务搭建软件,比如写了一个网站,想要别人通过浏览器去访问,在该网站的服务器端必须要利用Apache或者类似Apache的软件,把我的网页发布到互联网上。谁来把这个写好的网站发布到互联网上呢?在Linux当中最常见的就是apache。除了它,我们目前非常火的家伙就是nginx,其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

        开源是开源,免费是免费,开源软件是可以卖钱的,但是在Linux当中这些常见的服务软件这些都是免费的,但是如果你要跟版权公司说,我需要再开发某一个功能,我需要实现一个什么样的服务你得帮我来做,那这种情况是不可能免费来做了。这种具体要求对方会收一定的服务费。

1.3、Linux应用领域

Linux应用非常广泛,主要应用集中在两个方向:

1.3.1、基于Linux的企业服务器

Netcraft | Internet Research, Cybercrime Disruption and PCI Security Servicesicon-default.png?t=N7T8https://www.netcraft.com/

1.3.2、嵌入式应用

1.4、Linux与Windows的不同

1.4.1、Linux严格区分大小写

2、Linux中所有内容以文件形式保存,包括硬件(一切内容兼文件,有些可能是临时生效,就是重启后就没有了,那它就不一定要写成文件形式,只要是永久存在的,一直起作用的,都必须以文件形式保存)

3、Linux不靠扩展名区分文件类型,但我们有一些约定俗成的一些叫法(主要是为了照顾管理员的感受,并不是必需的)

  • 压缩包:”*.gz“、”*.bz2“、”*.tar.bz2“、”*.tgz“等
  • 二进制软件包:”*.rpm“
  • 网页文件:”*.html“、”*.php“
  • 脚本文件:”*.sh“
  • 配置文件:”*.conf“

   可以不写,写了更好

4、Windows下的程序不能直接在Linux中安装和运行(模拟器中是可以的)

二、Linux系统安装

2.1、虚拟机安装

2.2、虚拟机的使用

克隆与快照

2.3、系统分区之分区与格式化

        硬盘当中的分区就类似于柜子里面的衣物,如果不对硬盘做一个合理的规划,把所有的数据都直接丢在一块硬盘里,这样的话,它的查找和读写效率就会非常慢。所以,需要做的第一件事情是把大柜子按照需求分成小柜子:

        衣服可以靠柜子来分类,硬盘也同样可以,我们可以把我的硬盘分为3个分区,假设C、D、E:

        不管你的硬盘到最后装的是什么,但是最起码最初我是规划好的,按照需求我把它分开了。很有可能到最后,这3个分区里边装的都是你的小电影,其他的东西都没地方放了。但是不管怎么样,我一开始做的分区是有我的需求的,何为分区呢?就是把我们的硬盘从逻辑上分成几个不同的存储空间,用来保存不同的数据。分区说是把大硬盘分成小硬盘,但是是你想怎么分就怎么分吗?No,它有一定的规矩:

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

        最多只能有一个

        主分区加扩展分区最多有4个

        不能写入数据,只能包含逻辑分区

  • 逻辑分区

       这是一个通用的概念,只要我的硬盘结构不发生变化,不管是Linux还是windows都要遵循这样的分区规则。

       最早的时候,系统其实只有一种分区类型,就是主分区,但是主分区有一个限制,它最多只能分4个,这个是由我们的硬盘结构决定的:我们的硬盘呢,它把它整个的硬盘分成了一个一个等大小的扇区,每个扇区是512个字节,其中446个字节是用来记录我们的启动信息的,剩下的64个字节用来进行我们的分区表示的。那么64个字节当中,每16个字节表示一个分区,所以它最多只能表示4个分区。

       不管4个分区够用还是不够用,哪怕说我4 个分区,我就够了,但是你强制限制我只有4个分区,让我感觉很不爽,所以,就有了扩展分区。

       我们将其中一个分区拿出来作为扩展分区,比如说:有4个主分区,拿出一个作为扩展分区之后,主分区就只能还分3个,也就是说,主分区加扩展分区最多只能有4个,而且扩展分区对一块硬盘来讲,最多只能有一个。

       那我为什么要分扩展分区呢?

       首先扩展分区是不能写入数据的,那它只有一个作用:在里面包含更多的逻辑分区,也就是说,区分扩展分区和主分区,是为了突破主分区只能有4个限制的主要的方法。

       本来呢,一家3口是够用的,然后父母来了,多添加了两口人,怎么办呢?那我就再不损坏这个柜子整体大小的情况下,隔成3个柜子,3个大柜子,主分区,把第4个柜子里面隔成小柜子,理论上来说,我只要还有足够的空间,我这个4里面就还可以划分出更多的逻辑分区,那么,逻辑非去能划多少个呢?我们Windows是是拿C、D、E、F英文字母来作为盘符,其中A、B是用来作为软驱的盘符,C呢是要作为主分区1的盘符,剩下还有23个字母,所以理论上来说,逻辑分区最多可以再划分23个。

         那么,我们刚刚把大柜子放成了小柜子,我就可以在里面直接放衣物了嘛?No,家里还要把柜子按照需求打成小柜子,分类来存放。柜子如此,硬盘也同样如此,只不过在硬盘当中打隔断的过程,我们把它称作格式化。

        格式化(高级格式化)又称逻辑格式化,它是指根据用户选定的文件系统(如FAT16、FAT32、NTFS、EXT2、EXT3、EXT4等),在磁盘的特定区域写入特定的数据,在分区中划分出一片用于存放文件的分配表、目录等用于文件管理的磁盘空间。

        格式化的根本目的是为了写入文件系统,并非清空内容文件,就好比你想要改变柜子的内部格局,那你是不就要先把里面的衣物取出,然后再进行布局。

我们在做文件系统格式化的时候干了什么呢?主要干了两件事:

1、首先将整个分区分割成等大小的数据块,每一个大小默认是4kb;

        如果我的一个文件大小是10kb,那它可能就会分散到不同的小块中,分成3份:4,4,2,那么这个2的小块还剩余2kb,它还可以存放其他的文件吗?答案是不能。

2、做分区列表

       可以想象成在我的柜门上贴一个二维表,记录着你的文件的ID号、文件的修改时间、文件的权限。当有用户访问的时候先查这个表,匹配权限,如果有权限,让你进入,如果权限不符合,直接拒绝。还要记录我的数据是保存在那些数据块了,当有用户要读取的时候,把这些块里的数据取出来一拼凑就拼接成了这个文件,就可以将它拿走了。

        所以啊,我们说格式化最主要就是为了写入文件系统,对Linux来讲,它写入文件系统,主要干了两个事:将分区分成等大小的数据块、在分区列表里边建立了一个这样的二维表格,里面记录了每个文件的ID、修改时间、权限、文件保存位置等,我们把这个ID号,不称作ID,我们把它叫做 I 节点。

2.4、分区之分区设备文件名与挂载

        如果是Windows,那我分完区、格式化打入隔断了,我现在只要给它盘符,我就可以进行使用了,我们的Windows是采用的是英文字母C、D、E、F。但是呢,在Linux之上,我还要给每一个分区起一个文件名。

       什么意思?Windows是图形界面,所以Windows只要分完分区,我就可以通过Windows自带的这中图形化的磁盘管理工具,就能直接看到。我把分区分成这样,然后只要格式化,格式完成之后,直接右键就可以给它分配盘符,那是因为Windows有图形界面,我可以直观地看到它的每一个分区是什么,然后才可以在上面分配盘符,那我们的Linux就不是这样了。

        所以Windows是分区、格式化、分配盘符就可以使用,但Linux比它多了一步,是分区、格式化、给每一个分区起一个设备文件名、分配盘符。

 

分区设备文件名

  • 设备文件名

        /dev/hda1(IDE硬盘接口)

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

        备注:“hd”:代表IDE接口;“sd”:代表的是SCSI或者SATA接口;“a”:代表的是第一个硬盘,b就是第二个硬盘;“1”:代表第一个分区

 

挂载

        在Linux当中呢,是没有盘符这个概念的,我们把分配的这个盘符叫做挂载点,可以将它当成盘符来理解。挂载是一个过程,就是给分区分配盘符的过程,我们称作挂载。

        挂载点,可以把它当成盘符,但是在Linux中,我们不是拿abcd作为盘符,而是拿目录作为盘符。任何一个目录(部分目录必须和根目录在同一个分区的目录除外,否则系统启不来)都可以作为盘符,哪怕是我手工创建的目录。

  • 必须分区

             /(根分区)

             swap分区(交换分区,内存2倍,不超过2GB)

  • 推荐分区

             /boot(启动分区,200MB)

       根分区和swap这两个分区是必须要分的,根指代的是我们Linux最高一级目录,根分区如果不分,你可以想象根是最高一级目录,根里边要保存其他所有数据,如果你给根不分一个硬盘空间,那这个数据就没有地方可以存了。swap,我们把它叫做交换分区,交换分区听起来不太好理解,换个说法,就是虚拟内存,当我的真实内存不够用的时候,我可以拿swap分区这里面的硬盘空间当内存来使用,那么,交换分区分多大呢?建议分内存的2倍,前提是内存不超过4G,超过了就分等内存大小。

        boot是用来做系统启动的,如果你不分,那它就是和根分区在同一个硬盘空间,所有的数据都会卸载根分区,boot的数据也在根分区里头,那这个时候,有可能我会把根分区写满,一旦写满,你的计算机系统就不能启动了。任何一个计算机要想启动,它都必须要有一定的空间,不需要多大,几十兆就够,但万一连几十兆都没有的话,那就启不来了。

 

三、命令基本格式及文件处理命令

3.1、Linux基本命令格式

        在Linux当中管理员账号是root。

        Linux的默认主机名叫localhost。

        Windows在局域网内,不允许用相同主机名的计算机存在,否则两之间是不能上网,谁也不能通信,它不只是IP不能重叠,主机名也不能,Linux没有这样的一个限制。

        ~:代表我当前所在位置,波浪号是一个简化符号,它代表的是我当前所在的家目录,用户的家。

        Linux是纯字符界面,用户登录之后有一个初始登录位置,这个初始登录位置我们就叫做是这个用户的家。对于管理员来讲,它的家目录是根目录下的root目录。如果是普通用户呢,它是在home下的用户名。

        假如说我是user1用户,那user1用户的家目录就是home下的user1,那要是test用户,它的家目录就是home下的test,在建立这个用户的同时,家目录就会自动生成,所以,每个用户都会有自己的家。如果没有家,它就不能登录到我的这个操作系统当中,区别只是,超级用户的家是根下的一个一级目录,而普通用户的家是home下的二级目录。换句话说,我当前登录的是root,所以我当前所在的家目录就是根下的root,即/root。

 

 

3.2 、文件处理命令

1、目录处理命令和文件处理命令

        查询所在目录位置:pwd:print working directory

        删除空目录:rmdir:remove empty directories

                              rmdir [目录名]

                             用的比较少

        删除文件或目录:rm

                              rm -rf [文件或目录]

                             英文原意:remove

                             选项:

                                   -r         删除目录

                                   -f         强制

       f的意思是force,强制,就是你不用问了

       注意:在Linux中,命令:rm rf /,这条命令是可以执行的,在原先的Linux当中,它会把根目录下所有的数据都删空,现在它会删除99%的数据,但是有极个别的文件删不掉,但是不影响你的系统崩溃

        复制命令:cp  [选项] [原文件或目录] [目标目录]

                        命令英文原意:copy

                            选项:

                                -r    复制目录

                                -p    连带文件属性复制

                                -d   若源文件是链接文件,则复制链接属性

                                -a   相当于 -pdr

      剪切或改名命令:mv [原文件或目录] [目标目录]

                        命令英文原意:move

                     注意:mv 在剪切目录的时候不用加-r   

      剪切:

        改名:原文件和目标文件在同一个目录下,那这就是改名命令,Linux就是用这条命令改名的。

常用目录作用

  • /根目录
  • /bin命令保存目录(普通用户就可以读取的命令)
  • /boot启动目录,启动相关文件
  • /dev设备文件保存目录
  • /etc配置文件保存目录,和服务相关
  • /home普通用户的家目录
  • /lib系统库保存目录,Linux中的函数库保存位置,操作系统中并不是把所有的功能都写在了Linux当中,它把一些常用功能写成一个一个的程序库,这些库都保存在lib下,当我有需要的时候,直接调用它就可以了。
  • /mnt系统挂载目录
  • /media挂载目录
  • /root超级用户的家目录
  • /tmp临时目录
  • /sbin命令保存目录(超级用户才能使用的目录)
  • /proc直接写入内存的
  • /sys同上
  • /usr系统软件资源目录

        usr/bin/系统命令(普通用户)

        usr/sbin/系统命令(超级用户)

  • /var系统相关文档内容

 

         链接命令:ln -s [原文件] [目标文件]

                命令英文原意:link,作用是把原文件生成一个链接的目标文件,有软链接和硬链接之分

                选项:-s 创建软链接

        硬链接特征:

        1、拥有相同的i节点和存储block块,可以看做是同一个文件

        2、可通过i节点识别

        3、不能跨分区     类似于另外一栋楼

        4、不能针对目录使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值