第二周博客作业

1.Linux上的文件管理类命令都有那些,其常用的使用方法及其相关示例演示。
2.Bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
3.请使用命令行展开功能来完成以下的练习。
4.文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
5.如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
6.显示/var目录下所有以1开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其他字符)的文件或目录。
7.显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
8.显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录。
9.在/tmp目录下创建以tgile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
10.复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
11.复制/etc目录下所有以.d结尾的文件或目录到/tmp/mytest2目录中。
12.复制/etc目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

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

文件管理工具:cp, mv, rm

cp命令:copy复制命令

SOURCE:源文件;DEST:目标文件;

 

单源复制:cp [OPTION]… [-T] SOURCE DEST

多源复制:cp [OPTION]… SOURCE… DIRECTORY

cp [OPTION]… -t DIRECTORY SOURCE…

 

单源复制:cp [OPTION]… [-T] SOURCE DEST

如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;

  示例:[root@localhost ~]# cp /etc/inittab /tmp

              [root@localhost ~]# ls /tmp

               inittab  

如果DEST存在:

如果DEST是非目录文件:则覆盖目标文件;

如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;

 示例:  [root@localhost ~]# cp /etc/inittab /tmp

                cp:是否覆盖”/tmp/inittab”? y

                [root@localhost ~]# ls /tmp

                 inittab      

 

多源复制:cp [OPTION]… SOURCE… DIRECTORY

cp [OPTION]… -t DIRECTORY SOURCE…

 

如果DEST不存在:错误;

如果DEST存在:

如果DEST是非目录文件:错误;

如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;

  示例:[root@localhost tmp]# ls test

               123  234,345

              [root@localhost tmp]# cp /tmp/test/123 /tmp/test/234,345 /tmp/test2

              [root@localhost tmp]# ls /tmp/test2

              123  234,345

 

常用选项:

-i:交互式复制,即覆盖之前提醒用户确认;

-f:强制覆盖目标文件;

-r, -R:递归复制目录;

-d:复制符号链接文件本身,而非其指向的源文件;

-a:-dR –preserve=all, archive,用于实现归档;

–preserv=

mode:权限

ownership:属主和属组

timestamps: 时间戳

context:安全标签

xattr:扩展属性

links:符号链接

all:上述所有属性

 

mv命令:move

mv [OPTION]… [-T] SOURCE DEST

mv [OPTION]… SOURCE… DIRECTORY

mv [OPTION]… -t DIRECTORY SOURCE..

 

常用选项:

-i:交互式;

-f:force

示例:[root@localhost tmp]# ls  123.txt

             [root@localhost ~]# mv /tmp/123.txt /tmp/test/

             [root@localhost ~]# ls /tmp/test

             123  123.txt  234,345

 

rm命令:remove

rm [OPTION]… FILE…

 示例:[root@localhost ~]# ls /tmp/test

              123  123.txt  234,345

             [root@localhost ~]# rm /tmp/test/123

              rm:是否删除普通空文件 “/tmp/test/123″?y

             [root@localhost ~]# ls /tmp/test

               123.txt  234,345

 

常用选项:

-i:interactive

-f:force

-r: recursive

 

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

