马哥教育网络班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

相关推荐

  • httpd服务归纳:httpd基本配置(https原理以及配置 )

    一 https介绍以及实现机制   1. https协议:      在传统的http协议中,文档是明文传送的,网页涉及敏感信息是,将变得很不安全。为了保证敏感信息的安全,httpd结合加密库openssl或openssh 产生了https 协议。这就好比两个黑社会团伙交易,都怕出事被抓,…

    Linux干货 2015-05-23
  • RPM软件包管理器及前端工具yum

    目前在linux系统之上软件安装方式最常见的有两种,分别是: dpkg:这个机制最早是由Debian Linux社区所开发出来的,透过dpkg的机制,Debian提供的软件就能够简单的安装起来,同时还能提供安装后的软件资讯,实在非常不错。只要是衍生于Debian的其他linux发行版,大多使用dpkg这个机制来管理软件的,包括B2D、Ubuntu等等。 RP…

    Linux干货 2016-08-20
  • iptables练习

    iptables实战 1.开启防火墙 systemctl start firewalld 2.清空所有的默认规则,定义自己的规则 iptables -F 查看此时的iptables iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD…

    2017-06-24
  • 马哥网络教育班第21期+第六周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp/ [root@localho…

    Linux干货 2016-08-02
  • 马哥教育网络班20期+第五周博客作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; ]# grep  "^[[:space:]]\+" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; ]#…

    Linux干货 2016-07-12
  • linux的管道命令和用户管理命令

    1、列出当前系统上的所有已经登录的用户的用户名 [root@localhost home]# who | cut -d” ” -f1 | uniq root test root 2、取出最后登录到当前系统的用户相关信息 [root@localhost home]# who | tail -1 root pts/3 2017-07-16 19:38 (192.…

    Linux干货 2017-07-17

评论列表(1条)

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

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