Linux基础知识(二)

 本文的主要内容是:

 1.Linux上的基本文件管理命令

 2bash的特性及其命令状态返回值

 3.bash的花括号展开机制

 4.文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息

 5如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果? 

 6.bash特性之globbing文件名匹配以及示例详解:

 (1)显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

 (2).显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录

 (3)显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

 (4)在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

 (5)复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

 (6).复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

 (7)复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

 1.Linux上的基本文件管理命令

  Linux的哲学思想之一就是一切皆文件,几乎所有的配置文件都已纯文本的形式存在,甚至连物理设备的访问入口也是文件,因此,对文件的管理尤为中重要,是玩转Linux的基本技能。常见的文件管理命令有:

    (1) ls : 列出指定目录下文件

    语法: ls [options] [file]

     常用选项:

        -a : 列出指定目录下的所有文件,包括隐藏文件

        -l : 以长格式列出文件信息

        -d:查看目录自身而非其内部的文件列表;

        -R: recursive,递归显示;

        -h : 默认情况下,列出的文件的信息是以字节为单位,-h选项能使列出的文件大小以 KB,MB等为单位列出,通常与-l一起组合使用

 示例:

       表示列出/etc目录下的所有文件 :  ls -a /etc/

       以人容易读懂的长格式显示/etc下的文件:ls -lah /etc/

       只查看指定的文件信息:ls -lah /etc/fstab

   (2) cp:复制文件和目录,默认情况下不能复制目录。

   语法:cp [options] source dest

   常用选项:

        -f : 强行复制文件或目录, 不论目的文件或目录是否已经存在

        -p :保留源文件或目录的属性,包括所有者、所属组、权限与时间

        -d:复制链接属性

      -R: 递归处理,将指定目录下的文件及子目录一并处理

  示例:

       将file1 复制到  /tmp/  :  cp file1 /tmp/file1

        将dir1下的文件复制到/tmp/下:cp -R dir1 /tmp/

        复制时保留文件的属性: cp -p fiel1 /tmp/

  (3)pwd:显示工作目录

  (4)cd:改变工作目录

  语法:cd [options] dest_dir

  常用选项:

   cd: 切换回家目录;

   cd ~ username:切换到指定用户的家目录

   cd – :在上一次所在的目录与当前目录之间进行切换

 (5) cat : 查看指定文件的内容

    语法:cat [options] file

    常用选项:

     -n :显示文件内容的时候添加行号

   示例:

       查看file的内容: cat -n file

   (6).tac:查看文件的内容,是从后往前查看

   语法: tac [options] file

   常用选项:

     -n:显示时添加行号

  示例

    tac -n file1

   (7)file:查看文件类型

    语法:file file_name

   (8).mv:移动或者重命名文件

    语法:mv [options] source dest

    常用选项: 

    -b :若需覆盖文件,则覆盖前先行备份。

    -f :强制的意思,如果目标文件已经存在,不会询问而直接覆盖 

    -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

   示例:

        将当前目录下的文件file重命名为file1:mv file file1

       将当前目录下的file移动到/tmp/file,而且要做个备份:mv -b file /tmp/file

    (9).rm:删除文件或者目录,默认情况下,当文件不为空的时会询问是否要删除,此命令及其危险,操作之前请三思而后行。

   语法:rm [options] file

   常用选项:

     -r:递归删除

     -f :强行删除

     -i:删除文件之前会询问是否删除

   示例:

       删除文件file: rm file

       强制删除文件file:rm -f file

        删除/tmp/下的test目录: rm -r /tmp/test/

        强制删除/tmp/test/目录:rm -rf /tmp/test

   (10).wc:统计文件中单词个数和文件的行数

    语法:wc [options] file

    常用选项:

      -l:文件的行数

      -w:统计单词的个数

   示例:

       统计file的行数:wc -l file

       统计file的单词个数:wc -w file

  (11)sort:对文本文件进行排序

  语法:sort [options] file

  常用选项:

      -d : 按字典顺序进行排序

      -n :按数字进行排序

      -r:逆序排序

   示例:

      对file进行逆序排序:sort -r file

      对fi按字典顺序进行排序:sort -d file

      对file按数字顺序进行排序:sort -n file

  

  (12).tr:转换或删除字符

  语法 : tr [options] set1 set2

  常用选项:

      -d : 删除指定的字符集合

      -s : 删除重复的字符集合

   常用的字符串集合:

     [a-z]:全部小写字符集合

     [A-Z]:全部大写字符的集合

     [0-9]:全部数字的集合

   示例:

       将file中的全部小写转换为大写:tr [a-z] [A-Z] < file

       将file中的数字全部删除: tr -d [0-9] < file

       删除file中的空行:tr -s "\n" < file

   (13).mkdir:创建目录

   语法:mkdir [options] dir_name

   常用选项:

        -p:当父目录不存在时先创建父目录

        -v:显示详细的创建过程

        -m MODE:创建目录时直接指定权限

   示例:

     在/tmp目录下创建test1/test2/目录,test1事先不存在:mkdir -p /tmp/test1/test2

 2.bash特性之命令状态返回值

 bash中每个命令执行之后只会有两种状态,成功或者失败,而成功执行返回的指是0,若返回值为其他的则说明上一条命令执行失败了。

  查看方法:echo $?

 3.bash特性之展开机制

 (1).命令行展开:

  ~:自动展开为用户的家目录

  {}:将逗号分隔的路径列表展开为多个路径

  例如:

    在/tmp/下创建a_c, a_d, b_c, b_d : touch {a,b}_{c,d}

    

             创建有如下结构的文件目录/tmp/mysysroot/

    |– bin

    |– etc

    |     — sysconfig

    |         — network-scripts

    |– sbin

    |– usr

    |     |– bin

    |     |– lib

    |     |– lib64

    |     |– local

    |     |   |– bin

    |     |   |– etc

    |     |   |– lib

    |     |   |– sbin

    |     |– sbin

     — var

           |– cache

           |– log

           |– run

 mkdir -p /tmp/mysysroot/{bin,etc/sysconfig/network-script,sbin,usr/{bin,lib,lib64,local/{bin,etc,lib,sbin}sbin}var/{cache,log,run}}

 4.文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息

 (1).文件的元数据有:

    文件类型:常见的类型有普通文件(f),目录(d),块设备文件(b),字符设备(c),管道文件(p),套接字文件(s),连接文件(l)。

    属主和属组信息:创建文件的用户以及该用户所属的用户组

    属主和属组和其他用户对文件的权限:三位为一组,分别是r(读)w(写)x(执行),对应位没有则显示为-

    文件的大小:显示了文件的大小,通常以字节为单位

    文件的时间戳:包括文件的创建时间,修改时间和改变时间

    文件名称:即为文件的名字

  (2)修改文件的时间戳

  touch:修改文件的时间戳

  语法: touch [options]  file

  常用选项:

      -c: 指定的文件路径不存在时不予创建;

      -a: 仅修改access time;

      -m:仅修改modify time;

      -t STAMP

   示例:

       创建不存在的文件file:touch file

       更新文件的时间戳 file:touch -r file

       设定文件的时间戳:touch -t 201211142234.50 file

    

 5.如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果? 

 (1).定义命令别名:

  alias name=command : 只对当前进程有效,下次重新启动时就会失效,要想永久有效,要将其写入配置文件中。

 (2).引用另一个命令的执行结果的方法:管道(|),同时也体现了Linux的重要哲学思想之一,组合小程序完成复杂的任务。

 例如:

    想分屏显示查看你ls得到的结果 ls -lah | less

 

 

 6.bash的特性之globbing文件名通配

 bash的特性之一,支持globbing文件名通配,即支持元字符匹配模式,常用的有

    \*:匹配任意长度任意字符

    ? :任意的单个字符

    [ ]:范围内的任意单个字符

    [^ ] :范围外的任意单个字符

  常见用于匹配的字符集合有:

   [[:upper:]]:所有大写的字母

   [[:lower:]] : 所有小写字母

   [[:alpha:]]:所遇的字母

   [[:digit:]]:所有数字集合

   [[:space:]:空格

   [[:alnum:]]]:字母和数字

   [[:punct:]]:标点符号

   

  (1).显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

            ls -d /var/l?[[:lower:]]       

 (2).显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录

      ls -d /etc/[0-9]^[0-9]

  (3)显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录

     ls -d /etc/[^a-z][a-z]*

  (4)在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

  touch /tmp/ file-`date +%Y-%m-%d-%H-%M-%S`

  (5).复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中:

  cp -r /etc/p[^0-9] /tmp/mytest1

  

 (6).复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录

 cp -r /etc/*.d /tmp/mytest2

 (7)复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中:

 cp /etc/[lmn]*.conf /tmp/mytest3

  

原创文章,作者:zhangbao,如若转载,请注明出处:http://www.178linux.com/49067

评论列表(1条)

  • luoweiro
    luoweiro 2016-10-10 23:03

    在总结知识点的时候能多一些实验环节能加深印象,想得越多,实践的越多越记忆深刻。