1、查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;
find . -type f -perm 644-exec ls -l {} \;
. 当前目录
-type 查找某一类型的文件
f 普通文件
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l – 符号链接文件。
-perm 按照文件权限来查找文件
-exec 选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号
r=4,w=2,x=1 ,十进制表示
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5
2、查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;
find / -type f -size 0-exec ls -l {} \;
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
3、查找/zsh目录中更改时间在7日以前的普通文件,并在删除之前询问它们;
find /zsh -type f -mtime+7 -ok rm {} \;
-mtime -n +n 按照更改时间或访问时间查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。
rm 删除查找到的文件,删除前给出提示
4、查找系统中所有属于root组的文件 并列出它们的完整路径.
find / -group root -execls -l {} \;
-group 按照文件所属的组来查找文件。
5、myfile.html内容如下:
This is whatI meant.
删除HTML标记,也就是要得到:
This is what I meant.
sed's/]*>//g' myfile.html
s/pattern1/pattern2/将指定行中, 将第一个匹配到的pattern1,替换为pattern2.
awk'{gsub(/]*>/,"",$0);print}' myfile.html
gsub(r,s,t) 在整个t中用s替代r
6、使用tr命令将trkh.txt文件的空行删除
tr -s "[\012]"< trkh.txt 或 tr -s ["\n"] < trkh.txt
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
tr -s "[\012]" 用单独的换行替换每一序列的一个或多个换行
7、在txt目录下搜索所有包含有‘the’单词的.c文件,列出文件名
grep -l ‘the’ *.c
ls | grep'the.*\.c$' 匹配含the且以.c结尾的文件(正则表达式\.用来匹配点字符)
-l只给出包含给定模式的文件列表,而不给出文件中的匹配行
8、使用grep将express文件里以数字开头的行删除掉
grep -v ‘^[0-9]’ express
-v 显示不包含匹配文本的所有行
写出实现下列功能地命令:
9.查出所有用户名至少有4个字符地己登录用户
users | grep'.....*'
who | awk '{if ($1~/.....*/) print $1}'
10.查出系统中所有用户标识号大于99的用户
cat /etc/passwd | awk'BEGIN{FS=":"}{if ($3>99) print $1}'
FS字段分隔符