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)
上一篇 2016-12-07 11:03
下一篇 2016-12-07 11:58

相关推荐

  • mariadb数据库的主从复制

    mariadb的主从复制

    2018-02-27
  • bash基础特性的应用

    1:使用命令行展开功能来完成以下练习:     (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d ~]# touch  /tmp/{a_{c,d},b_{c,d}}     (2)、创建/tmp/mylinux目录下的:      mkdir…

    Linux干货 2016-11-06
  • Linux的文件权限(一)

    Linux的文件权限 在Linux的世界里,一切皆文件,用文件代表了系统的所有数据。既然文件那么重要,自然会给文件赋予一定的权限,要不然每个人都可以乱来,那系统会十分危险。所以文件的所有者会给文件设定权限,每个用户在自己权限的范围下做各自的操作。 我们可以先用 ll-d 查看一下文件的权限 第一位代表着问价类型,d 代表着是目录文件,后面九位代表着权限。其中…

    2017-05-30
  • 磁盘管理

    磁盘设备 一切皆文件 所有的Linux中的设备都可以使用下面命令进行操作:open(), read(), write(), close()(这些是C的函数) 块设备:随机访问 字符设备:线性访问 设备号码: 主设备号:major number,标识设备类型 8是主要设备编号,代表类型 次设备号:minor number…

    Linux干货 2016-09-01
  • N25-第二周作业

    N25-第二周作业 博客作业 1、linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 linux上处理目录的常用命令: ls :列出目录 cd :切换目录 pwd:显示当前工作路径 mkdir:创建目录 rm:删除文件或目录 rmdir:删除空文件 mv:剪切、重命名文件、目录 cp:复制文件或目录 touch:创建空文件 ls:= li…

    Linux干货 2017-02-08
  • N22第二周作业

    1.Linux上文件管理类命令有哪些,其常用的使用方法及其相关示列演示。  常用文件管理类命令有:cp, mv ,rm. (1)cp:copy (2)mv:move (3) rm:remove   2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示 3、请使用命令行展开功能来完成以下练习:   &nb…

    Linux干货 2016-08-22

评论列表(1条)

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

    吐血,哈哈~