马哥教育网络班21期+第二周课程练习

1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。


cp:复制


CP SRC DEST

    SRC是源文件:

               如果目录不存在,新建DEST,并将SRC的内容填充到DEST;

               如果目录存在:

                             如果DEST是文件,将SRC中的内容覆盖至DEST两种

                              此时建议是用-i选项:

                              如果DEST是目录,则直接原名复制。

CP SRC…   DEST

              SRC…..:多个文件

                   DEST必须存在,且为目录,其他情形会报错。

 

CP SRC DEST

             SRC是目录:

                     则使用选项:-r (递归);

                     如果DEST目录不存在,新建DEST目录,并将SRC的内容复制到新建的DEST。

                     如果DEST存在:

                                         必须是目录,则同名复制。

 

相关参数:

-a:归档保留所有属性

-r/-R: 递归

-p:保留mode,ownership,timestamp

-f:如果目标文件无法打开,则使用-f强制cp

-i:开启交互式界面

 

示例演示:

cp:

[root@localhost etc]# ll aa.sh

-rwxrwxrwx. 1 root root 0 Jul  7 22:01 aa.sh

[root@localhost etc]# cp aa.sh /root

[root@localhost etc]# ll /root/aa.sh

-rwxr-xr-x. 1 root root 0 Jul  7 22:02 /root/aa.sh

 

cp -a:

[root@localhost etc]# ll aa.sh

-rwxrwxrwx. 1 root root 0 Jul  7 22:01 aa.sh

[root@localhost etc]# cp -a aa.sh /dev

[root@localhost etc]# ll /dev/aa.sh

-rwxrwxrwx. 1 root root 0 Jul  7 22:01 /dev/aa.sh

 

cp -r:

[root@localhost ~]# ls test

a.txt  b.txt  c.txt  test_for_root  test_for_user1.sh

[root@localhost ~]# cp -r test /etc

[root@localhost ~]# ls /etc/test

a.txt  b.txt  c.txt  test_for_root  test_for_user1.sh

 

 

mv:移动

         

mv [OPTION]… [-T] SOURCE DEST

mv [OPTION]… SOURCE… DIRECTORY

mv [OPTION]… -t DIRECTORY SOURCE…

相关参数:

-i:交互式,每次移动,系统都会提示是否需要这样做;

-f:强制执行

-r:递归,移动文件夹以及文件夹内的所有内容

 

实例参照cp,其实差不多。

 

rm:删除

 

rm [OPTION]… FILE…

相关参数:

-i:交互式,每次移动,系统都会提示是否需要这样做;

-f:强制执行

-r:递归,移动文件夹以及文件夹内的所有内容

可以利用rm -rf 来删除目录下的所有子目录,包括文件。

 

实例参照cp,其实差不多。

 

 

2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。


命令行展开;

~:展开为当前用户的主目录;

~ username:展开为指定用户的家目录;

{}:可承载一个以逗号分隔的列表,并将其展开为多个路径;

/tmp/{a,b}=/tmp/a,/tmp/b

 

命令的执行状态结果

逻辑上只有两种:成功,失败

$?:存储最近一次执行结果

利用echo $?查看。

(0:成功,1-255:失败)

 

实例:

[chenchen@localhost ~]$ echo 'this is a good begging!' &> /dev/null

[chenchen@localhost ~]$ echo $?

0

[chenchen@localhost ~]$ echp 'this is a good begging!' &> /dev/null

[chenchen@localhost ~]$ echo $?

127

 

 

3、请使用命令行展开功能来完成以下练习:


