N25 – 第二周博客作业

 

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

    more: more命令非常简单,只用more file即可,但是more命令有一个特点,就是翻屏至文件尾部后自动退出

    less: less命令就是在使用man时是一样的,因为man手册就是调用less来查看的 

    head: head命令用来查看文件的前#行,#默认为10

    head -n 20 /etcrc.d//init.d//functions   -n 20也可以写成-20

    [root@dhcp-10-129-6-166 ~]# head -n 10 /etc/rc.d/init.d/functions
    # -*-Shell-script-*-
    #
    # functions     This file contains functions to be used by most or all
    #               shell scripts in the /etc/init.d directory.
    #

    TEXTDOMAIN=initscripts

    # Make sure umask is sane
    umask 022
    [root@dhcp-10-129-6-166 ~]# ^C

     

  2. bash的工作特性之命令执行返回值和命令行展开所涉及的内容及其示例

    bash的工作特性之命令执行返回值

    每当我们在Linux系统上执行了一条命令,不单单会有命令结果的返回值,还有一种叫做命令执行返回值,也可以理解为命令的执行结果状态的返回值。

    举个栗子:

    我们使用man ls来看一下ls的man文档中下面一段

    Exit status:

    0      if OK,

    1      if minor problems (e.g., cannot access subdirec-tory),

    2      if  serious  trouble  (e.g.,  cannot access com-mand-line argument).

    这里的0, 1, 2就是所谓的命令执行返回值,0代表一切都ok,从1-225都表示出现了不同的问题,当然,每个程序的每一个错误的执行返回值所代表的错误不一定相同,但是1-255都是均代表不是正常的返回值,只有0才是完全正确的执行返回值。

    那我们怎么查看命令执行的返回值呢?

    $?代表上一条命令执行的返回值,我们使用echo $?就可以在标准输出上输出状态返回值了,看下面的栗子:

    先执行错误的命令 ls-H,然后使用echo $?得到了127这个错误的执行返回值,之后再执行ls -l,使用echo $?查看,得到了0的正确的状态返回值,这里再强调一下,$?变量是针对上一条命令的执行状态返回值,只是上一条命令。

    [root@dhcp-10-129-6-166 ~]# ls-H

    -bash: ls-H: 未找到命令

    [root@dhcp-10-129-6-166 ~]# echo $?

    127

    [root@dhcp-10-129-6-166 ~]# ls -l

    total 4

    drwxr-xr-x. 2 root root   26 Dec 13 00:55 1

    -rw-r–r–. 1 root root    0 Dec  1 23:51 FILE1

    -rw-r–r–. 1 root root    0 Dec  1 23:51 File1

    drwxr-xr-x. 3 root root   27 Dec  2 00:44 L1

    drwxr-xr-x. 2 root root    6 Dec  2 00:49 L11

    -rw——-. 1 root root 1046 Dec  1 22:08 anaconda-ks.cfg

    -rw-r–r–. 1 root root    0 Dec  1 23:51 file1

    [root@dhcp-10-129-6-166 ~]# echo $?

    0

    [root@dhcp-10-129-6-166 ~]#

    bash特性之命令行展开

    命令行展开机制中有这么几个机制:~, {}

    ~可以展开为当前登录用户的家目录

    栗子:root用户登录,在非家目录使用cd ~会cd到root的家目录

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

    栗子: 使用命令 mkdir /tmp/yourdad/{you, yourbrother} -pv,会生成 /tmp/yourdad/you 和目录/tmp/yourdad/yourbrother. 

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

A 创建/tmp目录下的 a_c, a_d, b_c和b_d

[root@dhcp-10-129-6-166 1]# pwd

/root/1

root@dhcp-10-129-6-166 1]# cd /tmp

[root@dhcp-10-129-6-166 tmp]# mkdir {a,b}_{c,d}

[root@dhcp-10-129-6-166 tmp]# ll

总用量 0

drwxr-xr-x. 2 root root 6 12月 13 05:12 a_c

drwxr-xr-x. 2 root root 6 12月 13 05:12 a_d

drwxr-xr-x. 2 root root 6 12月 13 05:12 b_c

drwxr-xr-x. 2 root root 6 12月 13 05:12 b_d

B 创建/tmp/mylinux目录如下:          .
└── 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@dhcp-10-129-6-166 tmp]# mkdir -p mylinux/{b{in,oot/grub},dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib{64,/modules},proc,s{bin,ys},tmp,usr/local/{s,}bin,var/{lo{ck,g},run}}
[root@dhcp-10-129-6-166 tmp]# tree
.
└── 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

25 directories, 0 files
[root@dhcp-10-129-6-166 tmp]#

 

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

元数据的英文称为metadata, metadate不同于data,它不是文件的内容,而是文件的属性

使用stat FILE来查看文件看到的就成为metadata, metadata包含很多的信息,文件的大小,inode, blocks数量,等等

还有最重要的就是文件的三个time stamp,即时间戳。

