第二周作业

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

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

相关推荐

  • Linux进程管理

    一:进程的概念     1)进程:process,运行中的程序的一个副本的某部分,之所以说是副本的一部分是因为一个程序可以多个用户同时以不同格式运行,如两个用户都在运行ls,一个运行的是ls -h ,另一个运行的是ls -l,那么这两个用户运行的程序代码肯定是不一样的而且不是程序的所有代码;进程有生命周期; &nbsp…

    2017-03-26
  • ls的常用用法

    第一个命令

    2018-03-26
  • Linux基础之文件查找压缩

    为何学习本章节,可以设想一下,在未来工作中面对大量用户时,想要找到同一类型属性的用户文件时,需要一个工具可以快速准确的定位到所寻找的文件,那就是locate和find。   ******************************************************* 重点:     1.德摩根定律     非(P且Q) = (非P…

    2016-08-22
  • 马哥教育网络班21期-第七周课程练习

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@localhost ~…

    Linux干货 2016-08-29
  • 程序包的编译安装

    程序包的编译安装 之所以需要安装编译程序包,是为了能及时更新程序包,制作好的rpm包,版本一般都有点老了,所以编译安装是必报的,而且我们可以自己定义安装路径,想卸载直接删除就KO了; 在centos7.3环境下安装apache http服务: 1.首先获取最新的apache源码包下载到/root目录下; 2.检查安装环境,没有就安装环境:   记住…

    Linux干货 2017-03-09
  • 系统管理之磁盘管理(一)

    磁盘结构 一.概论 1.操作系统的组成部分: 硬件: 根据冯诺依曼体系,计算机的组成:    运算,控制器:cpu    存储器:主存(ram);       io设备:      &nbs…

    Linux干货 2016-08-30

评论列表(1条)

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

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