Java面试-Linux

1.Linux体系结构

        体系结构主要分为用户态(用户上层活动)和内核态
        内核:本质是一段管理计算机硬件设备的程序
        系统调用:内核的访问接口
        公用函数库:系统调用的组合
        Shell:命令解释器,可编程

2.如何查找特定的文件?

        find path [options] params
        find -name 'aaa.java':在当前目录下递归查找aaa.java文件
        find / -name 'aaa.java':在根目录下递归查找aaa.java文件
        find ~ -name 'scala*':在~目录下递归查找以scala开头的文件
        find ~ -iname 'scala*':在~目录下递归查找以scala开头的文件(忽略大小写)

3.检索文件内容

        查找文件里符合条件的字符串
        grep [options] pattern file
        grep 'moo' target*:检索当前目录下文件名以target开头的文件中'moo'这个字符串

4.管道操作符 |

        可将指令连接起来,前一个指令的输出作为后一个指令的输入
        要点:
            只处理前一个命令的正确输出,不处理错误输出
            右边命令必须能够接收标准输入流,否则传递过程中数据会被抛弃
        grep 'p\[true\]' xxx.log:筛选出符合p[true]的行
        grep -o 'engine\[[0-9a-z]*\]':输出符合正则的字符串
        grep -v 'grep':过滤掉含有'grep'的行

5.如何对文件内容做统计

        awk [options] 'cmd' file
        一次读取一行文本,按输入分隔符进行切片,切成多个组成部分
        将切片直接保存在内建的变量中,$1,$2 ...($0表示行的全部)
        支持对单个切片的判断,支持循环判断,默认分隔符为空格
        awk '{print $1, $4}' netstat.txt:从netstat.txt中逐行输出第一个切片和第四个切片的内容
        awk '$1 == "tcp" && $2 == 0 {print $0}' netstat.txt:在netstat.txt中,输出第一片为tcp且第二片为0的一整行
        awk '($1 == "tcp" && $2 == 0) || NR == 1 {print $0}' netstat.txt:在上一个的基础上,输出表头(NR == 1)
        awk -F '\t' '{print $4}' netstat.txt:根据'\t'进行分片,输出第四列
        awk -F ' ' '{eg[$1]++}END{for (i in eg) print i "\t" eg[i]}' hello.txt:将hello.txt按照空格分隔,把第一列的值存进数组中计数,最后循环输出

6.批量替换文本内容

        sed [option] 'sed command' filename
        全名stream editor,流编辑器
        适合用于对文本的行内容进行处理
        sed 's/^hadoop/Hadoop/' hello.txt:将hello.txt的以hadoop开头的字符串替换成Hadoop,原文件不变(每行只替换第一次匹配的字符串)
        sed -i 's/^hadoop/Hadoop/' hello.txt:将hello.txt的以hadoop开头行的hadoop字符串替换成Hadoop,原文件更改(每行只替换第一次匹配的字符串)
        sed -i 's/\.$/\;/' hello.txt:将hello.txt的以.结尾的行的'.'替换成';',原文件更改(每行只替换第一次匹配的字符串)
        sed -i 's/Hadoop/hadoop/g' hello.txt:将Hadoop替换成hadoop,'g'代表进行全文替换
        sed -i '/^ */d' hello.txt:删除以多个空格开头的行(删除空行)
        sed -i '/aaa/d' hello.txt:删除带有aaa的行

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值