第二周作业

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

 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中的磁盘阵列(RAID)

    RAID: Redundant Arrays of Inexpensive Disks  Independent 提高IO能力: 通过磁盘并行读写实现 提高耐用性能: 磁盘冗余来实现 级别: 多块磁盘组织在一起的工作方式有所不同: RAID是的方式: 外接式磁盘阵列: 通过扩展卡提供适配能力 内接式RAID: 主板集成RAID控制器 Softwar…

    Linux干货 2016-08-29
  • N24期第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 vim /etc/group,增加此行 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home…

    Linux干货 2016-11-22
  • Linux 系统中screen命令不能使用的解决办法,screen包的正确安装

           有些同学可能在安装完Linux发行版之后,发现screen功能不能实现,这是因为是实现该功能的包在安装系统的过程中没有安装上,这里我根据自己的经验介绍两种安装screen包的方法,用来你实现screen命令。 方法一、     条件:连网状态;   &nb…

    2017-07-12
  • 2017中华数据库与运维大会强势回归!

         时隔一年,2017年中华数据库与运维大会将于06月03日在上海宝丰联大酒店强势回归,届时来自全国各行各业的IT从业人员将欢聚上海,探讨与交流数据库和运维的经验。       自2009年以来,超过4000位技术总监、技术负责人、架构师、项目经理、运维总监、运维经理、DBA经理、DBA、运维…

    2017-02-28
  • LVS NAT模型演示

    LVS NAT模型演示 这里我们刻意将两个RS的web页面文件,提供为不同的内容(实际应用中,每个RS页面的内容要完全相同) 基本配置 [root@web1 ~]# route add default gw 192.168.110.130  –> web1服务器…

    2016-10-29
  • bash代码注入的安全漏洞

           很多人或许对上半年发生的安全问题“心脏流血”(Heartbleed Bug)事件记忆颇深,这两天,又出现了另外一个“毁灭级”的漏洞——Bash软件安全漏洞。这个漏洞由法国GNU/Linux爱好者Stéphane Chazelas所发现。随后,美国电脑紧急应变中心(US-CERT)、红帽以及多家从事安全的公…

    Linux干货 2015-03-30

评论列表(1条)

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

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