您的位置:首页 > 运维架构 > Linux

马哥2016全新Linux+Python高端运维班第二周作业

2016-08-14 14:57 701 查看
1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
答:文件管理类命令有,cp,mv,rm
1,cp
命令功能:将一个或多个源文件或目录复制到指定的目标文件或目录
命令格式:
cp [OPTION]... [-T] SOURCE DEST //cp [选项]…[-T]源目的
cp [OPTION]... SOURCE... DIRECTORY // cp [选项]…源…目录
cp [OPTION]... -t DIRECTORY SOURCE... // cp [选项]…-t 目录 源…
常用选项:
-i:交互式复制,即覆盖之前提醒用户确认
-f:强制覆盖目标文件
-r:递归复制目录(大写R也是这个功能)
-d:--no-dereference --preserv=links 复制符号链接文件本身,而非其指向的源文件
-a:归档,相当于-dR --preserve=all,archive,用于实现归档

2, mv
命令功能:为文件或目录改名,或将文件或目录移动到其它位置
命令格式:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用选项:
-i:交互式
-f:force强制覆盖,不提示
-v:显示移动过程
-u:若目标文件已经存在,且 source 比较新,才会更新(update)
-b:若需覆盖文件,则覆盖前先行备份
-t:即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后

3,rm
命令功能:删除一个目录中的一个或多个文件或目录
命令格式:rm [OPTION]... FILE...
命令选项:
-i:interactive交互式
-f:force强制删除
-r:recursive递归删除
删除目录:rm -rf /路径/目录

2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示.
答:bash命令执行完成后会有一个返回值,保存在$?中,如果正常执行,返回0,错误则返回值为1-255之间的数字。当执行命令后,执行echo $?查看。
如:
[root@localhost tmp]# ls -l  (输入一个正确的命令查看当前目录)
total 16
drwxr-xr-x. 2 root root 4096 Aug  7 01:44 a_c
drwxr-xr-x. 2 root root 4096 Aug  7 01:44 a_d
drwxr-xr-x. 2 root root 4096 Aug  7 01:44 b_c
drwxr-xr-x. 2 root root 4096 Aug  7 01:44 b_d
[root@localhost tmp]# echo $?  (查看,下面显示0)
0
[root@localhost tmp]#
[root@localhost tmp]# lls -l   (输入的错误命令)
-bash: lls: command not found
[root@localhost tmp]# echo $?   (查看,下面显示127的错误返回值)
127
[root@localhost tmp]#


3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
[root@localhost tmp]# mkdir /tmp/{a,b}_{c,d}
[root@localhost tmp]# ll
total 16
drwxr-xr-x. 2 root root 4096 Aug  7 01:44 a_c
drwxr-xr-x. 2 root root 4096 Aug  7 01:44 a_d
drwxr-xr-x. 2 root root 4096 Aug  7 01:44 b_c
drwxr-xr-x. 2 root root 4096 Aug  7 01:44 b_d
[root@localhost tmp]#
(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@localhost tmp]#  mkdir -p /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}
[root@localhost tmp]# tree /tmp/mylinux
/tmp/mylinux
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts
├── lib
│   └── modules
├── lib64
├── lock
├── log
├── proc
├── run
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│       ├── bin
│       └── sbin
└── var

24 directories, 0 files
[root@localhost tmp]#
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
答:(1)使用stat查看
[root@localhost tmp]# stat passwd
File: `passwd'
Size: 1246            Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 411220      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-08-07 00:35:55.925091741 -0400
Modify: 2016-08-07 00:35:55.925091741 -0400
Change: 2016-08-07 00:35:55.925091741 -0400
[root@localhost tmp]#
(2)可以使用touch修改时间戳,
touch [-acm][-r ref_file(参照文件)|-t time(时间值)] file(文件名)
example:
touch file1.txt 更新file1.txt的存取和修改时间
touch -c file1.txt 如果file1.txt不存在,不创建文件
touch -r ref_file file1.txt 更新file1.txt的时间戳和ref+file相同
-a
修改文件 file 的存取时间.
-c
不创建文件 file.
-m
修改文件 file 的修改时间
-r ref_file
将参照文件 ref_file 相应的时间戳记的数值作为指定文件 file 时间戳记的新值.
-t time
使用指定的时间值 time 作为指定文件 file 相应时间戳记的新值。

5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
答: 1,使用alias命令
例如:[root@localhost tmp]# alias if='ifconfig'
[root@localhost tmp]# alias if='ifconfig'
[root@localhost tmp]# if
eth0      Link encap:Ethernet  HWaddr 00:0C:29:29:BF:88
inet addr:192.168.2.55  Bcast:192.168.2.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe29:bf88/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:1617 errors:0 dropped:0 overruns:0 frame:0
TX packets:1089 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:146643 (143.2 KiB)  TX bytes:163275 (159.4 KiB)

lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:65536  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

[root@localhost tmp]#
2,命令中引用另一个命令,可使用管道符“|”来实现
上面已设置ifconfig别名,通过管道符把来网卡信息传递给head命令,通过head -3来显示前3行
[root@localhost tmp]# if |head -3
eth0      Link encap:Ethernet  HWaddr 00:0C:29:29:BF:88
inet addr:192.168.2.55  Bcast:192.168.2.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe29:bf88/64 Scope:Link
[root@localhost tmp]#
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
答:
[root@localhost var]# ls -d /var/l*[0-9]*[[:lower:]]
/var/ltest8test
[root@localhost var]#
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
答:
[root@localhost etc]# ls /etc/[0-9]*[^0-9]
/etc/12abc
[root@localhost etc]#
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
答:
[root@localhost etc]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
/etc/1test
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-08-06-09-32-22。
答:
[root@localhost tmp]# touch tfile-`date +"%Y-%m-%d-%H-%M-%S"`
[root@localhost tmp]# ll |grep tfile
-rw-r--r--.  1 root root    0 Aug  7 01:14 tfile-2016-08-07-01-14-34
[root@localhost tmp]#
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
如果没有mytest1这个目录,需要先手动创建这个目录
[root@localhost tmp]# cp -a /etc/p*[^0-9] /tmp/mytest1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
如果没有mytest2这个目录,需要先手动创建这个目录
[root@localhost tmp]# cp -a /etc/*.d /tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
如果没有mytest3这个目录,需要先手动创建这个目录
[root@localhost tmp]# cp -a /etc/[l,m,n]*.conf /tmp/mytest3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux