Linux shell命令

笔记 

【1】man、passwd、su、echo命令的用法
    (1)获取联机帮助 
     1)使用man命令可以找到特定的联机帮助页,并提供简短的命令说明。一般语法格式为:
        man  commandname
     2)联机帮助页提供了指定命令commandname的相关信息,包括:名称、函数、语法以及可选参数描述等。
        无论帮助有多长,都遵循这个格式显示。在页面很多的情况下使用PageUp和PageDown键翻页。最后,使用“:q”退出帮助页面。
    (2)通常联机帮助信息包括以下几个部分:
     1)NAME:命令的名称
     2)SYNOPSIS:命令的语法格式
     3)DESCRIPTION:命令的一般描述以及用途
     4)OPTIONS:描述命令所有的参数或选项
     5)SEE ALSO:列出联机帮助页中与该命令直接相关或功能相近的其他命令
     6)BUGS:解释命令或其输出中存在的任何已知的问题或缺陷
     7)EXAMPLES:普通的用法示例
     8)AUTHORS:联机帮助页以及命令的作者

     (3) man 3 printf    查库函数
     man 2 open      查系统调用
     man -a open     会将系统中与open相关的都列出来
     (4) 基本系统维护命令
     1) passwd
         a. 出于系统安全考虑,Linux系统中的每一个帐号都必须同时具备用户名和密码。
        b. 可以使用passwd命令,为已有账户重新修改用户口令。
        c. 需要说明的是,超级用户root可以修改所有其他用户的口令,而普通用户只能修改自己的用户口令,
           如果确要修改超级用户或其他用户口令的话,需要具有超级用户的权限。
         d. passwd命令的一般语法格式为:
            passwd  username
     2) 单独使用passwd命令,意为修改当前用户自己的口令。下面命令实例用于修改用户自己的口令。
        linux@ubuntu:~$ passwd
        Changing password for linux      #修改当前用户口令
        (current) UNIX password:        #用户输入旧口令
        Enter new UNIX password:       #用户输入新口令
        Retype new UNIX password:      #确认新口令
        passwd:已成功更新密码
      3)su
          a. su命令用于临时改变用户身份,具有其他用户的权限。普通用户可以使用su命令临时具有超级用户的权限;
        超级用户也可以使用普通用户身份完成一些操作。当需要放弃当前用户身份,可以使用exit命令切换回来。su命令的一般语法格式为:
                su  [-c | -m - ]  username
           b.选项“-c”表示执行一个命令后就结束;-m表示仍保留环境变量不变;-表示转换用户身份时,同时使用该用户的环境。
       单独使用su命令,默认为要转换为超级用户root。下面命令实例临时获取超级用户root的权限。
       可以从命令提示符中可以看出,“linux”用户使用su命令切换为root用户。
            linux@ubuntu:~$ su
            Password:     #当前用户输入超级用户的口令
            root@ubuntu:/home/linux#
         4) echo
          a.echo命令用于在标准输出——显示器上显示一段文字,一般起到提示作用。
        echo命令的一般语法格式为:
            echo  [-n]  information
          b.选项-n表示输出文字后不换行。提示信息字符串可以加引号,也可以不加。
            linux@ubuntu:~$ echo   "Hello     everyone."    #输入信息字符串使用引号
            Hello     everyone.
            linux@ubuntu:~$ echo   ‘$PATH’    #严格的原样输出
            $PATH.
            linux@ubuntu:~$ echo    Hello     everyone.         #输入信息字符串不使用引号,字符串之间用一个空格隔开
            Hello everyone.

