马哥教育网络班22期+第02周课程练习

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

cp:复制命令,copy的简称

02_01_cp01.png

复制选项详解:

1、交互式复制:root用户默认添加-i参数,普通用户默认使用命令本身,root用户也想使用命令本身需在命令前增加"\"

[root@bogon ~]# ls /tmp/
newfile
[root@bogon ~]# cp -i /etc/fstab /tmp/newfile 
cp: overwrite ‘/tmp/newfile’? y
[root@bogon ~]# cp /etc/fstab /tmp/newfile 
cp: overwrite ‘/tmp/newfile’? y
[root@bogon ~]# \cp /etc/fstab /tmp/newfile

2、强制覆盖:普通用户默认存在此属性,root增加此选项也无法强制,只能使用\cp方式强制

3、复制目录

[root@bogon ~]# cp /boot/ /tmp/
cp: omitting directory ‘/boot/’
[root@bogon ~]# cp -r /boot/ /tmp/

4、复制链接文件而非指向的源文件

[root@bogon ~]# ls -l /tmp/
[root@bogon ~]# ln -s /etc/fstab /tmp/fstab
[root@bogon ~]# ls -l /tmp/
total 0
lrwxrwxrwx. 1 root root 10 Sep  1 13:29 fstab -> /etc/fstab
[root@bogon ~]# cp /tmp/fstab /tmp/fstab2
[root@bogon ~]# ls -l /tmp/
total 4
lrwxrwxrwx. 1 root root  10 Sep  1 13:29 fstab -> /etc/fstab
-rw-r--r--. 1 root root 501 Sep  1 13:29 fstab2
[root@bogon ~]# cp -d /tmp/fstab /tmp/fstab3
[root@bogon ~]# ls -l /tmp/
total 4
lrwxrwxrwx. 1 root root  10 Sep  1 13:29 fstab -> /etc/fstab
-rw-r--r--. 1 root root 501 Sep  1 13:29 fstab2
lrwxrwxrwx. 1 root root  10 Sep  1 13:30 fstab3 -> /etc/fstab

5、归档,复制的文件权限保持不变

-a:-dR --preserve=all, archive

复制目标详解:

1、单源复制:DEST不存在

[root@bogon ~]# ls /tmp/
[root@bogon ~]# cp /etc/fstab /tmp/noDEST
[root@bogon ~]# ls /tmp/
noDEST

2、单源复制:DEST存在为目录

[root@bogon ~]# ls /tmp/new/
[root@bogon ~]# cp /etc/fstab /tmp/new/
[root@bogon ~]# ls /tmp/new/
fstab

3、单源复制:DEST存在为文件

[root@bogon ~]# touch /tmp/newfile
[root@bogon ~]# ls /tmp/
newfile
[root@bogon ~]# cp /etc/fstab /tmp/newfile 
cp: overwrite ‘/tmp/newfile’? y

4、多源复制:DIRECTORY存在

[root@bogon ~]# mkdir /tmp/new
[root@bogon ~]# ls /tmp/new/
[root@bogon ~]# cp /etc/fstab /etc/passwd /tmp/new/
[root@bogon ~]# ls /tmp/new/
fstab  passwd

5、多源复制:DIRECTORY不存在

[root@bogon ~]# ls /tmp/
[root@bogon ~]# cp /etc/passwd /etc/fstab /tmp/new
cp: target ‘/tmp/new’ is not a directory

mv命令:move

mv命令:move
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE..            

常用选项:
-i:交互式;
-f:force

rm:删除命令 remove

常用选项:
 -i:interactive
 -f:force
 -r: recursive
