马哥教育网络班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

相关推荐

  • DNS转发、ACL以及VIEW

    DNS全称是Domain Name System的简称,即域名系统。因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP/TCP协议之上,使用端口号53。 DNS转发、ACL以及VIEW…

    Linux干货 2016-12-08
  • 进程管理

    Process Manager 工作管理  jobs ctrl+z,& bg,fg nohup 进程,资源管理  查看:pstree,ps,top,vmstat,pmap 查询:pgrep,pidof,fuser,lsof 管理:kill,nice,renice 管理软件or命令  htop glances dstat …

    Linux干货 2016-04-11
  • 第一周

    作业

    Linux笔记 2018-06-21
  • 请使用命令行展开功能来完成以下练习

    (1)、创建/tmp目录下的:ac, ad, bc, bd ]# mkdir -p /tmp/{a,b}_{c,d} 或者: ]# touch /tmp/{a,b}_{c,d} (2)、创建/tmp/mylinux目录下的: ]# mkdir -pv /tmp/mylinux/{bin,boot/gtub,dev,etc/{rc.d/init.d,sysco…

    Linux干货 2016-11-06
  • 7月2日~7月8日作业

    1、列出当前系统上所有已经登入的用户的用户名,注意:同一个用户登入多次,则只显示一次即可。 ~]# who | cut -d  ‘  ’   -f1  |  sort  -u 2、取出最后登入到当前系统的用户的相关信息。 3、取出当前系统上被用户当作默认shell的最多的那个shell. 4、将/etc/passwd中的第三个字段数值最大的后10个用户信息全…

    2018-07-07
  • CentOS系统启动流程

        Linux系统的组成部分   1、动态视角:内核+根文件系统  2、静态视角:磁盘分区+文件 Linux运行中的系统环境   1、用户空间:应用程序(进程或线程)  2、内核空间:内核代码(系统调用) 内核设计流派:   *单内核设计:把所有功能集成于同一个程序,如:Linux  *微内核设计:每种功能使用一个单独的子系统实现,如…

    Linux干货 2016-12-30

评论列表(1条)

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

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