马哥教育网络班25期-第2周作业

一、Linux文件管理类命令:

(1)ls

            list 用来显示目录列表

            语法: ls [OPTION]… [FILE]..

            常见的opotion选项:

                -l:-long 显示整个目录下所有文件和目录或单个文件的详细信息。

                -a:–all 显示出所有文件和目录,包括'.'和'..'在内的所有隐藏文件。

                -A: –almost-all  显示出所有文件和目录,但是除了'.'和'..'之外的所有隐藏文件。

                -h:–human-readable 打印出人们可快速理解的文件大小,即对文件大小进行换算。

                -i:–inode   打印出文件i节点编号

                -d:–directory  列出目录本身的信息信息

                -r:–reverse    逆序排列

                -R:–recursive  递归排列

                -t:按照文件和目录的更改时间排序

                -Z :  –context   查看安全上下文,对配置selinux时生效

(2)cat

            concatenate,是一个文本文件查看和连接工具。

            语法:cat [OPTION]… [FILE]…

            常见的opotion选项:

                -n 或 –number 由 1 开始对所有输出的行数编号

                -b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号

                -s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行

                

(3)tac

            tac实际就是cat反过来写。

(4)head

            

            语法:head  [OPTION]…[FILE]…

            常见的opotion选项:

                -n #  显示开头#行信息

                -#    等于head -n #,默认开头10行

(5)tail

    

            语法:tail [OPTION]…[FILE]…

            常见的opotion选项:

                -n # 显示结尾#行信息

                -#  等于tail -n #,默认结尾10行

                -f  查看文件尾部内容结束后不退出,跟随显示新增的行

(6)cp

            copy 拷贝

                

             单源复制: cp [opotion]… [-T] SOURCE DEST

            多源复制: cp [opotion]… SOURCE … DIRECTORY

                                cp [opotion]… -t DIRECTORY SOURCE

            单源复制:

                如果dest不存在,则事先创建此文件,并复制源文件的数据流到dest中

                如果dest存在:

                        如果dest是非目录文件,则覆盖目标文件

                        如果dest是目录文件,则先在dest目录下创建一个与源文件同名的文件,并复制其数据流

           多源复制:

                如果dest不存在,错误

                如果dest存在:

                        如果dest是非目录文件,错误

                        如果dest是目录文件:分别复制每个文件至目标目录中,并保持原名

                        

                        常用选项:

                                -i:交互式复制,及覆盖之前提醒用户确认

                                -f:强制覆盖目标文件

                                -r:递归复制目标

                                -d:复制符号链接本身,而非其指向的源文件

                                -a:-dR –preserver=all,archive  用于实现归档

                                –preserve=

                                            mode:权限

                                            owership:属主和属组

                                            timestamp:时间戳

                                            context:安全标签

                                            xattr:扩展属性

                                            links:符号链接

                                            all:上述全部属性

(7)mv

            move

                mv [opotion]… [-T] SOURCE DEST

                mv [opotion]… SOURCE… DIRECTORY

                mv [opotion]… -t DIRECTORY SOURCE…    

                常用选项

                        -i:交互式

                        -f:force

