网络N22期-第二周作业

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

常用文件管理类命令有cp、mv、rm。

# cp命令:文件复制命令

    cp [OPTION]… [-T] SOURCE DEST 单文件复制

    cp [OPTION]… SOURCE… DIRECTORY 多源文件复制

    cp [OPTION]… -t DIRECTORY SOURCE… 多源文件复制的另一种方式

常用选项:

    -i:交互之前提醒用户确认

    -f:强行覆盖

    -r:递归复制目录;即复制文件及目录

    -d:复制链接文件本身,而非复制其链接的源文件

    -a:相当于 –drarchive用于实现归档

    –preserv=

             Mode:权限

             Ownetship:属主和属组

             Timestamps:时间戳

             Xattr:扩展属性

             Links:符号链接

             All:上述所有属性

单文件复制演示:

[root@localhost ~]# cp /var/log/boot.log /tmp/copytest/
[root@localhost ~]# ls /tmp/copytest/
boot.log

多源复制演示:

[root@localhost ~]# cp /var/log/{btmp,dmesg} /tmp/copytest
[root@localhost ~]# ls /tmp/wangxg
 boot.log btmp dmesg

# mv命令:文件移动或文件重命名命令

    如果目标文件在同一目录则重命名,反之则移动文件。

    mv [OPTION]… [-T] SOURCE DEST

    mv [OPTION]… SOURCE… DIRECTORY

    mv [OPTION]… -t DIRECTORY SOURCE…

   常用选项:(没有-r选项,自身就带有-r功能)

    -i:交互式;

     -f:force

移动演示:

[root@localhost tmp]# mv a.txt ./test
[root@localhost tmp]# ls ./test
a.txt

#rm命令:文件删除命令

    rm [OPTION] [file…]

常用选项: 

    -r:递归删除

    -f:强制删除

删除演示

[root@localhost ~]# rm -rf /tmp/log/

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

命令执行的状态结果:

    bash通过状态返回值来输出此结果:

          成功:0

          失败:1-255

     命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;(echo $? 只能返回最近一次命令的返回值)

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

     引用命令的执行结果:

          $(COMMAND)

         或`COMMAND`(反引号)

    示例

[root@localhost tmp]# mkdir test1
[root@localhost tmp]# echo $?
0
[root@localhost tmp]# mkdir test1
mkdir: cannot create directory ‘test1’: File exists
[root@localhost tmp]# echo $?
1

bash的基础特性之:命令行展开

~:自动展开为用户的家目录,或指定的用户的家目录;

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

示例

[root@localhost tmp]# mkdir /tmp/test/{a,b}
[root@localhost tmp]# ls /tmp/test
a  b

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

    (1)创建/tmp目录下的:a_c,a_d,b_c,b_d

   (2)创建/tmp/mylinux目录下的

mylinux
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts
├── lib
│   └── modules
├── lib64
├── local
│   ├── bin
│   └── sbin
├── proc
├── sbin
├── sys
├── tmp
├── usr
└── var
    ├── lock
    ├── los
    └── run

[root@localhost tmp]# mkdir /tmp/{a,b}_{c,d}
[root@localhost tmp]# ls /tmp
a_c
a_d
b_c
b_d
[root@localhost tmp]# mkdir -p /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,los,run}}[root@localhost tmp]# tree /tmp/mylinux
/tmp/mylinux
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts
├── lib
│   └── modules
├── lib64
├── local
│   ├── bin
│   └── sbin
├── proc
├── sbin
├── sys
├── tmp
├── usr
└── var
    ├── lock
    ├── los
    └── run

24 directories, 0 files

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

元数据包含信息:

    access time:访问时间,简写为atime,读取文件内容

    modify time: 修改时间, mtime,改变文件内容(数据)

    change time: 改变时间, ctime,元数据发生改变

查看方式:

    stat – display file or file system status(显示文件或文件系统的状态)   

示例

[root@localhost tmp]# stat /tmp
  File: ‘/tmp’
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d	Inode: 917505      Links: 61
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:tmp_t:s0
Access: 2016-08-18 23:28:54.938103787 +0800
Modify: 2016-08-18 23:36:47.413110055 +0800
Change: 2016-08-18 23:36:47.413110055 +0800
 Birth: -

修改文件的时间戳信息:

    touch [OPTION]… FILE…

    -c: 指定的文件路径不存在时不予创建;

-a: 仅修改access time;

-m:仅修改modify time;

-t STAMP(改为指定时间)

  [[CC]YY]MMDDhhmm[.ss]

示例

[root@localhost tmp]# touch -a 2014-10-12 12:21:36 /tmp/test
[root@localhost tmp]# stat /tmp/test
  File: ‘/tmp/test’
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d	Inode: 917620      Links: 4
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2016-08-18 23:49:10.259119910 +0800
Modify: 2016-08-18 23:26:10.544101606 +0800
Change: 2016-08-18 23:49:10.259119910 +0800
 Birth: -
[root@localhost tmp]# man touch
[root@localhost tmp]# touch -a -t 1410122321.30 /tmp/test
[root@localhost tmp]# stat /tmp/test
  File: ‘/tmp/test’
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d	Inode: 917620      Links: 4
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2014-10-12 23:21:30.000000000 +0800
Modify: 2016-08-18 23:26:10.544101606 +0800
Change: 2016-08-18 23:54:24.504124079 +0800
 Birth: -

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