危险操作:rm -rf /*

 

注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录;(模拟回收站)

 

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

bash的基础特性:命令的执行状态结果

命令执行的状态结果:

bash通过状态返回值来输出此结果:

成功:0

失败:1-255

命令执行完成之后,其状态返回值保存于bash的特殊变量$?中; 命令正常执行时,有的还回有                 命令返回值:根据命令及其功能不同,结果各不相同;

 示例:

[root@localhost ~]# ls
[root@localhost ~]# echo $?
0
[root@localhost ~]# asdf
-bash: asdf: command not found
[root@localhost ~]# echo $?
127

命令行展开;

以某些bash能够解释的符号来代替命令中的某些参数。

~:展开为用户的家目录;

例:切换至家目录

cd ~;pwd

/root

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

例:在/tmp/d目录下创建f1,f2,f3三个文件

ttouch /tmp/d/f{1,2,3}

        示例: [root@localhost ~]# touch /tmp/d/f{1,2,3}

                     [root@localhost ~]# tree

.                   └── d

                   ├── f1

                   ├── f2

                   └── f3

                 1 directory, 3 files

                 [root@localhost tmp]#

 

 

 

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

           (1)、创建/tmp目录下的:a_c,a­_d,b_c,b_d

示例:   [root@localhost ~]# mkdir -v /tmp/{a,b}_{c,d}

                   mkdir: 已创建目录 “/tmp/a_c”

                  mkdir: 已创建目录 “/tmp/a_d”

                  mkdir: 已创建目录 “/tmp/b_c”

                  mkdir: 已创建目录 “/tmp/b_d”

                  [root@localhost ~]# tree /tmp

                  /tmp

               ├── a_c

               ├── a_d

              ├── b_c

             ├── b_d

 

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

1

示例:  [root@localhost ~]# mkdir -p                   /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-        soripts},lib/modiles,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{look,log,run}}

[root@localhost ~]# tree /tmp/mylinux

/tmp/mylinux

├── bin

├── boot

│   └── grub

├── dev

├── etc

│   ├── rc.d

│   │          └── init.d

│   └── sysconfig

│              └── network-soripts

├── lib

│         └── modiles

├── lib64

├── proc

├── sbin

├── sys

├── tmp

├── usr

│   └── local

│             ├── bin

│              └── sbin

└── var

├── log

├── look

└── run

24 directories, 0 files

 

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

 

          (1)文件的元数据信息及查看

文件的数据分两种:一种元数据,既属性数据;一种就是数据本身;可使用stat命令查看文件的元数据:

例如:

]# stat /etc/passwd

文件:”/etc/passwd”

大小:2483 块:8 IO 块:4096 普通文件

设备:fd00h/64768d Inode:136755684 硬链接:1

权限:(0644/-rw-r–r–) Uid:( 0/ root) Gid:( 0/ root)

环境systemu:objectr:passwdfilet:s0

最近访问:2016-09-22 22:07:14.897045766 +0800

最近更改:2016-09-20 18:10:23.223086880 +0800

最近改动:2016-09-20 18:10:23.227086888 +0800

创建时间:-

其中:file:文件名;

size:文件大小

block:文件占了多少个数据块

IO Block:文件所占数据块的块大小

Device:硬件,既说明该文件在硬盘的那个柱面

Inode:节点号

links:链接

Access(第一个):权限

Uid:该文件所属的属

Gid:该文件所属的属组

context:安全上下文

Access(第二个):文件上一次的访问时间

Modify:文件上一次修改的时间

Change:文件上一次属性更改的时间

修改文件的时间戳信息:

可以使用touch命令更改文件的时间戳:

语法:touch [OPTION]… FILE…

常用选项:

-c: 指定的文件路径不存在时不予创建;

-a: 仅修改access time;

-m:仅修改modify time;

-t:使用指定的日期时间,而非现在的时间;[[CC]YY]MMDDhhmm[.ss];

 

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

命令别名(alias)

通过alias命令实现:

(1) alias

显示当前shell进程所有可用的命令别名;

(2) alias NAME=’VALUE’

定义别名NAME,其相当于执行命令VALUE;

 

注意:在命令行中定义的别名,仅对当前shell进程有效;如果想永久有效,要定义在配置文件中;

仅对当前用户:~/.bashrc

对所有用户有效:/etc/bashrc

 

编辑配置给出的新配置不会立即生效;

bash进程重新读取配置文件:

路径:source /path/to/config_file

相对路径:. /path/to/config_file

撤消别名:unalias  格式:unalias [-a] name [name …]

 

如果别名同原命令的名称,则如果要执行原命令,可使用”\COMMAND”;

引用另一个命令的执行结果——管道:COMMAND1 | COMMAND2 | COMMAND3 |…

最后一个命令会在当前shell进程的子shell进程中执行;

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

示例:

[root@localhos]#  ls /var/1*[0-9]*[a-z]

 

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

示例:

[root@localhos]# ls /etc/[0-9]*[^0-9]

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

示例:

[root@localhos]# ls /etc/[^[:alpha:]][:alpha:]*

 

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

示例:

[root@localhost tmp]# touch tfile-`date +%F-%H-%M-%S`

[root@localhost tmp]# ls

tfile-2018-03-23-00-29-40

 

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

示例:

[root@localhost ~]# mkdir /tmp/mytest1

[root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1

[root@localhost ~]# ls /tmp/mytest1

pam.d   passwd-       pinforc   pm                            popt.d       ppp             printcap  

 

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

示例:

[root@localhost ~]# mkdir /tmp/mytest2

[root@localhost ~]# cp -r /etc/*.d /tmp/mytest2

[root@localhost ~]# ls /tmp/mytest2

ant.d              cron.d         event.d       logrotate.d    oddjobd.conf.d  profile.d  rc3.d  rc.d          

 

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

 

示例:    

[root@localhost ~]# mkdir /tmp/mytest3

 [root@localhost ~]# cp -r /etc/[l,m,n]*\.conf /tmp/mytest3

[root@localhost ~]# ls /tmp/mytest3

latrace.conf  libaudit.conf  logrotate.conf  mke2fs

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92838

(0)
任总任总
上一篇 2018-03-21
下一篇 2018-03-23

相关推荐

  • 排名三剑客的VIM _正确的打开姿势!

    vim程序编辑器        vi:是老式的文字处理器。     vi的使用:【vi分为3种模式一般模式、编辑模式、命令模式】         一般模式:   vi打开文件就直接进入到了一…

    Linux干货 2017-04-10
  • 关于 开机启动加密破坏修复 自制linux系统

         开机破坏并且修复之       自制linux系统                CentOS 6启动流程: POST –> Boot Sequence(BIOS) –&…

    系统运维 2016-09-14
  • Docker入门

    一、Docker 架构 Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。 Docker 容器通过 Docker 镜像来创建。 容器与镜像的关系类似于面向对象编程中的对象与类。 Docker 面向对象 容器 对象 镜像 类 Docker 镜像(Images) Docker 镜像是用于创建 Docker 容器的…

    2018-01-20
  • 使用Storm实现实时大数据分析

    摘要:随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战。Shruthi Kumar和Siddharth Patankar在Dr.Dobb’s上结合了汽车超速监视,为我们演示了使用Storm进行实时大数据分析。CSDN在此编译、整理。 简单和明了,Storm让大数据分析变得轻松加愉快。 当今世界,公司的日常运营经常会生成TB级别的数据。数据来源…

    Linux干货 2015-04-04
  • 系统启动流程

    linux系统启动流程 内核的设计结构单内核:linux(线程–lwp轻量级进程)微内核:windows(支持真正意义上的多线程) 单内核:很多功能驱动都集成在一起 微内核:内核很小,功能单一。模块化 linux为了适应众多用户的不同硬件需求,linux内核在设计上采用模块化设计。可以动态加载模块。核心模块:ko 内核所独有的。共享对象:so 红…

    Linux干货 2016-09-19
  • Linux网络管理之网络配置管理和子网划分

    配置网卡信息 获取网卡的信息 dmesg | grep -i eth 获取网卡芯片信息 lspci | grep -i eth 查询IP信息 ifconfig显示IP信息    -a:显示包括未激活状态的网卡信息 重启网卡服务(每次配置完ip需要手动重启此服务) CentOS6: servcie network restart CentO…

    Linux干货 2016-09-07