(8)rm

            remove

                    rm [opotion]… file…

                    

                    常用选项;

                            -i:interactive

                            -f:force

                            -r:recursive

                            删除目录  rm -rf /PATH/TO/DIR

                            危险操作:rm -rf /*

                            特别提醒bash编程中可能会遇见灾难性的bug,自己踩过的坑:

                                    #!/bin/bash

                                    read -p "test file" file

                                    rm -rf /${file}

                                    file变量如果为空,那结果就是rm -rf /,所以安全的编程建议 rm -rf /${file:?var file is emple}

(9)mkdir

            

                 mkdir [opotion]… dirctory…

                        -p:自动按需创建父目录

                                eg:mkdir -p /a/b/c

                                           mkdir  /a

                                           mkdir  /a/b

                                           mkdir  /a/b/c

                        -v:verbose,显示详细过程

                        -m MODE:直接给定权限

                                            mkdir -m 700 /test    则test目录的权限应该为  drwx______

                        注意:路径基名方为命令的作用对象,基名之前的的路径必须存在

(10)rmdir

                rmdir [opotion]…directory…

                        -p:删除某个目录后,如果其父目录为空,则一并删除之:

                                eg:rmdir /a/b/c    如果删除c后b目录为空则删除b,如果删除b后a目录为空则删除a

                        -v:显示过程

(11)more和less

                

                  分屏查看命令:more和less

                more命令

                        more file

                        特点:翻屏至文件尾部后自动退出

                less命令

                        less file    

                        特点:翻屏至文件尾部后不会退出,按q退出

(12)install

                    install命令和cp命令类似,都可以将文件/目录拷贝到指定的地点。但是,install允许你控制目标文件的属性。

                

                        install [opotion]… [-T] SOURCE DEST

                        install [opotion]… SOURCE… DIRECTORY

                        install [opotion]… -t DIRECTORY SOURCE…

                                    常见的opotion选项:

                                            -d:所有参数都作为目录处理,而且会创建指定目录的所有主目录

                                                    eg:install -d a/b/c  与 mkdir -p a/b/c 相同

                                            -D: 创建<目的地>前的所有主目录,然后将<来源>复制至 <目的地>

                                                    eg: install -D x a/b/c 与 mkdir a/b && cp x a/b/c  相同

                                            -m: –mode=模式  自行设定权限模式

二、bash的基本特性

(1)命令历史:shell进程会其会话中保存此前用户提交执行过的命令

            history

                定制history的功能,可通过环境变量实现:

                HISTSIZE:shell进程可保存的命令历史的条数

                HISTFILE:持久存储的文件

                HISTFILESIZE:持久存储历史命令的文件大小

                    -c  情空命令历史

                    -d offset 删除指定命令历史

                    -w 把历史命令写入文件

                    -r 从文件读取命令历史到列表中

                调用历史命令

                    !#  调用历史#号命令

                    !!    调用上个命令

                    !string 调用最近string开头的命令

                调用上一条命令的最后一个参数

                    快捷键 esc,.

                    字符串 !$

                控制命令历史记录的方式:

                    环境变量:HISTCONTROL

                    ignoredups:忽略重复的命令

                    ignorespace:忽略以空白字符开头的命令

                    ignoreboth:以上两者同时生效

(2)命令补全:

                shell程序在接受到用户执行的请求,分别完成之后,最左侧的字符串会被当作命令:

                命令处理机制:

                        查找内部命令

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

                  给定的打头字符串如果唯一标识某个命令程序文件,则直接补全

                        不能唯一标示某命令程序文件,再敲击tab健一次,会给出列表

(3)路径补全:

                    在给定的起始路径下,以对路径的打头字符串逐一匹配起始路径下每个文件:

                    tab:

                            如果能唯一标示,则直接补全

                            否则,再一次tab,给出列表

(4)命令行展开:

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

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

(5)命令的执行状态结果

                    命令执行的状态结果:

                            bash通过状态的返回来输出此结果:

                            成功:0

                            失败:1-255

                            命令的执行完成之后,其状态返回值保存与bash的特殊标量$?中

                            命令正常的执行时,有的还回有命令返回值:

                            根据命令及其功能不同,结果各不相同:

(6)bash的基于特性:引用

                     强引用:''

                     弱引用:""

                    命令引用:“

(7)bash基础特性:快捷键

                    ctrl+a:跳转至命令行首

                    ctrl+e:跳到命令行尾

                    ctrl+u: 删除行首至光标所在处之间的所有字符

                    ctrl+k:删除行尾至光标所在处之间的所有字符

                    ctrl+l:清屏,相当于clear

                          

三、命令行展开联系练习:

1、创建/tmp目录下的:a_c,a_d,b_c,b_d

mkdir -p {a,b}_{c,d}

2、创建/tmp/mylinux目录下的:

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

 mkdir -pv {bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

四、文件的元数据:

(1)文件的元数据包括文件大小,数据块大小,文件类型,设备号,inode节点号,权限,属主属组,安全上下文,atime,mtime,ctime。

        

        stat [opotion]…[file]

图片.png

      stat -L file   跟随符号链接到真正的文件或目录

图片.png  

    stat  -f /bin  显示该文件系统的状态

图片.png

touch 修改文件的时间戳        

            语法:touch [OPTION]… FILE…

                    -a:仅修改文件的访问时间戳(atime)

                    -c:当需要修改的文件不存在时不创建文件

                    -m:仅修改文件的修改时间戳(mtime)

                    -t:修改时间戳

                            eg: touch -t 201612112205.10 test

五、定义命令别名及引用另一个命令的执行结果:

    alias 定义别名

            alias la=‘ls -a’

            可以通过alias命令进行当前虚拟终端下定义的命令别名,如果需要需要定义该用户的命令别名,将命令写入改用户家目录下的~/.bashrc下,如果需要定义系统的命令别名/etc/bashrc下

    引用命令

~]$ echo $(date)

~]$ echo `date`

六、练习

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

        ls /var/1*[[:digit:]]*[[:lower:]]

(2)显示/etc目录下,以任意的数字开头,且以非数字结尾的文件或目录。

        ls /etc/[[:digit:]]*[^[:digit:]]

(3)显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录。

        ls /etc/[^[:alpha:]][[:alpha:]]*

(4)在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22

        touch tfile-$(date +%Y-%m-%d-%H-%M-%S)

(5)复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中

        cp -r /etc/p*[^[:digit:]] /tmp/mytest1/

(6)复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中

        cp -r /etc/*\.d /tmp/mytest2

(7)复制/etc目录下所有以1或m或n开头,以.conf结尾的文件到/tmp/mytest3中

        cp /etc/{1,m,n}*\.conf   /tmp/mytest3

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

(0)
N25_随心N25_随心
上一篇 2016-12-12
下一篇 2016-12-12

相关推荐

  • 挂载

    挂载的相关介绍

    Linux干货 2017-12-10
  • N26第二周博客作业

    1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 Ø  ls 查看文件与目录 ls [选项] 文件或目录 常用选项 -a:全部的文件,连同隐藏文件(以.开头)一起列出来 -d:列出目录本身,而不是列出目录里的文件 -l:列出详细信息,如文件的属性与权限等数据 -h:将文件容量以易读的方式显示(例如:GB,KB等) -t:…

    Linux干货 2017-01-08
  • 数据结构知识点(list,tuple,冒泡法)

    分类 数值型 int、float、complex、bool 序列对象 字符串str、列表list、tuple 键值对 集合set、字典dict 数值型 complex:有实数和虚数部分组成 float:有整数和小数组成。只有双精度 类型转换 int(X) 返回一个整数 float(x) 返回一个浮点数 complex(x)、complex(x,y) 返回一个…

    2017-09-25
  • Linux文件压缩、解压、归档总结

    一、简介   压缩对我们来说通常意味着减小文件体积,节省硬盘空间。在Windows平台上处理大文件或目录中的文件很多时我们都需要对这些文件进行压缩处理,压缩格式多种多样,如:zip、rar、7z等格式,压缩方式也比较多样话,支持按最大压缩比例或者最快时间进行压缩等多种方式,而生成的压缩包就可以让我们更方便的进行拷贝及归档整理。解压缩顾名思义就是回归…

    Linux干货 2015-09-26
  • 快速搭建SVN服务器

    一、背景介绍 svn服务器是一款上传代码的工具(貌似这么说不怎么严谨,但是在日常工作中基本上是这么用的),今天一个小伙伴折腾了一天也没有搭建好这个svn服务器。各种问题,其实搭建SVN服务器最重要的就是三个配置文件(svnserver.conf、 passwd 、authz)。出了问题的话十有八九是这三个配置文件的问题。最后,我自己搭建了一个,测试成功。于是…

    Linux干货 2016-12-11
  • 马哥教育网络班22期+第4周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost home]# cp -r /etc/skel /home/tuser1 [root@localhost skel]# ch…

    Linux干货 2016-09-05

评论列表(1条)

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

    赞~总结的还是比较详细的,前面的命令能简单说下怎么使用会更好点~~加油~