mkdir 创建目录
-p: 存在于不报错可自动创建所需的各目录 (递归创建)mkdir -p a/d/c/b
-m: mode 创建时指定权限 # mkdir -m 777 filename
rmdir
删除空目录
-p 递归删除空目录
touch
当文件不存在时,则创建一个空文件(默认)
-c 当文件不存在时,不创建
当文件存在时
默认或-c 更新全部时间戳
-a 更新atime和ctime
-m 更新mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳(如:
touch -t 201706121620 +filename)
* 作业:如何实现只显示指定目录下的隐藏文件。(ls -I ) # ls -a |grep ‘^\.’
# ls -d /etc/.* #ls -a -I “[^.]*” #l.
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符
l练习:
1、显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录
ls -d /etc/[[:digit:]]*[^[:digit:]]
2、显示/etc/目录下以非字母开头,后面跟了一个字母及其 它任意长度任意字符的文件或目录
ls -d /etc/[^[:alpha:]][[:alpha:]]*
3、显示/etc/目录下所有以rc开头,并后面是0-6之间的数 字,其它为任意字符的文件或目录
ls -d /etc/rc[0-6]*
作业:
1、显示/etc目录下,所有以.d结尾的文件或目录
# ls -d /etc/* .d
2、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
# ls /etc/[mnrp]*/*.conf
3、只显示/root下的隐藏文件和目录
# ls -d /root/.*
4、只显示/etc下的非隐藏目录
# ls /etc |grep [^.]* # ls -d /etc/*/
# ls -F |grep /(ls -F 把文件按照类型分类 /就是标识是目录)
文件的类型:
-普通文件
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
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 比较还原回来的新文件与被删除的文件,发现没有区别。
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
2、查出分区空间使用率的最大百分比值
df|tr -s ‘ ‘ %|sort -t% -k5 -n|tail -n 1|cut -d% -f5
3、查出用户UID最大值的用户名、UID及shell类型
cat /etc/passwd |cut -d: -f1,3,7|sort -n -t : -k 2|tail -n 1
4、查出/tmp的权限,以数字方式显示
stat /tmp| head -n 4|tail -n 1|cut -d/ -f1|cut -d'(‘ -f2
stat -c %a /tmp/
5、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序
netstat -tun | grep ESTAB |tr -s ” ” : |cut -d: -f6 |sort -nr |uniq -c (uniq -c显示连续重复的次数(统计次数))
原创文章,作者:MOMO,如若转载,请注明出处:http://www.178linux.com/82845