马哥教育网络21期+第二周练习博客

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

长用的文件管理类命令有cp(复制),mv(移动),rm(删除)。接下来我将为大家一一讲解。

复制命令:cp

在cp时要根据源和目的做出确认与调整;

SRC.png

命令格式:
    cp [OPTION]... [-T] SOURCE DEST
    cp [OPTION]... SOURCE... DIRECTORY
    cp [OPTION]... -t DIRECTORY SOURCE...
命令参数:
    -i:交互式 (目标存在是否覆盖)                                       
    -r,-R:递归复制目录及内部的所有内容;
    -a:归档,相当于-dR,--preserv=all
        -d:--no-dereference --preserv=links
        --preserv=[ATTR_LIST]
            mode:权限
            ownership:属主属组
            timetamp:时间戳
            links:链接属性
            xattr:扩展属性
            all:安全
    -p:保留权限。相当于--preserv=mode,ownership,timetamp
    -v:--verbose
    -f:--force
示例:
[root@localhost ~]# cp /etc/passwd /tmp/jds
[root@localhost ~]# cat /tmp/jds 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

移动文件命令:mv:move

命令格式:
    mv [OPTION]... [-T] SOURCE DEST
    mv [OPTION]... SOURCE... DIRECTORY
    mv [OPTION]... -t DIRECTORY SOURCE..
命令参数:
    -i:交互式
    -f:强制
示例:
[root@localhost etc]# mkdir qq
[root@localhost etc]# touch /etc/qq/ww
[root@localhost etc]# ls /etc/qq/
ww
[root@localhost etc]# mv /etc/qq/ww /tmp/jds 
mv: overwrite `/tmp/jds'? y
[root@localhost etc]# cat /tmp/jds 
[root@localhost etc]#

删除命令:rm:remove

命令格式:
    rm [OPTION]... FILE...
命令参数:
    -i:交互式
    -f:强制删除
    -r:递归
示例:
[root@localhost etc]# rm /tmp/jds 
rm: remove regular empty file `/tmp/jds'? y
[root@localhost etc]# cat /tmp/jds
cat: /tmp/jds: No such file or directory

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

(1)命令执行的结果状态有2个:成功|失败

    bash使用特殊变量$?保存最近一条命令的执行状态结果:

    echo $?

    0:成功

    1-255:失败

[root@localhost ~]# pwd
/root
[root@localhost ~]# echo $?
0
[root@localhost ~]# pwdd 
-bash: pwdd: command not found
[root@localhost ~]# echo $?
127

(2)命令行展开:

~:展开为用户的主目录

~ USERNAME:展开为指定用户的主目录

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

 /tmp/{a,b}=/tmp/a,/tmp/b
/tmp/{tom,jerry}/hi=/tmp/tom/hi,/tmp/jerry/hi

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

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

[root@localhost ~]# mkdir /tmp/{a,b}_{c,d}
[root@localhost ~]# ls /tmp/
a_c  b_c  orbit-gdm           pulse-6SgsiL8VHsxF   yum.log
a_d  b_d  pulse-5VZguu0IAHWG  virtual-root.cFYgyD

   (2)、创建/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@localhost ~]# mkdir -p /tmp/mylinux/{bin,boot/grup,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@localhost ~]# tree /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│   └── grup
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts
├── lib
│   └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│       ├── bin
│       └── sbin
└── var
    ├── lock
    ├── log
    └── run

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

access、modify、change

三个时间戳:
    access time:访问时间,简写为atime,读取文件内容
    modify time:修改时间,mtime,改变文件内容(数据)
    change time:改变时间,ctime,元数据发生改变
 
 查看文件状态:
     stat /PATH/TO/SIOMEFILE:获取指定文件的元数据;
     
 [root@localhost ~]# stat /etc/passwd
  File: `/etc/passwd'
  Size: 1613      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 926642      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-17 23:04:59.413525897 +0800
Modify: 2016-07-17 23:04:59.410525897 +0800
Change: 2016-07-17 23:04:59.410525897 +0800

touch命令可用于修改时间戳:

命令格式:
    touch [OPTION]... FILE...
        -a:only atime
        -m:only mtime
        -t STAMP:自己指定时间戳
            [[CC]YY]MMDDhhmm[.ss]
        -c:如果文件存在,则不予创建
示例:
[root@localhost ~]# stat /etc/passwd
  File: `/etc/passwd'
  Size: 1613      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 926642      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-18 07:28:01.096612108 +0800