【2】date、clear、df、du命令的用法
     (1) date
    a. date命令用于显示和设置系统日期和时间。date命令的一般语法格式为:
        date  [-d | -s|-u ]  datestr
    b. 选项-s表示按照datestr日期显示格式设置日期;单独使用date命令,用于显示系统时钟中当前日期。
        时间的格式为:“hh:mm:ss”,日期格式为:“mm/dd/yy”。
            linux@ubuntu:~$ date            #查看当前时间
            2007年 09月 16日 星期日 18:44:45 CST
            linux@ubuntu:~$ sudo  date  -s  1:19:18   #设置新时间,需要系统管理员权限
            Password:
            2007年 09月 16日 星期日 01:19:18 CST
     (2) clear
    a. clear命令用于清除屏幕上的信息。清屏后,sell命令提示符移动到屏幕左上角。
        clear命令的一般语法格式为:
            clear
        b.由于shell命令是逐行执行,执行结果也将随即显示。因此,用户在使用命令终端窗口时,终端窗口会很快就会被字符占满。
      clear可以帮助清理一下窗口中杂乱的字符显示。
     (3) df
     a. df命令用于查看磁盘空间的使用情况。查看磁盘空间是用户应当经常做的事情,
         因为谁也不希望看到根或/var分区在不经意间填满,以便及时清理。df命令的一般格式为:
            df  [-a | -T | -h | -k ]  Filesystem
     其中,参数Filesystem表示物理文件系统。各选项的含义如表所示。
        选项                      含义
        -a           显示所有物理文件系统的使用情况,包括虚拟文件系统,如/proc、/sys等
        -T         显示物理文件系统的文件格式类型
        -h         物理文件系统大小按兆字节为单位显示
        -k         物理文件系统大小按千字节为单位显示
     b. 从以下命令的执行结果可以看到,这台计算机只有一块硬盘(/dev/sda1),文件格式类型为Ext3,已经使用36%的存储空间。
        同时,可以发现计算机上还安装了CD-ROM(/dev/hdc)、USB存储器(/dev/sdb1)。其他分区均为专用的虚拟文件系统

        linux@ubuntu:~$ df –T
        文件系统    1K-块    已用        可用    已用%    挂载点
        /dev/sda1    ext3     7850996  2664868   4787316   36%    /
     c. df 命令
        常用参数:
             -a :列出所有文件系统
              -k :列出磁盘的分配情况(KB)
              -h :同-k, 但大小以G、M,K单位显示
              -l :仅列出本地文件系统    
            例: 
            #df  -h
        du命令,列出目录和文件所使用的磁盘块数,每块占512个字节。
         常用参数:
             -a :仅列出空闲的文件数 
              -h :列出磁盘的使用情况(KB) 
              -s :列出总的空闲空间(KB) 
           例:
            #du –h /etc

【3】总结与思考
    本节课主要介绍了linux的基本系统维护命令,包括man、passwd 、 su 、 echo、date、clear、df、du等
 

笔记 

【1】用户管理相关文件介绍
    (1)用户管理
     用户的属性
        1)用户名
        2)口令
        3)用户ID(UID)
        4)用户主目录(HOME)
        5)用户shell
    (2)/etc/passwd文件
     /etc/passwd文件是系统能够识别的用户清单。用户登陆时,系统查询这个文件,确定用户的UID并验证用户口令
        1)登陆名
        2)经过加密的口令
        3)UID
        4)默认的GID
        5)个人信息
        6)主目录
        7)登陆shell
    (3)/etc/group文件
     1)包含了UNIX组的名称和每个组中成员列表
     2)每一行代表一个组,包括4个字段:
        组名
        加密的口令
        GID号
        成员列表,彼此用逗号隔开
    (4)添加用户
        adduser
        语法:adduser  <username>
        实例: 
             # adduser  newuser
                    添加用户名为newuser的新用户
    (5)adduser配置文件      
     /etc/adduser.conf 
                  FIRST_UID=1000
                  LAST_UID=29999
                  USERS_GID=100
          DHOME=/home
          DSHELL=/bin/bash
          SKEL=/etc/skel
    (6)SKEL模板    
    /etc/skel目录是被 /usr/sbin/useradd使用
    把想要新用户拥有的配置文件从/etc/skel目录拷贝,常用的文件: 
        .bash_profile
        .bashrc
        .bash_logout
         dircolors
        .inputrc
        .vimrc  
        

【2】用户管理相关命令介绍
    (1)添加新用户的过程
     1) 系统
        编辑passwd和shadow文件,定义用户帐号
        设置一个初始口令
        创建用户主目录,用chown和chmod命令改变主目录的属主和属性
      2) 为用户所进行的步骤
        将默认的启动文件复制到用户主目录中
        设置用户的邮件主目录并建立邮件别名
     (2) 设置初始口令
     1) 使用passwd命令可以修改用户口令
     2) root用户可以修改任何用户的口令
        语法:passwd  [-k] [-l] [u] [-f] [-d] [-S]  username
        使用方法: 
                passwd  username
     (3) 修改用户属性
    usermod
    语法:usermod [-u uid [-o]] [-g group] [-G gropup,…]
                               [-d home [-m]] [-s shell] [-c comment]
                            [-l new_name] [-f inactive][-e expire]
                             [-p passwd] [-L|-U] name

    举例用户oldname改名为newname,注意要同时更改家目录: 
    usermod  –d  /home/newname  –m  –l  newname  oldname
     (4) 删除用户
     deluser
     语法:   deluser  <username>
     使用方法: 
                 deluser  --remove-home  user1            
         删除用户user1的同时删除用户的工作目录 
     (5) 添加用户组 
     addgroup
     语法:      addgroup  groupname

     使用方法: 
             addgroup  groupname
     (6) 删除用户组 
     delgroup
     语法:     delgroup  groupname

     使用方法: 
            delgroup  groupname1

