linux

Linux简介

Linux 操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU计划、POSIX 标准和Internet 网络

1991年初,林纳斯·托瓦兹开始在一台386sx兼容微机上学习minix操作系统。1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统

1991年的10月5日,林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核的诞生。

 2003年12月,Linux 2.6版内核发布,相对于2.4版内核2.6在对系统的支持都有很大的变化

Linux发行版本

Linux的发行版说简单点就是将Linux内核与应用软件做一个打包,目前已知的Linux发行版本已经有上千种了

常用的有:redhat,CentOS,ubuntu等

redhat有部分功能是收费的,centos和redhat是基本一样的,centos是免费的,centos已经被redhat收购,能免费到多久还不清楚;

fedora是redhat公司的个人版本,功能强大,但不稳定,图形界面相对还行,不适合个人操作;

Ubuntu相对来说是我们常用的图形界面Linux。

不同的发行版本内核都是一样的,只是各自的应用软件不一样而已。

Linux内核

官网:www.kernel.org,目前最新版本4.17.14,三位数字分别表示主版本,次版本,末版本

 

开源软件

所谓的开源是指源代码开放,但是开源不等于免费,我们常用开源软件有如下:

1、apache(羽毛标志):网站搭建软件,可发布已写好网站至互联网

2、nginx:占用资源更少,提供更多访问量,抗并发高

3、linux、php、mysql、apache、nginx、是常用搭建平台

4、mongoDB、sumba、ruby、python等

开源软件的几个特点:

  1.使用的自由(绝大多数开源软件是免费的)

  2.研究的自由(可以获得软件源代码)

  3.散步及改良的自由(可以自由传播,改良甚至销售)

Linux应用领域

1.基于Linux的企业服务器

  可以使用www.netcraft.com查看不同网站使用的服务器

 

从这个图中我们可以看出,后台使用的服务器基本都是Linux的Apache、nginx

2.嵌入式领域

  安卓系统的底层其实是Linux;苹果的iOS系统的底层是unix

3.机顶盒等

Linux与windows的区别

  1、Linux严格区分大小写

  2、Linux中所有的内容以文件形式保存,包括硬件、用户

  3、Linux不靠扩展名来区分文件,它靠权限来区分文件

  4、Windows下的程序不能直接在Linux中安装和运行

Windows用扩展名来区分不同的文件,Linux是靠文件的权限来进行区分的,但是,为了我们或者是管理员能较快的辨别文件,我们约定成俗:

字符界面的优势

1.字符界面占用的系统资源更少

  字符界面远比图形界面占用资源少得多,图形界面需要服务器分担更多的系统资源,无论是CPU、内存占有、运存空间。从而会拿出更少的资源供客户端访问。至此,在服务器上不会考虑使用图形界面。

2.字符界面减少了出错、被攻击的可能性

虚拟机的安装

1.VMware简介

  VMware是一个虚拟PC的软件,可以在现有的操作系统上虚拟出一个新的硬件环境,相当于模拟出一台新的PC,以此来实现在一台机器上真正同时运行两个独立的操作系统,VMware是收费的,到官网下载是需要付费的。

2.VMware特点

  1.不需要分区或重新开机就能在同一台PC上使用两种以上的操作系统

  2.本机系统可以与虚拟机系统网络通信

  3.可以设定并随时修改虚拟机操作系统硬件环境

3.VMware安装要求

  安装VMware的基本要求:CPU:建议主频为1GHz以上;内存:最低1GB;硬盘:建议分区

在window中,安装的软件都不建议安装在c盘,1是影响window系统的流畅性,2是如果把软件安装在其他盘,重装window系统的时候,只需要对c盘操作,其他盘安装的软件,即使重装系统后依然可以继续使用。

