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)
oranixoranix
上一篇 2016-12-13 11:50
下一篇 2016-12-13 12:29

相关推荐

  • MySQL高可用架构之Galera Cluster

    MySQL高可用架构之Galera Cluster 1、实验准备及拓扑 至少需要三个节点 node1 192.168.150.137 node2 192.168.150.138 node3 192.168.150.139 mariadb版本为mariadb的支持galera cluster的分支版本 MariaDB-Galera-server-5.5.46 …

    Linux干货 2017-03-31
  • linux计划任务

    linux计划任务、周期性任务执行 未来的某时间点执行一次某任务:at,batch 周期性运行某任务:crontab 执行结果: 会通过邮件发送给用户, 存放在/var/spool/mail/UserName ~]# ss -tnl 或者 ~]# netstat -tnlp  查看是否有25号端口打开,来判断本机的邮件服务是否正常打开 本地电子邮件…

    Linux干货 2016-09-19
  • N26 – 第一周作业

    一、计算机组成及其功能     如图,计算机由硬件和软件组成。其中硬件可划分为控制器、运算器、存储器,以及输入和输出设备;软件则分为直接与硬件通信的系统软件,以及运行在其上的各类应用软件。      二、Linux发行版的不同系列     …

    Linux干货 2016-12-28
  • 系统管理之网络管理

    今天给大家分享一些网络方面的知识,,这块的知识很重要哦,都是涉及网络最底层的链路和协议,是我们学习大型服务的基础,和前提.希望大家努力理解这方面的内容,今天的内容大概有这几方面: 1.计算机网络概念 2.计算机网络体系结构 3.物理层 4.数据链路层 5.网络层 6.IP地址及子网 7.传输层 8.应用层 计算机网络概念 计算机网络是个发展中的概念和技术,具…

    Linux干货 2016-09-05
  • 宣言

    我是一个新手  但是我想认真努力学好linux     有朝一日能成为别人眼中的大牛再回头看看现在 不会后悔  付出必然会有回报  虽千万人吾往矣!

    Linux干货 2016-10-24
  • 初入linux_基础(一)

    初入Linux知识点总结(一) 一、理论知识 1、时间点: 1946年 第一代计算机ENIAC诞生于美国宾州大学,特点:块头大、效率低 数学家冯诺•依曼提出计算机体系结构组成部分:计算器、运算器、存储器、输入设备、输出设备 1969年 UNIX在美国贝尔实验室诞生 1984年 GNU项目和软件基金会成立 1991年 Linux在芬兰赫尔辛基诞生 2、计算机的…

    Linux干货 2017-02-18

评论列表(1条)

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

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