马哥教育-第二周作业

问题一:文件管理类命令

常规命令:mkdir、rmdir、stat、touch、copy、mv、rm

(1).mkdir  创建目录:

注意:路径基名方为命令的作用对象;基名之前的路径必须得存在;

-p:自动按需创建父目录;

-v:显示创建过程;

-m 参数:直接给定所需权限;

例子:问题:创建 /tmp/x ; /tmp/x/y1 ; /tmp/x/y1/a ; /tmp/x/y1/b ; /tmp/x/y2

[root@localhost ~]# mkdir -pv /tmp/x/{y1/{a,b},y2}

mkdir: created directory `/tmp/x'

mkdir: created directory `/tmp/x/y1'

mkdir: created directory `/tmp/x/y1/a'

mkdir: created directory `/tmp/x/y1/b'

mkdir: created directory `/tmp/x/y2'

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

/tmp/x

|– y1

| |– a

| `– b

`– y2

 

(2).rmdir  仅用于删除空目录

-p:删除某目录后,如果其父目录为空,则一并删除之;

例子:删除空目录 testdir

[root@localhost ~]# rmdir testdir

 

(3).stat  查看文件状态

例子:查看目录 x 的信息

[root@localhost tmp]# stat x

文件: `x'

大小: 4096 块: 8 IO 块: 4096 目录

设备: fd00h/64768d Inode: 622755 硬链接: 4

权限: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)

最近访问: 2016-11-22 23:26:19.000000000 +0800

最近更改: 2016-11-22 20:30:04.000000000 +0800

最近改动: 2016-11-22 20:30:04.000000000 +0800

 

[root@localhost tmp]# stat x

File: `x'

Size: 4096 Blocks: 8 IO Block: 4096 directory

Device: fd00h/64768d Inode: 622755 Links: 4

Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2016-11-22 23:26:19.000000000 +0800

Modify: 2016-11-22 20:30:04.000000000 +0800

Change: 2016-11-22 20:30:04.000000000 +0800

 

(4).touch  更改元数据信息

用法:

改变access(最近访问时间)和modify(最近更改时间)两个时间。

touch file:把三个时间都改为此刻的时间。

-a:只改访问时间(access);

-m:只改修改时间(modified);

-t:指定时间;

例子:修改文件b的元数据,三个时间戳都相同

[root@localhost ~]# stat b

  File: `b'

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

Device: fd00h/64768d    Inode: 372484      Links: 1

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

Access: 2016-12-11 09:21:57.000000000 +0800

Modify: 2016-11-24 10:24:18.000000000 +0800

Change: 2016-11-24 10:24:18.000000000 +0800

[root@localhost ~]# touch b

