linux 基础教程 图文并茂笔记.docx
- 文档编号:8666287
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:46
- 大小:3.59MB
linux 基础教程 图文并茂笔记.docx
《linux 基础教程 图文并茂笔记.docx》由会员分享,可在线阅读,更多相关《linux 基础教程 图文并茂笔记.docx(46页珍藏版)》请在冰豆网上搜索。
linux基础教程图文并茂笔记
linux:
1.linux的安装。
本套教程我们使用VMWare7.0+RedhatAS4进行演示。
VMWare是一个虚拟机软件,说白了就是我们现在没有真实的能安装linux的机器,所以要用虚拟机软件在我们的windows系统的机器上虚拟出一台机器,然后安装linux,方便我们测试使用。
一般的电脑不能直接装linux?
由于linux对硬件有特定的要求,所以它一般不能直接安装在普通的电脑上,实际开发中,我们使用的linux是安装在linux服务器上的,这个服务器是厂家把硬件帮你配置好,非特殊情况,你很少接触到linux服务器,很少会让你在服务器上直接安装linux,操作linux,部署及调试程序等,这些操作都是通过远程的客户端间接进行。
正是因为我们没有硬件条件,VMWare虚拟机才要帮我们创造这个条件,否则无法进行linux的学习。
VMWare是在我们的windows机器上获取一系列的硬件资源,虚拟出一台机器,把原来电脑中不兼容的硬件,经过VMWare的处理都变得兼容linux了,在你的眼里,虚拟出来的机器应该和真实的机器没有两样。
有了VMWare,我们就拥有了一台能安装linux系统的机器了。
VMWare7.0的安装:
下载它的安装文件,在vmware官网注册一个账号(账1035097367@密xxx,以后下载,首选是官网,注意习惯。
),在首页的:
选择相应的版本下载即可,我下的是7.0(含VMwareTools的一体包),教程用的是5.5,但是5.5已经不支持win7了。
我安装文件下载后放在了”E:
\SoftDevelop\linux\vmware7.0”,点击安装文件进行安装即可,那些英文你基本都能看懂。
RedhatAS4是linux其中一个服务商的产品,严格意义上的linux只是一个内核系统,它只有和硬件打交道的最核心的程序,没有配套的外围软件,但是如果给你一个linux内核,是没有什么用的,我们始终还是使用运行在linux上的软件,而在linux上安装软件,脚本,编译程序等都是比较麻烦的,所以出现了这样一批厂商,它帮你把一系列的软件在linux上安装好了,就变成了一个产品,一个所谓的linux版本,或者说是发行套件,然后卖给你直接使用,RedhatAS4就是Redhat公司的其中一个版本的套件,与其类似的公司还有很多:
所以会出现五花八门的linux版本,他们都是基于linux原始内核进行外围封装的,只是封装的方式不同而已。
所以笼统的把这些公司封装出来的linux都称为linux的版本,而实际上真正的linux版本是指linux内核的版本。
就Redhat而言,它的linux又分为两种类型,一种是桌面操作系统,个人电脑用的,另外一种是服务器操作系统。
我们一般不会接触到linux的桌面操作系统,因为国内几乎没有人直接在linux上开发上层的客户端,一般都是windows上开发好,部署到linux上,所以只要说到linux,我们指的都是linux的服务器操作系统。
这里说两句题外话,为什么就不能用桌面操作系统来做服务器操作系统呢?
非要用基于命令行的操作系统来作为服务器操作系统,因为后者占用资源少,系统本身小,系统中的软件占用的资源也比图形界面的小,它比图形界面的系统更单纯,坚固,不容易崩溃,并且linux是开源的,所以他容易控制,所以安全。
linux的内核对以下部分的内容进行处理:
就是硬件呀,内存呀,数据的传输呀(I/O),文件系统呀(VFS),还有进程管理等。
这里解释一下什么叫文件系统,windows下的FAT16,FAT32,NTSF等就是文件系统,同一块硬盘空间,可以被划分成不同的形状、大小的格子来存放数据,这些不同的划分形式就是不同的文件系统。
linux也有一系列和windows类似的文件系统,它们之间一般是不兼容的,它们不能相互拷贝数据,不能互相转换等,但是后来linux出现了VFS文件系统(虚拟的文件系统),原来互不兼容饿文件系统经过VFS的处理就兼容了,VFS如同统一的interface,在它看来,所有的文件系统都是一样的,它实际上是在原有的不同的文件系统中抽象出了一层,帮编程人员屏蔽了一层,编程的时候我们只需要针对VFS编程即可,而不需要针对其底层的各种文件系统编程,简化了编程,可以类比JDBC。
另外就是linux的进程管理,在windows中,进程是静态的概念,是重量级的东西,而linux的进程则相当于windows的线程,是轻量级的概念,linux没有线程的概念。
linux内核的版本号的含义:
linux的版本号由三部分组成,格式是r.x.y,如2.0.38,其中2表示该版本可发性(releaseversion可发行的版本),一般还有β版(bata版,客户测试过的版本),α版(Alpha版,开发商自行测试的版本);0表示稳定版本,因为他是偶数,如果是奇数,表示开发中的版本,一般发行套件中的这个数字不会出现奇数;最后的38指错误修补的次数。
RedhatAS4的安装(以vmware7.0演示):
首先下载RedhatAS4的安装光盘,一共四个iso镜像光盘,我放在了”E:
\SoftDevelop\linux\RedhatAS4”。
打开vmware7.0:
如果安装的过程中出现:
这个问题,进入bios→config→CPU,将disabled都变成enable就可以。
下一步是配置虚拟机的硬件配置,这个忘了截图,我配置了1g内存,两个处理器,每个处理器一个核心(上面其实是虚拟机创建的过程,有了机器才能装系统)。
点击finish,就进入了RedhatAS4的正式安装,自动进行一系列的安装,直到第一张光碟安装完毕,会停下来换碟(如果是win8系统,会出现“notenoughphysicalmemoryisavailabletopoweronthisvirtualmachine….”提示内存不足,以管理员身份再运行VMware就行了):
换完碟之后点上面对话框的”OK”会继续安装系统。
下面的操作是一样的,直到全部的碟读完。
其实换碟的标准操作应该是单机左边栏的虚拟机→右键→settings...→找到光驱→换碟→换完后再点击linux系统中的”OK”(这个操作貌似不行)。
这个过程和我们操作一台真实的机器很像。
不过上面提供的”ChangeDisc”按钮方便我们换碟而已:
当四张碟都换完之后,它会让你再换一次第一张碟。
然后就是一段长时间的初始化。
。
。
它会自行安装VMwareTools,因为我下载的VMware是含有VMwareTools的一体包,安装VMwareTools之后最显著的特点就是鼠标可以在虚拟机屏幕和本机屏幕间平滑切换了,而不用按ctrl+alt从虚拟机屏幕中释放鼠标。
系统装好后出现”IcannotstarttheXserver...”的错误,不知道什么意思,重启后就能进入系统了。
输入密码后弹出这玩意,应该是记住密码的
上面我们在虚拟机上安装完成了linux,但是当前没有条件在真实的机器上安装,老马说,如果有机会在真实的机器上安装,会遇到的最严重的问题是找不到linux硬件驱动,有些硬件厂商压根没有linux的驱动,不知道有没有linux万能驱动之类的...所以他建议尽量找老一点的硬件进行安装,最好先把硬件的型号记下来,但是极少遇到这种情况,一般的linux服务器都是买现成带系统的,要维修的时候估计也轮不到你。
Linux硬件兼容查询地址:
2.linux硬盘分区的问题。
教程中的安装方式在安装的过程中是需要对硬盘进行分区的,但是我的安装过程没有遇到,估计他是默认为你自动分区了。
那么下面就说一下分区的一些基本知识。
和分区离不开的概念是格式化,格式化就是为当前分区设定一个文件系统,顺序是先分区再格式化,这样就能为每个分区进设定不同的文件系统。
硬盘中存放数据类似hash表的存放方式,具体看资料汇总的“297.Map接口”。
硬盘存放数据也不是顺序存放的,所以像DiskGenius这些软件有“调整分区大小”的功能,它是先将硬盘中的数据紧密规律放在一起,然后把空余的地方分割,这样才能保证硬盘数据不丢失。
一块硬盘最重要的是硬盘分区表(MBR,MasterBootRecord,包含硬盘主引导程序和硬盘分区表),它记录着硬盘分区的情况,每个分区从哪个地方到哪个地方,方便进行数据的存取,如果分区表破坏了,数据无法存取,硬盘就报废了。
分区有三种类型:
主分区,扩展分区,逻辑分区,主分区一般是指装系统的分区,但是不一定,你可以把系统装载其他分区,DiskGenius可以把某个分区激活为活动分区,就是这个意思。
扩展分区一般指的是不装系统的主分区。
而逻辑分区是在扩展分区上分出来的分区。
不管是什么系统,主分区+扩展分区的总和不能超过4个,因为硬盘分区表只能记录4条数据。
但是为什么我们的电脑可以有n个分区呢?
因为我们的电脑一般是这种情况,一个主分区装系统,一个扩展分区,在扩展分区上,我们会分出好多的逻辑分区,这个数量不限,所以表面上,你会得到n个分区,我们直接使用的是主分区和逻辑分区,而扩展分区只是一个概念,它是逻辑分区的基体。
在每个扩展分区上,又有一个分区表,记录着每个逻辑分区的情况,逻辑分区之间是互不干扰的,可以有自己的文件系统。
事实上,我们将linux装在一个文件夹中并不考虑,应该专门腾一个分区出来安装。
linux系统把机器中的所有设备都当做是文件的形式来处理,这些文件分为字符文件和二进制文件(块文件),其实是按照这些设备读取数据的方式来区分的,键盘,打印机等等字符为单位读取的设为为字符设备,分别映射成Linux中的一个字符文件;硬盘,U盘,光驱等以数据块方式读取数据的设为称为块设备(blockdriver),映射到linux中块文件。
将这些设备映射为文件的原因是编程方便,把跟底层的设备交互变成了跟文件的数据交互,比如你想让打印机打印东西只需要向相应的文件中写入数据即可。
分区的命名。
linux中分区的命名不像windows的c,d,e,f...盘顺着来命名,而是根据硬盘的类型,硬盘所在的接口,硬盘中分区的情况来命名的,而且对于分区的命名,用户无权过问,完全由linux的命名规则决定。
首先是硬盘的类型,分为hd和sd,分别代表IDE和SCSI硬盘,不过我们是用虚拟机启动的linux,虚拟机把我们的硬盘类型统一认为是SCSI的,所以分区的前两个字母是sd。
然后是硬盘插在哪个接口上,linux机器的主板上的硬盘接口是a,b,c,d...排列的,那么插在第一个接口上的IDE硬盘就是hda,一般称为第一块IDE硬盘,插在第二个接口上的SCSI硬盘是sdb,一般称为第二块SCSI硬盘。
最后用数字代表分区,1,2,3,4必须是主分区或者扩展分区,而逻辑分区永远从5开始。
所以/dev/hda3中的hda3就是某个分区的全称了,它表示第一块IDE硬盘的第三个主分区或者扩展分区,而/dev/sdb6,表示第二块SCSI硬盘的第二个逻辑分区。
下面的图解析磁盘分区很直观,截下来:
windows分区:
windows和linux分区命名对比:
3.下面开始,就应该学习linux的一些基本命令了。
【startx】进入linux图形界面。
如果开机启动linux进入命令行状态,你想进入图形界面状态时可输入此命令。
linux中的图形界面称为xwindow,所以startx是启动xwindow的意思。
进入图形界面后,我们依然可以启动一个命令行终端,像windows中启动cmd一样,在linux桌面中右键→openterminal即可:
【cd/】进入根目录。
linux的根目录就是”/”,cmd也可以输入cd/,进入的是C盘,而linux中没有什么盘什么盘的,它是从根目录/开始旅程的。
cd后面可以跟绝对路径,也可以跟相对路径,跟绝对路径就是把从/开始到目标目录的路径写全了,跟相对路径就是一级一级的进入下一个目录,而不是跟路径。
cd..返回上层目录,cd.是当前目录,你也可以在..或.后面跟一条路径,也是一种相对路径的做法。
【pwd】会显示一条完整的目录路径,告诉你当前处于什么位置。
【whoami】告诉你当前使用的用户名。
【ls】列出当前目录下的所有文件。
相当于windows的dir吧。
但是直接ls只会列出目录或者文件名,你根本分不清哪个是目录哪个是文件,常用的参数有【ls-l】,它会竖排的列出每个目录或者文件的信息。
如你在/dev目录下输入【ls-l】命令,就会看到非常丰富的文件类型的文件了(最左边的是文件类型+文件权限):
文件类型是c开头,表示字符设备文件,如键盘。
文件类型是l开头,表示链接文件,用ln命令产生的文件。
文件类型是b开头,表示块设备文件,如硬盘,软驱。
文件类型是s开头,表示套接口文件,如当我们启动MySQL服务器时,会产生一个mysql.sock的文件。
文件类型是d开头的,就是我们最常见的目录文件。
文件类型是-开头的,就是普通文件,如图像工具、文档工具等。
用touch指令创建的文件。
既然说到这里,就顺便把列出来的其他信息也简单说明一下,上面的信息从左到右的含义分别是:
【-rw-r--r--】【1】【root】【root】【585】【Aug1618:
43】【yp.conf】
【文件类型属主权限组权限其他权限】【(硬)链接数】【所有者】【用户组】 【字节数】【日期时间】【文件名】。
这里说一下linux中的文件权限,我们知道ls-l列出的内容中,第一段内容必须有10个字符,第一个字符表示文件的类型,后面的9个字符,分成三组,三个字符一组,每一组都由r,w,x,-这四个字符组成,分别表示read,write,execute和null,第一组权限是拥有着权限,第二组权限是同组用户权限,第三组权限是其他用户权限,对于每组权限,都必然是rwx的顺序排列,表示可读可写可执行,如果某一位字符上用”-”代替了,表示没有该权限,如-wx表示没有读的权限,以此类推。
修改用【chmod】指令,chmod+w1.txt表示为1.txt的三个权限组都加上write权限(也可以用-w,就是去掉write权限),而chmodu+w1.txt表示仅为拥有者权限组加上write权限,因为u表示user,另外g表示group,o表示other,这样你就可以分别为同组成员指定权限,以及为其他成员指定权限。
但是以上这种方式使用chmod效率太低了,不专业呀,下面我们要使用一条chmod指令来改变所有权限组的所有权限,做法是chmod7531.txt,意思是,既然有三组用户权限,我就用三个数字去修改,当你把这三个数字转换为二进制数字时,就会发现,7→111;5→101;3→011,每个数字都会转换为三个二进制数字,如果把每个二进制数字对应一位权限,1表示有该权限,0表示没有该权限,就能同时指定所有权限组的所有权限了。
所以753的意思是,拥有者权限是rwx,同组权限是r-x,其他用户权限是-wx。
当你要修改权限的时候,思路刚好是倒过来的,比如要把权限修改成r-xrwxr--,先变成对应的二进制数101111100,然后把每组的二进制数变成十进制即574。
这里顺便把修改文件所有者也说一下,用【chown】指令,表示changeowner,使用方式【chown用户名文件名】,前提是该用户名已经存在。
如:
执行chowndisalong1.txt后变成:
如果你修改了一个目录的所有者为A,那么该目录下创建的所有文件的所有者都是A了。
【ls–R】是树状结构列出目录结构。
【cddev】在根目录的基础进入dev目录,这个目录存放着所有设备的映射文件。
输入ls命令后可以看到dev目录下的所有文件,这些文件都是以设备名来命名的,所以就印证了linux下的所有设备都是一个目录或者文件。
现在你已经在dev目录下了,你看到很多的设备目录,如cdrom,你想进入这些设备目录,是直接cdcdrom吗?
不是,尽管linux把所有的设备都映射为dev目录下的目录,但是这些目录并不是随便直接就能进的,你必须将他们挂载后方可访问,所谓的挂载就是将设备目录和现有的普通目录关联起来,你通过访问关联后的普通目录就可以间接的访问设备目录了。
原则上你可以把设备目录挂载在任何一个普通目录上,包括根目录,但是约定俗成的,我们会在/mnt/目录下新建一个目录对设备文件进行挂载,如挂载cdrom,就在/mnt/目录下新建一个名为cdr的目录,然后进行挂载操作,指令如下:
解释上面过程,因为我是以普通用户disalong的身份启动的terminal(终端),所以我必须切换到管理员身份才能进行下面的操作,因为新建文件夹等的操作就必须管理员身份,否则报“Permissiondenied”的错误,即不够权限,普通用户切换到管理员输入【su】,然后它会让你输入password,然后,下面的操作显示的用户名就是root了,当你用su来切换用户之后,默认的当前路径为该用户的主目录。
如果你想切换回disalong,执行【sudisalong】或者【exit】指令即可。
接着我们进入/mnt/目录下,用【mkdircdr】创建名为cdr的新目录(文件夹),mkdir是makedir的意思,创建新目录,删除某个空目录是【rmdir目录名】,rmdir是removedir的意思,但是如果该目录不是空的,使用【rm–rf目录名】就可以删除连同该目录一起的所有子目录,当然,你也可以使用【rm–r目录名】,此时每删除一个目录它都会让你确定一下,一般不用。
告诉你,-r这个参数很多命令都有,一般是表示递归(Recursion)操作的意思,比如删除,copy,move一个目录呀,如果这个目录不是空的,我们一般都要用-r命令来进行操作,表示递归的把该目录下的全部子目录都进行同样的操作,而-f则表示强制(force)的意思,所以rm-rf是强行递归删除。
接着我们使用【mount/dev/cdrom/mnt/cdr】指令就可以将/dev/cdrom这个设备目录挂载在/mnt/cdr目录上,mount是挂载的意思,挂载完成后会出现“mount:
blockdevice/dev/cdromiswrite-protected,mountingread-only”这样一句警告,意思是虽然现在你可以访问cdrom了,但是它是只读的。
然后我们进入cdr就可以ls出cdrom中光盘的所有内容,前提是此时虚拟机的cdrom中有光盘。
那么不想挂载cdrom呢?
先退出cdr文件夹,执行【umount/dev/cdrom】进行反挂载(卸载),否则会出”deviceisbusy”的错误,因为你当前正在cdrom内呢,当然busy。
这里有个概念叫挂载点(mountpoint)指的就是上面的cdr目录。
(进行反挂载后,可以使用【eject】命令来弹出光驱)。
不单只cdrom呀,dvd呀,mouse呀等的设备有挂载点,硬盘中的每个分区也应该有挂载点,否则你访问不到分区中的内容。
这是windows用户不习惯的地方,windows相当于把硬盘的分区帮你主动挂载在某个目录下,或者说给每个分区都绑定一个盘符,这样用户就根据盘符来访问分区中的内容,此时,目录和分区融为一体了。
而在linux中,目录就是目录,硬件就是硬件,你要使用硬件,必须先将它挂载在目录中,像上面挂载cdrom的操作一样,你可以任何的硬件挂载在任何的目录中,也就是说,挂载点是任意的,然后你往挂载点中写入数据,硬件就会记录着,下次挂载访问的时候,数据依然存在。
当你卸载该硬件后,腾出的挂载点又可以挂载别的硬件,往硬件中写入数据,相当于挂载点就是水龙头,硬件就是桶,你可以用一个水龙头往所有的桶中装水,也可以为每个桶指定一个水龙头,每个桶习惯性的就去指定给它的水龙头中拿水。
而一般的,我们不会只用一个挂载点去挂载所有的硬件,这样不方便记忆和管理,而是习惯为每个硬件指定一个挂载点,如果让我们手动分区,一般都会有下面这些区:
自动分区会采取以下方案:
上面这些目录说白了就是挂载点,当你把硬盘分成多个区,每个区就是可以对号入座的挂载在上面的这些目录上,从目录的名字你可以知道这个分区的大概功能,而根据这个功能,有经验的人就可以判断这个分区需要多大空间,这样就能充分利用磁盘的空间。
其实和我们装windows时分区的原理是一样的,用来装系统的,分配40g,装Database的分配30g,装Sofe的分配100g,装Learn的分配250g,把整个硬盘按需进行分配,方便管理和充分利用。
区别在于windows的“挂载点”和分区(或所有硬件)都是一对一绑定的,而linux则挂载点和分区(或所有的硬件)每个是完全分开的,没有绝对的联系,只有当分区(或所有的硬件)挂载到挂载点后,两者才是绑定的,此时,windows和linux没有太大区别,不过linux的每个挂载点都可以挂载任何的硬件,显得比较灵活,但是使用上却没有windows方便(这是我习惯了使用windows的原因?
)。
上面的哪个挂载点要挂载哪个硬盘分区,你应该心里有数,因为分区都是你自己分出来的,分区的大小也是你自己划定的,某个分区要做什么内容,你当然要心里有数,这样的话,你就知道该分区要挂载到哪个挂载点上了。
至于分区挂载到挂载点后,会写入什么类型的内容,图片上已经写明了,但是,这只是linux的“建议”,当然,当你用久了,你就会习惯它这种建议,把软件装载/user分区中把临时文件放在/var分区中等等,不需要强背这些东西。
【touch文件名】,这个命令用于创建普通的文本文件,而不是目录。
这个“文件名”要跟上后缀名吗?
你可以跟,但是没有意义,如touch1和touch1.txt在linux看来意思一样。
也就是说,在linux中,文件的后缀只有提示意义,没有实际意义,它只能让你习惯性的觉得1.txt我最好把它当做文本文件,而1.exe我最好把它当做可执行文件,实际上1.txt可以是任何类型的文件,它可能是文本文件,也可能是可执行文件,所以并不像windows对文件后缀的严格规定,linux中的文件后缀没有技术意义,只有提示意义,你可以写,也可以完全不写,看你的习惯,反正没有意义。
删除文件使用【rm-f文件名】来执行。
【cp】copy,拷贝文件。
如【cp/1/home/2】意思是将/目录下的1文件copy一份到/home,并且命名为2。
注意,这种格式只能copy文件,不能copy目录,若要copy目录,则加-r参数,如【cp–r/a/home/b】,注意,/a必须是一个目录名。
【mv】move,移动、剪切文件。
和cp的用法差不多,不多说了。
【vi】相当于windows中的notepad记事本。
当我们用touch指令来创建一个文件,然后就可以用这个vi指令来打开了这个文件进行编辑了,如【vi文件路径】,但是就算当前根本没有这个文件,你直接【vi文件路径】,它也会帮你自动创建一个文件,原则是有则打开,没有则新建。
打开记事本之后:
刚开始进入记事本的时候,你想编辑内容,是不行的,因为linux的记事本有两种状态,刚开始进入的是命令行状态,只能敲命令,不能编辑内容,敲命令前先敲”:
”。
如果你想编辑内容,要进入编辑状态,就是敲一下a就直接进入编辑状态了,你就可以输入任何字符了。
当你输入完内容后想保存内容、退出记事本、想进行内容的大量选定、整行的删除等操作,你就必须回到命令行模式,敲一下Esc即可,同时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 基础教程 图文并茂 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)