I. Linux的文件管理类命令
cp: copy,复制命令,使用格式为cp Address1 Address2(Address可以是文件,这样的话即为复制文件的内容)
复制etc目录下的fstab文件至tmp目录下。
如果目的地不存在,系统会自动创建一个新的文件并把内容覆盖上去。
mv: move,移动命令,使用格式为mv Address1 Address2,和cp命令很像。
rm: remove,删除命令,使用格式为rm FILE。
然而rm命令不能直接删除文件夹。为此需要rm -rf这个选项。
-r即recursive,-f即force。
还有比较常用的是rm -rf ./*,即删除当前文件夹下所有文件。
II. bash的工作特性
bash shell中每一个命令执行完之后会有一个状态返回值,可以用echo $?来查看。
这个返回值代表最近一次命令执行的结果。0代表成功,1代表失败,2至255也代表失败,每个的意义不同。1是最常见的。
命令行展开这个特性包括了~和{}。
~代表当前用户的家目录。
{}的使用方法如下。
比如说我们要创建/tmp目录下的:a_c, a_d, b_c, b_d
一般我们需要输入4次。
而是用命令行展开的{}则很简洁。
再比如我们要创建/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
一个命令即可搞定。
III. 文件的元数据和时间戳
我们用stat命令来获取文件的元数据。
文件的元数据包括了文件名,文件大小,文件类型,文件归属,文件访问读写执行权限,文件的时间戳等等。
我们可以用touch命令来修改文件的时间戳。
可以看到touch命令将文件的时间戳改成了现在的时间。
touch命令有几个常用的选项。
比如-d,可以将修改的时间变为指定时间而不是当前时间。
比如-a为只修改Access时间,-m为只修改Modify时间等等。
IV. 如何定义一个命令的别名
使用alias命令即可定义别名,格式为alias NAME=“COMMAND”
即将rm -rf的别名设置为die。
我们使用unalias可以取消这个别名。
如此定义的别名只对当前shell进程有效。若想其永久生效的话,需在/etc/bashrc或~/.bashrc文件添加一行这个命令。这样的话shell进程启动会自动读取这个配置。
V. 如何在命令中引用另一个命令的执行结果?
我们使用管道(pipe)。
比如我们将echo的内容进行egrep搜索。
VI. 练习
Q1:显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
A: egrep "^I.*[[:digit:]].*[[:lower:]]$" /var
Q2:显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
A: egrep "^[0-9].*[^0-9]$" /etc
Q3:显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
A: egrep "^[^a-zA-Z][a-zA-Z].*" /etc
Q4:在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
A: touch tfile-"$(date +%F-%M-%H-%S)"
Q5:复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
A: cp -r /etc/p*[^0-9] /tmp/mytest1
Q6:复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
A: cp -r /etc/*.d /tmp/mytest2
Q7:复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
A: cp -r /etc/[lmn]*.conf /tmp/mytest3
原创文章,作者:mercerchen,如若转载,请注明出处:http://www.178linux.com/25740
评论列表(1条)
写的很好,排版还可以在漂亮一点,不要截黑屏了,加油