【3】总结与思考
    (1)本节课主要介绍了linux系统中用户管理相关的重要配置文件以及用户管理相关的命令。
    (2)思考    
        用户相关的文件有哪些?
        简述添加用户的过程。
 

笔记

【1】进程的概念
     (1)编译程序上的两个进程
        程序的一次执行就是一个进程 
        程序的两次执行就
        产生了p1和p2进程 


【2】使用ps命令查看进程
    (1)显示进程(process)?的动态
    (2)语法:
                       ps [options]
    (3)常见的参数:
        -A   列出所有的行程 
        -w   显示加宽可以显示较多的资讯 
        -au  显示较详细的资讯 
        -aux 显示所有包含其他使用者的行程 
    (4) %CPU   占用的 CPU 使用率 
    %MEN   占用的记忆体使用率 
    VS2    占用的虚拟记忆体大小 
    RSS    占用的记忆体大小 
    STAT   该进程的状态 
    START  进程开始时间 
    TIME   执行的时间 
    (5)进程的状态标志
        D:    不可中断的静止
        R:    正在执行中 
        S:    阻塞状态 
        T:    暂停执行 
        Z:    不存在但暂时无法消除 
        <:    高优先级的进程 
        N:    低优先级的进程 
        L:    有内存分页分配并锁在内存中
    (6) top命令
        1)监视进程
        2)通常会全屏显示,而且会随着进程状态的变化不断更新
        3)整个系统的信息也会显示,为查找问题提供了便利
        4)可以显示系统总共有多少CPU和内存资源以及负载平衡等信息。  
    (7) pstree命令
    1) 将所有行程以树状图显示,树状图将会以pid(如果有指定)或是以init这个基本进程为根,
       如果有指定使用者id,则树状图会只显示该使用者所拥有的进程。 
        2)参数: 
        -a 显示该进程的完整指令及参数,如果是被记忆体置换出去的进程则会加上括号 
        -c 如果有重覆的进程名,则分开列出


【3】使用kill命令终止进程
    (1)使用kill命令终止进程
        kill  [-signal]  PID 
    signal是信号,PID是进程号
    kill 命令向指定的进程发出一个信号signal,在默认的情况下,kill 命令向指定进程发出信号15,
    正常情况下,将杀死那些不捕捉或不忽略这个信号的进程

笔记

【1】Linux文件系统的类型
    (1)在任何一个操作系统中,文件系统无疑是其最重要的组件,用于组织和管理计算机存储设备上的大量文件,
         并提供用户交互接口。Linux同样具备完善的文件系统。用户既可以使用界面友好的Nautilus图形文件管理器,
     也可以使用功能强大的shell文件系统管理工具。
    (2)linux是一种兼容性很高的操作系统,支持的文件系统格式很多,大体可分以下几类:
     1)磁盘文件系统:指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、USB存储器、磁盘阵列等。
       常见文件系统格式有:autofs、coda、Ext(Extended File sytem,扩展文件系统)、Ext3、Ext4、VFAT、ISO9660(通常是CD-ROM)、
       UFS(Unix File System,Unix文件系统)、FAT、FAT16、FAT32、NTFS等;
         2)网络文件系统:是可以远程访问的文件系统,这种文件系统在服务器端仍是本地的磁盘文件系统,客户机通过网络远程访问数据。
       常见文件系统格式有:NFS、Samba等;
         3)专有/虚拟文件系统:不驻留在磁盘上的文件系统。常见格式有:TMPFS(临时文件系统)、PROCFS(Process File System,进程文件系统)
       和LOOPBACKFS(Loopback File System,回送文件系统)。
     (3) 目前Ext4是Linux系统广泛使用的一种文件格式。在Ext3基础上,对有效性保护、数据完整性、数据访问速度、向下兼容性等方面做了改进。
     最大特点是日志文件系统:可将整个磁盘的写入动作完整地记录在磁盘的某个区域上,以便在必要时回溯追踪。
     (4) SCSI与IDE设备命名
        1)sata硬盘的设备名称是“/dev/sda”
            /dev/sda1 含义?
            /dev/sdb3 含义?
        2)IDE硬盘的设备名称是“/dev/hda” 
            /dev/hdc2 含义?
        3)如果很在意系统的高性能和稳定性,应该使用SCSI硬盘
        4)cat /proc/partitions
     (5) Linux分区的命名方式 
        1)字母和数字相结合
        2)前两个字母表示设备类型
            “hd”代表IDE硬盘
            “sd”表示SCSI或SATA硬盘 
        3)第三个字母说明具体的设备
            “/dev/hda”表示第一个IDE硬盘
            “/dev/hdb”表示第二个IDE硬盘 
     (6) 交换分区
     1)将内存中的内容写入硬盘或从硬盘中读出,称为内存交换(swapping)
      2)交换分区最小必须等于计算机的内存 
     3)可以创建多于一个的交换分区 
      4)尽量把交换分区放在硬盘驱动器的起始位置 
     (7) 文件系统逻辑结构
     1)  某所大学的学生可能在一两万人左右,通常将学生分配在以学院-系-班为单位的分层组织机构中。若需要查找一名学生时,
       最笨的办法是依次问询大学中的每一个学生,直到找到为止。如果按照从学院、到系、再到班的层次查询下去,必然可以找到该学生,且查询效率高。
       这种树形的分层结构就提供了一种自顶向下的查询方法。
      2) 如果把学生看作文件,院-系-班的组织结构看作是Linux文件目录结构,那么就同样可以有效地管理数量庞大的文件。
     3) 一直使用微软Windows操作系统的用户似乎已经习惯了将硬盘上的几个分区,并用A:、B:、C:、D:等符号标识。
        存取文件时一定要清楚存放在哪个磁盘的哪个目录下。
     4) Linux的文件组织模式犹如一颗倒置的树,这与Windows文件系统有很大差别。所有存储设备作为这颗树的一个子目录。
        存取文件时只需确定目录就可以了,无需考虑物理存储位置。