4.VMware的使用

  1.新建虚拟机

    新建的时候,建议不要选择“安装盘镜像文件”,因为这样安装是从头到尾自动安装,它是最小化安装;Centos 64占用资源更大,有很多兼容性问题出现,建议初学者使用 32位。

  2.虚拟机硬件设置

    Centos 6.3最少得628M才能启动图形安装界面,所以内存再小不能少于638MB

    关于“虚拟化Intel VT-x/EPT 或AMD-V/RVI(V)选项”:

      真实CPU的性能映射到虚拟机里;若不选,是软件模拟的cpu;若选,真实机的CPU是i7,则虚拟机里的CPU也是i7;若需要跑大数据,虚拟机性能需要非常强大;但选择这个,会占用真实CPU的资源;如果需要跑大数据,就选择。

  3.虚拟机网络设置

    网络设置的3个选项:

      1.桥接(推荐):虚拟机安装后会产生两个虚拟网卡VMnet1和VMnet8。桥接这个功能就是使用真实网卡和宿主机通信,配置简单,但是会占用宿主机的同一网段的一个IP地址,比如“192.168.0”这个网段。

      2.NAT:使用VMnet8网卡和真实机通信。只能和宿主机通信,不能和局域网内其它的网络设备通信。能上网。

      3.host only:通过VMnet1和真实机通信。只能和宿主机通信 ,不能和局域网内其它的网络设备通信。不能上网。

  4.虚拟机技巧

    快照:把当前状态保存下来,虚拟机被搞崩溃了,恢复快照即可。建议在安装完系统之后就建立一个快照。

  5.克隆功能:

    路径,虚拟机——管理——克隆

      (1)链接克隆:创建原始镜像的影子,占用空间内存少完全模拟另外一个机器,会随着原始镜像的删除而不能使用;

      (2)完整克隆:创建一个完全相同的虚拟机,删除原始镜像还能够正常使用,占用与原始镜像相同的内存。

  6.虚拟机的删除:

    坚决不可以直接把vmware的安装目录删掉,因为VMware安装时已经成为windows的系统的服务,直接删除安装目录文件是删不干净的,而且会导致以后再也安装不上VMware,因为软件会认为我没有删这个软件,导致安装出错。使用控制面板的删除程序删VMware,也不一定删干净;VMware_Install_Cleaner专门用于把虚拟机删除干净、清除注册表的软件;下载地址:https://www.linuxidc.com/Linux/2012-11/73744.htm。

 磁盘的分区

 概念:

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

分区类型:

主分区:最多只能有4个(每个扇区为512个字节,512=主引导记录信息+分区信息+结束符占位,即512=446+64+2,所以分区信息就是64个字节,一个分区表占用16个字节,所以可以分64/16 = 4个扇区)

扩展分区:

  1.最多只能有一个

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

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

逻辑分区:最多可以划分23个

格式化:

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

格式化的目的不是清空数据,而是根据用户选定的文件系统写入文件系统。如果手动不指定(可手动改为1,2等,如果该数据块中没有存放满4KB,也不会放其他的数据的),文件系统默认分区的最小单位一个数据块是4KB,也就是一个block的大小就是4KB,格式化就是将系统划分成些许等大的block。然后会创建一个二位表格记录文件系统的inode等相关信息。

格式化的时候,会重新分配分区的数据库,把保存文件吸引的表格数据更新,会先把里面的原始数据清空,然后进行重新分配block和list更新。

Linux分区就是:

  1、将硬盘分割成等大小的数据块(默认4kb,可以调节)

  2、建立二维表格,表格内容包括I节点、修改时间、权限、文件保存位置等,目的是为了快速查找文件所在数据块

 

硬件设备文件名

在windows中操作的步骤是:分区=》格式化=》给盘符

但是在Linux中:分区=》格式化=》给分区起设备名称=》给盘符(Linux中叫挂载)

分区设备文件名

  1./dev/hda1(IDE硬盘接口)

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

a表示第一个硬盘,b表示第二个硬盘,1表示第一个分区,2表示第二个分区,以此类推;1,2,3,4只能给主分区使用,逻辑分区只能从5开始

当分第四个分区时就会默认将第四个分区变为扩展分区

 

