1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

    cd: 切换工作路径     例:cd ..或cd - 返回上一层目录 ,cd ~ 返回当前用户的家目录

    grep: 匹配关键字查找  例:ls /etc | grep sys 查找etc目录下面包含sys的目录或文件

    touch:创建一个空文件        例:touch /tmp/test1

    mkdir:创建一个空目录        例:mkdir /tmp/test

    mv: 移动文件到指定地方或改名    例:mv /etc/* /tmp/test    mv /aa /bb

    rm: 删除文件或目录             例如:rm /ww

    cp:复制指定文件到指定位置。     例如:cp SRC DEST 

    ls: 查看指定目录下的文件或目录。 例如:ls /

    cat:查看指定文件的内容。         例如:cat /etc/passwd  

    还有tail、head、more、less等相关命令,可以使用帮助命令进行查看具体使用方法。

2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

   (1)命令与路径补全  tab键

   (2)查看历史命令  history命令

  (3)命令别名   alias与unalias命令

  (4)命令行编辑  ctrl+a、e、u、k等

  (5)命令执行结果的状态 (成功或失败)

       bash使用特殊变量来保存最近一条命令的执行状态结果 0:成功 1-255;失败

       echo $? 查看状态显示值   程序执行的两类结果:程序的返回值、程序执行的状态结果

  (6)glob(globbing) bash中用于实现文件名通配

       通配符:* 任意长度的任意字符

               ? 任意单个字符

               [] 匹配指定范围内的任意单个字符 eg:[0-9]、[a-z]等

               [^] 匹配指定范围外的任意单个字符 即取反

       man 7 glob 可以查看详细的匹配字符集

   (7)bash的I/O重定向及管道

    程序:指令+数据  读入数据 INPUT   输出数据 OUTPUT

    标准输入 keyboard,0  

    标准输出 monitor,1

    错误输出 monitor,2

    I/O重定向:改变标准位置

     输入重定向:< (tr 用来删除或转换字符 -d 删除指定字符)

        cat >> /tmp/out.txt <<EOF

     输出重定向:COMMAND > NEW_POS 或 COMMAND >> NEW_POS

        > 覆盖重定向  >> 追加重定向

    set -C 禁止将内容覆盖输入到已存在的文件中 强制覆盖:>|

    set +C 开启将内容覆盖输入到已存在的文件中

     错误输出 2> 覆盖重定向错误输出数据流

              2>> 追加重定向错误输出数据流

    标准输出和错误输出各自定向至不同的位置  COMMAND > /PATH/TO/FILE.OUT 2> /PATH/TO/ERROR.out 

     COMMAND > /PATH/TO/file.out 2> &1

     COMMAND >> /PATH/TO/file.out 2>> &1

    管道:COMMAND1 | COMMAND2 | COMMAND3 |....

      Note:最后一个命令会在当前shell进程的子shell进程中执行

      eg:echo "$PATH" | tr 'a-z' 'A-Z'


 

3、请使用命令行展开功能来完成以下练习:

(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

     mkdir {a,b}_{c,d}

(2)、创建/tmp/mylinux目录下的:

mylinux/

├── bin

├── boot

│   └── grub

├── dev

├── etc

│   ├── rc.d

│   │   └── init.d

│   └── sysconfig

│       └── network-scripts

├── lib

│   └── modules

├── lib64

├── proc

├── sbin

├── sys

├── tmp

├── usr

│   └── local

│       ├── bin

│       └── sbin

└── var

├── lock

├── log

└── run

      mkdir -p mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var,lock,log,run}


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

       file:表示文件的路径

        size:表示文件大小,包括块大小等

        device:表示文件的信息,包括inode节点数和link数等

        stat  查看文件元数据信息  

        ATIME 访问文件时间

        MTIME 修改文件内容的时间

        CTIME 修改文件名以及文件属性的时间   

        使用touch命令可以修改文件的时间戳信息


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

   定义文件别名: alias cr="cd /root"     

   在命令中引用另一个命令的执行结果:cd /tmp | mkdir ./test11     


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

    ls /var/l*[0-9]*[[:lower:]]


7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

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


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

   ls /etc/[^[:alpha:]][[:alpha:]]*


9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-08-06-09-32-22。

    touch /tmp/tfile-$(date '+%Y-%m-%d-%H-%M-%S')


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

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


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

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


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

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