【2】Linux文件系统的结构
     (1) 分区与目录的关系:
        在Windows下,目录结构属于分区;在Linux下,分区属于目录结构。
     (2) 如何知道文件存储的具体硬件位置呢?
     1)  在Linux中,将所有硬件都视为文件来处理,包括硬盘分区、CD-ROM、软驱以及其他USB移动设备等。
       为了能够按照统一的方式和方法访问文件资源,Linux中提供了对每种硬件设备相应的设备文件。
       一旦Linux系统可以访问到硬件,就将其上的文件系统挂载到目录树中的一个子目录中。
      2)  例如,用户插入USB移动存储器,Ubuntu Linux自动识别后,将其挂载到“/media/disk”目录下。
       而不象Windows系统将USB存储器作为新驱动器,表示为“F:”盘。
     (3)   Linux文件系统就是一个树形的分层组织结构。将根(/)作为整个文件系统的惟一起点,其他所有目录都从该点出发。
     将Linux的全部文件按照一定的用途归类,合理地挂载到这颗“大树”的“树枝”或“树叶”上,如图所示。
     而这些全不用考虑文件的实际存储位置,无论是存在硬盘上,还是在CD-ROM或USB存储器中,甚至是网络终端。
     (4) 基本目录 
     1) 由于Linux是完全开源的软件,各Linux发行机构都可以按照自己的需求对文件系统进行裁剪,所以如此众多的Linux发行版本的目录结构也不尽相同。
     为了规范文件目录命名和存放标准,颁发了文件层次结构标准(FHS,File Hierarchy Standard),2004年发行版本FHS 2.3。Ubuntu Linux系统同样也遵循这个标准。 
      2)  绝对路径和相对路径
        a. 在认识到Linux文件系统是树形分层的组织结构,且只有一个根节点之后。在Linux文件系统中查找一个文件,只要确定文件名和路径,就可以惟一确定这个文件。
            例如        “/usr/games/gnect”
        b. 绝对路径:指文件在文件系统中的准确位置。通常在本地主机上,以根目录为起点。例如“/usr/games/gnect”就是绝对路径。
        c. 相对路径:指相对于用户当前位置的一个文件或目录的位置。例如,用户处在usr目录中时,只需要“games/gnect”就可确定这个文件。
     (5) Linux文件系统与Windows文件系统比较 


【3】总结与思考
 

笔记

