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

mkdir 创建目录

-p: 存在于不报错可自动创建所需的各目录 (递归创建)mkdir -p a/d/c/b

-m: mode 创建时指定权限  # mkdir -m 777 filename

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png  

rmdir

删除空目录

-p 递归删除空目录

3c8ce6380daa33c267ccb0e2e66a02de.png

touch

当文件不存在时,则创建一个空文件(默认)

-c 当文件不存在时,不创建

当文件存在时

默认或-c 更新全部时间戳

-a 更新atime和ctime

-m 更新mtime和ctime

-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳(如:

touch -t 201706121620 +filename)

3c8ce6380daa33c267ccb0e2e66a02de.png

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

# ls -d /etc/.*    #ls -a -I  “[^.]*”    #l.

3c8ce6380daa33c267ccb0e2e66a02de.png

[:digit:]:任意数字,相当于0-9

[:lower:]:任意小写字母

[:upper:]: 任意大写字母

[:alpha:]: 任意大小写字母

[:alnum:]:任意数字或字母

[:blank:]:水平空白字符

[:space:]:水平或垂直空白字符

[:punct:]:标点符号

[:print:]:可打印字符

[:cntrl:]:控制(非打印)字符

[:graph:]:图形字符

[:xdigit:]:十六进制字符

l练习:

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

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

3c8ce6380daa33c267ccb0e2e66a02de.png

2、显示/etc/目录下以非字母开头,后面跟了一个字母及其 它任意长度任意字符的文件或目录

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

3c8ce6380daa33c267ccb0e2e66a02de.png

3、显示/etc/目录下所有以rc开头,并后面是0-6之间的数 字,其它为任意字符的文件或目录

ls -d /etc/rc[0-6]*

3c8ce6380daa33c267ccb0e2e66a02de.png

作业:

1、显示/etc目录下,所有以.d结尾的文件或目录

# ls -d /etc/* .d

3c8ce6380daa33c267ccb0e2e66a02de.png

2、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录

# ls /etc/[mnrp]*/*.conf

3c8ce6380daa33c267ccb0e2e66a02de.png

3、只显示/root下的隐藏文件和目录

# ls -d /root/.*

3c8ce6380daa33c267ccb0e2e66a02de.png

4、只显示/etc下的非隐藏目录

# ls /etc |grep [^.]*  # ls -d /etc/*/

# ls -F |grep /(ls -F 把文件按照类型分类  /就是标识是目录)

3c8ce6380daa33c267ccb0e2e66a02de.png

文件的类型:

-普通文件

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 -s ” 连续字符删掉留一个

tr -d ” 删除某个字符 (# cp /etc/fstab /app  # cd /app # ls

# cat fstab  # tr -d adc

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’//输入输出同时进行

<

//# 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

3c8ce6380daa33c267ccb0e2e66a02de.png

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  比较还原回来的新文件与被删除的文件,发现没有区别。

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

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

3c8ce6380daa33c267ccb0e2e66a02de.png

2、查出分区空间使用率的最大百分比值

df|tr -s ‘ ‘ %|sort -t% -k5 -n|tail -n 1|cut -d% -f5

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

3、查出用户UID最大值的用户名、UID及shell类型

cat /etc/passwd |cut -d: -f1,3,7|sort -n -t : -k 2|tail -n 1

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

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

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

stat -c %a /tmp/

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

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

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

3c8ce6380daa33c267ccb0e2e66a02de.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值