(1)alias命令用于定义命令别名

    获取所有可用别名的定义:

    ~]# alias

定义别名:

~]# alias NAME='COMMAND'

  注意:仅对当前shell进程有效

撤销别名:

~]# unalias NAME

示例

[root@localhost tmp]# alias cls=clear
[root@localhost tmp]# alias
alias cls='clear'
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost tmp]# unalias cls
[root@localhost tmp]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

注意:仅在当前shell进程有效!)即:有时间限定、有位置限制

永久有效设置方法:写入文件内。

文件类型一:仅对当前用户有效~/.bashrc

文件类型二:对所有用户有效:/etc/bashrc

需要重新读取配置文件生效:source /.bashrc或者./.bashrc

(2)命令引用方法

$(COMMAND)

或者‘COMMAND’

6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)

[root@localhost ~]# ls /var/l*[[:digit:]]*[[:lower:]]

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

[root@localhost ~]# ls /etc/[[:digit:]]*[^[:digit:]]

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

[root@localhost ~]# ls /etc/[^[:alpha:]][[:alpha:]]*

9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

[root@localhost ~]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
[root@localhost ~]# ls /tmp/tfile*
/tmp/tfile-2016-08-19-00-20-19

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

[root@localhost ~]# cp -rf /etc/p*[^[:digit:]] /tmp/mytest1
[root@localhost ~]# ls /tmp/mytest1/
pam.d    pbm2ppa.conf  plymouth      popt.d   prelink.conf.d  profile.d  purple
passwd   pinforc       pm            postfix  printcap        protocols  python
passwd-  pki           pnm2ppa.conf  ppp      profile         pulse

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

[root@localhost ~]# cp -rf /etc/*.d /tmp/mytest2
[root@localhost ~]# ls /tmp/mytest2
auto.master.d      exports.d     modules-load.d  rc2.d          sane.d
bash_completion.d  gdbinit.d     my.cnf.d        rc3.d          setuptool.d
binfmt.d           grub.d        oddjobd.conf.d  rc4.d          statetab.d
cgconfig.d         init.d        pam.d           rc5.d          sudoers.d
chkconfig.d        ipsec.d       popt.d          rc6.d          sysctl.d
cron.d             ld.so.conf.d  prelink.conf.d  rc.d           tmpfiles.d
depmod.d           libibverbs.d  profile.d       request-key.d  usb_modeswitch.d
dnsmasq.d          logrotate.d   rc0.d           rsyslog.d      xinetd.d
dracut.conf.d      modprobe.d    rc1.d           rwtab.d        yum.repos.d

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

[root@localhost ~]# cp /etc/[lmn]*.conf /tmp/mytest3
[root@localhost ~]# ls /tmp/mytest3
ld.so.conf     libuser.conf  logrotate.conf  mke2fs.conf  nfsmount.conf  ntp.conf
libaudit.conf  locale.conf   man_db.conf     mtools.conf  nsswitch.conf  numad.conf

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

(0)
haoqiqiuzhihaoqiqiuzhi
上一篇 2016-08-22 09:29
下一篇 2016-08-22 09:29

相关推荐

  • 马哥教育网络班21期-第十周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情)  a,post:加电自检,通电搜索并检查物理设备的状态  b,bootsequeence(BIOS):选择启动顺序  c,bootloader(MBR):加载主引导程序 bootloader,硬盘分区表到内存  d,加载内核kernel &nb…

    Linux干货 2016-10-24
  • 日志SYSLOGD_OPTIONS 参数

    SYSLOGD_OPTIONS 参数

    Linux干货 2018-03-26
  • Varnish基础进阶

    Varnish基础进阶 前言 互联网早已惠及全人类, 我们可以通过网络与家人、朋友进行实时通信, 也能通过网络随时随地在各大电商站点上购物, 我们访问web站点的速度也越来越快, 这背后都是有很多精巧的架构以及各种先进的技术来支撑的, 我们就今天主要聊聊Web的缓存技术, 对于当今的互联网来说, Cahe Is King, 缓存真的有那么神奇么? 就由我来带…

    Linux干货 2016-04-19
  • N25第八周博客作业

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;     在线的主机使用绿色显示;     不在线的主使用红色显示; #!/bin/bash trap ‘mytrap’ INT mytra…

    Linux干货 2017-02-26
  • 马哥教育首届IT技术博客大赛–复审阶段

    马哥教育首届IT博客大赛大众评审开始了 2016年马哥教育首届IT博客技术大赛,评委初审已结束,正式进入大众评审阶段。。。。 此次博客大赛,虽然因为准备时间比较仓促,举办经验略有不足(快去鄙视小编~😒),但还是收到了10多位优秀的小伙伴共80篇博文(看看人家的劲头,这就是差距呀😓)的参赛作品投递; 其中初审最高…

    Linux干货 2016-06-07
  • 练习正则表达式

        正则表达式可以通过元字符(规则)来匹配查找相关的的字符集合。他与通配符是有区别的。而且相关的使用工具对正则表示的元字符的是有区别的。     首先我们先来了解下常用的元字符及含义(并不是所有的元字符) 字符匹配       &nbs…

    Linux干货 2015-04-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-22 14:15

    写的很好,排版也很棒,加油,3大题2小题跟要求不一样