【1】file、mkdir、rmdir、ln命令
    (1)文件和目录相关的命令
     pwd ls cd touch cp mv rm cat head tail已经在C语言基础补习课程中讲过
    (2)file命令
     1)  在Linux文件系统中,文件扩展名不总是被使用或被一致地使用。如果一个文件没有扩展名,或者文件与其扩展名不符时怎么办呢?
        file命令功能用于判定一个文件的类型。file命令一般语法格式为:
            file  [ filename ]
     2) 其中filename是文件名。命令的输出将显示该文件是二进制文件、文本文件、目录文件、设备文件,还是Linux中其他类型的文件。
        linux@ubuntu:~$ file  /usr/games/banner
        banner: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0, dynamically linked (uses shared libs), stripped
        linux@ubuntu:~$ file  Textfile.txt
        Textfile.txt: UTF-8 Unicode text
    (3)mkdir命令
         1)mkdir命令用于创建一个目录。mkdir命令一般语法格式为:
            mkdir  [ -p ]   directory_name 
         2)其中,directory_name为要创建的目录名,并且不能是已有的目录,通常不允许嵌套创建子目录。
         3)使用选项“-p”表示可以嵌套创建子目录,即多层目录。
     4)需要说明的是,创建目录的用户在工作目录应具有写入权限。假设要创建下面这样结构的目录。
            dir1
            dir1/dir2
            dir1/dir2/dir3
        当然可以使用三条mkdir命令依次创建各层目录。
            linux@ubuntu:~$ mkdir  dir1
            linux@ubuntu:~$ mkdir  dir1/dir2
            linux@ubuntu:~$ mkdir  dir1/dir2/dir3
        不过使用“-p”选项会简单许多,一步达到目标。
            linux@ubuntu:~$ mkdir  –p  dir1/dir2/dir3
            linux@ubuntu:~$ ls  –R  dir1
            dir1:
            dir2
            dir1/dir2:
            dir3
            dir1/dir2/dir3:
     5)rmdir命令用于删除一个目录。rmdir命令一般语法格式为:
            rmdir  [ -p ]   directory_name 
        其中,directory_name为要删除的一个或多个目录名。
        使用选项“-p”表示可以递归删除子目录,即多层目录。
        需要说明的是,删除的目录必须为空目录,并且必须具有对该目录有写入权限。
        假设要删除下面这样结构的目录。
            dir1
            dir1/dir2
            dir1/dir2/dir3
        当然可以使用三条rmdir命令从里向外依次删除各层目录(保证删除的目录为空)
            linux@ubuntu:~$ rmdir  dir1/dir2/dir3
            linux@ubuntu:~$ rmdir  dir1/dir2
            linux@ubuntu:~$ rmdir  dir1/
        不过使用“-p”选项可以一步到位。
        以上命令的执行效果与“rm  –r  dir1”执行效果相同,并且后者的效率更高,因为它不要求各层目录均为空。
            linux@ubuntu:~$ rmdir  –p  dir1/dir2/dir3
     (6)创建链接文件
      1) Linux中有两种类型的链接:
          a.  硬链接是利用Linux中为每个文件分配的物理编号——inode建立链接。
              因此,硬链接不能跨越文件系统。
              b.  软链接(符号链接)是利用文件的路径名建立链接。
          通常建立软链接使用绝对路径而不是相对路径,以最大限度增加可移植性。
      2)  需要注意的是,如果是修改硬链接的目标文件名,链接依然有效;如果修改软链接的目标文件名,
         则链接将断开;对一个已存在的链接文件执行移动或删除操作,有可能导致链接的断开。
         假如删除目标文件后,重新创建一个同名文件,软链接将恢复,硬链接不再有效,因为文件的inode已经改变。
     (7)ln命令
      1)命令可以用于创建文件的链接文件。ln命令一般语法格式为:
        ln  [ -s ]   target  link_name 
      2)其中,选项“-s”表示为创建软链接。在缺省情况下,创建硬链接。参数target为目标文件,link_name为链接文件名。
         如果链接文件名已经存在但不是目录,将不做链接。目标文件可以是任何一个文件名,也可以是一个目录。
        linux@ubuntu:~$ ln  -s  /proc/cpuinfo   mycpuinfo
        linux@ubuntu:~$ ls  –l  mycpuinfo 
        lrwxrwxrwx  1  wdl  wdl  13  2007-09-22 00:43  mycpuinfo -> /proc/cpuinfo
         以上命令为/proc/cpuinfo文件创建了一个软链接文件。使用“ls –l”命令可以查看到新创建的链接文件所指向的目标文件名。