挂载:

 在windows中就是给盘符

  1.必须分区

    1./(根分区)

    2.swap分区(交换分区,如果内存4G一下,那么大小为内存的2倍,如果内存4G以上,大小和内存一致,划分swap分区是,要选择文件类型为swap)

  2.推荐分区

    1./boot(启动分区,不需要太大,但是不要写满数据,否则无法启动)

Linux的安装

密码原则:

  1.复杂性

    1.八位字符以上、大小写字母、数字、符号

    2.不能是英文单词

    3.不能是和用户相关的内容

  2.易记忆性(便于记忆,我们可以挑选一首自己喜欢的歌词,或一首名句)

  3.时效性(一般是每个90天对自己的密码进行更新,最迟不要超过180天)

安装日志:

Linux安装完成后,安装日志放在如下文件中:

Linux常见目录及解释:

    • /bin
      bin是Binary的缩写, 这个目录存放着可执行文件,是最经常使用的命令。

    • /boot:
      这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

    • /dev :
      dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

    • /etc:
      这个目录用来存放所有的系统管理所需要的配置文件和子目录。

    • /home
      用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

    • /lib
      这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

    • /lost+found
      这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

    • /media
      linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

    • /mnt
      系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

    • /opt
       这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

    • /proc
      这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
      这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

      echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    • /root
      该目录为系统管理员,也称作超级权限者的用户主目录。

    • /sbin
      s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

    • /selinux
       这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

    • /srv
       该目录存放一些服务启动之后需要提取的数据。

    • /sys
       这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

      sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。

      该文件系统是内核设备树的一个直观反映。

      当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

    • /tmp
      这个目录是用来存放一些临时文件的。

    • /usr
       这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

    • /usr/bin:
      系统用户使用的应用程序。

    • /usr/sbin:
      超级用户使用的比较高级的管理程序和系统守护程序。

    • /usr/src:内核源代码默认的放置目录。

    • /var
      这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

  1./etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

  2./bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

  3./var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

  4.proc和sys目录不能直接操作,这两个目录保存的是内存的挂载点

  5.一般建议可以在家目录root或home,以及tmp目录下任意放内容

概览:

  

Linux常用命令:

1.基本命令格式

  1.命令提示符

[]是表示可选的意思,~表示初始登录目录,比如root用户是根目录下的root目录,即/root;而如果是user1用户,则是 home下的user1目录即/home/user1,建立用户时,这个目录会自动创建,比如如下的用户为ubuntu,那么~就表示/home/ubuntu

  2.命令格式

 第一个命令:ls

查询目录中的内容,不加文件或目录时,默认是显示当前所在的目录,加了目录表示对应目录中的内容进行查询

补充:文件属性及权限

我们可以看出有三种文件类型,-:文件、d:目录、l:软连接文件;当然除了这三种常见的文件类型外,Linux中还有其他的文件类型, b :表示为装置文件里面的可供储存的接口设备(可随机存取装置)、c :表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

有三个用户权限,u所有者(user)、g所属组(group)、o其他人(other),如何理解这三种权限呢?

这里的三种权限是用户与文件的权限,比如这台电脑是我的,我就是所有者,我可以给班级里的女生用,他们拥有和我一样的权限,所以班级里的女生就可以归为所属组,然而班级里的其他男生就是其他人。所以就是说相同权限的用户放在一起变为用户组(所属组)。

对于文件的基本属性,可以参考菜鸟教程中的http://www.runoob.com/linux/linux-file-attr-permission.html

使用ls -l我们可以查看到文件的详细属性,分别代表的意思是:

前0-9上面已经解释了,表示所有者,所属组,其他用户的操作权限;.暂时不理;1称为引用计数,文件被调用几次;第一个root是所有者;第二个root表示所属组;一串数字代表文件大小,用-h可以查看带有单位的文件大小;文件的最后一次修改时间;文件名称

此外我们使用ls -a可以展示所有的文件,包含隐藏文件【一般一英文的"."开头的就表示隐藏的文件或隐藏的目录】,那么隐藏文件具体是什么呢?隐藏文件一般是系统文件,不允许用户任意修改的,所以一般开始都是隐藏的,但是需要注意的是并不是所有的隐藏文件都是系统文件,有时候有的木马文件就会伪装成为隐藏文件。

