第二周作业

课后作业

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

cp:复制命令

三种常用方式:

cp[OPTION]...[-T] SOURCE DEST
cp[OPTION]...SOURCE...DIRECTORY
cp[OPTION]...-t DIRECTORY SOURCE

如果SRC是文件,

(1)如果DEST不存在:新建DEST,并将SRC中的内容填充至DEST中;

(2)如果DEST存在:

       若DEST是文件:将SRC中的内容覆盖至DEST中;(可以使用-i来提醒用户是否覆盖)

       若DEST是目录:在DEST下新建与源文件同名的文件,并将SRC中的内容填充至新文件中。 

常用选项:

i:交互式

在centos6.0版本后,原本的cp命令已经自带cp -i,所以当出现复制的源文件会覆盖掉已有目标文件时,就会出现交互命令。

[root@centPlinux ~]# alias cp
alias cp='cp -i'

[root@centPlinux ~]# cp /etc/rpc /tmp/111
cp:是否覆盖"/tmp/111"?

rR:递归复制目录及内部的所有内容

做一个对比:

[root@centPlinux ~]# cp -r /etc/yum /tmp/222
[root@centPlinux ~]# ls /tmp/222
pluginconf.d  protected.d  vars  version-groups.conf
[root@centPlinux ~]# cp /etc/yum /tmp/222
cp: 略过目录"/etc/yum"
[root@centPlinux ~]# ls /tmp/222
ls: 无法访问/tmp/222: 没有那个文件或目录

a:归档,相当于-dR –preserve=all

d:不跟踪符号链接所指向的源文件,只复制符号链接本身 –no-dereference –preserve=links

仍然做个对比:

[root@centPlinux tmp]# cp /etc/system-release /tmp
[root@centPlinux tmp]# ls /tmp
mylinux  system-release  yum.log
[root@centPlinux tmp]# cat /tmp/system-release
CentOS release 6.5 (Final)
[root@centPlinux tmp]# cp -d /etc/system-release /tmp
[root@centPlinux tmp]# ls /tmp
mylinux  system-release  yum.log
[root@centPlinux tmp]# cat /tmp/system-release
cat: /tmp/system-release: 没有那个文件或目录

preserve =   mode:权限

ownership:属主属组

timestamp:时间戳

links:链接

xattr:扩展属性

context:安全标签

all:以上所有属性

f:强制覆盖

v:显示过程


mv:移动命令

用法基本等同于cp,常用选项也参考cp


rm:删除命令

格式:rm [OPTION]…FILE…

常用选项:

i:交互式

f:强制删除

r:递归删除

删除目录:rm -rf /PATH/TO/DIR

注意:所有无用文件建议不要直接删除,而是移动到某个指定目录(用来模拟回收站),可设置定期删除指定目录里的无用文件。

touch:该命令是修改文件时间戳的命令,但当touch一个不存在的文件时,则会创造一个文件,所以可以用下面格式创建文件:

touch…FILE…

若不想创建文件,则touch加选项参数-c,即使如果文件不存在,也不创建该文件。

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

(1)命令执行状态返回值

bash通过状态返回值来输出此结果,成功:0,失败:1-255

命令执行完成后,状态返回值保存于bash的特殊变量$?中

[root@guolin ~]# ls
10:06:44  a_c              CST   install.log         Nov
25        anaconda-ks.cfg  $Fri  install.log.syslog
[root@guolin ~]# echo $?
0

[root@guolin ~]# lss
-bash: lss: command not found
[root@guolin ~]# echo $?
127

引用命令的执行结果,有以下两种格式实现:

$(COMMAND)     'COMMADN'

[root@guolin ~]# mkdir /tmp/test_$(date +%H-%M-%S)
[root@guolin ~]# ls /tmp
test_19-45-16  wodediyigewenjian  yum.log

(2)命令行展开

~:展开为用户的主目录

~USERNAME:展开为指定用户的主目录

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

[root@guolin ~]# mkdir -v /tmp/{a,b}
mkdir: 已创建目录 "/tmp/a"
mkdir: 已创建目录 "/tmp/b"

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

(1)、创建/tmp目录下的:a_ca_db_cb_d

结果如下:

[root@centPlinux ~]# mkdir -v /tmp/{a,b}_{c,d}
mkdir: 已创建目录 "/tmp/a_c"
mkdir: 已创建目录 "/tmp/a_d"
mkdir: 已创建目录 "/tmp/b_c"
mkdir: 已创建目录 "/tmp/b_d"
[root@centPlinux ~]# ls /tmp
a_c  a_d  b_c  b_d

