N25-Bazinga-第二周作业


1.Linux文件管理类命令

命令 功能 命令 功能
pwd 显示当前目录 ls 显示目录下的内容
cd 改变所在目录 cat 显示文件的内容
grep 在文件中查找字符串 cp 复制文件
touch 创建文件 mv 移动文件
rm 删除文件 rmdir 删除目录
1.1 pwd命令
该命令的英文解释为print working directory(打印工作目录)。输入pwd命令,Linux会输出当前目录。

1.2 cd命令
cd命令用来改变所在目录。

cd /      转到根目录中 
cd ~     转到/home/user用户目录下 
cd /usr 转到根目录下的usr目录中-------------绝对路径 
cd test 转到当前目录下的test子目录中-------相对路径

1.3 ls命令
ls选项 含义
-a 列举目录中的全部文件,包括隐藏文件
-l 列举目录中的细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接等
-f 列举的文件显示文件类型
-r 逆向,从后向前地列举目录中内容
-R 递归,该选项递归地列举当前目录下所有子目录内的内容
-s 大小,按文件大小排序
-h 以人类可读的方式显示文件的大小,如用K、M、G作单位
ls -l examples.doc 列举文件examples.doc的所有信息
1.4 cat命令
cat命令可以用来合并文件,也可以用来在屏幕上显示整个文件的内容。
cat snow.txt 该命令显示文件snow.txt的内容,ctrl+D退出cat。

1.5 grep命令
grep命令的最大功能是在一堆文件中查找一个特定的字符串。
grep money test.txt
以上命令在test.txt中查找money这个字符串,grep查找是区分大小写的。

1.6 touch命令
touch命令用来创建新文件,他可以创建一个空白的文件,可以在其中添加文本和数据。
touch newfile 该命令创建一个名为newfile的空白文件。

1.7 cp命令
cp命令用来拷贝文件,要复制文件,输入命令:
cp <source filename> <target filename>
cp t.txt Document/t    该命令将把文件t.txt复制到Document目录下,并命名为t。
cp选项 含义
-i 互动:如果文件将覆盖目标中的文件,他会提示确认
-r 递归:这个选项会复制整个目录树、子目录以及其他
-v 详细:显示文件的复制进度
1.8 mv命令

mv命令用来移动文件。
mv选项 说明
-i 互动:如果选择的文件会覆盖目标中的文件,他会提示确认
-f 强制:它会超越互动模式,不提示地移动文件,属于很危险的选项
-v 详细:显示文件的移动进度
mv t.txt Document    把文件t.txt 移动到目录Document中。

1.9 rm命令

rm命令用来删除文件。
rm选项 说明
-i 互动:提示确认删除
-f 强制:代替互动模式,不提示确认删除
-v 详细:显示文件的删除进度
-r 递归:将删除某个目录以及其中所有的文件和子目录

rm t.txt 该命令删除文件t.txt

1.10 rmdir命令

rmdir命令用来删除目录。

2.bash的工作特性,相关示例

2.1.bash特性之一:命令别名

 #alias NAME='COMMAND'

2.2.bash的特性之二:命令历史

命令语法格式:

 history [-c] [-d OFFSET] [n]
 history -anrw [FILENAME]
 history -ps VALUE [VALUE…]
常用参数
    -c: 清空命令历史;
    -d offset(偏移量):删除指定命令历史,offset为history显示出来的命令数字;
    -r: 从文件读取命令历史至历史列表中;
    -w:把历史列表中的命令追加至历史文件中;
    history #:显示最近的#条命令;

2.3.bash特性之三:快捷键

     Ctrl+a:跳转至命令行行首;
     Ctrl+e:跳转至命令行行尾;
     Ctrl+u:删除行首至光标所在处之间的所有字符;
     Ctrl+k:删除光标所在处至行尾的所有字符;
     Ctrl+l:清屏,相当于clear;

2.4.bash的特性之四:命令补全和路径补全

    1.命令查找和补全机制:
             (1) 查找内部命令;

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

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

             不能惟一标识某命令程序文件,再击tab键一次,会给出列表;
    2.路径补全:

             在给定起始路径下,以对应路径下的打头字串逐一匹配起始路径下每个文件:
             TAB按键;如果能惟一标识,则直接补全;否则,再一次tab,给出列表;
   3.命令行展开

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

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

