简单总结一下，几个常用的linux命令。一、find 用来查找特定文件，在linux下一切皆是文件，因此十分有用。 基本格式：`find path expression [-exec command {} \;]` 会默认遍历到子目录。 1、find /home/work/ -name "*.cpp" 查找/home/work/目录下，所有文件名以.cpp结尾的文件，当然目录也会匹配出来。 2、find /home/work/ -name -type f "*.cpp" 查找/home/work/目录下，所有文件名以.cpp结尾的普通文件。 3、find /home/work/ -iname "*.cpp" -iname 表示忽略大小写，-name表示不忽略大小写，精确匹配。 4、find /home/work/ /etc/ /usr -name "*.cpp" 查找多个目录下的.cpp文件 扩展 ： `find /home/work/ /etc/ /usr -name "[ab].cpp"` 查找a.cpp或者b.cpp文件 `find /home/work/ /etc/ /usr -name "?.cpp"` "?"表示任意一个字符 5、 find /home/work/ -size +20M 查找大于20M的文件，-20M表示小于20M 6、find /home/work -atime -5 查找5天内访问过的文件， +5 表示5天内没有访问过的文件。 扩展：用stat命令可以获得相关的时间戳。atime表示最近一次访问的时间，mtime表示最近一次内容修改的时间，ctime表示最近一次属性修改的时间，单位是天。amin， mmin，cmin单位是分钟。 7、find /home/work -atime -5 -a -size -1M 查找5天访问过的并且大小小于1M的文件。 -a 与连接 ， -o 或连接， -not 条件取反 二、grep 用来匹配特定的文本行，全称是Global Regular Expression Print。 基本格式： grep [OPTIONS] PATTERN [FILE...] 1、grep "hello" ./* 遍历当前目录下的所有文件，把含有"hello"的文本行的打印出来。 `grep -r "hello" ./*` 会遍历子目录。 2、其他参数控制 -i 匹配时，忽略大小写 -n 显示行号 -c 只显示匹配到的文本行总数 -l 只显示匹配到文本行的文件名 -v 显示没有匹配到的文本行，相当于取反操作。 三、wc 文本统计工具，全城word count。使用方法很简单。能将文件的行数、字数、字节数打印出来。 1、wc -l test.txt 统计test.txt中文本的行数。 2、wc -c test.txt 统计字节数 3、wc -w test.txt 统计字数，我所理解的字就是一个单词，单词都是又空格、tab键、换行符来分割的。 4、wc -m test.txt 统计字符数。这和字节数是有区别的，因为一个中文字符会占3个字节。 四、实例操作1、统计/home/work/目录下所有以.txt结尾的文件个数(不包括目录)find /home/work/ -type f -name "*.txt" ｜ wc -l2、删除/home/work/目录下所有以.txt结尾的文件find /home/work/ -type f -name "*.txt" -exec rm -f {} ; -exec 后面跟着执行动作，就是一个操作命令，即每查找到一个文件就执行rm -f 动作，{}就代表查找到的文件，\; 表示命令的结束。 注意，{}和\之间有空格。 也可以这样做： find /home/work/ -type f -name "*.txt" ｜ xargs rm -f 3、统计/home/work/当前目录下有多少普通文件（即不遍历子目录）ls /home/work -l | grep '^-' |wc -l -l 参数显示出文件的属性，开头为‘-’表示普通文件，从而排除目录，'^-'表示匹配开头为‘-’的字符串
有时候我们需要wget一个文件下载到指定的目录下，或者重命名成指定的名字wget -r -p -np -k -P ~/tmp/ http://java-er.comwget居然有如此邪恶的用法这个语句表示下载全站资料等于把一个网站整个静态化到本地。[...]