文件的时间戳有3种,acccess time stamp, change time stamp和modify time stamp

access time stamp为最近访问时间,例如查看文件这种操作,就会改变文件的access time stamp

modify time stamp为最近修改时间,修改了文件的内容,就会改变文件的modify timestamp

change time stamp为最近改变时间 ,access time stamp或者modify time stamp更改都会联动导致change time stamp的改变

如何查看文件的元数据信息呢?使用stat命令即可

[root@dhcp-10-129-6-166 ~]# stat /etc/rc.d/init.d/functions
File: '/etc/rc.d/init.d/functions'
Size: 13948           Blocks: 32         IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 33970102    Links: 1
Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:bin_t:s0
Access: 2016-12-13 00:45:16.340999869 +0800
Modify: 2015-09-16 19:51:07.000000000 +0800
Change: 2016-12-01 21:52:39.201992295 +0800
Birth: –
[root@dhcp-10-129-6-166 ~]#

如何更改文件的时间戳呢?使用touch命令即可

touch [OPTION] FILE

            -c: 指定的文件路径不存在时会自动创建文件

            -a:仅修改access time stamp

            -m:仅修改modify time stamp

            -t STAMP [[CC]YYMMDDhhmm[.ss]                         

            此处未完待续…..        

==========================================愤怒的分割线============================================

此时此刻,我的心情是非常想把眼前这台Mac给砸了的,但是我不敢,我更舍不得,辛辛苦苦写的博客,不知道手残按了什么,呼啦啦一下就特么没了,没了你知道吗?说出来你可能不信,这篇作业我写了快两个点了,就差前面两道题了,结果就特么这么没了…..我伤心的拿出了手机,下了一首刘欢的从头再来,鼓励我,搀扶着我写了这段分割线……明天再继续吧,心如在,梦就在,天地之间还有真爱,看成败,人生豪迈,只不过是从头再来。。。。。

==========================================分割线走了==============================================

==========================================分割线又来了============================================

上午终于抽出时间补上了后面的作业,下午再做前面的吧

==========================================分割线又走了============================================

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

如何定义一个命令的别名:

alias的用法:alias [-p] [name[=value] …]

举个栗子,如果要为命令取别名使用alias NAME=COMMAND [OPTION]

[root@dhcp-10-129-6-166 ~]# alias la='ls -a'

将ls -a 这条命令起个别名叫 la

举个栗子:

[root@dhcp-10-129-6-166 ~]# alias cp

alias cp='cp -i'

[root@dhcp-10-129-6-166 ~]#

上面的栗子说的是,当我们使用root用户运行cp命令时,实际上cp命令是"cp -i"这条命令的别名
如何在命令中引用另一个名字的执行结果

引用命令的执行结果可以使用$和`

栗子:使用$来引用命令的执行结果,在root 家目录下本来没有文件,使用touch $(ls /)命令,会在root家目录下创建ls /命令所显示出来的所有目录

[root@dhcp-10-129-6-166 ~]# pwd
/root
[root@dhcp-10-129-6-166 ~]# ls
[root@dhcp-10-129-6-166 ~]# touch $(ls /)
[root@dhcp-10-129-6-166 ~]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@dhcp-10-129-6-166 ~]#

栗子2:使用“来引用命令的执行结果, 执行ls命令,在/tmp目录下本来没有文件,使用touch `echo $?` ,会在/tmp目录下创建一个文件名为0的文件

[root@dhcp-10-129-6-166 ~]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@dhcp-10-129-6-166 ~]# touch /tmp/`echo $?`
[root@dhcp-10-129-6-166 ~]# ls /tmp
0  mytest1  mytest2  mytest3  tfile-2016-12-13-18-57-48
[root@dhcp-10-129-6-166 ~]#

 

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

[root@dhcp-10-129-6-166 ~]# touch /var/1a9{a,9,@}{a,A,$}

[root@dhcp-10-129-6-166 ~]# ls /var/1a9*

/var/1a99$  /var/1a99a  /var/1a9@A  /var/1a9a$  /var/1a9aa

/var/1a99A  /var/1a9@$  /var/1a9@a  /var/1a9aA

[root@dhcp-10-129-6-166 ~]# mkdir /var/1a9FF{a,9,@}{a,A,$}

[root@dhcp-10-129-6-166 ~]# ls /var/1a9FF*

/var/1a9FF9$:

/var/1a9FF9A:

/var/1a9FF9a:

/var/1a9FF@$:

/var/1a9FF@A:

/var/1a9FF@a:

/var/1a9FFa$: 

/var/1a9FFaA:

/var/1a9FFaa:

[root@dhcp-10-129-6-166 ~]# ls -R /var/1*[0-9]*[a-z]

/var/1a99A  /var/1a9@A  /var/1a9aA

/var/1a99a  /var/1a9@a  /var/1a9aa

/var/1a9FF9A:

/var/1a9FF9a:

/var/1a9FF@A:

/var/1a9FF@a:

/var/1a9FFaA:

/var/1a9FFaa:

[root@dhcp-10-129-6-166 ~]#

 

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

[root@dhcp-10-129-6-166 ~]# ls /etc/[0-9]*[^0-9]

ls: cannot access /etc/[0-9]*[^0-9]: No such file or directory

[root@dhcp-10-129-6-166 ~]#

 

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

[root@dhcp-10-129-6-166 ~]# ls -R /etc/[^[:alpha:]][[:alpha:]]*

ls: cannot access /etc/[^[:alpha:]][[:alpha:]]*: No such file or directory

 

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

[root@dhcp-10-129-6-166 tmp]# touch tfile-$(date +%Y-%m-%D-%H-%M-%S)

touch: cannot touch 'tfile-2016-12-12/13/16-18-56-53': No such file or directory

[root@dhcp-10-129-6-166 tmp]# touch 1

[root@dhcp-10-129-6-166 tmp]# ll

total 0

-rw-r–r–. 1 root root 0 Dec 13 18:57 1

[root@dhcp-10-129-6-166 tmp]# rm 1

rm: remove regular empty file '1'? y

[root@dhcp-10-129-6-166 tmp]# touch tfile-$(date +%Y-%m-%d-%H-%M-%S)

[root@dhcp-10-129-6-166 tmp]# ll

total 0

-rw-r–r–. 1 root root 0 Dec 13 18:57 tfile-2016-12-13-18-57-48

[root@dhcp-10-129-6-166 tmp]#

 

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

[root@dhcp-10-129-6-166 ~]# cp -r /etc/p*[^0-9] /tmp/mytest1

[root@dhcp-10-129-6-166 ~]# ls /tmp/mytest1

pam.d    pki       popt.d   prelink.conf.d  profile.d

passwd   plymouth  postfix  printcap        protocols

passwd-  pm        ppp      profile         python

[root@dhcp-10-129-6-166 ~]#

 

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

[root@dhcp-10-129-6-166 ~]# cp -r /etc/*.d /tmp/mytest2

[root@dhcp-10-129-6-166 ~]# ls /tmp/mytest2

bash_completion.d  ld.so.conf.d    rc.d       rwtab.d

binfmt.d           logrotate.d     rc0.d      statetab.d

chkconfig.d        modprobe.d      rc1.d      sudoers.d

cron.d             modules-load.d  rc2.d      sysctl.d

depmod.d           my.cnf.d        rc3.d      tmpfiles.d

dnsmasq.d          pam.d           rc4.d      xinetd.d

dracut.conf.d      popt.d          rc5.d      yum.repos.d

grub.d             prelink.conf.d  rc6.d

init.d             profile.d       rsyslog.d

[root@dhcp-10-129-6-166 ~]#

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

[root@dhcp-10-129-6-166 ~]# mkdir /tmp/mytest3

[root@dhcp-10-129-6-166 ~]# cp -r /etc/{l,m,n}*.conf /tmp/mytest3

[root@dhcp-10-129-6-166 ~]# ls /tmp/mytest3

ld.so.conf     libuser.conf  logrotate.conf  mke2fs.conf

libaudit.conf  locale.conf   man_db.conf     nsswitch.conf

[root@dhcp-10-129-6-166 ~]#

 

原创文章,作者:JL,如若转载,请注明出处:http://www.178linux.com/62929

(0)
JLJL
上一篇 2016-12-07 11:03
下一篇 2016-12-07 11:58

相关推荐

  • nginx

    Linux干货 2016-10-30
  • N26-第一周博客作业

    第一周博客作业 一、计算机的组成及其功能 计算机的组成可分为硬件、软件两部分。 硬件部分: 按冯.诺伊曼提出的计算机体系,计算机可分为五个部分,分别是:控制器、运算器、存储器、输入设备、输出设备。 CPU:由运算器及控制器组成。 控制器:发出决策指令,协调和指挥计算机各部件的工作。 运算器:对数据进行加工,主要进行算数运行、逻辑运算。 存储器:分为内存储器和…

    2017-02-17
  • 网络N22期-第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who | cut -d" " -f1 | uniq root 2、取出最后登录到当前系统的用户的相关信息。 [roo…

    Linux干货 2016-08-29
  • httpd配置

    1、Centos7系统下实现httpd-2.2的安装,并分别实现prefork、worker、event等几种工作方式

    2、简述request报文请求方法和状态响应码

    3、详细描述httpd虚拟主机、站点访问控制、基于用户的访问控制、持久链接等应用配置实例

    Linux干货 2018-02-05
  • Docker之~集群配置

    一、前言 Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件,目前最新版本为0.6.2。 本文介绍如何基于Centos7.0构建Kubernetes平台,在正式介绍之前,大家有必要先理解Kubernetes几个核心概念及其承担的功能。以下为Kubernet…

    2017-03-16
  • test1

    test 

    Linux干货 2016-09-15

评论列表(1条)

  • 小飝
    小飝 2016-12-08 00:39

    吐血,哈哈~