[root@localhost ~]# stat b

  File: `b'

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

Device: fd00h/64768d    Inode: 372484      Links: 1

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

Access: 2016-12-11 09:22:24.000000000 +0800

Modify: 2016-12-11 09:22:24.000000000 +0800

Change: 2016-12-11 09:22:24.000000000 +0800

 

(5).copy 文件复制

用法:

注意:复制文件只是复制文件的数据而不是元数据,但是可以保留元数据的信息。

单源复制:目录是否存在都可以

多源复制:目录必须是存在的

-i:提醒用户操作确认

-f:强行覆盖

-r:递归复制目录

-p:保留源数据

-a:用于实现归档,做备份

–preserv=

mode:权限

ownership:属主和属组

timestamps:时间戳

context:安全标签

xattr:扩展属性

links:符号链接

all:上述所有属性

例子1:复制单个文件

[root@localhost ~]# cp /etc/issue /root/test1

[root@localhost ~]# cd test1

[root@localhost test1]# ll

total 4

-rw-r–r– 1 root root 74 Dec 11 09:37 issue

例子2:复制多个文件

[root@localhost ~]# cp a.sh b.sh c.sh /root/test1

[root@localhost ~]# cd test1

[root@localhost test1]# ll

total 16

-rwxr-xr-x 1 root root 199 Dec 11 09:39 a.sh

-rw-r–r– 1 root root  64 Dec 11 09:39 b.sh

-rwxr-xr-x 1 root root  91 Dec 11 09:39 c.sh

-rw-r–r– 1 root root  74 Dec 11 09:37 issue

例子3:复制目录

[root@localhost ~]# cp -r /etc/gconf /root/test1

[root@localhost ~]# cd test1

[root@localhost test1]# ll

total 20

-rwxr-xr-x 1 root root  199 Dec 11 09:39 a.sh

-rw-r–r– 1 root root   64 Dec 11 09:39 b.sh

-rwxr-xr-x 1 root root   91 Dec 11 09:39 c.sh

drwxr-xr-x 6 root root 4096 Dec 11 09:42 gconf

-rw-r–r– 1 root root   74 Dec 11 09:37 issue

 

(6).mv 移动或者重命名

例子:

[root@localhost test1]# ll

-rw-r–r– 1 root root   74 Dec 11 09:37 issue

[root@localhost test1]# mv issue issue.20161211

[root@localhost test1]# ll

-rw-r–r– 1 root root   74 Dec 11 09:37 issue.20161211

 

(7).rm:删除

-r:递归删除目标目录下的文件

-f:强制删

 

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

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

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

成功:0

失败:1-255

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

eg

[root@localhost ~]# echo $?

0

[root@localhost ~]# echo $?

2

注意:命令正常执行时,有的还会有命令返回值。

引用命令的执行结果:

$(command)或'command'

eg

[root@localhost ~]# mkdir $(date +%H-%M-%S)

[root@localhost ~]# echo $?

0

[root@localhost ~]# ls

21-09-03

注:上述就是把date命令的返回值作为参数给了 mkdir 命令。

2.  bash的基础特性之:命令行展开

~:自动展开为用户的家目录,或指定的用户的家目录;

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

eg

创建 /tmp/x ; /tmp/x/y1 ; /tmp/x/y1/a ; /tmp/x/y1/b ; /tmp/x/y2

[root@localhost ~]# mkdir -pv /tmp/x/{y1/{a,b},y2}

mkdir: created directory `/tmp/x'

mkdir: created directory `/tmp/x/y1'

mkdir: created directory `/tmp/x/y1/a'

mkdir: created directory `/tmp/x/y1/b'

mkdir: created directory `/tmp/x/y2'

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

/tmp/x

|– y1

| |– a

| `– b

`– y2

 

问题三:使用命令行展开完成以下练习

1.  创建/tmp目录下的:a_c,a_d,b_c,b_d

Eg

[root@localhost ~]# ls /tmp/     

[root@localhost ~]# touch /tmp/a_{c,d} /tmp/b_{c,d}

[root@localhost ~]# ls /tmp/

a_c  a_d  b_c  b_d

2. 创建/tmp/mylinux下的目录结构

[root@localhost ~]# mkdir /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}} -pv

mkdir: 已创建目录 "/tmp/mylinux"

mkdir: 已创建目录 "/tmp/mylinux/bin"

mkdir: 已创建目录 "/tmp/mylinux/boot"

mkdir: 已创建目录 "/tmp/mylinux/boot/grub"

mkdir: 已创建目录 "/tmp/mylinux/dev"

mkdir: 已创建目录 "/tmp/mylinux/etc"

mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d"

mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d/init.d"

mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig"

mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig/network-scripts"

mkdir: 已创建目录 "/tmp/mylinux/lib"

mkdir: 已创建目录 "/tmp/mylinux/lib/modules"

mkdir: 已创建目录 "/tmp/mylinux/lib64"

mkdir: 已创建目录 "/tmp/mylinux/proc"

mkdir: 已创建目录 "/tmp/mylinux/sbin"

mkdir: 已创建目录 "/tmp/mylinux/sys"

mkdir: 已创建目录 "/tmp/mylinux/tmp"

mkdir: 已创建目录 "/tmp/mylinux/usr"

mkdir: 已创建目录 "/tmp/mylinux/usr/local"

mkdir: 已创建目录 "/tmp/mylinux/usr/bin"

mkdir: 已创建目录 "/tmp/mylinux/usr/sbin"

mkdir: 已创建目录 "/tmp/mylinux/var"

mkdir: 已创建目录 "/tmp/mylinux/var/lock"

mkdir: 已创建目录 "/tmp/mylinux/var/log"

mkdir: 已创建目录 "/tmp/mylinux/var/run"

 

问题四:文件的元数据信息有哪些,分别表示什么含义

文件有两种数据

元数据:只是文件自身的属性信息。

数据:文件内容本身。

 

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

命令别名:alias

eg:

[root@localhost ~]# alias