第二个命令:mkdir 建目录

需要注意的一点就是,递归创建,如下我们使用mkdir japan/cangls是无法创建的,因为不存在japan这个目录,实际上我们就要用到递归创建命令,mkdir -p japan/cangls即可

第三个命令:cd 切换目录

Ctrl+l清屏,输入cd后直接按enter和cd ~一样回到家目录;

tab键补全,两下tab键把所有的目录下的文件列出来,也可以把命令列出来 ,比如输入mk后按两下tab就会把mk开头的命令或文件列举出来。

第四个命令:rmdir 删除空目录

只能删除目录,且目录必须是空的

 第五个命令:rm 删除文件或目录

rm是我们常用的删除命令,可以删除文件和目录,使用-f可以强制删除非空文件或目录,另外需要注意的一点是:

rm -rf /会删除根目录下百分之九十的文件,所以删除文件时一定要谨慎操作,也就是说,Linux中的root是真正的管理员用户,而windows中的administer并不是真正意义上的管理员用户

第六个命令:cp 复制

新复制的文件的时间,是执行复制命令的时间,所以复制的文件的时间属性与原文件的时间属性就不一致,如何让两个文件的属性都一样,使用-a  使目标文件和复制文件包括属性也一模一样

第七个命令:mv 剪切

需要注意的是,mv命令剪切文件和目录都是一样的,并不需要额外的添加-r;同时文件或目录的改名实际上就是使用mv命令来进行操作的,在同一个目录下使用mv命令就是更改文件或目录名:

 第八个命令:ln 链接命令

硬连接:

硬链接,可以简单的理解为教室的前后门,走前后门同样都能走进教室里面去;因为I节点是相同的,所以实质上就是指向同一个文件;如果删了任何一个,只要另外一个存在,另外一个也能正常的访问;改动任何一个,两个都会变;ls -i查看I节点,除了I节点相同外,无法判断是不是硬连接,区别太小,抽象点就是如下:

bs就是sb的硬链接,他们同时指向的一个分区索引表行,所以具有相同的I节点,存储时间,存储block,所以使用分区索引表进行数据查找时就是找的同一个文件。

软连接:

然而更推荐使用软链接,软链接就相当于windows中的快捷方式,硬链接会创建不同的分区索引表(I节点、存储时间、存储block),而通过I节点查找的block中存放的是原文件的分区索引表的内容,然后再去根据位置信息去找具体的文件内容:

访问的步骤:

  1. 创建一个软连接
  2. 创建自己的分区索引表,记录不同的I节点,存储时间,存储block
  3. 访问时首先去分区索引表找到存放信息
  4. 根据存放信息去硬盘中找到相应的block,但是软连接的block中存放的是原文件的分区索引表的信息(源文件的存放I节点,存储时间,存储block)
  5. 然后再去分区索引表中找到源文件的存放信息
  6. 根据存放信息去硬盘中找到相应的源文件内容

 

csb就是sb的软链接,首先去分区索引表中找到文件,找到的文件记录的是实际原文件的索引信息,再去分区索引表中找到实际原文件的索引信息,然后再去找到原文件。

总的来说,硬连接就是相当于同一个文件,他们都是指向分区索引表中的同一个I节点,更改任何一个文件两个都会改动,删掉任何一个文件,另外的一个文件仍然能正常使用。

软连接相当于windows中的快捷方式,创建软连接会在分区索引表中重新建I节点等,而通过这个I节点找到的相应的block存放的是原文件的位置信息,更改任何一个文件也会使两个文件都变动,但是如果删掉了源文件之后,软连接文件就无法使用,而且软连接的文件权限实际上是依赖于源文件的,可能我们使用ll方式查看到软连接文件的权限为777,但实际上他的权限是依赖于源文件的,另外创建软连接文件时,目标文件的路径要写成绝对路径,如果不写会默认为当前路径,当在当前目录下找不到目标文件可能就会报错(除非原文件和目标文件在同一个目录下 否则必须要用绝对路径)。