【2】文件的归档和压缩
    (1)压缩文件 
       用户在进行数据备份时,需要把若干文件整合为一个文件以便保存。尽管整合为一个文件进行管理,但文件大小仍然没变。
     若需要网络传输文件时,就希望将其压缩成较小的文件,以节省在网络传输的时间。因此本节介绍文件的归档与压缩。
    (2)
     归档文件是将一组文件或目录保存在一个文件中。
     压缩文件也是将一组文件或目录保存一个文件中,并按照某种存储格式保存在磁盘上,所占磁盘空间比其中所有文件总和要少。
        a. 归档文件仍是没有经过压缩的,它所使用的磁盘空间仍等于其所有文件的总和。因而,用户可以将归档文件再进行压缩,使其容量更小。
            b. gzip是Linux中最流行的压缩工具,具有很好的移植性,可在很多不同架构的系统中使用。bzip2在性能上优于gzip,提供了最大限度的压缩比率。
           如果用户需要经常在Linux和微软Windows间交换文件,建议使用zip。 
            压缩工具     解压工具    文件扩展名
            gzip          gunzip       .gz
            bzip2         bunzip2      .bz2
            zip           unzip        .zip
     (3) 目前,归档工具使用最广泛的tar命令,可以把很多文件(甚至磁带)合并到一个称为tarfile的文件中,通常文件扩展名为.tar。
     然后,再使用zip、gzip或bzip2等压缩工具进行压缩。
     (4) shell归档和压缩工具
     使用shell归档和压缩工具可以更直接地完成文档的打包任务。由于该类shell命令是成对使用的,因此下面按对介绍相关命令。
     (5) gzip与gunzip命令
     与zip明显区别在于只能压缩一个文件,无法将多个文件压缩为一个文件。gzip命令符号模式的一般语法格式为:
     其中,filename表示要压缩的文件名,gzip会自动在这个文件名后添加扩展名为.gz,作为压缩文件的文件名。
        gzip  [ -l| -d | -num ]  filename
     选项             描述
      -l        查看压缩文件内的信息,包括文件数、大小、压缩比等参数,并不进行文件解压
      -d        将文件解压,功能与gunzip相同
      -num      指定压缩比率,num为1~9个等级

    gunzip命令符号模式的一般语法格式为:
        gunzip  [ -f ]  file.gz
    其中,选项“-f”用于解压文件时,对覆盖同名文件不做提示。
    在执行gzip命令后,它将删除旧的未压缩的文件并只保留已压缩的版本。以下命令以最大的压缩率对文件file_1进行压缩,生成file_1.gz文件。
    使用“-l”选项可以查看压缩的相关信息。最后使用gunzip命令对文件进行了解压。与压缩时相反,file_1.gz文件会被删除,继之生成file_1。
            linux@ubuntu:~$ gzip  -9  file_1
            linux@ubuntu:~$ gzip  -l   file_1.gz    
            compressed  uncompressed    ratio    uncompressed_name
               1200                  4896           76.0%       file_1
            linux@ubuntu:~$ gunzip    file_1.gz
     (6) tar命令
     tar命令主要用于将若干文件或目录合并为一个文件,以便备份和压缩。当然,之后出现tar程序的改进版本,可以实现在合并归档的同时进行压缩。
         tar命令符号模式的一般语法格式为:
            tar  [ -t | -x | -u | -c | -v | -f | -j | -z ]  tarfile  filelist
    -t    显示归档文件的内容
    -x    释放归档文件
    -u    更新归档文件
    -c    创建一个新的归档文件
    -v    显示归档和释放的过程信息
    -f    用户指定归档文件的文件名,否则使用默认名称
    -j    由tar生成归档,然后由bzip2压缩
    -z    由tar生成归档,然后由gzip压缩

     第一,将myExamples/目录下的所有文件全部归档,打包到一个文件中myExamples.tar;
     第二,将myExamples/目录下的所有文件全部归档,并使用bzip2压缩成一个文件myExamples.tar.bz;
     第三,将myExamples/目录下的所有文件全部归档,并使用gzip压缩成一个文件myExamples.tar.gz。

    linux@ubuntu:~$ tar  –cf   myExamples.tar      myExamples
    linux@ubuntu:~$ tar  -cjf   myExamples.tar.bz   myExamples
    linux@ubuntu:~$ tar  -czf  myExamples.tar.gz    myExamples
    linux@ubuntu:~$ ls   -lh   myExamples.tar* 
    -rw-r--r-- 1  wdl  wdl  9.3M  2007-09-23 00:42  myExamples.tar
    -rw-r--r-- 1  wdl  wdl  8.6M  2007-09-23 00:43  myExamples.tar.bz
    -rw-r--r-- 1  wdl  wdl  8.5M  2007-09-23 00:44  myExamples.tar.gz

    如果想查看一下归档文件中的详细内容,使用类似以下命令:
        linux@ubuntu~$ tar  –tvf   myExamples.tar.gz
    使用以下命令完成tar文件的释放。其中,“tar -xjf”和“tar –xzf”等效与先解压缩后释放tar文件。
        linux@ubuntu:~$ tar  –xvf   myExamples.tar
        linux@ubuntu:~$ tar  -xvjf   myExamples.tar.bz
        linux@ubuntu:~$ tar  -xvzf  myExamples.tar.gz

笔记

