第二周作业

一、文件管理命令以及演示方法

 1.1. mkdir命令

    作用:创建文件夹

    基本用法:mkdir [OPTION]… DIRECTORY…

    参数:

    -p:     自动创建父目录

    -v:     显示创建详细过程

    -m MODE:   直接给dig你权限

 用例:       

[root@golet ~]# mkdir -p -v /tmp/dirtest
mkdir: created directory `/tmp/dirtest'
[root@golet ~]#

 1.2.rmdir删除目录 

    作用:删除文件夹

    基本用法: rmdir [OPTION]… DIRECTORY…

    参数:

  -p:删除目录后,如果期父目录为空,则一并删除

  -v: 显示过程

 用例:

[root@golet /]# rmdir -p -v /tmp/dirtest/xiaoxin/
rmdir: removing directory, `/tmp/dirtest/xiaoxin/'
rmdir: removing directory, `/tmp/dirtest'
rmdir: removing directory, `/tmp'
rmdir: failed to remove directory `/tmp': Directory not empty
[root@golet /]#

 1.3. tree命令

    作用: 列出目录

    基本用法: tree [option]

    参数:   

         -L level: 指定要显示的层级

 用例:

[root@golet /]# tree  -L 1
.
├── bin
├── boot
├── cgroup
├── data
├── dev
├── etc
├── home
├── lib
├── lib64
├── lost+found
├── media
├── media2
├── mnt
├── opt
├── proc
├── RECOVERED_FILES
├── root
├── rooto
├── sbin
├── selinux
├── srv
├── sys
├── test
├── tmp
├── usr
└── var

25 directories, 1 file

 1.4.stat命令

      作用:显示文件状态

      基本用法: stat [option] file

 用例:

[root@golet /]# stat /root
  File: `/root'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 259075      Links: 26
Access: (0550/dr-xr-x---)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-08-16 10:58:21.679314558 +0800
Modify: 2016-08-14 00:36:28.833314963 +0800
Change: 2016-08-14 00:36:28.833314963 +0800

 1.5. touch命令

       touch – change file timestamps

        

       touch [OPTION]… FILE…

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

         -a: 仅修改access time;

         -m:仅修改modify time;

         -t STAMP

         [[CC]YY]MMDDhhmm[.ss]

用例:       

1111.png

[root@golet tmp]# touch xiaoxin
[root@golet tmp]# ll xiaoxin
-rw-r--r-- 1 root root 0 Aug 16 15:00 xiaoxin

  1.6.cp命令:

        作用:文件复制

         基本用法:

               cp [OPTION]… [-T] SOURCE DEST

               cp [OPTION]… SOURCE… DIRECTORY

               cp [OPTION]… -t DIRECTORY SOURCE

        参数:

              -i:交互式复制,即覆盖之前提醒用户确认;

                -f:强制覆盖目标文件;

                 -r, -R:递归复制目录;

                -d:复制符号链接文件本身,而非其指向的源文件;

                -a:-dR –preserve=all, archive,用于实现归档;

               –preserv=

                   mode:权限

                   ownership:属主和属组

                   timestamps: 时间戳

                   context:安全标签

                   xattr:扩展属性

                 links:符号链接

                   all:上述所有属性

用例: 

[root@golet tmp]# cp -a xiaoxin xiaoxin1
[root@golet tmp]# mkdir test
[root@golet tmp]# cp -a aa.txt aaa.txt  test/
[root@golet tmp]# ls
aaa.txt  aa.txt  test  xiaoxin  xiaoxin1
[root@golet tmp]# tree 
.
├── aaa.txt
├── aa.txt
├── test
│   ├── aaa.txt
│   └── aa.txt
├── xiaoxin
└── xiaoxin1

1 directory, 6 files

  1.7.mv命令:

        作用:文件重命名

        基本用法:

      mv [OPTION]… [-T] SOURCE DEST

      mv [OPTION]… SOURCE… DIRECTORY

      mv [OPTION]… -t DIRECTORY SOURCE..    

    参数:

      -i:交互式;

      -f:force

用例: 