源文件为ying.txt,硬连接为yin.txt,软连接为yi.txt

我们可以看到,硬连接yin.txt的I节点好和源文件ying.txt是一样的,而软连接yi.txt与原文件ying.txt的I节点不一样

如果我们删除了源文件ying.txt的话,硬连接yin.txt可以正常使用,而软连接yi.txt就不能正常使用,如下:

 第九个命令:locate 搜索文件

locate的优点就是查询速度比较快,因为它是在后台数据库mlocate中按文件名搜索的,mlocate数据库是每天更新一次,所以新建的文件就找不到,我们可以使用updatedb来强制更新数据库,这样新建的文件就可以搜索了,在不同的Linux版本中,mlocate数据库不一定就叫mlocate。

locate locate查看locate相关的数据,就可以查看相关的数据库。

另外还需要注意的是,locate只能搜索文件名,即locate只能搜索文件,不能搜索目录。

locate是按如下的方式来进行搜索的:配置文件/etc/updatadb.conf

 

第一句话如果为yes的话就表示下面的搜索设置都生效,如果为no就表示下面的搜索设置都不生效

第二句话表示不搜索这些文件系统

第三句话表示不搜索文件名中包含这些关键字的文件

第三局话表示不搜索这些目录中更新的文件

 第十个命令:whereis 和 which 搜索命令

【通常可执行文件是绿色的,普通文件黑色的,目录文件蓝色的】

whereis:

 

whereis只能搜索系统的命令,不能搜索其他文件,能搜索命令所在的位置以及命令的帮助文档所在位置

which:

 

which可以查看系统命令所在位置和如果有别名的命令的别名(可以查看别名,如果一个命令有别名时 比如ls -l 的别名就是ll,但不是所有命令都有别名)

cd命令是Linux的内置命令shell操作命令,shell就是Linux与用户交互的命令,cd是shell自带的命令,所以使用which和whereis无法查看到cd命令,也就是所有which和whereis查看的命令都是外部安装的,外部命令。

另外whereis和which搜索的命令取决于环境变量$PATH,如果没有配置环境变量的,需要加绝对路径,echo $PATH环境变量的查看,如果使用命令时不使用绝对路径,那么就必须在环境变量中添加路径,如果使用命令时,如果这些命令不在环境变量中,就会说command not found

 第十一个命令: find 常用搜索

1.按名字搜索

1.find搜索的内容和搜索的内容是一模一样的,比如搜索的install.log,那么结果就是install.log,而不会是包含install.log的文件

2.使用通配符时要用双引号

 

2.按所有者搜索

我们常用的是find /root -nouser命令,这个命令主要用来查看指定目录下没有所有者的文件,一般除了外来文件和内核产生的文件,Linux中的文件一般都要有所有者,如果没有一般就是垃圾文件了。

那么什么是内核产生的文件,内核文件是直接调用,不经过系统用户的,以下两个目录如果出现了没有所有者的文件可以认为是正常的。

而外来文件:就是比如用U盘考取到Linux中的文件

3.按修改时间查找

这主要用于日志文件的查找,比如我们可以想查找到十天前的日志文件,就可以使用该命令了

 

4.按文件大小查找

按照兆字节是大写的M,按照千字节是小写的k,否则就会报错的,如果不写也会报错

条件组合:

5.按i节点查找

 第十二个命令:grep

grep是在文件中搜索字符串

基本格式:

在文件中找到包含xiong的行,如果加了-v就表示的是查找不包含xiong的行

find与grep的区别:

find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配

grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式时包含匹配

第十三个命令:帮助命令

1.帮助命令man

比如这就是man ls查看ls的帮助:

在这个界面,如果要查询某一个option,比如查看d开头的就使用/-d

从上面我们看到了有一个LS(1),其实这里就是man的级别,那么man的级别有哪些呢?