【1】网络配置基础
    (1)用户既可以通过命令行的方式,也可以通过友好的图形界面,轻松完成网络配置。
    (2)实现Linux网络配置的惟一目标就是修改系统中众多的网络配置文件,
     如/etc/interfaces、/etc/hosts,/etc/resolv.conf 等等。
    (3)通常,用户可能使用普通以太网卡、无线网卡、调制解调器等不同类型的设备接入网络。
     不同类型的网络设备在主机中被映射为相应的网络接口,比如以太网卡映射为eth,无线网卡映射为wlan。
     有时,用户还可能同时使用多个网络设备,就会出现eth0、eth1…,或wlan0、wlan1…的情况。
     那么,如何标识每个连接到Internet的网络接口呢?
     解决办法是:为每个网络接口分配一个全世界范围内惟一的32bit的标识符。这个标识符就是IP(Internet Protocol)地址。 


【2】配置IP地址
    (1)IP地址
     IP地址包括三部分:Internet网络号(Net-ID)、子网号(Subnet-ID)和主机号(Host-ID)。
     三级IP地址        net-id        subnet-id    host-id
     子网掩码    1111,1111,1111,1111    1111,1111    0000,0000
    (2)因而可以这样解释:一个IP地址惟一标识了,处在某个互联网中的,某个子网的,某个网络接口。
    (3)根据Internet网络号的字段长度(1,2,3字节长),IP地址区分为A类、B类、C类。三类IP地址的掩码如下所示。
     1) A类地址的默认子网掩码是255.0.0.0,或0xFF000000;
     2) B类地址的默认子网掩码是255.255.0.0,或0xFFFF0000;
     3) C类地址的默认子网掩码是255.255.255.0,或0xFFFFFF00;
     (4) IP网络中通常用最小的IP地址标识网络本身,将最大的IP地址作为该网络的广播地址,其余所有IP地址都分配给网络中的主机。
     然而,局域网中的主机并不能直接访问Internet,需要通过一个作为代理的网关或网络地址转换服务(NAT)才能访问Internet。
     通常将IP地址的第一个或最后一个留给该网络的Internet网关。
     (5) 配置IP地址 
     接入网络的计算机主机依靠IP地址,惟一地标识其在网络中的身份,因此为主机配置IP地址是接入网络的关键。
     配置IP地址的方法有两种:
        1) 配置静态IP:在主机进入网络之前,事先为主机设置固定的IP地址;
        2) 配置动态IP:选择DHCP网络服务,在主机进入网络之后,动态随机获取IP地址。

