马哥教育网络班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)
上一篇 2016-07-12 11:18
下一篇 2016-07-12 11:20

相关推荐

  • 网络班22期+第二周作业练习

    常用的文件管理命令: ls,显示文件或目录 -l:显示文件或目录的包括权限、属主、属组大小创建日期等详细信息 [root@centos7 ~]# ls -l total 16 -rw-r–r–. 1 root root   64 Aug&nbsp…

    Linux干货 2016-09-05
  • vsftpd虚拟用户搭建

    vsftpd虚拟用户搭建 1.安装vsftpd等一系列的安装包 yum install vsftpd mariadb-server mariadb-devel pam-devel -y 2.安装pam_mysql 下载:pam_mysql-0.7RC1.tar.gz wget -c ftp://172.16.0.1/pub/Sources/sources/p…

    Linux干货 2017-06-06
  • lamp的编译安装

    基于http的php模块模式 一、需要准备的软件:     apr-1.5.0.tar    apr-util-1.5.3.tar    httpd-2.4.9.tar        mysql-5.5.33-…

    Linux干货 2016-06-22
  • Linux系统网络属性管理

        每台计算机主机连入internet都必须给主机设定以个合法的IP地址。这些IP参数大概包括IP地址、子网掩码、网关、路由、DNS等。在Linux中,大多数命令配置网络配置都是临时生效,想要网络服务永久有效就必须写入配置文件中,所以有时候更改配置重启主机是为了让内核重读配置文件到内核中,因为配置文件属于用户空间的文件。大多数网络配置…

    Linux干货 2016-09-18
  • SecureCRT 8.0破不了

    各种办法,各种百度都破不了,ok解决办法:一用管理员身份运行crt二,注册机打开,时ptah栏里,把SecureCRT 8.0的安装路径拷贝到PATH框

    Linux干货 2018-05-04
  • Linux 6.8系统安装操作过程

      首先按照好vmware 虚拟机,安装过程忽略。       虚拟机新建完毕后,在虚拟机设置框中,选择硬件cd/dvd,右侧勾选使用iso磁盘文件,点击浏览,选择所需镜像文件,点击确定按钮。      然后,单击启动虚拟机   &nbsp…

    2017-05-21

评论列表(1条)

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

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