文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>shell 学习笔记

shell 学习笔记

时间:2006-02-07  来源:slnsnow

shell 学习笔记   2.find
**** find pathname -options [-print -exec -ok]
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-prune 使用这一选项可以使find命令不在当前指定的目录中查找
-user 按照文件属主来查找文件
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件, -n表示文件更改时间距现在n天以内,+ n
表示文件更改时间距现在n天以前。find命令还有-atime和-ctime
-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype 查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount 在查找文件时不跨越文件系统mount点。
-follow 如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio 对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

波浪号~代表了你的$HOME目录
.代表当前目录及子目录
/代表根目录
为如果你同时使用了-depth 和 -prune,那么-prune就会被find命令忽略
find . ! -type d -print
//查找目录以外的所有类型文件
size
以字节计量文件长度的表达形式为Nc;以块计量文件长度只用数字表示
find . -type f -exec ls -l {} \; find . -name "*.log " -mtime +5 -ok rm {} \;
//在删除之前先给出提示
find -type f -print | xargs file
./.info.php.swp:       data
./input.ctl:           ASCII text
./info.php:            PHP script text
./dl/filelist.php:     HTML document text
  ------------------------------------------------------------------
4.元字符
* 匹配文件名中的任何字符串,包括空字符串。
? 匹配文件名中的任何单个字符。
[...] 匹配[ ]中所包含的任何字符。
[!...] 不匹配[ ]中感叹号!之后的字符。
ls -l | grep ^d
pwd
cd cro.w*
ls [ab]*
//匹配a或b
ls [a-z]*
//匹配a-z的任意字符
ls [!0-9]*
//列出非数字字符
ls .*
//列出隐含文件
-----------------------------------------------------------------
5.shell输入输出
echo:
\c 不换行
\f 进纸
\t 跳格
\n 换行
echo -e "what this\ttest";
//使用- e选项才能使转义符生效
cat > myfile
this is great
//ctl+d结束
tee -a files
//- a表示追加到文件末尾
sort snowtest | tee -a test.log mail pinksnow@mail.com < contents.txt cat >>test.log<<eof
> test
> eof
cat snowtest snowtest2 1>>test.log 2>>test.err exec command
//其中的command通常是一个shell脚本
.sh snowtest
//才可以执行.或者
chmod +x snowtest
./snowtest
------------------------------------------------------------
6.
命令1 && 命令2
&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行
命令1 || 命令2
如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2)
在当前shell中执行一组命令,用命令分隔符;隔开每一个命令,并把所有的命令用圆括号()括起来。
(命令1;命令2;. . .)
使用{}将在子shell中执行
{命令1;命令2;...}
----------------------------------------------------------------------
7.正则表达式
**** 句点"."可以匹配任意单字符
**** 在行首以^匹配字符串或字符序列: ^d
**** 在行尾以$匹配字符串或字符
**** 使用*符匹配任意字符或字符串的重复多次表达式
**** 使用\屏蔽一个特殊字符的含义
特殊字符:
$.'"*[]^|()\+?
**** 使用[ ]匹配特定字符串或字符串集
可以用逗号将括弧内要匹配的不同字符串分开
使用"-"表示一个字符串范围
[^]表示否定或不匹配括号中的字符
**** 使用\{\}匹配模式结果出现的次数
pattern\{n\} 匹配模式出现n次。
pattern\{n,\} 匹配模式出现最少n次。
pattern\{n,m\} 匹配模式出现n到m次之间,n , m为0-255中任意整数,取区间数。
----------------------------------------------------------------------
8.grep
grep [选项] 基本正则表达式 [文件] -c 只输出匹配行的计数
grep -c "wangxianxiang82" *.log
显示所有的文件及匹配行数
-n 显示匹配行及行号
显示匹配文件,匹配行,及行数
-v 显示不包含匹配文本的所有行 精确匹配使用 \>
grep -n "wang\>" lt.log
-i 不区分大小写(只适用于单字符)
grep 大小写敏感
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-s 不显示不存在或无匹配文本的错误信息。
模式匹配范围,表示3或4:
grep 'wang48[34]' lt.log
不匹配行首:
grep '^[^48]' lt.log
大小写两种方式:
grep -i 'set' lt.log
grep '[Ss]et' lt.log
符号"|"左边命令的输出作为"|"右边命令的输入
grep '[Ss]et' lt.log | grep '483'
匹配"与"或者"或"模式
grep -E '216|219' lt.log   
查询空行:grep '^$' lt.log 文本文件命名格式:六个小写字符,后跟句点,接着是两个大写字符
grep '^[a-z]\{1,6/}\.[^A-Z]\{1,2/}' filename.deposit
------------------------------------------------------------------------------  
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载