文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

mkdir 创建目录
-p: 存在于不报错可自动创建所需的各目录 (递归创建)mkdir -p a/d/c/b
-m: mode 创建时指定权限  # mkdir -m 777 filename
     文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用
文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用  
rmdir
删除空目录

-p 递归删除空目录

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

touch 
当文件不存在时,则创建一个空文件(默认)
-c 当文件不存在时,不创建
当文件存在时
默认或-c 更新全部时间戳
-a 更新atime和ctime
-m 更新mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳(如:

                       touch -t 201706121620 +filename)

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

* 作业:如何实现只显示指定目录下的隐藏文件。(ls -I )   # ls -a |grep ‘^\.’
        # ls -d /etc/.*    #ls -a -I  “[^.]*”    #l.

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用
[:digit:]:任意数字,相当于0-9  
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符 
[:space:]:水平或垂直空白字符 
[:punct:]:标点符号 
[:print:]:可打印字符 
[:cntrl:]:控制(非打印)字符 
[:graph:]:图形字符 
[:xdigit:]:十六进制字符

l练习:
1、显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录

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

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

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

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用
3、显示/etc/目录下所有以rc开头,并后面是0-6之间的数 字,其它为任意字符的文件或目录
ls -d /etc/rc[0-6]*

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

作业:
1、显示/etc目录下,所有以.d结尾的文件或目录
    # ls -d /etc/* .d

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用
2、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
    # ls /etc/[mnrp]*/*.conf

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用
3、只显示/root下的隐藏文件和目录
   # ls -d /root/.*

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用
4、只显示/etc下的非隐藏目录
  # ls /etc |grep [^.]*  # ls -d /etc/*/
  # ls -F |grep /(ls -F 把文件按照类型分类  /就是标识是目录)

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

 文件的类型:

        -普通文件

        d目录文件
        l软链接文件
        c字符设备
        b块设备
       s套接字sock
       p管道文件
file可查看文件类型
  -b 不显示文件名 ,只列出文件辨识的结果
  -f 列出filelist中文件名的文件类型
  -F是指定的分隔符号替换输出文件名后默认的“:”分隔符
he
hexdump -C +文件名查看头部信息看文件类型
vim +name.sh写脚本
输入输出:
 cd /dev/fd(三个设备 0来着终端默认的输入/输出来自键盘,1正确的输出,2错误的输出)
       ls -l           fd:file descriptor(文件描述符)
验证复制一个终端进行:
             # ls /etc/passwd/app/passwd
>          # echo nihao > /dev/pts/
1>        # echo nimei 1> /dev/pts/2(输出正确)
2>  # echo wohao 2> /dev/pts/2(输出错误)
 > 2>&1 或&> # ls /etc/passwd /app/passwd > /dev/pts/2 2>&1
            # ls /etc/passwd /app/passwd &> /dev/pts/2 