man的级别:

查看命令拥有哪些级别的帮助:

比如man -f ls和whatis ls

这样我们就可以根据不同的数字类型进行查看不同的帮助文档了,比如passwd有1,1ssl,5;null有4

man 4 null

man 5 passwd

查看和命令相关的命令:

例如:man -k ls

其他帮助命令:

--help用来获取选项帮助,有部分是被翻译成中文了,

ls --help

shell内部命令帮助,Linux中有些命令是shell自带的,可使用whereis来查看,如果是在在whereis搜索出来的目录中的命令则不是shell自带的命令。或者直接使用whereis 命令,如果能成功找到执行文件,表示不是shell自带的命令。

help只能获取shell的内部命令,如果不是shell的内部命令,则会报错

因为cd是shell的内部命令,所以:

ls不是shell的内部命令,所以:

详细帮助命令:info

info其实实际上是将命令的所有帮助文档写成一个巨大的文档,往上翻都可以查看其他的所有内容,不建议使用info命令

 

 压缩与解压命令

常用压缩格式:

  1. .zip

  2. .gz

  3. .bz2

  4. .tar.gz

  5. .tar.bz2

zip

Linux中的zip和windows中的zip是一致的,我们完全可以在windows中压缩后放到Linux中使用。

Linux不区分扩展名的,压缩文件名的扩展名可以不用写的,但是为了方便我们查看,我们要写清楚压缩文件扩展名;

另外因为有压缩格式的换算,所以可能压缩文件比源文件大,但如果源文件比较大时,压缩后压缩文件比源文件小。

zip压缩命令:

当然是不使用用-r同样可以压缩目录,但是这样只是压缩这个目录,它下面的子文件或子目录是不会被压缩的,只有使用zip -r才会将目录及它下面的子文件或子目录压缩

如下,目录test1有三个文件index1,index2,index3

现在对test1使用zip和zip -r两种方式来进行压缩,zip压缩成test1.zip,zip -r压缩成test2.zip,我们可以看到使用zip -r 的方式是对test1下面的所有文件都进行压缩的

同样我们使用解压的方式就可以看得出来差别了

首先解压使用zip方式压缩的test1.zip,首先要删除到原来的test1,我们可以看出test1.zip解压出来的test1文件并没有子文件了

使用zip -r方式压缩的test2.zip,同样要删除test1,我们可以看出test2.zip解压出来的test1文件就有子文件

zip解压命令:

unzip,解压文件或目录都是unzip,不需要使用-r来解压目录,解压后,压缩包依然存在的

gzip

gzip是可以在windows中解压的。而windows中的.rar是不能在Linux中解压的,压缩时,自动变为源文件名.gzip,所以源文件名会消失

 gzip命令

gzip 源文件【将文件压缩为.gz格式的压缩文件,源文件会消失】

gzip -c 源文件 > 压缩文件【压缩为.gz格式,源文件保留】

>(输出重定向)大括号的作用就是将命令的结果写入文件,比如ls > abc.txt就是将ls命令的结果写入abc.txt文件中

gzip -c abc.txt> abc.txt.gz的意思就是将压缩的文件写入新文件即abc.txt.gz,-c就是表示输出到屏幕,而 -c abc.txt就是输出到abc.txt

gzip -r 目录名称【压缩目录时就是将目录中的文件每个都压缩成一个压缩文件。解压时也是这样的】

 

.gzip解压

解压时,压缩包也不会保留

压缩目录时,也要使用 gunzip -r 压缩目录

gzip -d 压缩文件【解压压缩的文件】

gunzip 压缩文件【解压压缩文件】

gunzip -r 压缩目录 【解压压缩的目录,压缩目录时,是将目录下的每个文件压缩成一个压缩包,那么解压时同样是把压缩包解压成一个文件】

bz2

bz2压缩命令

bzip2命令不能压缩目录

bzip2 源文件 【压缩为.bz2格式,不保留源文件】

bzip2 -k 源文件 【压缩之后保留源文件】

bzip2解压命令

