【1.find】
find path -option [ -print ] [ -exec -ok command ] {} \;
find . -name "*.c" ##.代表当前目录,在当前目录下查找以.txt结尾的所有文件和目录
find . -type f ##d目录、c字符装置文件、b区块装置文件、p具名贮列、f一般文件、l符号连接、s socket、-pid n:process id 是n的文件
##-type为限制文件的类型 f为file文件,d为dir目录
find /etc -type f -name "*.txt" ##查找/etc目录下以.txt结尾的文件
find /etc -type d -name "*.bak" ##查找/etc目录下以.bck结尾的目录
find . -ctime -20 ##atime 读 、cmin修改、cnewer更新、ctime修改
##20 n 指天数
find . -newer file ##查找本目录下在file之后修改过的文件
find . -type f -name "*.odf" -newer marker_start ! -newer marker_end ##查找在start之后,在end之前修改过的文件
find . -type f -newerat "20100130 23:59:59" ##查找2010年1月30号之后创建的文件
##-exec {} \; 为固定格式,把查找到的文件进行一系列操作
find . -name "*.txt" -exec cp {} ~/study/zz/ \; ##查找本目录下以.txt结尾的文件并把这些文件复制到~/study/zz/文件夹下
find . -type f -perm 644 -exec ls -l {} \; ##.当前目录 、644所以这至少拥有读写权限、
find / -type f -size 0 -exec ls -l {} \;
##-exec和-ok的功能基本相同
find . -name "*.txt" -ok rm {} \;
find /var/log -type f -mtime +7 -ok rm {} \;
【2.grep】文本搜索工具 grep 在指定的文本文件中查找指定的字符串
grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e "正则表达式"][-f<范本文件>][--help][范本样式][文件或目录...]
grep ‘main’ catalina.out ##该命令查找catalina.out文件中带有main的行。
grep test *file
grep -r update /etc/acpi ##r 递归
grep -A 10 xxx : 显示关键字后10行,查异常栈时很有用。
grep -B 10 xxx : 显示关键字前10行。
grep -C 10 xxx : 显示关键字前后10行。
grep -i hello 1.txt 不区分大小写进行筛选
grep -w 用于字符串精确匹配,匹配正好有w这个单词的那一行
grep -v hello 1.txt 除去筛选的一行,显示剩余的内容
【3.管道操作符 |】linux通道 命令1 | 命令2,把命令1的输出作为命令2的输入
ls -l | more ##该命令列出当前目录中的文档,并把输出送给more命令作为输入,more命令分页显示文件列表。
ps -ef ——查看所有的进程
ps -ef | grep java——把所有的进程进行过滤,只查看java的进程
【4.awk】文本分析工具
awk -F "/" '{print $7}'
##'{print $7}' 这个才是awk的主体语句。
##-F "/" 指示用/作为字段分隔符
##print $7 打印/分割出的第7个字段
【5.sed】用脚本来处理文本文件。
sed -i ‘s/.$/!/g’ regular_express.txt ##利用 sed 将 regular_express.txt 内每一行结尾若为 . 则换成 !
sed -i 's/\x01/\t/g' opening_no_vip.csv ##分隔符置换
sed 's/stringa1/stringa2/g' example.txt ##将example.txt文件中的 "string1" 替换成 "string2"
sed '/^$/d' example.txt ##从example.txt文件中删除所有空白行
sed '/ *#/d; /^$/d' example.txt ##从example.txt文件中删除所有注释和空白行
echo 'esempio' | tr '[:lower:]' '[:upper:]' ##合并上下单元格内容
sed -e '1d' result.txt ##从文件example.txt 中排除第一行
sed -n '/stringa1/p' ##查看只包含词汇 "string1"的行
sed -e 's/ *$//' example.txt ##删除每一行最后的空白字符
sed -e 's/stringa1//g' example.txt ##从文档中只删除词汇 "string1" 并保留剩余全部
sed -n '1,5p;5q' example.txt ##查看从第一行到第5行内容
sed -n '5p;5q' example.txt ##查看第5行
sed -e 's/00*/0/g' example.txt ##用单个零替换多个零
【6】cut文件分割
cut -d: -f1,3 /etc/passwd ##以:作为分隔符,取出第一列和第三列
##以空格为分隔符时,要加引号' '或" "
cut -c2-7 /etc/passwd 输出第二个到第七个字符
【7】cat tac more
cat data.txt从第一行开始显示全部
tac data.txt从最后一行开始显示全部
more data.txt分页显示
hdfs dfs -cat /data/data.txt
more ##向下分页查看内容
less ##向上向下分页查看内容
head -n ##显示文件前n行内容
tail -n ##显示文件最后n行内容
【8】less [pageup] [pagedown]
ctrl + F - 向前移动一屏
ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏
ctrl + U - 向后移动半屏
j /回车键 - 向前移动一行
k/y- 向后移动一行
G - 移动到最后一行 然后输入 ?加上你要搜索的关键字例如 ?1213
g - 移动到第一行
w 可以指定显示哪行开始显示,是从指定数字的下一行显示;比如指定的是6,那就从第7行显示;
p n% 跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示;
/pattern 搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词;
v 调用vi编辑器;
q / ZZ - 退出 less 命令
【9】tail 与head
head和tail命令都用于查看文本文件,区别在于: head显示文件的头n行,tail显示文件的尾n行,缺省情况n都为10行。可以通过-n方式指定行数,
如:
head -100 file和tail -100 file分别表示显示文件头100行和尾100行内容。
tail -f res.log ##命令可以实时查看文件新增内容。
##ctrl +c 退出
【10】vi
vi /root/.bash_profil
source /root/.bash_profile