删除目录:rm -rf /PATH/
危险操作:rm -rf /* 【kernel 2.6 之后对rm -rf /命令进行保护操作,但对添加*号的命令无能为力】

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

1、命令执行状态返回值的介绍:

命令执行完成之后,其状态返回值可以确认该命令是否正确执行,其结果保存于bash的特殊变量$?中;
[root@bogon ~]# ls /etc/ > /dev/null 2>&1
[root@bogon ~]# echo $?
0
[root@bogon ~]# ls /etc/aaaa > /dev/null 2>&1
[root@bogon ~]# echo $?
2

2、命令执行状态返回值的输出结果:

命令执行正常:其返回值为 0 ;
命令非正常执行:其返回值范围为1-255之间,具体值根据命令及其功能不同,结果各不相同;

3、命令行展开涉及的内容:

~:自动展开为用户的家目录,或指定的用户的家目录;
[root@bogon etc]# ls /root/
anaconda-ks.cfg.zip
[root@bogon etc]# cp ~/anaconda-ks.cfg.zip /tmp/
[root@bogon etc]# ls /tmp/
anaconda-ks.cfg.zip
			
{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
[root@bogon ~]# ls /tmp/
[root@bogon ~]# touch /tmp/{a,b,c}
[root@bogon ~]# ls /tmp/
a  b  c

三、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

[root@bogon etc]# touch /tmp/{a,b}_{c,d}
[root@bogon etc]# ls /tmp/
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

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}}

四、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

1、文件的元数据信息及意义:

文件系统中的数据是由两部分存在合二为一的,即“元数据”和“数据”两部分。其中元数据是对数据本身特征的描述;其包括:所有者、访问权限、时间信息(创建时间、修改时间、改变时间)、数据块分布等内容。

2、查看文件的元数据:

~]# ls -li /tmp/a 
101637137 -rw-r--r--. 1 root root 0 Sep  1 18:03 /tmp/a

[root@bogon ~]# stat /tmp/a
  File: ‘/tmp/a’
  Size: 38        	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 100663426   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2016-09-01 16:33:49.033484339 -0400
Modify: 2016-09-01 16:34:05.499485435 -0400
Change: 2016-09-01 16:34:05.502485435 -0400
 Birth: -

3、修改文件的时间戳信息:
(1)修改Access time:

[root@bogon ~]# touch -a -t 01020304 /tmp/a 
[root@bogon ~]# stat /tmp/a 
  File: ‘/tmp/a’
  Size: 38        	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 100663426   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2016-01-02 03:04:00.000000000 -0500
Modify: 2016-09-01 16:34:05.499485435 -0400
Change: 2016-09-01 16:36:39.748495703 -0400
 Birth: -

(2)修改Modify time:

[root@bogon ~]# touch -m -t 06070809 /tmp/a 
[root@bogon ~]# stat /tmp/a 
  File: ‘/tmp/a’
  Size: 38        	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 100663426   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2016-01-02 03:04:00.000000000 -0500
Modify: 2016-06-07 08:09:00.000000000 -0400
Change: 2016-09-01 16:38:13.679501956 -0400
 Birth: -

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

1、命令别名:

#查看命令别名:
~]# alias

#定义命令别名:使得输入vi即可调用vim软件进行文本编辑
~]# alias vi=vim

#解除别名定义:
~]# unalias vi

2、引用命令结果:

#一般被称为命令替换  $(COMMAND)或`COMMAND`
样例请见本练习第九题处;

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

~]# ls -d /var/l*[[:digit:]]*[a-z]
/var/lmn123opq

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

~]# ls -d /etc/[[:digit:]]*[^[:digit:]]
/etc/789abc456def
# 下面使用!代替^貌似也可以实现,不知道在语法上或使用上是否有分别。
~]# ls -d /etc/[[:digit:]]*[![:digit:]]
/etc/789abc456def

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

~]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
/etc/1a2b3c4d  /etc/1a2b3c4d5e

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

~]# touch /tmp/tfile-$(date +%F-%H-%M-%S)
~]# ls /tmp/
tfile-2016-09-01-17-49-03

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

~]# mkdir -p /tmp/mytest1
~]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1
~]# ls /tmp/mytest1/
pam.d  passwd  passwd-  pki  plymouth  pm  popt.d  postfix  ppp  prelink.conf.d  printcap  profile  profile.d  protocols  python

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

~]# ls -d /etc/*.d
~]# cp -r /etc/*.d /tmp/mytest2/
~]# ls /tmp/mytest2/
bash_completion.d  depmod.d       init.d        modules-load.d  prelink.conf.d  rc2.d  rc6.d      statetab.d  xinetd.d
binfmt.d           dnsmasq.d      ld.so.conf.d  my.cnf.d        profile.d       rc3.d  rc.d       sudoers.d   yum.repos.d
chkconfig.d        dracut.conf.d  logrotate.d   pam.d           rc0.d           rc4.d  rsyslog.d  sysctl.d
cron.d             grub.d         modprobe.d    popt.d          rc1.d           rc5.d  rwtab.d    tmpfiles.d

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

~]# mkdir /tmp/mytest3
~]# cp -r /etc/{l,m,n}*.conf /tmp/mytest3/
~]# ls /tmp/mytest3/
ld.so.conf  libaudit.conf  libuser.conf  locale.conf  logrotate.conf  man_db.conf  mke2fs.conf  nsswitch.conf

原创文章,作者:N22-北京-狂神小虾,如若转载,请注明出处:http://www.178linux.com/42674

(0)
N22-北京-狂神小虾N22-北京-狂神小虾
上一篇 2016-09-02 08:49
下一篇 2016-09-02 08:50

相关推荐

  • 7月21号:CentOS6.8(及7)基础配置项+Linux入门(1)

    7月21号,马哥第二天,主要内容有三个部分:一、基本命令复习二、CentOS6.8(及7)基础配置项;三、linux入门(1) 一、基本命令复习    ls         查看文件内容  l查看文件详细信息  -a显示包含隐藏文…

    Linux干货 2016-08-05
  • Linux文件系统

    文件是什么?存储空间内存储的有边界的一段流式数据,对数据可以做到按名存取。众多文件是如何有效的组织起来?1.  平面化把众多文件放在一起。当想查找某个文件时,需要遍历所有文件,当文件数目足够多的时候,查找一个文件将会非常慢,效率极低。2.  层级结构化根据后续查找文件的筛选条件进行分类,逐层放置,通常要查找一个文件,只需要从最高层级开始,…

    2017-09-05
  • linux中的vim

    什么是vim:     Linux 在命令行下的文本编辑器,很多个别软件的编辑接口都会主动调用vim,所以在 Linux 的系统中使用文字编辑器来编辑你的Linux参数配置文件,在 Linux 的世界中,绝大部分的配置文件都是以 ASCII 的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设置.所有的Unix L…

    Linux干货 2016-08-11
  • DNS实验

      建立DNS服务器(正向解析) linux没有缓存 windows有dns缓存 权威结果,非权威结果 无论是正向解析数据库还是反向解析数据中  写管理员邮件地址或完整域名(FQDN)都要再后面加上点。否则系统会自动不上区域名称。 实验环境先清理防火墙规则,关闭防火墙. centos7 systemctl disabl…

    Linux干货 2016-11-01
  • 分布式存储介绍、FastDFS 部署

    什么是分布式系统? 简单来说,多台主机提供同一个服务,例如负载均衡集群,就是一个分布式系统。 什么是分布式存储? 看看某宝,上面多少图片,如果使用传统的单机存储,需要准备多大的磁盘空间?读写性能如何提升? 上图就是一个分布式存储的结构,此处存储节点不在是磁盘,而是多个主机组成,多个主机内部通信实现数据副本,客户端发来的请求发往前端,前端分发至后端,有点像负载…

    2017-03-08
  • Linux基础目录名称及功用

    FHS目录规则 Filesystem Hierarchy Standard(文件系统目录标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。   FHS定义了两层规范,第一层是,…

    Linux干货 2016-10-30

评论列表(2条)

  • 马哥教育
    马哥教育 2016-09-13 21:04

    提两个点:
    1.多源复制那道题,为何会报提示
    2.alias 用法 alias command=”command”

    • N22-北京-狂神小虾
      N22-北京-狂神小虾 2016-09-14 20:53

      @马哥教育对于您的指点回复:1、多源复制在DIRECTORY不存在的情况下,就是应该报错的,此结果在cp命令图示处已经明确给出了。2、对于alias的确是应该添加引号的,但添加的一般都是单引号,您所给出的双引号,个人认为某些时候可能略有不妥。本题未添加任何引号,测试是通过的。的确是大意了,以后会多加注意的!