Modify: 2016-07-18 07:27:50.806600257 +0800
Change: 2016-07-18 07:27:50.806600257 +0800
[root@localhost ~]# touch -a -t 201607172340.00 /etc/passwd
[root@localhost ~]# stat /etc/passwd
  File: `/etc/passwd'
  Size: 1613      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 926642      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-17 23:40:00.000000000 +0800
Modify: 2016-07-18 07:27:50.806600257 +0800
Change: 2016-07-18 07:38:19.644599221 +0800

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

命令别名(alias)

    (1)alias

        显示当前shell进程所有的命令别名;

    (2)alias NAME='VALUE'

        定义别名NAME,其相当于至执行命令VALUE;

[root@localhost ~]# alias jc='stat'
[root@localhost ~]# source .bashrc 
[root@localhost ~]# js jds 
-bash: js: command not found
[root@localhost ~]# jc jds 
  File: `jds'
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 3145889     Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-18 07:51:18.174599013 +0800
Modify: 2016-07-18 07:34:14.035593515 +0800
Change: 2016-07-18 07:34:14.035593515 +0800

    注意:在命令行中定义的别名,仅在当前shell进程有效;如果想永久有效,要定义在配置文件中。

仅对当前用户有效:nano~/.bashrc
对所有用户有效:nano /etc/bashrc

    Note:编辑配置给出的新配置不会立即生效;

    bash进程重新读取配置文件:

source /PATH/TO/CONFIG_FILE
./PATH/TO/CONFIG_FILE(source可以简写成.)

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

[root@localhost ~]# ls  -d /var/l*[0-9]*[[:lower:]]
/var/l22r  /var/l22t

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

[root@localhost ~]# ls -d /etc/[0-9]*[^[:digit:]]
/etc/22a  /etc/5cd

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

[root@localhost ~]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
/etc/5cd

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

[root@localhost ~]# touch /tmp/tfile-`date +%F-%H-%M-%S`
[root@localhost ~]# ls /tmp/tfile2016-07-18-08-59-07 
/tmp/tfile2016-07-18-08-59-07

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

[root@localhost ~]# cp /etc/p*[^[:digit:]] /tmp/mytest1
cp: omitting directory `/etc/pam.d'
cp: omitting directory `/etc/pango'
cp: omitting directory `/etc/pcmcia'
cp: omitting directory `/etc/pki'
cp: omitting directory `/etc/plymouth'
cp: omitting directory `/etc/pm'
cp: omitting directory `/etc/popt.d'
cp: omitting directory `/etc/portreserve'
cp: omitting directory `/etc/postfix'
cp: omitting directory `/etc/ppp'
cp: omitting directory `/etc/prelink.conf.d'
cp: omitting directory `/etc/profile.d'
cp: omitting directory `/etc/pulse'
cp: omitting directory `/etc/purple'

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

[root@localhost ~]# mkdir /tmp/mytest2
[root@localhost ~]# cp -d /etc/*.d /tmp/mytest2/
cp: omitting directory `/etc/bash_completion.d'
cp: omitting directory `/etc/chkconfig.d'
cp: omitting directory `/etc/cron.d'
cp: omitting directory `/etc/depmod.d'
cp: omitting directory `/etc/dnsmasq.d'
cp: omitting directory `/etc/dracut.conf.d'
cp: omitting directory `/etc/event.d'
cp: omitting directory `/etc/latrace.d'
cp: omitting directory `/etc/ld.so.conf.d'
cp: omitting directory `/etc/logrotate.d'
cp: omitting directory `/etc/lsb-release.d'
cp: omitting directory `/etc/makedev.d'
cp: omitting directory `/etc/modprobe.d'
cp: omitting directory `/etc/oddjobd.conf.d'

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

