第二周作业之:bash状态返回 | 命令展开 | 文件元组信息 | 命令别名|课后练习

echo

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

命令的执行状态结果:
bash通过状态返回值输出此结果:
成功:0
失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?
[root@localhost /]# echo $?
0
[root@localhost /]# ls aa
ls: cannot access aa: No such file or directory
[root@localhost /]# echo $?
2

命令正常执行时,有的还有命令返回值
根据命令及其功能不同,结果各不相同:

bash的基础特性之:命令行展开
~:自动展开为用户的家目录,或者指定用户的家目录
{}: 可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径
例如:/tmp/{a,b}相当于 /tmp/a /tmp/b
mkdir -pv /tmp/x/{y1/{a,b},y2}

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

 [root@loong ~]# ls /tmp
 conf  yum.log
 [root@loong ~]# mkdir /tmp/{a,b}_{c,d}
 [root@loong ~]# ls /tmp
 a_c  a_d  b_c  b_d  conf  yum.log
2. 创建/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

执行过程:-p表示如父目录不存在,则自动创建之。-v表示显示创建过程
tree命令显示目录的树形结构

文件的元数据信息有哪些,分别表示哪些含义,如何查看

元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。因此,元数据就是数据的数据。任何文件系统中的数据分为数据和元数据。数据指文件中实际存在的数据,元数据指用来描述该文件的系统特征的数据。诸如访问权限、文件拥有者以及文件数据块的分布信息(inode…)等等。在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。

文件系统元数据(metadata)的更改都被保存在一份单独的日志里,当发生系统崩溃时可以根据日志正确地恢复数据。除此之外,日志使系统重新启动时不必进行文件系统的检查,从而缩短了恢复时间。
查看元数据的命令是stat
stat [OPTION]… FILE…

[root@loong tmp]# stat numad.conf
File: "numad.conf"
Size: 91         Blocks: 8          IO Block: 4096   普通文件
Device: 802h/2050d Inode: 147231      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-07-19 10:44:44.170998930 +0800   //访问时间
Modify: 2017-07-19 10:44:44.170998930 +0800   //修改时间,即修改文件内容
Change: 2017-07-19 10:44:44.170998930 +0800  //改变时间,指元数据改变

可以看出获得的元数据包括了文件名,文件大小的字节数,文件占用的块数(blocks),文件权限、用户属主和属组信息,以及最后三行的时间戳信息。

修改文件的时间戳信息
使用touch命令来修改时间戳信息
touch [OPTION]… FILE…
-c: 指定的文件路径不存在时不予创建;
-a: 仅修改access time;
-m:仅修改modify time;
-t STAMP
[[CC]YY]MMDDhhmm[.ss]

例:直接touch filename,将文件的时间戳修改为当前时间。会修改所有的三个时间戳。

[root@loong tmp]# stat numad.conf
File: "numad.conf"
Size: 91         Blocks: 8          IO Block: 4096   普通文件
Device: 802h/2050d Inode: 147231      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-05-05 11:30:10.000000000 +0800
Modify: 2017-07-19 10:44:44.170998930 +0800
Change: 2017-07-19 11:37:05.144985181 +0800
[root@loong tmp]# touch numad.conf
[root@loong tmp]# stat numad.conf 
  File: "numad.conf"
  Size: 91         Blocks: 8          IO Block: 4096   普通文件
Device: 802h/2050d Inode: 147231      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-07-19 14:38:31.574996407 +0800
Modify: 2017-07-19 14:38:31.574996407 +0800
Change: 2017-07-19 14:38:31.574996407 +0800

例:使用-a选项,仅修改atime,并指定时间为2017-6-21 15:22:05

[root@loong tmp]# touch -a -t 201706211522.05 numad.conf 
[root@loong tmp]# stat numad.conf 
File: "numad.conf"
Size: 91         Blocks: 8          IO Block: 4096   普通文件
Device: 802h/2050d Inode: 147231      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-06-21 15:22:05.000000000 +0800
Modify: 2017-07-19 14:38:31.574996407 +0800
Change: 2017-07-19 14:45:09.950992896 +0800
命令别名
alias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。使用alias时,用户必须使用单引号''将原来的命令引起来,防止特殊字符导致错误。
alias命令的作用只局限于该次登入的操作。若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件/etc/bashrc中。
例如:alias l=‘ls -lsh' 将重新定义ls命令,现在只需输入l就可以列目录了。直接输入 alias 命令会列出当前系统中所有已经定义的命令别名。
查看系统已经设置的别名:
alias -p
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
无标题
请心里默写出答案!

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

(0)
上一篇 2018-04-14 21:15
下一篇 2018-04-15 08:10

相关推荐

  • 初涉sed命令

    零散知识点散记和sed基础接触

    Linux笔记 2018-04-15
  • 第二周

    反向单引号 ` `:执行能力强,可以执行命令 [等价于$()]单引号 ‘ ’:只显示字符双引号 “ ”:识别变量,不识别命令花括号{ }: 里面内容互相组合 打印重复字符串的简化形式echo file{1,3,5} 显示为file1.3.5rm -f file{1,3,5} 删除file1.3.5echo file{1..10} 显示为file1&#8230…

    Linux笔记 2018-07-29
  • 标准I/O和管道

    input:输入读入数据 output:输出数据文件的 打开的文件都有一个fd: file descriptor (文件描述符) ll /proc/$$/fd #查看fd exec 8<>/data/hosts #指定fd I/O重定向:该变默认位置 > #把标准输出重定向到文件(一个”>”是覆盖,”>>”是追加) 2&g…

    2018-04-02
  • 正则表达式用户管理

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -r /etc/skel /home/tuser1 [root@localhost ~]# chmod 700 /home/tuser1 -R [root@localhost ~…

    2018-06-04
  • 搭建本地yum仓库

    一、首先准备两台Centos虚拟机,一台搭建yum源服务器,一台作为客户端进行访问及安装、更新软件。(1)、yum源服务器版本是Centos7.4(2)、客户端版本是centos6.9二、自动挂载光驱(1)、准备centos6.9的虚拟光盘和centos7.4的虚拟光盘,挂载至centos7.4系统上(2)、安装autofs包,实现自动挂载方法1、cd /m…

    2018-04-22
  • TCP/IP协议详解

    在前面的网络基础内容中我们了解了TCP/IP协议的定义以及TCP/IP模型的分层结构即:应用层,传输层,Internet层以及网络访问层。今天我来带大家详细了解下TCP/IP协议栈中的典型协议:传输层的TCP、UDP协议,网络层的IP协议。

    2018-05-06