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

相关推荐

  • top,htop,ps,dstat命令的使用

    top top是一个动态显示过程,即可跟据用户的按键不断刷新当前状态,top命令提供了实时的对当前系统的状态监视。 top – 11:53:40 up 11 days, 13:32,  3 users,  load average:&nbs…

    Linux干货 2017-03-15
  • 文本处理工具之grep

                    文本处理工具之grep 一、grep的简介 1、grep是一个文本过滤器的工具,它根据用户指定的模式(pattern)对目标文本进行匹配检查,并将匹配的行打印到标准输出或输出重定向。 2、模式:由文本字符或正则表达式组成 3、正则表达式分…

    2017-05-06
  • root用户密码破解

    方法一:进入单用户模式破解root密码 (1)编辑grub菜单(选定要编辑的title,而后使用e命令) (2)在选定的kernel后附加 1,s,S或single都可以 (3)在kernel所在行键入"b"命令即可进入单用户模式 (4)运行passwd命令修改root用户密码 并重启 (5)输入密码即可登录 方法二:进入救援模…

    Linux干货 2016-09-15
  • 初学linux遇到的问题

    1 su uername 显示的是基本格式,不是类似于[root@Centos7 ~]#,看着不知道进入到哪个目录。解决办法:在家目录下使用ls -a命令显示隐藏文件,使用nano .bash_profile命令,在那里编辑PS1=”[\u@\h \W]\\$”保存退出就好了。 疑问:为什么不在/etc/bashrc下更改呢?自答:改…

    Linux干货 2017-07-15
  • SSH服务器实现telnet请求转发

    本次实验做的工作如下图: 中间一台CentOS6通过SSH转发两边两台CentOS7的telnet通信。 首先,在右侧CentOS7上安装telnet服务 [root@Shining ~]# yum install -y telnet telnet-server 启动telnet服务 [root@Shining ~]# systemctl start tel…

    Linux干货 2016-12-04
  • DNS快速入门、正反向解析……

    DNS服务原理详解 因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析。 我们在访问一个网站的时候,只要输入该网站的网址就会跳转到该网站页面,而实现这一过程就需要DNS服务器将域名解析为IP地址,进而实现数据通信。 DNS:…

    2017-06-03

评论列表(1条)

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

    吐血,哈哈~