(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

[chenchen@localhost ~]$ touch /tmp/{a,b}_{c,d}

[chenchen@localhost ~]$ ls /tmp | egrep '\<.\_.\>'

a_c

a_d

b_c

b_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

 

[chenchen@localhost ~]$ 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、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

权限:定义文件属主,属组以及其他用户的权限(可读?可写?可执行?)

属主:文件的归属用户;

属组:文件的归属用户所在的群组;

大小:文件大小;

Modify time:最后一次文件的修改时间;

查看方式:ls -l 或者 ll

[chenchen@localhost ~]$ ls -l

[chenchen@localhost ~]$ ll

 

时间戳修改:

Access:最后访问时间

Modify:最后修改时间

Change:状态更改时间(由系统维护,无法随意修改)

touch -a :仅更新Access time(同时更新Change为current time)

touch -m:仅更新Modify time(同时更新Change为current time)

touch -c:不创建新文件

touch -t:使用指定的时间更新时间戳(仅更改Access time与Modify time,Change time更新为current time)

 

5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

定义别名:alias  [name]=源命令

实例:

alias grep = 'grep –color = auto'

定义的别名仅对当前shell进程有效。

如果想永久有效,需要定义配置文件。

对当前用户有效:~/.bashrc

对所有用户有效:/etc/bashrc

在配置文件中定义alias之后,需要重新加载文件:利用source命令。

可使用管道符“|”来引用其他命令的执行结果:

实例:

ifconfig | egrep -o '\<addr:.{1,3}(\.).{1,3}(\.).{1,3}(\.).{1,3}\>' | cut -d: -f2

 

 

6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。


[root@localhost ~]# ls /var | grep '^l.\+\?[[:digit:]]\+.\+\?[a-z]$'

 

7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

[root@localhost ~]# ls /etc | grep '^[[:digit:]].\+\?[^[:digit:]]$'

 

8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

[root@localhost ~]# ls /etc | grep '^[^[:alpha:]].\+\?[[:alpha:]].\+\?'

 

9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。


[root@localhost ~]# touch /tmp/title-"$(date +%Y-%m-%d-%H-%M-%S)"

 

10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

[root@localhost ~]# cp -r  /etc/p*[^[:digit:]]  /tmp/mytest1

 

11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。


[root@localhost ~]# cp -r /etc/*.d /tmp/mytest2

 

12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。


[root@localhost ~]# cp -r /etc/{l,m,n}*.conf /tmp/mytest3

原创文章,作者:N21-yoyo_chen,如若转载,请注明出处:http://www.178linux.com/23914

(0)
N21-yoyo_chenN21-yoyo_chen
上一篇 2016-07-12
下一篇 2016-07-12

相关推荐

  • 学习宣言

    已经虚度了第一个关键的10年,不能再失去下一个10年,3年内年薪20w,5年内年薪30w。

    Linux干货 2016-12-26
  • cut命令练习总结

    cut命令的作用是实现文本内容的切割,原内容或者原文件不受影响。   cut小练习:                       2016年 07月 …

    Linux干货 2016-07-22
  • nl命令使用解析

    nl    命令功用: nl – number lines of files 显示文件内容,并列出行号   命令样式: nl [OPTION]… [FILE]…   命令选项: -b:正文行号,参数为样式style -n:行号格式,参数为格式format -w:设定行号所占位数,参数为…

    Linux干货 2016-10-20
  • Linux LVM介绍及管理

    什么是LVM? LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,用来提高磁盘分区管理的灵活性。系统管理员可以通过LVM轻松的管理磁盘分区,如:将若干个磁盘分区或物理磁盘连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以…

    Linux干货 2016-08-30
  • 不忘初心,砥砺前行!

    这是本人第一次书写博客,难免有些小心翼翼,手足无措,但每个人都有这样的经历,转念一想也就释怀了。时光飞速,我们已不再年轻,从大学毕业的那天起,我们就再也不是小孩子了。 7月的天气总是那么折磨人,高温让我们步履维艰,在7月只想找一片月淡风轻的乐土,度过一个难熬的夏天,或找一间空调房,调大音量,享受午后时光。但这样的日却离我们很远,这个夏天我们背起行囊,远离故土…

    2017-07-11
  • 马哥教育网络班19期-第一周课程练习

    1、描述计算机的组成及其功能。 计算机由硬件和软件两部分组成 硬件分为:控制器(Control),运算器(Datapath),存储器(Memory),输入设备(Input system),输出设备(Output system)五大部分组成 控制器:对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等…

    2016-06-29

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-12 11:41

    写的很好,排版还可以在漂亮一点,在尝试一下12题看看对吗?加油