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