第二周作业

课后作业

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)
上一篇 2016-12-10 14:48
下一篇 2016-12-10 19:04

相关推荐

  • 玩转linux之启动篇

        想要玩转linux,首先明白其启动流程,这里简单说明一下: CentOS 6启动流程:    POST –> Boot Sequence(BIOS) –> Boot Loader –> Kernel(ramdisk) –> roo…

    Linux干货 2016-09-26
  • iptables

    Evernote Export   基于本机服务器的iptables: 创建、重命名、删除自定义chain ~]# iptables -N testchain ~]# iptables -nL Chain INPUT (policy ACCEPT) target     prot opt source    …

    Linux干货 2016-11-20
  • 制作kickstart文件和引导镜像

    kickstart制作: (1)通过手动编辑,莫个kickstat模板进行修改:如根目录下的anaconda-ks.cfg (2)通过图形界面制作kickstart文件,可以安装system-config-kickstart, 通过kickstart配置程序打开某个模板,如anaconda-ks.cfg,在图片界面下的修改, 基本配置:默认语音,键盘类型,时…

    2017-11-14
  • grep命令和find命令的练习

    1、显示系统上root、Fedora、或user1用户的默认shell [root@localhost ~]# grep -E “^(root|fedora|user1)\>” /etc/passwd | cut -d: -f1,7 root:/bin/bash fedora:/bin/bash user1:/bin/bash 2、找出/etc/rc….

    Linux干货 2017-07-30
  • N27—第十周作业

    N27_第十周作业 1、请详细描述Centos系统的启动流程(详细到每个过程系统做了哪些事情) 详情请参考http://www.178linux.com/85713 2、为运行于虚拟机上的Centos 6添加一块新的硬盘,提供两个主分区; (1)为硬盘新建两个主分区;并为其安装grub (2)为硬盘的第一个主分区提供内核和ramdisk文件;为第二个分区提供…

    Linux干货 2017-10-21
  • 初识selinux

    一、selinux介绍     1.selinux历史     SELinux: Secure Enhanced Linux,是美国国家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporation)开…

    Linux干货 2016-09-21

评论列表(1条)

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

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