[root@localhost ~]# mkdir /tmp/mytest3
[root@localhost ~]# ls /etc/[lmnp]*.conf
/etc/latrace.conf   /etc/libuser.conf    /etc/mke2fs.conf    /etc/nsswitch.conf  /etc/pm-utils-hd-apm-restore.conf
/etc/ld.so.conf     /etc/logrotate.conf  /etc/mtools.conf    /etc/ntp.conf       /etc/pnm2ppa.conf
/etc/libaudit.conf  /etc/ltrace.conf     /etc/nfsmount.conf  /etc/pbm2ppa.conf   /etc/prelink.conf
[root@localhost ~]# cp /etc/[lmnp]*.conf /tmp/mytest3/
[root@localhost ~]# ls /tmp/mytest3/
latrace.conf   libuser.conf    mke2fs.conf    nsswitch.conf  pm-utils-hd-apm-restore.conf
ld.so.conf     logrotate.conf  mtools.conf    ntp.conf       pnm2ppa.conf
libaudit.conf  ltrace.conf     nfsmount.conf  pbm2ppa.conf   prelink.conf

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

(0)
Net21_PreferredNet21_Preferred
上一篇 2016-07-22 10:09
下一篇 2016-07-22 10:09

相关推荐

  • Linux Service and Security(Part 2)

    接PART 1 4、SSH端口转发:SSH会自动加密和解密所有SSH客户端与服务端之间的网络数据。但是,SSH还能够将其它TCP端口的网络数据通过SSH链接来转发,并且自动提供了相应的加密及解密服务,这一过程也被叫做“隧道(tunneling)”。telnet,SMTP,LDAP这些TCP应用均能够从中得益,避免了用户名、密码以及隐私信息的明文传输。同时,如…

    Linux干货 2016-10-09
  • Ansible 详细用法说明

    Ansible 一、概述 运维工具按需不需要有代理程序来划分的话分两类: agent(需要有代理工具):基于专用的agent程序完成管理功能,puppet, func, zabbix agentless(无须代理工具):基于ssh服务完成管理,ansible, fabric 二、简介   Ansible是一个简单的自动化运维管理工具,基于Python语言实现…

    2016-11-07
  • (8.15-8.21)第2周博客作业

    1.linux文件管理命令 cat 功能:有从磁盘创建文件的功能(但不具备编辑功能),但主要功能还是2个或者以上文件的合并。 常配合使用参数: -n 或–number 由1 开始对所有输出的行数编号。-b 或–number-nonblank 和-n 相似,只不过对于空白行不编号。 使用方法: Cat –n diannaob1>d…

    Linux干货 2016-08-22
  • 老王的心路历程(二):下一站Web体验监控产品

    在上一篇文章中,和大家聊到了建立Web应用体验监控体系,经过了概念阶段,也完成了技术选型,就进入了把实质性的产品研发阶段。作为产品经理,时刻不敢忘记我们的产品目标:无限感知你的用户,建立完备的体验监控体系,驱动产品的设计、开发和运维! 一、一切皆操作 仔细分析终端用户和Web应用及网站的交互过程,无论是打开页面、点击链接或按钮,还是填写表单、提交查询,一切皆…

    2016-08-15
  • Linux发展史

    适用对象:本文适合希望开始学习以及想了解Linux的朋友阅读。本文中所有内容仅供参考,不作为科学依据。 一、      Linux的起源 最初的计算机其实是具有单一功能的大型计算器,只能完成指定或者设定好的工作。多数情况下计算机资源是处于空闲状态的,为了不使资源浪费,就需要使计算机能够或者可以进行多种工作。或…

    Linux干货 2016-10-14
  • heartbeartv2实现lamp高可用-week17

    3、基于heartbeat v2 crm实现HA LAMP组合;要求,部署wordpress,用于编辑的文章中的任何数据在节点切换后都能正常访问; 拓扑: 环境: CentOS6.6NFS: 172.16.0.34 输出mysql数据目录ntp: 172.16.0.31 时间服务器node1: 172.16.0.32 heartbeart+httpd+php…

    Linux干货 2017-05-23

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-22 10:46

    写的很好,排版也很棒,加油