alias cp='cp -i'

alias l.='ls -d .* –color=tty'

alias ll='ls -l –color=tty'

alias ls='ls –color=tty'

定义别名:

alias 原命令=别名命令,但是这个是临时的

撤销别名:

unalias 别名

永久定义别名:定义在~/.bashrc或者/etc/bashrc

 

命令练习: 

1.显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现一位任意字符的文件或目录;

[root@localhost ~]# ls -d /var/l?[[:lower:]]

[root@localhost ~]# ls -d /var/l?[[:lower:]]

/var/lib /var/log

[root@localhost ~]# cd /var

[root@localhost var]# ls -d l?[[:lower:]]

lib log

注意:-d 的参数是只列出目录。

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

[root@localhost etc]# ls -d [[:digit:]]*[^[:digit:]]

3ab23y

[root@localhost etc]# ls -d [0-9]*[^0-9]

3ab23y

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

[root@localhost etc]# ls -d [0-9][a-z]*

2fdsafsf

4.复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/xuef目录;

[root@localhost etc]# cp -r m*[^0-9] /tmp/xuef

[root@localhost etc]# cd /tmp/xuef

[root@localhost xuef]# ls

mail makedev.d mgetty+sendfax mke2fs.conf modprobe.d mtools.conf

mailcap man.config mime.types modprobe.conf motd multipath.conf

mail.rc maven minicom.users modprobe.conf~ mtab

5.复制/usr/share/man目录下,所有以man开头,后跟一个数字结尾的文件或目录至/tmp/man/目录下;

[root@localhost ~]# cp -r /usr/share/man/man[0-9] /tmp/man

[root@localhost man]# du -sh

25M

6.复制/etc目录下,所有以.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/man目录下;

[root@localhost man]# cp -r /etc/[mnrp]*.conf /tmp/xuef

7. 在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名如tfile-2016-05-26-08-32-22

[root@localhost ~]]#  touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`

 

 

 

原创文章,作者:N25-笔头,如若转载,请注明出处:http://www.178linux.com/63177

(0)
N25-笔头N25-笔头
上一篇 2016-12-11
下一篇 2016-12-11

相关推荐

  • N22-妙手-第一周博客作业

           描述计算机的组成及其功能 1946年冯诺依曼提出冯 诺依曼结构,也称普林斯顿结构,即一种将程序指令存储器和数据存储器合并在一起的存储器结构。根据他的结构,计算机组成是: (1)运算器:负责数据的算术运算和逻辑运算 (2)控制器:  负责对程序信息和数据进行分析,控制并协调其输…

    Linux干货 2016-08-15
  • Linux终端类型

        终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等。在早期计算机系统中,由于计算机主机昂贵,因此一个主机(IBM大型计算机)一般会配置多个终端,这些终端本身不具备计算能力,仅仅承担信息输入输出的工作,运算和处理均由主机来完成。在个人计算机时代,个人计算机可以运行称为…

    Linux干货 2016-10-13
  • redis + keepalived 双主模型

    redis + keepalived 双主模型 架构图:    1.vip默认绑定在redis主上,由redis主提供服务,redis从为备用节点。(实际上提供服务的只是vip) 2.当redis主挂掉,vip会默认漂移至redis从。由redis从提供服务,redis主已经挂掉。 3.当redis主已经恢复,redis从继续提供服务和挂…

    Linux干货 2016-06-23
  • Linux帮助文件的使用、history变量的使用和FHS

    怎样利用帮助文件来查询想要了解的信息? 这里以通过查找帮助文件来修改登陆信息为例子, 登陆的时候,我们可以看到CentOS的的版本和内核信息, 当我们查看该相关文件的时候,会发现,里面的文档和显示的不一致,由此可以了解到,该文档是调用某些参数来实现显示CentOS的版本和内核信息。 这个时候,我们该怎样去查看issue文档的相关信息? 首先我们可以查看一下通…

    Linux干货 2016-08-04
  • man 命令简单介绍

    man n command man手册页分为下面几个部分: 1 普通命令2 内核提供的系统调用3 库调用4 设备文件5 文件格式规范6 游戏7 杂项8 系统管理命令

    Linux干货 2018-03-03
  • 用户管理类命令

    2018-03-18

    Linux干货 2018-03-18

评论列表(1条)

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

    总结的很详细~能用markdown格式化输出会更好~加油。