练习题 1

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

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

# mkdir /tmp/{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 -vp /tmp/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}

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

文件的元数据信息有:文件名、文件大小、属主属组、硬链接数量、权限信息、访问日期、修改日期、改变日期等 ,可通过stat FILENAME来进行查看。

修改文体的时间戳信息可使用touch命令,touch命令介绍:

SYNOPSIS

   touch [OPTION]... FILE...

   OPTIONS:

   -a:修改文体的访问时间

   -m:修改文件的修改时间

   -c:不创建文件

   -t STAMP:使用STAMP代替当前时间,STAMP格式:[[CC]YY]MMDDhhmm[.ss]

   DESCRIPTION:

   修改文件的任何元数据信息都会引起文件改变时间的变化,包括访问和修改时间。因为改变时间记录的就是无数据信息改变的时间。

   例:

   修改a.txt的访问时间和改变时间为当前时间:

    touch -a a.txt

   修改a.txt的修改时间为2016年1月2日3点4分5秒,改变时间为当前时间:

    touch -m -t 201601020304.05 a.txt

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

使用alias命令定义别名,如:# alias c=’clear’

在命令中引用另一个命令的执行结果的方法:

1)、使用管道;

例:统计登陆过系统的用户账号:

last | cut -d’ ’ -f1 | sort -u | egrep -v ‘reboot|wtmp’

2)、使用反引号(“)或$();

例:创建一个包含当前日期的文件:

touch file_$(date +”%Y%m%d”)

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

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

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

ls -d /tmp/[[:digit:]]*[^[:digit:]]

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

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

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

touch /tmp/tfile-date +"%F-%T" | tr ':' '-'

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

mkdir /tmp/mytest1;cp -vr /etc/p*[^0-9] /tmp/mytest1/

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

mkdir /tmp/mytest2;cp -vr /etc/*.d /tmp/mytest2

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

mkdir /tmp/mytest3;cp -vr /etc/[l,m,n]*.conf /tmp/mytest3

你可能感兴趣的:(练习题 1)