(2)、创建/tmp/mylinux目录下的:

种方法.png

结果如下:

[root@centPlinux ~]# 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}}   
[root@centPlinux ~]# tree /tmp/mylinux
/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

24 directories, 0 files

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

元数据即为文件的属性信息,其中三个时间戳,分别是

access timeatime:访问时间,即通过使用cat,more等读取内容的时间

modify timemtime:修改时间,即文件内容发生改变的时间

change timectime:改变时间,即元数据发生改变的时间

stat:查看文件时间戳

touch:修改时间戳信息

常用参数:

a:仅修改atime

m:仅修改mtime

t:设置时间 CCYYMMDDhhmm,ss

注意:只要修改时间戳,则ctime必定会改变,所以ctime不能指定修改,只能同atime、mtime一起修改成当前时间。故-c并不是修改ctime,而是在前文提到的,在touch到的文件不存在时,不创建该文件

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

alias:定义命令别名 alias NAME='COMMAND'(仅对当前shell进程有效)

引用命令的结果:使用$(COMMAND)'COMMAND'

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

ls -d /var/l*[[:digit:]]*[[:lower:]]

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

ls -d /etc/[[:digit:]]*[^[:digit:]]

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

ls -d /etc/[^[:alpha:]][[:alpha:]]*

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

[root@centPlinux ~]# touch /tmp/tfile-$(date +%y-%m-%d-%H-%M-%S)
[root@centPlinux ~]# ls /tmp
a_c  a_d  b_c  b_d  mylinux  tfile-16-11-24-00-32-01  yum.log

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

mkdir /tmp/mytest1

cp -r /etc/p*[^[:digit:]] /tmp/mytest1/

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

mkdir /tmp/mytest2

cp -r /etc/*.d /tmp/mytest2

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

mkdir /tmp/mytest3

cp -r /etc/[lmn]*.conf

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

(0)
gl693184974gl693184974
上一篇 2016-12-10 14:48
下一篇 2016-12-10 19:04

相关推荐

  • HSRP vs VRRP

    HSRP:(Hot Standby Router Protocol)-热备份路由协议 是cisco平台一种特有的技术,是cisco的私有协议。 VRRP:(Virtual Router Redundancy Protocol)-虚拟路由冗余协议 是国际标准,由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议。 ----------------…

    Linux干货 2016-10-19
  • RAID功能介绍及其使用

    RAID功能介绍及其使用 独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。根据…

    Linux干货 2017-01-06
  • Linux基础知识(三)

     本文的主要内容是:  1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。  2、取出最后登录到当前系统的用户的相关信息。  3、取出当前系统上被用户当作其默认shell的最多的那个shell。  4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全…

    Linux干货 2016-10-03
  • VSFTPD+PAM+[基于文件虚拟用户认证 | 基于MYSQL虚拟用户认证]

    VSFTPD+PAM+[基于文件虚拟用户认证 | 基于MYSQL虚拟用户认证] VSFTPD+PAM+[基于文件虚拟用户认证 | 基于MYSQL虚拟用户认证] 一、实验环境 二、实验步骤 1、通过mysql数据库方式虚拟用户认证 1.1数据库配置 1.2FTP配置 1.3测试 2、通过文件方式进行虚拟用户认证 一、实验环境 CentOS 6.7+vsftpd…

    Linux干货 2016-04-18
  • Linux中的分区管理

    1. 磁盘分区类型 磁盘分区主要分为两种类型: MBR  MBR是一个比较古老的分区类型了,不支持2TB的大硬盘。在磁盘的0磁道0扇区的512字节存放的就是MBR的信息。前446字节为bootloader,后面64字节存放的是分区表,后面2字节存放的是55aa的分区标识符。MBR分区类型最多只能支持4个主分区和扩展分区,其余的分区只能是逻辑分区。 …

    2017-04-22
  • Linux入门之Centos6 和Centos7的安装

    在安装Centos6 和Centos7 之前,首先VMware需要安装完成,所需镜像CentOS-6.9-x86_64-bin-DVD1和CentOS-7-x86_64-Everything-1611(本次实验所用的版本)准备好,然后开启VMware,进行安装之旅,在安装过程中,Centos6 和Centos7 在前15步的配置是一样的步骤,在16步开启虚拟…

    2017-07-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-16 15:55

    整体还是不错的,第11、12题有点问题~再注意下整体排版风格会更好~加油~