2.5.bash的特性之五:命令行展开:

       1)、命令行展开;

                以某些bash能够解释的符号来代替命令中的某些参数。

                ~:展开为用户的家目录;
                        例1:切换至家目录

                                cd ~;pwd
                                /root
                                {}:可承载一个以逗号分隔的列表,并将其展开为多个路径;
                        例2:在/tmp/d目录下创建f1,f2,f3三个文件

                                touch /tmp/d/f{1,2,3}

                                bash

2.6.bash特性之六:命令的执行状态结果:

 1)、bash的基础特性之状态值返回:在bash中使用一个特殊的变量$?来保存上一个命令的执行状态结果。

     0表示成功,
     1-255表示失败

3. 使用命令行展开功能实现习题

3.1.创建tmp目录下的:a_c,a_d,b_c,b_d;

 [root@localhost ~]# touch {a,b}{_c,_d}

[root@localhost ~]# ll
total 165716
-rw-r--r--. 1 root root       369 Nov 29 16:11 ab.lua
-rw-r--r--. 1 root root         0 Dec 10 10:20 a_c
-rw-r--r--. 1 root root         0 Dec 10 10:20 a_d
-rw-------. 1 root root      1048 Nov 23 10:05 anaconda-ks.cfg
-rw-r--r--. 1 root root         0 Dec 10 10:20 b_c
-rw-r--r--. 1 root root         0 Dec 10 10:20 b_d

3.2.创建/tmp/mylinux目录下的以下目录

├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts
├── lib
│   └── modules
├── lib6
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│       ├── bin
│       └── sbin    
└── var
├── lock
├── log
└── run

[root@localhost home]#  mkdir  -p /tmp/mylinux/{bin,boot/grup,dev,etc/{rc.d/init.d,sysconfig/network-
scripts},lib/modules,lib6,proc,sbin,sys,tmp,usr/local/{bin,sbin},var,lock,log,run}

    [root@localhost home]# tree  /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│   └── grup
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts 
├── lib
│   └── modules
├── lib6
├── lock
├── log
├── proc
├── run
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│       ├── bin
│       └── sbin
└── var

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

元数据信息:文件名称、属主属组、文件访问权限、uid、gid、三个时间戳(centos7是四个)、inode号等等

访问时间access time:读一次这个文件的内容,这个时间就会更新。比如对这个文件运用 more、cat等命令。ls、stat命令都不会修改文件的访问时间。

修改时间modify time:修改时间是文件内容最后一次被修改时间。比如:vi后保存文件。ls -l列出的时间就是这个时间。

状态改变时间change time:是该文件的i节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新。

查看命令:stat filename

[root@localhost home]# stat /tmp/mylinux/
    File: ‘/tmp/mylinux/’
     Size: 4096         Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 137816826   Links: 17
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2016-12-10 10:45:11.942457078 +0800
Modify: 2016-12-10 10:43:07.978456374 +0800
Change: 2016-12-10 10:43:07.978456374 +0800
 Birth: -

修改时间戳信息:touch [option] filename

touch命令:

touch – change file timestamps

touch [OPTION]… FILE…

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

-a: 仅修改access time;

-m:仅修改modify time;

