一、常用命令

touch命令:
    touch [OPTION]... FILE...
     -a:atime 
     -m:mtime 
     -c:ctime
access、modify、change三个时间戳的区别:
Access:访问时间,atime,通过cat、more等读取其内容
Modify:修改时间,mtime,改变文件的内容 
Change:改变时间,ctime,改变文件的元数据,即修改权限、属组、属主等

使用stat命令可查看文件的三个时间戳如下:

wKioL1eawX3x5McLAAAyS42xzlg927.png

[root@centos6 ~]# date
2016年 07月 31日 星期日 19:15:12 CST
[root@centos6 ~]# stat services
  File: "services"
  Size: 0         Blocks: 0          IO Block: 4096   普通空文件
Device: 803h/2051dInode: 5898398     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-22 14:40:03.027684266 +0800
Modify: 2016-07-22 14:23:57.227122945 +0800
Change: 2016-07-22 14:23:57.227122945 +0800
[root@centos6 ~]# touch -a services
[root@centos6 ~]# stat services
  File: "services"
  Size: 0         Blocks: 0          IO Block: 4096   普通空文件
Device: 803h/2051dInode: 5898398     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-31 19:15:44.446454193 +0800
Modify: 2016-07-22 14:23:57.227122945 +0800
Change: 2016-07-31 19:15:44.446454193 +0800
[root@centos6 ~]# touch -m services
[root@centos6 ~]# stat services
  File: "services"
  Size: 0         Blocks: 0          IO Block: 4096   普通空文件
Device: 803h/2051dInode: 5898398     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-31 19:15:44.446454193 +0800
Modify: 2016-07-31 19:16:26.497212950 +0800
Change: 2016-07-31 19:16:26.497212950 +0800
[root@centos6 ~]#
cp命令:
   cp [OPTION]... [-T] SOURCE DEST
   cp [OPTION]... SOURCE... DIRECTORY
     cp [OPTION]... -t DIRECTORY SOURCE...
常用选项:
   -r:递归复制目录及内容的所有内容
   -a:归档
   -d:表示不跟踪符号链接所指向的源文件,直接复制链接文件
   -p:保持原文件的属性信息
   -f:强制覆盖
   -v:显示过程  
   -R:递归复制目录及内部的所有内容
   -i:交互式
   -preserv=[…] mode:权限  ownership:属组 timestramp:时间戳

1、  如果目标文件不存在,则创建目标文件把源文件的内容复制到新建的目标文件中。

wKioL1eaw_qSTp4XAAAreWYpyrY539.png


2、  如果目标文件存在,则提示覆盖目标文件的内容

wKioL1eaxFCh4KRIAAAb72glXUg021.png

如下则表示不提示用户是否覆盖:\cp chen.txt /testdir/test /usr/bin/cp chen.txt /testdir/test                       

mv命令:  
  常用选项:
    -i:交互式
    -f:强制
rm命令:
    常用选项:    
        -i:交互式
     -f:强制
     -r:递归


tree命令:
    -d: 只显示目录
    -L level:指定显示的层级数目 tree –L 2 /etc/
    -P pattern: 只显示由指定pattern匹配到的路径
    -p:显示权限

wKiom1eayPKiRHCRAABM7ETamkE558.pngwKiom1eayZGAJNGZAAAS-yYk7po987.png

mkdir 创建目录 
    -p: 存在于不报错,且可自动创建所需的各目录;
    -v: 显示详细信息
    -m MODE: 创建目录时直接指定权限;
rmdir 删除空目录 
    -p: 递归删除父空目录
    -v: 显示详细信息
    rm -r 递归删除目录树

文件可以包含多种类型的数据
检查文文件类型,然后确定适当的开放命令或应用程序使用 
file [options]<filename>... 
Option:
    -b列出文件辨识结果时,不显示文件名称。
    -c详细显示指令执行过程,便于排错或分析程序执行形
    -f列出文件中文件名的文件类型
    -F使用指定分隔符号替换输出文件名后默认的”:”分隔符 
    -i输出mime类型的字符串 
    -L查看对应软链接对应文件的文件类型
    -z尝试去解读压缩文件的内容 --help显示命令在线帮助

二、重定向

标准输入输出:
程序:指令+数据 读入数据:Input输出数据:Output 
打开的文件都有一个fd: file descriptor (文件描述符)
Linux给程序提供三种I/O设备
标准输入(STDIN)-0 默认接受来自键盘的输入
标准输出(STDOUT)-1 默认输出到终端窗口
标准错误(STDERR)-2 默认输出到终端窗口
I/O重定向:改变默认位置
支持的操作符号包括: 
> 把输出重定向到文件
2> 把错误输出重定向到文件
&> 把所有输出重定向到文件 
> 文件内容会被覆盖
# set -C: 禁止将内容覆盖已有文件,但可追加 
强制覆盖:>| # set +C: 允许覆盖 
>> 原有内容基础上,追加内容
> 文件内容会被覆盖
# set -C: 禁止将内容覆盖已有文件,但可追加 强制覆盖:>| 
# set +C: 允许覆盖 
>> 原有内容基础上,追加内容

(1)如何创建/testdir/dir1/x, /testdir/dir1/y,/testdir/dir1/x/a, /testdir/dir1/x/b, /testdir/dir1/y/a, /testdir/dir1/y/b


mkdiri –p /testdir/dir1/{x/{a,b},y/{a,b}}


(2)如何创建/testdir/dir2/x, /testdir/dir2/y,/testdir/dir2/x/a, /testdir/dir2/x/b


mkdir  -pv /testdir/dir2/{x/{a,b},y}


(3)如何创建/testdir/dir3, /testdir/dir4,/testdir/dir5, /testdir/dir5/dir6, /testdir/dir5/dir7


mkdir –p /testdir/dir{3,4,5/dir{6,7}}

 

mkdir –p /testdir/{dir3,dir4,dir5/{dir6,dir7}}

(4)使用别名命令,每日将/etc/目录下所有文件, 备份到/testdir/下独立的新目录下,并要求新目录 格式为 backupYY-mm-dd ,备份过程可见

 

alias cp=’cp –av /etc /testdir/backup`date +%F`’

 

(5)先创建/testdir/rootdir目录,再复制/root所有 下文件到该目录内,并要求保留原有权限

 

cp /root/ -R --preserv=mode/testdir/rootdir 或者:cp -av /etc /testdir/backup$(date)