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
下一篇 2016-12-07

相关推荐

  • N25第7周作业

    1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; ]# fdisk /dev/sdb #划出一个…

    Linux干货 2017-02-21
  • 配置DNS服务

    DNS:Domain Name System:域名系统 DNS:Domain Name System:域名系统 域名和IP地址相互映射的一个分布式数据库,使用户使用域名更方便的访问互联网,不用去记更利于机器读取的IP地址,域名解析由DNS服务器提供。 DNS服务器的类型: 主DNS服务器:管理和维护所负责解析的域内解析库的服务器 从DNS服务器:从主服务器或…

    Linux干货 2016-10-24
  • 文本处理工具-习题

    1 、找出ifconfig 命令结果中本机的所有IPv4地址 [root@centos7 ~]# ifconfig |head -2 |tail-1 |cut -dn -f2 |cut -d" " -f2 2 、查出分区空间使用率的最大百分比值 [root@centos7 ~]# df |cut -c44-46 |sort -n|tail…

    Linux干货 2016-08-15
  • httpd的特性(初阶应用)

    httpd的特性   httpd常用配置/etc/httpd/conf/httpd.conf 1、修改监听的IP和PORT Listen [IP:]PORT (1)省略IP表示为0.0.0.0 (2)Listen指令可重复多次 Listen 8080 Listen 80 (3)先修改监听的socket,重启服务后方可生效 2、持久连续 KeepAl…

    2017-09-30
  • 马哥教育网络班21期-第2周课程练习

    1、 Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp 复制、mv 剪切、rm 删除 tree,mkdir 2、 bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。 echo$ 查看命令执行状态返回值 。 返回0,则表示执行成功。 返回非零,则表示执行失败。(1-255) 3、请使用命令行展开功能来完成…

    Linux干货 2016-07-17
  • vim的使用说明

    vim的使用说明 vim是一款功能丰富而强大的文本编辑器,vim是从 vi 发展出来的一个文本编辑器。其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛的使用。 vim的使用非常方便,使用方法为:vim [options] [file ..] 1、vim可以对指定文件进行编辑,也可以直接启动vim编辑器进行编辑,对于打开指定文件编辑时可以加…

    Linux干货 2016-08-12

评论列表(1条)

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

    吐血,哈哈~