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
下一篇 2016-12-13

相关推荐

  • linux 使用者管理 (9月底)

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。     ~]#w | cut -d ' ' -f 1 |uniq -u 2、取出最后登录到当前系统的用户的相关信息。 ~]# last -1(数字1) 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 ~]#…

    Linux干货 2016-10-02
  • Linux Sysadmin–part1

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

    2017-09-04
  • 第一周作业

    一、描述计算机的组成及其功能 计算机是由处运算器,控制器,储存器,输入输出设备组成 运算器:执行各种计算和逻辑运算操作 控制器:完成协调和指挥整个计算机系统的操作 储存器:暂时存储或者长期存储数据 输入设备:向计算机输入数据和信息的设备 输出设备:计算机硬件系统的终端设备 二、按系列罗列Linux的发行版,并描述不同发行版之间的联系和区别 Linux发行版=…

    Linux干货 2016-12-05
  • 计算机组成及Linux基础

    第1题:描述计算机的组成及功能 1.1计算机的组成       计算机是有 运算器,控制器,存储器,输入设备和输出设备组成计算机 1.2计算机各部件功能 运算器 对数据进行算术运算,逻辑运算和对数据进行加工处理 存储器 存储程序,数据和各种信号,命令等信息,并在需要时提供这些信息 控制器 是整个计算机的中枢神…

    Linux干货 2017-07-02
  • root用户密码破解

    方法一:进入单用户模式破解root密码 (1)编辑grub菜单(选定要编辑的title,而后使用e命令) (2)在选定的kernel后附加 1,s,S或single都可以 (3)在kernel所在行键入"b"命令即可进入单用户模式 (4)运行passwd命令修改root用户密码 并重启 (5)输入密码即可登录 方法二:进入救援模…

    Linux干货 2016-09-15
  • 配置LAMP服务器网站架构

    配置LAMP服务器网站架构 LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台。 结构拓扑 httpd服务器配置 安装环境 yum install httpd -y 修改httpd配置 vim /etc/ht…

    2017-06-06

评论列表(1条)

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

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