-t 指定时间:[[CC]YY]MMDDhhmm[.ss]

    [root@localhost home]# touch  -a /tmp/mylinux/      ---//修改访问时间
    [root@localhost home]# stat /tmp/mylinux/
    File: ‘/tmp/mylinux/’
     Size: 4096         Blocks: 8          IO Block: 4096   directory
    Device: fd00h/64768d    Inode: 137816826   Links: 17    
    Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2016-12-10 10:50:46.963458981 +0800         ---//访问时间已被修改
    Modify: 2016-12-10 10:43:07.978456374 +0800
    Change: 2016-12-10 10:50:46.963458981 +0800
     Birth: -

    [root@localhost home]#  touch  -m /tmp/mylinux/     ---//修改文件编辑时间
    [root@localhost home]# stat /tmp/mylinux/
     File: ‘/tmp/mylinux/’
     Size: 4096         Blocks: 8          IO Block: 4096   directory
    Device: fd00h/64768d    Inode: 137816826   Links: 17
    Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2016-12-10 10:50:46.963458981 +0800
    Modify: 2016-12-10 10:54:34.479460274 +0800         ---/文件编辑时间已被修改
    Change: 2016-12-10 10:54:34.479460274 +0800
    Birth: -

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

    alias NAME='COMMAND'      //只对当前shell进程有效,结束后得重新来再次定义
    unalias NAME              //撤销别名

    例如:
    [root@localhost home]#   alias  cat='tac'
    [root@localhost ~]# cat ab.lua 
    end    print("not c")    -->output:not c
    else
          print("c")        --这个没有执行
    if c then

    end
        print("not b")    --这个没有执行
    else
         print("b")        -->output:b
    if b then

    end
        print("not a")    --这个没有执行
    else
        print("a")        -->output:a
    if a then


    local c = nil
    local b = 0
    local a = true


    ab.lua
    撤销别名cat之后我们再尝试
    [root@localhost ~]#  unalias  cat
    [root@localhost ~]# cat ab.lua 
    ab.lua


    local a = true
    local b = 0
    local c = nil


    if a then
        print("a")        -->output:a
    else
        print("not a")    --这个没有执行
    end

    if b then
        print("b")        -->output:b
    else
        print("not b")    --这个没有执行
    end

    if c then
        print("c")        --这个没有执行
    else
        print("not c")    -->output:not c
    end

    可以发现ab.lua在cat别名为tac生效时是以倒序列出文件内容的。

6.exercise

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

    ls -d /var/l*[0-9]*[[:lower:]]

6.2显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录
    ll -d /etc/[0-9]*[^0-9]

6.3显示/etc目录下,以非字母开头,后面跟一个字母及其它任意长度任意字符的文件或目录
    ll -d /etc/[^[:alpha:][:alpha:]]*

6.4在/tmp目录下创建以tfile开头,后跟当前日期或时间的文件,文件名形如:tfile-2016-05-27-9-32-22       
     touch /tmp/tfile-$(date +%F-%H-%M-%S) 

6.5复制/etc目录下,所有以p开头,以非数字结尾的文件或目录至/tmp/mytest1目录
    cp  -a /etc/p*^[0-9]  /tmp/mytest1

6.6复制/etc目录下,所有以.d结尾的文件或目录至/tmp/mytest2目录下 
    cp  -a /etc/*.d      /tmp/mytest2

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

    cp  -a  /etc/[l,m,n]*.conf /tmp/mytest3

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

(0)
上一篇 2016-12-13 11:50
下一篇 2016-12-13 12:29

相关推荐

  • Linux磁盘知识,分区与文件系统

    硬件设备在Linux系统中的表现     设备文件      I/O Ports: I/O设备地址      一切皆文件:         open(), read(), write(), close()   &nbsp…

    Linux干货 2016-08-29
  • 第三周小练习

    1. 列出当前系统上所有已经登陆的用户的用户名,注意,同一个用户登陆多次,则显示一次即可 who -u|grep -o "^[[:alnum:]]*\>"|uniq 2. 取出最后登陆到当前系统的用户信息 who|tail -n1 3. 取出当前系统上被用户当作其默认shell的最多的那个sh…

    Linux干货 2016-11-21
  • 相识–Varnish

    Varnish与一般服务器软件类似,分为master(management)进程和child(worker,主要做cache的工作)进程。master进程读入命令,进行一些初始化,然后fork并监控child进程。child进程分配若干线程进行工作,主要包括一些管理线程和很多woker线程。 VCL: ”域“专有类型的配置语言 VCL有多个状态引擎,状态之间…

    Linux干货 2017-11-13
  • 8.10作业

    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 echo  "your host is `hostname` " echo  "ip address is `ifconfig | sed -n…

    Linux干货 2016-08-15
  • Linux 系统架构

    1.内核     1.1.组成部分         1.1.1.系统调用接口         1.1.2.进程管理 &n…

    Linux干货 2016-06-04
  • Linux系统初始化流程:系统初始化相关基础知识

    Linux系统初始化流程:系统初始化相关基础知识 内核简介 内核的功能 进程管理:通过task_struct, scheduler 实现 内存管理 I/O管理:中断以及中断处理 文件系统管理:ext3,ext4,xfs 等 驱动程序 安全相关:SELinux,各种加密库 通用软件,平台相关软件 内核设计流派 单内核:单一体系结构 linux 为单一内核 模块…

    2015-02-28

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-16 17:08

    赞,整体看下来都很棒~~加油~