• 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个字符

     

     

     

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

     

     

     

    相同的作为结束标识

     

     

  • 相关阅读:
    @babel/preset-env 解决Promise被Babel编译成regenerator 运行时错误问题
    Blob ArrayBuffer 和 BinaryString StringView
    TypeScript 的尴尬:模块不如wepback完善
    Node.js(1) http和https模块发送HTTP(S)请求
    axios
    Nest.js 再探 解析HTTP请求
    红楼梦题词
    倾斜摄影
    重新认识TypeScript
    TypeScript 家族
  • 原文地址:https://www.cnblogs.com/fireporsche/p/9461841.html
Copyright © 2020-2023  润新知