第二周博客作业

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

相关推荐

  • shell编程及rpm包

    1. shell编程    case 实现条件判断, 无论是case后面还是值后面都是没有任何标点符号的。    case支持通配符, 如果想要表示其他的话, 可以使用*放到最后。 用*表示其他。   2. 用tar打包的文件或则目录,这些文件或则目录的的ACL(访问控制列表)权限会丢失。…

    Linux干货 2016-08-18
  • 文件查找与解压缩

    文件查找 脚本文件名的查询 which(寻找执行文件) which [-a] command -a :将所有由PATH目录中可以找到的命令均列出,而不只是第一个被找到的命令名称 文件名的查找 文件查找:实时查找:遍历所有文件进行条件匹配;(find)非实时查找:根据索引查找;(whereis、locate) whereis whereis [-bmsu] […

    Linux干货 2017-04-08
  • linux文件管理命令与命令行展开

    linux文件管理命令与命令行展开

    2017-12-11
  • CentOS6启动流程

    CentOS 6 启动流程 | root密码重置 | 添加系统服务 一、CentOS 6 启动流程:     1)POST加电自检         Power-On-Self-Test,主板在接通电源后,系统首先由BIOS程序来对对CPU、…

    Linux干货 2016-09-08
  • bash小脚本

    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 [root@centos6 scripts]# cat systeminfo.sh #!/bin/bash HostName=`uname -n` Ipv…

    Linux干货 2016-08-15
  • MySQL Fabric 安装部署

    MySQL Fabric  是一个用于管理 MySQL 服务器群的可扩展框架。该框架实现了两个特性 — 高可用性 (HA) 以及使用数据分片的横向扩展。这两个特性既可以单独使用,也可以结合使用。 环境: 安装MySQL Fabric 配置MySQL Fabric MySQL Fabric 安装管理数据库fabric 启动MySQL Fab…

    数据库运维 2016-06-03