【3】网络相关命令
     (1) Ifconfig命令
    ifconfig是GNU/Linux中配置网卡的基本命令,包含在net-tools软件包中。它可用于显示或设置网卡的配置,
    如IP地址、子网掩码、最大分组传输数、IO端口等,还可以启动或禁用网卡。
    ifconfig命令有以下两种格式:
        ifconfig  [interface]
        ifconfig  interface [aftype] option | address…
    ifconfig的第一种格式用于查看当前系统的网络配置情况;
              第二种格式用于配置网卡,包括添加、删除网卡,以及绑定多个IP地址等。
    1) 如果主机安装了第二块、第三块网卡,则有eth1,eth2标识。常见的接口类型还有以下几种(N表示接口号):
    2) pppN表示调制解调设备
    3) wlanN表示无线网卡
     4) trN表示令牌环网卡
    5) 如果只是关心某个网络设备,可以在ifconfig后面加上接口名称,则只显示该设备的相关信息,例如:
        linux@ubuntu:~$ ifconfig   eth1
    6) 假设主机现有的IP地址为192.168.182.129,需要为其重新分配IP地址192.168.182.128,即。使用ipconfig命令设置主机的第一块网卡(eth0)的IP地址。
     (2) 配置动态IP地址 
     1) 在大型网络中,由于存在许多的移动计算机系统,随时都可能进入网络,在每次更换网络时,就不得不重新配置网络信息。
     如果计算机在网络里能够自动获取IP地址、子网掩码、路由表、DNS服务器地址等网络信息,具有动态配置IP的能力,就可以大大简化客户端的网络配置难度。
     动态主机配置协议(DHCP,Dynamic Host Configuration Protocol)可以实现动态分配IP资源。
     2) 只要在局域网中架设有DHCP服务器,在Ubuntu Linux中为主机配置DHCP客户端是非常容易的。需要说明的是,通常普通以太网卡和无线网卡可以配置动态IP,
        而调制解调器等网络设备不能配置动态IP。 
        linux@ubuntu:~$ dhclient
     3) 动态IP的获取过程
            可比作一个“租赁”过程。DHCP服务器好比是IP地址的出租方,用户主机(即DHCP客户端)好比是IP地址的临时租用者。  
        如果将用户主机设置为DHCP客户端之后,手动启动网络服务,就可以从执行结果中看出获取动态IP的过程。
        执行过程中包括以下四个阶段。
        a. 客户端寻找DHCP服务器(DHCPDISCOVER):客户端广播申请动态IP的请求;
        b. 服务器提供可分配的IP地址(DHCPOFFER):所有接收到请求的DHCP服务器都将向客户端提供一个IP地址;
        c. 客户端接受IP地址租借(DHCPREQUEST):客户端从多个IP选择中挑选一个,通知DHCP服务器,并标识出所选中的服务器;
        d. 服务器确认租借IP(DHCPACK):被选中的DHCP服务器最后发出一个确认信息,包含IP地址、子网掩码、默认网关、DNS服务器和租借期(客户端使用这个IP的这段时间,称为租借期)。
        最终客户端临时“租借”的IP地址为192.168.182.129。
     (3) IP地址存放在哪里——interfaces配置文件 
      无论是配置静态IP还是动态IP,计算机系统将IP信息保存放在什么地方?答案是配置文件“/etc/network/interfaces”。
     在Ubuntu Linux启动时就能获得IP地址的配置信息。若是配置静态IP,就从配置文件中读取IP地址参数,直接配置网络接口设备;
     若是配置动态IP,就通知主机通过DHCP协议获取网络配置。
     以下分别为配置静态IP和动态IP时,配置文件“/etc/network/interfaces”的实例。
     (4) DNS客户端配置文件—resolv.conf
      1) Ubuntu Linux将DNS服务器地址保存在配置文件/etc/resolv.conf中。
     2) 依然延续上面的例子,添加DNS服务器IP地址后,查看配置文件/etc/hosts,如下所示。
            linux@ubuntu:~$ cat   /etc/resolv.conf
            nameserver  172.16.28.1
            nameserver  202.204.58.2
            nameserver  192.168.182.2
     (5) ping命令
    1) ping(Packet Internet Groper)命令可能是最有名气的网络连接检测工具。
       它使用了Internet控制报文协议(ICMP)回送请求与回送应答报文,测试两个主机之间的连通性。该命令的一般格式如下所示。
    2) ping命令测试的远程主机,既可用域名,也可用IP地址标识。
            ping  [DomainName | IP-address]
    3) 可以使用该命令来判断主机与远程主机是否可达,或之间的网络是否拥塞。min/avg/max/mdev是ping命令的完成测试后的统计结果,
       分别表示最小响应时间/平均响应时间/最大响应时间/响应时间方差。这些指标用于反应网络的联通程度。
            linux@ubuntu:~$ ping  www.ustb.edu.cn
    4) ping命令执行时,会持续不断地向目的主机发送ICMP包。在得到对方的应答后,显示每次连接的统计数据,直到用Ctrl+C组合键中断执行。
       但是,目前很多主机通过设置防火墙,对ping命令不予应答。在这种情况下,ping命令由于不停地发送测试数据包,又得不到返回任何结果,而致使ping命令僵死。
       不过,使用-c参数设置发送测试数据包的次数,以便在有限时间内完成测试。
            linux@ubuntu:~$ ping  -c 3   www.google.com
            PING www-china.l.google.com (66.249.89.99) 56(84) bytes of data.
            --- www-china.l.google.com ping statistics ---
            3 packets transmitted, 0 received, 100% packet loss, time 2000ms
     (6) 管理DNS服务器地址 
     1) DNS域名解析可以在更大范围的计算机网络、Internet,提供域名到IP地址的转换。
        网络中的每台计算机都是一个DNS客户端,向DNS服务器提交域名解析的请求;DNS服务器完成域名到IP地址的映射。
      2) 因此DNS客户端至少有一个DNS服务器地址,作为命名解析的开端。
     (7) nslookup命令
     1) 使用nslookup命令可以查看当前系统所使用的DNS服务器的IP地址。
        linux@ubuntu:~$ nslookup   www.google.com
        Server:   192.168.182.2
        Address:   192.168.182.2#53
        Non-authoritative answer:
        www.google.com canonical name = www.l.google.com.
        www.l.google.com canonical name = www-china.l.google.com.
        Name: www-china.l.google.com
        Address: 66.249.89.99
     2) 服务器192.168.182.2完成了域名解析。Server表示提供服务的DNS服务器,Address中的#53表示TCP/UDP命名服务的端口号。
        若所有的DNS服务器都访问失败,则出现如下的执行结果。
        linux@ubuntu:~$ nslookup   www.google.com
        ;;   connection timed out;   no servers could be reached

    
 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值