Linux常见的21条面试命令

Linux常见的21条面试命令

文章目录

    • 简单文件
      • 查看+权限
      • 文件搜索find()
    • 文件内容(查看查找处理)
      • cat
      • grep
      • sed
      • paste
      • sort
      • comm
    • 系统
    • 进程
    • 内存
    • 输入输出
  • 常见的shell 命令
    • 循环,判断,变量
    • 函数
      • awk
      • grep
      • sed
      • sort
      • uniq
      • wc
      • tr
    • 常见题目
      • 词频统计
      • 转置文件
      • 查看文件第10行
      • 找关键字的上下10行
      • 删除大于50m的文件
      • Linux如果内存占用过高怎么

简单文件

查看+权限

  • cp, cd, pwd, ls, mv, rm
  • chmod +-等 777 u=rw go=r, o, :所有者权限,组权限,其他用户权限
  • chown
  • chgrp

文件搜索find()

  • find / -name file:从根目录下搜索
  • find / -user file
  • find /usr/bin : 搜索具体目录下的
  • find / -size
  • whereis pip 显示二进制文件、源码或者man的位置
  • which pip显示二进制文件或者可执行文件的完整路径

文件内容(查看查找处理)

cat

  • cat file
  • tac file
  • cat -n file:显示文件行数
  • more file
  • head -n +1000 file
  • tail -n +1000 file从1000行开始显示,显示1000行以后的
  • cat filename | head -n 3000 | tail -n +1000:显示1000行道3000行
  • cat file | tail -n +3000 | head -n 1000 从3000行开始显示,显示1000行

tail表示偏移量

head表示总行数

grep

grep Aug /filename -A 5 -B 5:展示上下5行内容

grep ^Aug /filename:找以Aug开始的

grep [0-9] /file

grep Aug -R /目录

sed

  • sed 's/string1/string2/g test.txt' :将txt文件中的string1替换成string2
  • sed '/^$/d test.txt':删除文件所有空白行
  • /^\s*$/等于/^$/是一个正则表达式

paste

  • paste file1 file2:合并两个文件或者两栏目的内瓤
  • paste -d '+' file1 file2: 合并两个文件或两栏的内容,中间用’+'区分

sort

  • sort -r:逆序排序
  • sort -n: 按照数字排序。否则就是字符串了

comm

# 比较,输出删除file1包含的内容
comm -1 file1 file2
# 比较,输出删除file1包含的内容
comm -2 file2 fil2
# 求并集
comm -3 file1 file2

系统

tmux

  • 将会话放入到后台ctrl-b d
  • 查看当前tmux会话tmux list-session
  • 连接会话tmux attach-session -t 0
  • 删除所有会话tmux kill-server -t 1
  • 创建窗口ctrl-b %: 右侧创建 "下侧创建
  • 切换ctrl-b 箭头

进程

内存

输入输出

标准输入:0

标准输出:1

错误输出:2

>:覆盖

>>:追加

2>:错误重定向

&>:标砖输入输出合并写入

常见的shell 命令

循环,判断,变量

# 统计列数
cols = head -n 1 file.txt | wc -w

for (( i = 1; i < $cols; i++ )); do
	awk '{print $'"$i"'}' file.txt | xargs
done

函数

awk

  • awk '{print $2, $1}':输出第2行,第一行

行列转换

awk '
{
    for (i=1; i<=NF; i++) {
        if (NR == 1) {
            arr[i] = $i;
        } else {
            arr[i] = arr[i] " " $i;
        }
    }
}
END {
    for (i=1; i<=NF; i++) {
        print arr[i];
    }
}
' file.txt

grep

  • -A
  • -B
  • -n

sed

sort

sort -r:逆序

sort -n:按照出现的词频

sort -k1:按照第一列进行排序

uniq

wc

-l :统计行数

-m :字符数(包括空格和换行符)

-w :单词数

-c:字节数

L:最长行的字符数

tr

tr 's' 't' :替换

tr -d 'l'删除

tr -s ' '压缩重复字符

tr -s ' ' '\n' :将重复的空格压缩成\n

常见题目

词频统计

cat words.txt | tr -s '[:space:]' '\n' |  sort | uniq -c | sort -nr -k1 | awk '{print $2, $1}'

转置文件

查看文件第10行

cat file.txt | tail +n 10 | head -n 1

找关键字的上下10行

grep string -A 5 -B 5 file.txt

删除大于50m的文件

find /var/mail/ -size +50M -exec rm {};

Linux如果内存占用过高怎么

top:定位某一个进程

jmap:打印堆信息,生成堆快照

jhat:使用分析快照文件,查看是否存在内容泄漏:如果使用的对内存远远小于实际的占用内容,那么可能会出现内存泄漏的情况。

你可能感兴趣的:(linux,运维,服务器)