[root@golet tmp]# ls
aaa.txt  aa.txt  test  xiaoxin  xiaoxin1
[root@golet tmp]# mv xiaoxin movexiaoxin
[root@golet tmp]# ll
total 8
-rw-r--r-- 1 root root    0 Aug  7 14:54 aaa.txt
-rw-r--r-- 1 root root  772 Aug 14 00:03 aa.txt
-rw-r--r-- 1 root root    0 Aug 16 15:00 movexiaoxin
drwxr-xr-x 2 root root 4096 Aug 16 15:34 test
-rw-r--r-- 1 root root    0 Aug 16 15:00 xiaoxin1

    8.rm命令:

        作用: 删除文件或者目录

    基本用法: rm [OPTION]… FILE…

    参数:

    -i: 交互式

    -f: 强制覆盖

    -r:  递归删除

    注意:删除目录:rm -rf /PATH/TO/DIR

    危险操作:rm -rf /*

    注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录;(模拟回收站)

用例: 

[root@golet tmp]# ls
aaa.txt  aa.txt  movexiaoxin  test  xiaoxin1
[root@golet tmp]# rm -rf test
[root@golet tmp]# rm -i xiaoxin1
rm: remove regular empty file `xiaoxin1'? y
[root@golet tmp]# ls
aaa.txt  aa.txt  movexiaoxin

二、bash的基础特性:

    命令补全:

        shell程序在接收到用户执行命令的请求,分析完成之后,最左侧的字符串会被当作命令;

    命令查找机制:

    查找内部命令;

        根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名;

    给定的打头字符串如果能惟一标识某命令程序文件,则直接补全;

    不能惟一标识某命令程序文件,再击tab键一次,会给出列表;

     路径补全:

        在给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路径下的每个文件:

    tab:

        如果能惟一标识,则直接补全;

        否则,再一次tab,给出列表;

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

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

        

test.gif

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

        例如:/tmp/{a,b} 相当于 /tmp/a /tmp/b    

    问题1: tmp目录下创建a_c,a_d,b_c,b_d

[root@xiaoxin tmp]# mkdir -v {a,b}_{c,d}
mkdir: created directory `a_c'
mkdir: created directory `a_d'
mkdir: created directory `b_c'
mkdir: created directory `b_d'
[root@xiaoxin tmp]# ls
a  a_c  a_d  b  b_c  b_d

    问题2: 创建如下目录结构:

     /tmp/mysysroot/

     |– bin

     |– etc

     |   `– sysconfig

     |       `– network-scripts

     |– sbin

     |– usr

     |   |– bin

     |   |– lib

     |   |– lib64

     |   |– local

     |   |   |– bin

     |   |   |– etc

     |   |   |– lib

     |   |   `– sbin

     |   `– sbin

     `– var

        |– cache

        |– log

        `– run

[root@xiaoxin tmp]# mkdir -pv /tmp/mylinux/{bin,sbin,etc/sysconfig/network-scripts,usr/{bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var/{cache,log,run}}
mkdir: created directory `/tmp/mylinux'
mkdir: created directory `/tmp/mylinux/bin'
mkdir: created directory `/tmp/mylinux/sbin'
mkdir: created directory `/tmp/mylinux/etc'
mkdir: created directory `/tmp/mylinux/etc/sysconfig'
mkdir: created directory `/tmp/mylinux/etc/sysconfig/network-scripts'
mkdir: created directory `/tmp/mylinux/usr'
mkdir: created directory `/tmp/mylinux/usr/bin'
mkdir: created directory `/tmp/mylinux/usr/sbin'
mkdir: created directory `/tmp/mylinux/usr/local'
mkdir: created directory `/tmp/mylinux/usr/local/bin'
mkdir: created directory `/tmp/mylinux/usr/local/sbin'
mkdir: created directory `/tmp/mylinux/usr/local/etc'
mkdir: created directory `/tmp/mylinux/usr/local/lib'
mkdir: created directory `/tmp/mylinux/usr/lib'
mkdir: created directory `/tmp/mylinux/usr/lib64'
mkdir: created directory `/tmp/mylinux/var'
mkdir: created directory `/tmp/mylinux/var/cache'
mkdir: created directory `/tmp/mylinux/var/log'
mkdir: created directory `/tmp/mylinux/var/run'

 2.2 bash的基础特性:命令的执行状态结

命令执行的状态结果:

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

    成功:0

失败:1-255

[root@xiaoxin tmp]# ls
a  a_c  a_d  b  b_c  b_d  mylinux
[root@xiaoxin tmp]# echo $?
0
[root@xiaoxin tmp]# ls e
ls: cannot access e: No such file or directory
[root@xiaoxin tmp]# echo $?
2
[root@xiaoxin tmp]#

命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;

            命令正常执行时,有的还回有命令返回值:

            根据命令及其功能不同,结果各不相同;

            引用命令的执行结果:

                $(COMMAND)

                或`COMMAND`

[root@xiaoxin tmp]# aa=$(ifconfig seth0|grep -o 'inet.*[0-9]$'|awk -F '[: ]' '{print $3}')
[root@xiaoxin tmp]# echo $aa
118.193.244.142

三、文件

     3.1 文件元数据:

        元数据分类两类:

            元数据:metadata

                 元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有

                 者以及文件数据块的分布信息(inode…)等等

            数据: data 

                普通文件中的实际数据

       3.2  文件时间戳信息

           3.2.1  查看文件时间戳信息

[root@mcloud logs]# stat /root/ 
  File: `/root/'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: 801h/2049d      Inode: 1700609     Links: 22
Access: (0550/dr-xr-x---)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-08-16 08:56:13.945460188 +0800
Modify: 2016-08-16 16:49:53.295440500 +0800
Change: 2016-08-16 16:49:53.295440500 +0800

        3.2.2 修改文件时间戳信息

[root@mcloud logs]# stat /root/ 
  File: `/root/'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: 801h/2049d      Inode: 1700609     Links: 22
Access: (0550/dr-xr-x---)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-08-16 08:56:13.945460188 +0800
Modify: 2016-08-16 16:49:53.295440500 +0800
Change: 2016-08-16 16:49:53.295440500 +0800
[root@mcloud logs]# touch -a /root/
[root@mcloud logs]# stat /root/    
  File: `/root/'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: 801h/2049d      Inode: 1700609     Links: 22
Access: (0550/dr-xr-x---)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-08-16 17:19:21.914439275 +0800
Modify: 2016-08-16 16:49:53.295440500 +0800
Change: 2016-08-16 17:19:21.914439275 +0800

四. 别名以及命令结果引用

   4.1:定义别名

[root@xiaoxin tmp]# alias xiaoxin='ls -l'
[root@xiaoxin tmp]# xiaoxin
total 28
drwxr-xr-x 2 root root 4096 Aug 16 16:15 a
drwxr-xr-x 2 root root 4096 Aug 16 16:43 a_c
drwxr-xr-x 2 root root 4096 Aug 16 16:43 a_d
drwxr-xr-x 2 root root 4096 Aug 16 16:15 b
drwxr-xr-x 2 root root 4096 Aug 16 16:43 b_c
drwxr-xr-x 2 root root 4096 Aug 16 16:43 b_d
drwxr-xr-x 7 root root 4096 Aug 16 16:44 mylinux

   4.2: 取消定义别名

[root@xiaoxin tmp]# unalias xiaoxin
[root@xiaoxin tmp]# xiaoxin
-bash: xiaoxin: command not found

   4.3:命令结果引用

[root@xiaoxin tmp]# echo $(ls)
a a_c a_d b b_c b_d mylinux

五. 文件操作

   5.1 文件查看

        5.1.1 显示/var目录下所有以1开头,以一个小写字符结尾,且中间至少出现一位数字

          (可以有其他字符)的文件或者目录

[root@golet var]# ls  /var/1*[0-9]*[a-z]
/var/1as456sada

/var/1x4seassda:

        5.1.2 显示/etc目录下,以任意字符开头,且以非数字结尾的文件或目录

[root@golet var]# ls -l /etc/*[a-zA-Z]

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

[root@golet var]# ls  /etc/[^a-zA-Z]* 
/etc/123ssss

    5.2 文件创建

        5.2.1 在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形式: 

        tfile-2016-08-19

[root@golet var]# touch /tmp/tfile-$(date -I)

    5.3 文件复制

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

[root@app02 mytest1]# cp -a /etc/p*[a-zA-Z] ./
[root@app02 mytest1]# ls
pam.d   pcmcia   plymouth                      popt.d   prelink.cache   printcap   protocols
pango   pinforc  pm                            postfix  prelink.conf    profile    pulse

        5.3.2 复制/etc目录下所有以d结尾的文件或者目录到/tmp/mytest2目录中

[root@app02 mytest2]# cp -a /etc/*d ./
[root@app02 mytest2]# ls
bash_completion.d  dracut.conf.d  ipsec.d       modprobe.d      popt.d          rc2.d
blkid              event.d        ld.so.conf.d  motd            prelink.conf.d  rc3.d
chkconfig.d        ha.d           libibverbs.d  oddjobd.conf.d  profile.d       rc4.d

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

[root@app02 mytest3]# cp /etc/[lmn]*.conf ./ 
[root@app02 mytest3]# ls
ld.so.conf     libuser.conf    mke2fs.conf    nfsmount.conf  ntp.conf
libaudit.conf  logrotate.conf  modprobe.conf  nsswitch.conf

   

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

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

相关推荐

  • 建立私有CA的方法

    建立私有CA的方法 建立私有CA的工具:     OpenCA     Openssl 证书申请及签署步骤:     1,生成申请请求:     2,RA核验;    &…

    Linux干货 2016-09-19
  • LVM 与快照

    LVM: Logical Volume Manager 概念 它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。 允许对卷进行方便操作的抽象层,包括重新设定 文件系统的大小  允许在多个物理设备间重新组织文件系统 • 将设备指定为物理卷 • 用一个或者多个物理卷来创建一个卷组 • 物理卷是用固…

    Linux干货 2016-09-05
  • 正则表达式

    正则表达式:             由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符            字面意义,而表示控制或通配的功能程序支持:  grep,sed,awk,vim,less…

    2017-08-05
  • Nginx 编译安装

    简介 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配…

    Linux干货 2016-12-01
  • 马哥教育网络19期+第十三周课程练习

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程)   1)共享名为shared,工作组为magedu;   2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;   3)添加s…

    Linux干货 2016-08-12
  • 走向了一条不归路 – – 开始

    前言:很高兴在这里认识大家,跟大家一起学习一起进步。  基础知识 1.计算机系统的组成 2.计算机的体系结构 3.存储网络 DAS–直接连接存储   (数据块)   存储设备与主机的紧密相连       1.管理成本较低,实施简单   &…

    2017-07-16

评论列表(1条)

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

    写的很好,排版也很棒,加油,创建目录的题目第2个不对