第二周作业

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

 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)
xiaoxinxiaoxin
上一篇 2016-08-22 09:29
下一篇 2016-08-22 09:29

相关推荐

  • N26_第一周作业

    计算机的组成 计算机由五大部分组成:    1.控制器(control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等;    2.运算器(datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行…

    Linux干货 2016-12-28
  • 用户管理+文本处理+文件查找

    用户管理 erter useradd (使用频率2) /etc/default/useradd用户模板文件说明 /etc/login.defs 关于新建用户的默认配置文件 批量创建用户和修改密码 usermod 修改用户的属性 chpasswd修改密码 2.chage option user 3.finger user 查看用户信息 4.chfn user …

    Linux干货 2017-04-09
  • HA Cluster—Keepalived

    HA Cluster 集群类型:LB(lvs/nginx(http/upstream, stream/upstream))、HA、HP 系统可用性的公式:A=MTBF/(MTBF+MTTR) 系统故障: 硬件故障:设计缺陷、wear out、自然灾害 软件故障:设计缺陷 提升系统高用性的解决方案之降低MTTR: 解决方案:冗余(redundant) acti…

    Linux干货 2017-10-30
  • vim必掌握用法

    vim最入门用法大全

    Linux干货 2017-12-03
  • Linux Basics–part6

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; tmp]# cp /etc/rc.d/init.d/rc.sysinit /tmp/rc.sysinit tmp]# vim rc.sysinit : 进入末行模式 %s@^[[:space:]]\+@#@g 2…

    Linux干货 2017-08-24

评论列表(1条)

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

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