网络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
下一篇 2016-08-22

相关推荐

  • Redis 代理服务Twemproxy

    1、twemproxy explore       当我们有大量 Redis 或 Memcached 的时候,通常只能通过客户端的一些数据分配算法(比如一致性哈希),来实现集群存储的特性。虽然Redis 2.6版本已经发布Redis Cluster,但还不是很成熟适用正式生产环境。 Redis 的 Clust…

    Linux干货 2015-04-04
  • 马哥教育网络班20期+第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一用户登录多次,则只显示一次即可。 [root@llww3317 ~]# who    #显示当前用户登录信息 root     tty1    &nbsp…

    Linux干货 2016-06-26
  • ​Linux基础知识之磁盘及文件系统管理(一)

    1.设备类型:     块设备(block):随机访问,数据交换单位是"块"     字符设备(character):线性访问,数据交换的单位是"字符" 2.设备文件:FHS     /dev &nb…

    Linux干货 2016-08-29
  • Java输入输出流

    1.什么是IO       Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。 &nb…

    Linux干货 2015-04-10
  • NFS实现(双httpd + php-fpm + nfs + mysql 搭建discuz论坛)

    NFS相关介绍一、NFS简介1. NFS(Network File System): NFS是一个文件共享协议, 也是是在类Unix系统中在内核中实现的文件系统。2. 起源: 最早是由SUN公司研发,非常古老,只是实现文件共享,安全控制方面比较简陋。 版本有, NFSv1, NFSv2,NFSv3,NFSv4. v4版开始支持kerber…

    Linux干货 2016-10-19
  • python env seup

    ffffffffffffffffffffffffffffffffffffff

    2018-03-12

评论列表(1条)

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

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