第二周练习
1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
cp、mv、rm、touch
cp:copy,复制 SYNOPSIS cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... 选项:-a 归档,相当于-dR --preserv=all,复制所有; -r -R 递归复制目录及内部的所有内容; -i 交互式; -v 显示过程; cp SRC DEST SRC是文件: 如果目标不存在:新建DEST,并将SRC中内容填充至DEST中; 如果目录存在: 如果DEST是文件:将SRC中的内容覆盖至DEST中; 此时建议为cp命令使用-i选项; 如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中; cp SRC... DEST SRC...:多个文件 DEST必须存在,且为目录,其它情形均会出错; cp SRC DEST SRC是目录: 此时使用选项:-r 如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中; 如果DEST存在: 如果DEST是文件:报错 如果DEST是目录:
管理员root默认有-i
mv:move,移动文件
SYNOPSIS mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE...
选项属性跟cp一样,只不过cp是复制mv是剪切
rm:remove,删除
SYNOPSIS rm [OPTION]... FILE...
选项同上cp、mv一样。rm默认不能删除文件夹,一般要删除文件夹时使用
rm -rf DIRECTORY
-r:递归
-f:强制
touch:创建文件、修改时间戳
SYNOPSIS touch [OPTION]... FILE... -a: only atime -m: only mtime -t: STAMP: [[CC]YY]MMDDhhmm[.ss] -c: 如果文件不存,则不予创建
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
命令的执行结果状态 成功 失败 bash使用特殊变量$?保存最近一条命令的执行状态结果: 0:成功 1-255:失败 程序执行有两类结果: 程序的返回值; 程序的执行状态结果;
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
[root@caicai ~]# mkdir -pv /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 [root@caicai ~]# mkdir -pv /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}}
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
(1)文件的元素信息有:文件名、文件大小、文件权限、文件属组、属主、access time、modify time、change time等
(2)stat /PATH/TO/SOMEFILE:获取指定文件的元数据
1
2
3
4
5
6
7
8
|
[root@caicai ~]# stat 123.txt File: `123.txt' Size: 3568 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768dInode: 1572878 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-06-18 22:02:11.185993594 +0800 Modify: 2016-06-18 22:02:11.185993594 +0800 Change: 2016-06-18 22:02:11.185993594 +0800 |
(3)touch命令:改变文件的时间戳
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
touch [OPTION]... FILE... -a: only atime -m: only mtime -t STAMP: [[CC]YY]MMDDhhmm[.ss] -c: 如果文件不存,则不予创建 [root@caicai ~]# stat 123.txt File: `123.txt' Size: 3568 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 1572878 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-06-18 22:02:11.185993594 +0800 Modify: 2016-06-18 22:02:11.185993594 +0800 Change: 2016-06-18 22:02:11.185993594 +0800 [root@caicai ~]# touch 123.txt [root@caicai ~]# stat 123.txt File: `123.txt' Size: 3568 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 1572878 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-06-26 22:54:19.238004986 +0800 Modify: 2016-06-26 22:54:19.238004986 +0800 Change: 2016-06-26 22:54:19.238004986 +0800 |
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
alias:显示当前shell进程所有可用的命令别名 alias NAME='VALUE'定义别名NAME,其相当于执行命令VALUE; 在命令行中定义的别名,仅对当前shell进程有效;如果想永久有效,要定义在配置文件中; 仅对当前用户:~/.bashrc 对所有用户有效:/etc/bashrc [root@caicai ~]# alias NAME='VALUE' [root@caicai ~]# alias alias NAME='VALUE' alias cp='cp -i' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
引用另一个命令的执行结果可以用管道符号 COMMAND1 | COMMAND2 | COMMAND3 |... [root@caicai ~]# ls /tmp | tr 'a-z' 'A-Z' A_C A_D B_C B_D MYLINUX WHO.OUT
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
# ls -d /var/l*[0-9]*[[:lower:]]
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
# ls -d /etc/[0-9]*[^0-9]
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
# ls /etc/[^[:alpha:]][[:alpha:]]*
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
# touch /tmp/tfile-"$(date +%Y-%m-%d-%H-%M-%S)"
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
# cp -a /etc/p*[^[:digit:]] /tmp/mytest1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
# cp -a /etc/*.d /tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
# cp -a /etc/{1,m,n}*.conf /tmp/mytest3
原创文章,作者:N21_志建,如若转载,请注明出处:http://www.178linux.com/20958
评论列表(1条)
写的很好,排版还可以在漂亮一点,有的问题还是有些小瑕疵的,加油