tr命令的使用:
 tr 命令:(输入重定向)(<输出)# tr ‘asd’ ‘dfg’(转换)
 tr -s ” 连续字符删掉留一个
 tr -d ” 删除某个字符 (# cp /etc/fstab /app  # cd /app # ls
        # cat fstab  # tr -d adc <fstab)
 tr -dc ”只保留空格里的字母
 tr ‘a-z’ ‘A-z’小写转换为大写
 tr -t ” 没有不转换 # tr -t ‘adgf’ ‘bnm’(没有f就原样输出)
 tr -c  取反
[root@centos7 app]# echo aaaabbbcccccccdddd | tr -t ‘abcd’ ‘edf’
  eeeedddfffffffdddd

管道 :可多级进行| 将正确结果重定向给下一条命令   2>&1 | 或 |&全部结果重定向
      将错误输出改为正确输出 2>&1
      将正确输出改为错误输出 1>&2

  获取boot目录所在分区的可用空间(# df -h  # df -h > df.txt # cat df.txt
                            # tr -s [:space:] < df.txt)

 df -h 
 # tr -s [:space:]|grep /boot |cut -d” ” -f5 |cut -d “%” -f1

获取本机的IP地址
  ifconfig ens34 |grep broadcast |tr -s ‘[:space:]’|cut -d ” ” -f3

 [root@centos7 app]# tr ‘a-z’ ‘A-Z’ < ~/.bashrc (标准输入)
 [root@centos7 app]# cat ~/.bashrc |tr ‘a-z’ ‘A-Z’//输入输出同时进行


<<“tee“使用tee既可以显示在终端上也可以保存(生成)文件也可发出去
     //# echo abc | tee hello.txt

  tee -a (追加)# echo 123 |tee -a hello.txt  >>

*********************************************************************
1、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中
      who | tr ‘a-z’ ‘A-Z’ | tee -a /tmp/who.out

2、一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:
    Hello, I am 用户名,The system version is here,please help me to 
    check it ,thanks!
    操作系统版本信息
    echo -e ‘Hello, I am’ $USER ‘,The system version is here,please help me to check it,thanks!\n’ uname -a|mail -s “help” root

3、将/root/下文件列表,显示成一行,并文件名之间用空格隔开
   ls -1 |tr ‘\n’ ‘ ‘

4、计算1+2+3+..+99+100的总和
    Answer1:
    #! /bin/bash
         j=0
    for ((i=0;i<=100;i++))
        do
        ((j=j+i))
       done
     echo $j

    Answer2:
  echo {1..100} |tr ‘ ‘ ‘+’ |bc
文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用
5、删除Windows文本文件中的‘^M’字符
    #rz(添加传入)创建 win.txt linux.txt   cat -A(查看换行符)
    #cat -A win.txt |tr -d ‘^M’
    #cat  win.txt |tr -d ‘^M’ > win1.txt(重新导入新文件)
6、处理字符串“xt.,l 1 jr#!$mn 2 c
/fe 3 uz 4”,只保留其中的数字
和空格
    echo  ‘”xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4″‘ |tr -cd [:digit:][:space:]
7、将PATH变量每个目录显示在独立的一行
    echo $PATH |tr ‘:’ ‘\n’

8、将文件中每个单词(由字母组成)显示在独立的一行,并无空行
   cat /etc/fstab |tr -c [a-zA-Z] ‘\n’ |tr -s [:space:]

diff 比较文件 它的使用方法过程:

     # diff f1 f2    仅比较区别(4a5 四行后面多了一行五行)
     # diff -u f1 f2 > diff.log 生成补丁  diff -u 补丁生成工具
     #mv f2 f2.orig  相当于删除了文件 。其实是将f2名字改为f2.orig 文件内容一致
     #patch -b f1 diff.log    通过补丁还原文件生成新的含补丁文件内容的f1 而生成的f1.orig 是原文件f1
     #mv f1 f2       还原原始的新文件名f2
     #mv f1.orig f1  还原原始的旧文件名f1
     #diff f2 f2.orig  比较还原回来的新文件与被删除的文件,发现没有区别。

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用
文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

1、找出ifconfig “网卡名” 命令结果中本机的IPv4地址
    #ifconfig |head -n 2 |tail -n 1|tr -s ” ” : |cut -d: -f4
    #ifconfig  ens34 |head -n 2 |tail -n 1 |tr -s ” ” |cut -d ” ” -f3

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用
2、查出分区空间使用率的最大百分比值
df|tr -s ‘ ‘ %|sort -t% -k5 -n|tail -n 1|cut -d% -f5

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用
3、查出用户UID最大值的用户名、UID及shell类型
cat /etc/passwd |cut -d: -f1,3,7|sort -n -t : -k 2|tail -n 1

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用
文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

4、查出/tmp的权限,以数字方式显示

stat /tmp| head -n 4|tail -n 1|cut -d/ -f1|cut -d'(‘ -f2
stat -c %a /tmp/

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

5、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序

netstat -tun | grep ESTAB |tr -s ” ” : |cut -d: -f6 |sort -nr |uniq -c (uniq -c显示连续重复的次数(统计次数))

文件管理的相关命令使用及标准I/O,管道,diff及文件工具的使用

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

(0)
MOMOMOMO
上一篇 2017-07-29
下一篇 2017-07-29

相关推荐

  • Linux基本命令

    前言 今天学习了Linux下的一些基本命令,在此归纳总结一下这些命令的基本用法。 Linux命令帮助的获取     在拿到一个命令后不知道其用法,我们可以通过命令帮助来查看它的用法,但linux下内部命令和外部命令获取帮助的方法是有差别的。     内部命令:help command &n…

    Linux干货 2016-10-14
  • 脚本编写规范

    脚本编写规范 脚本名称以.sh结尾,名称见名知意 尽量使用UTF-8编码,注释及输出尽量使用英文 一般给到执行权限,但一些关于变量的配置文件不用加执行权限 执行的时候可以使用bash执行,或者使用bash -x 调试执行 脚本首行以#!/bin/bash,无空格,不带选项 第二行为空格或者添加一行空注释 开始注释内容:  #!/bin/bash&n…

    Linux干货 2017-04-16
  • 五种开源协议的比较(BSD,GPL,LGPL,Apache,BSD)

    BSD开源协议(original BSD license、FreeBSD license、Original BSD license) BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。 但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码…

    Linux干货 2016-01-16
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。                 使用到命令chmod &nbsp…

    Linux干货 2017-02-02
  • Linux——文件处理工具(一)

    (1) 文件查看命令: cat,tac,rev cat [OPTION]… [FILE]…读取文件内容 –E: 显示行结束符$ –V :显示非打印字符 –n: 对显示出的每一行进行编号 –A:显示所有字符 –b:非空行编号 –s:将连续的空行变成一行 &#8211…

    2017-07-29
  • 如何监控Linux文件系统事件:inotify使用指南

    如何监控Linux文件系统事件:inotify使用指南 §·inotify初识 Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。学习如何将 inotify 集成到您的应用程序中,并发现一组可用来进一步自动化系统治理的命令行工具。 §·inoti…

    Linux干货 2016-10-30