bzip2 -d 压缩文件 【解压bzip2文件,-k保留压缩文件】

 

bunzip2 压缩文件 【解压bizp2文件,-k保留压缩文件】

tar

tar只是打包,并没有压缩,打包了之后我们就可以使用上面的压缩命令来进行压缩了,也是解决.gz.bz压缩目录的方法

tar压缩命令

tar-cvf 打包文件名 源文件【-c:打包,-v:显示过程,-f:指定打包后的文件名,压缩后仍然保留源文件】

tar解压命令

tar -xvf 打包文件名 【解压文件,解压时同样会保留源文件】

.tar.gz

其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式

tar -zcvf 压缩包名.tar.gz 源文件【仍然会保留源文件】

tar -zxvf 压缩包名.tar.gz 【仍然保留原压缩包】

 tar.bz2压缩格式

.tar jcvf 压缩包名.tar.bz2 源文件【压缩为.tar.bz2格式,仍然保留源文件】

.tar jxvf 压缩包名.tar.bz2 【解压.tar.bx2格式,仍然保留压缩包】

 解压时可以使用-C来指定解压文件的位置

关机与重启命令

shutdown

shutdown -r 05:30表示凌晨五点三十重启。然后使用使用shutdown -c那个命令,可以取消之前我们的关机命令。服务器应该尽量避免远程关机。Shutdown命令在关机或重启是会保存我们正在使用的程序,而其他的关机重启命令是不够安全的。所以建议使用shutdown命令,服务器关机重启时是需要谨慎的,服务器可能是成千上万的人在使用,所以最好把当前使用的程序服务关闭掉。

这三个命令都不是很安全的

halt

poweroff

init 0

其他重启命令

reboot

init 6

 

1单用户:启动最小的程序,和windows中的安全模式差不多

2和普通的字符界面一样

3就是我们正常使用的字符界面

init 5要保证装有图形界面

修改系统默认的运行级别:cat /etc/inittab

查看系统运行级别

Linux远程登录用户可以允许256

我们应该养成正确退出的命令

其他常用命令:

挂载命令

用户登录查看和用户交互命令

 

Linux中所有的存储设备硬盘,优盘,软盘等必须挂载才能正常使用

挂载在Windows中就是分配盘符,就是分a,b,c,d盘,Linux拿系统目录作为盘符,叫做挂载点,给分区叫挂载

Linux中一般是手动进行分配盘符,windows中比较智能,自动的

【分配盘符】挂载:

 

 

 

 

Procsys系统内存的划分,内核自动挂载的

 

前面为设备文件名:/dev/sda5

 

 

 

/etc/fatab这个可以看到开机后自动挂载的分区

 

我们可在这个文件里面按照相应的格式来添加优盘等。

 

但是如果添加了之后,如果我们开机的时候忘了在光驱里面放入光盘,Linux会奔溃,起不来

 

 

 

centos6以上,文件系统默认为ext4,光盘的文件系统为iso9660

 

 

 

-o的特殊选项,

 

Exec:指分区中允许文件系统中可执行执行文件,默认的

 

 

 

在脚本文件,这句话的标称以下的为Linux中的可执行文件:#/bin/bash脚本文件的开头,不是可选项

 

 

 

因为加的是noexec,所以权限不够

 

所以不建议大家更改,可能改了之后会导致错误

 

Home分区默认已经挂在了,所以我们在挂载home时,可以省略设备文件名/dev/sda2

 

 

 

  1. 首先要在光驱中放入光盘

 

 

 

 

 

 

 

已连接是要打勾的,相当于通电

 

  1. 建立挂载点

 

 

 

这三个目录都是空的,实际上就是Linux给我们做挂载点的,三个都可以用

 

 

 

 

 

 

 

Cdromsr0一样,可以看出cdromsr0是软连接,可以写成/devsr0或者/dev/cdrom

 

sr0更保险

 

 

 

光盘正确挂载

 

 

 

查看我们挂载的光盘:

 

 

 

