一、常用命令
touch命令: touch [OPTION]... FILE... -a:atime -m:mtime -c:ctime access、modify、change三个时间戳的区别: Access:访问时间,atime,通过cat、more等读取其内容 Modify:修改时间,mtime,改变文件的内容 Change:改变时间,ctime,改变文件的元数据,即修改权限、属组、属主等
使用stat命令可查看文件的三个时间戳如下:
[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、 如果目标文件不存在,则创建目标文件把源文件的内容复制到新建的目标文件中。
2、 如果目标文件存在,则提示覆盖目标文件的内容
如下则表示不提示用户是否覆盖:\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:显示权限
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)