Linux中,按弹出键是无法弹出的,要卸载后才能拔出。光盘使用之后要卸载后才能取出

 

可以使用umount  /dev/sr/0也可以umount /mnt/cdrom/

 

在真实机上是必须卸载的才能去除光盘的

 

 

 

卸载时如果device is busy

 

 

 

无法退出是因为我们还在光盘的目录,所以退出这个目录就可以了

 

 

 

 

 

查看系统中已经存在的U

 

Vfat表示Linux中的fat32,只有

 

 

 

 

 

 

 

用户登录查看

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Shell基础:

 

计算机只能认识0,1,我们敲的代码是ASCII码,

 

 

 

Shell将用户输入的命令转换为计算机能识别的01代码给计算机;然后计算机执行后,shell01的代码转换为ASCII码,传递给用户

 

接受命令

 

翻译命令为01代码

 

传递给计算机内核

 

 

 

最早的是bshell,基本不用

 

 

 

 

 

 

 

Linux常用的是Bash

 

 

 

 

 

Vi /etc/shells查看支持的shell

 

 

 

输入sh就进入sh,输入csh就进入csh,bash就进入bashexit就是退出

 

 

 

 

 

脚本执行方式:

 

将指定命令输出到控制台,如果输出的内容之间有空格需要加双引号

 

如果加有-e就支持一些字符转换

 

 

 

 

 

向左删除了i

 

 

 

 

 

 

 

本机的Linux是不支持中文的(纯字符界面),远程工具是可以输出中文的,

 

 

 

 

 

第一个脚本

 

 

 

脚本写好后:

 

 

 

 

 

别名和快捷键:

 

 

 

 

 

使用命令行是临时生效,加入配置文件才是永久生效

 

 

 

 

 

 

 

~为家目录

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

历史命令:

 

 

 

直接输入history和(.bash_history

 

History查看的是之前系统中操作的历史命令和这次登录操作的命令

 

.bash_history是上次登录正确退出后保留的操作命令,会比history的少

 

 

 

如果要将本次登录执行的命令写入.bash_history文件中,history -w就会手动加入文件中,这是history命令和.bash_history的保持一致了。

 

系统正确退出后才执行-w的,除非手动,如history -w

 

建议不要清空历史命令,不清空历史命令:

 

  1. 重要帮助文档,出现错误时我们可以通过历史命令来排查错误。
  2. 很多的入侵者,登录后会清空他的历史命令,如果他可能清空所有的历史命令,我们查看到我们所有的历史命令不在了,能证明有人操作过你的电脑
  3. 而且历史命令保存在文件中所占用的文件大小是比较小的

 

 

 

 

 

可以通过HISTSIZE = 10000来更改保存命令的大小

 

常用的环境变量有四个

 

 

 

 

 

!n中的n就是历史命令中的命令的编号

 

!字符串会执行ls的最后一条命令,即ls -alh

 

常用的就是第一个和最后一个

 

 

 

使用table键进行命令,目录,文件补全,目录补全主要就是按环境变量path中的目录来查找的。

 

目录,文件依赖你操作你的文件路径

 

  1. 快速加快输入速度
  2. 可以帮助排错,可以帮助查看我们的目录,命令,或文件是否输入正确

 

 

 

 

 

 

 

输出重定向:

 

 

 

本来是应该输出到屏幕上的,重定向输出到文件中,这就是输出重定向

 

 

 

文件不存在就会自动创建文件

 

>是覆盖第二个命令的结果

 

>>是追加,在第一个命令的结果后面加第二个命令的结果

 

 

 

记录错误命令的错误信息,错误信息输出时>>>左右是不能有空格

 

 

 

 

 

常见的是:2,4,5

 

命令执行的结果就不会在屏幕中看到,也不输入到文件中

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ctrl+d 7行,9个单词,43个字符

 

 

 

统计文件的内容,不加<也可以的

 

 

 

相同的作为结束标识

 

 

 

 

posted @ 2018-08-12 01:31  fireporsche  阅读(165)  评论(0编辑  收藏