• 面试准备——(二)专业知识(1)Linux


    面试的问题: 

    腾讯:

    1. 查看进程的命令

    美团:

    1. 常用的命令——美团/滴滴

    2. 如何在性能测试的时候查看进程

    3. kill -9/-15区别

    滴滴:

    1.如何找到一个特定文件

    2. 如何替换一个文件中的字符串

    sed  's/原字符串/替换字符串/' 目录名
    例如;sed  'aaa/bbb'  test.txt // 将test.txt中'aaa'替换成'bbb'

    2. 你有用Linux安装软件吗

    3. 如何找到一个指定的进程

    1.文件系统结构

    ls /  查看文件系统目录

     2. 文件系统命令:

    ls   显示文件或目录
        -l:列出文件的详细信息 stat更详尽
        -a:列出当前目录下的所有文件及目录,包括隐藏(all)
    
    mkdir 创建目录
        -p:如果没有父目录,则创建(parent)
    
    tree 树形结构显示目录,需要安装tree包
    
    pwd 显示当前目录
    
    rmdir 删除目录(只能为空时)——>目录不为空:rm -r
    
    rm     删除文件
        -r:递归删除,可删除子目录及文件
        -f:强制删除(force)
    
    cd  切换目录
        -:切换前一个工作目录
        ..:切换到上一级目录
    
    touch 创建一个空文件 ——>echo:创建有内容的文件
    
    echo1. 将字符串输入到控制台:echo 'sbw'
        2. 创建带有内容的文件echo 'sbw' > test.txt
        3. 在文件中追加内容:echo 'add' >>test.txt
        4. 显示所有带有目标格式的文件:echo *.txt(如果不存在这种格式的文件,则当作字符串将 *.txt输出到控制台) == ls *.txt
        5. 输出变量的值:echo $PATH
    
    cat 查看文件内容
         -n:输出行号+内容   

    nl 显示行号的查看文件内容
    cp 拷贝文件: cp source.txt ''../target.txt' mv 移动文件或者重命名 ln 为某一个文件在另一个文件夹中创建链接文件 -s:生成文件的镜像,不着用磁盘空间。如果没有-s:他会在你选定的位置生成一个与源文件大小相同的文件,并且保持同步变化 find 在文件系统中搜索某文件 wc 统计文本中行数、字数、字符数 ls | wc - 统计一个目录下有多少个文件(|是管道,表示前一个命令的输出结果,是后一个命令的输入,eg:ls *.docx|wx:统计目录下有多少个.docx类型的文件) grep 在文本文件中查找某个字符串 -n:显示行号 moreless 分页显示文本文件内容 head/tail 显示文件头/尾内容 du 查看文件大小(目录大小)
      -h:按单位显示
      -d:指文件的层级:例如1就是当前目录,
    diff 查看两个文件内容的不同 chmod 修改文件的权限(权限可通过:ls -l来查看)
    chgrp 修改属组
    xargs 将标准输出的内容作为参数,转换成小块分段传递后面的函数(可以读入stdin标准输入的内容,并以空白字元、断行字元作为分割)
      -0:当stdin有特殊字元时,当作普通字符处理
      -a file:从文件中读入作为stdin
      xargs 还可以循环删除
    songbowendeMacBook-Pro:~ lesley$ find . -type f |xargs rm
    
    find pathname -option [-print -exec -ok] 用于在文件树种查找文件,并作出相应的处理
    1. 其中pathname:查找目录:.表示当前目录;/表示系统根目录
        -print:find命令将匹配的文件输出到标准输出
        -exec:find命令将匹配的文件执行该桉树所给出的shell命令。命令形式:'command'{} ; 注意{   }和;之间的空格。 
        -ok:同-exec,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
    
    2. option:
        -name   按照文件名查找文件。
        -type  查找某一类型的文件,诸如:
            b - 块设备文件。
            d - 目录。
            c - 字符设备文件。
            p - 管道文件。
            l - 符号链接文件。
            f - 普通文件。
        -perm   按照文件权限来查找文件。
        -mtime -n +n  按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
        -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
        -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

    ***另外:其他考题:

    1. tail -f 'xx_log.txt'  实时查看文件(只限于:log档案文件。会以一定时间实时跟踪)
    2. 查看大文件find . -type -f -size +800M -ptint0 | xargs -0 ls -l
    3. 查看大文件并输出找出来文件的具体大小
    find . -type f -size +800M  -print0 | xargs -0 du -h
    4. 查看大文件并按照文件大小排序
    find . -type f -size +800M  -print0 | xargs -0 du -h | sort -nr
    5. 查看大目录并排序:du -d 1 |sort -n
    6. 查看大目录并只输出前n个:du -d 1|head -n
    7.如何找到一个文件含有含有aaa,bbb的行

      grep 'aaa' *.txt|xargs grep 'bbb' 

    2. 系统管理命令

    stat 显示文件的详细信息,比ls更详尽
    
    who 显示在线登录用户
    
    whoami 显示当前操作用户
    
    hostname 显示主机名
    
    uname 显示系统信息
    du 查看目录大小(同样可以查看指定文件)
        -h:带有大小单位
    
    df 查看磁盘使用情况
        -h:带有大小单位
     
    

    3. 进程管理

    ps 显示当前运行的进程
        -a:显示其他用户启动的进程
        -x:查看系统中属于自己的进程
        -u:显示启动这个进程的用户和它启动的时间
        与grep用管道连接,找到特定的进程:ps -a|grep '28952'
                统计进程个数:ps -a|wc
    
    
    pstree 以树状图显示进程,只显示进程的名字,且相同进程合并显示
        -p:还显示PID
        -a:相同进程部合并,且显示命令行参数
    
    top 显示当前消耗资源最多的进程信息
        -i 查看多少进程处于running状态,可能系统存在内存或I/O瓶颈
    
    
    kill 杀死进程(是通过发送信号来终止一个进程)
        -9:发出的信号是:SIGKILL:相当于exit,不能被捕捉或忽略,所以会立即杀死进程-15:SIGTERM 当程序接受到这个信号后,大部分会释放自己的资源,然后再停止。但是有一部分,接收到信号以后,可以不立即停止,例如如果正在等待IO,则不会立即作出响应。所以SIGTERM信号会被阻塞、忽略

    4. 网络

    ifconfig 查看网络配置信息
    
    ping 测试网络联通
    
    netstat 显示网络连接、路由表和网络接口
        -a 显示所有的socket,包括正在监听的
        -i 显示所有网络接口的信息
        -e 显示核心路由信息
        -t 显示TCP连接情况
        -v 显示正在进行的工作
    
    route -n 查看路由表

    5. 性能检测工具

    top 显示所有实时运行的进程,并且定时更新
    
    vmstat 虚拟内存统计(安装一个sysstat包)
    
    iostat 用于监控CPU和系统设备的IO负载情况
    
    free 内存使用率
    
    map 进程内存占用率
    
    strace 追踪程序运行状态

    6. 打包压缩命令

    gzip 
    
    bzip2
    
    tar: 打包压缩
        -c:归档文件
        -x:压缩文件
        -z:gzip压缩文件
        -j:bzip2压缩文件
        -v:显示压缩或解压缩过程(view)
        -f:使用档名
    
    例如:
    tar -cvf /testTar/test1.tar testTar/test1 只打包,不压缩
    tar -zcvf /testTar/test.tar.gz  打包,并用gzip压缩
    tar -jcvf/testTar/test.tar.bz2 打包,并用bzip2压缩
    
    tar -xvf/ tar -zxvf/ tar -jxvf 解压缩

    7. 关机/重启

    shutdown 关机
        -r:关机重启
        -h:关机不重启
        now 立即关机
    
    halt 关机
    reboot 重启

     

    .8 Linux管道:

    将一个命令的标准输出作为另一个命令的标准输入。也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。例:

    grep -r "close" /home/* | more 

     在home目录下所有文件中查找,包括close的文件,并分页输出。

     

    9. Linux软件包管理

    dpkg (Debian Package)管理工具,软件包名以.deb后缀。这种方法适合系统不能联网的情况下。

    比如安装tree命令的安装包,先将tree.deb传到Linux系统中。再使用如下命令安装。

    sudo dpkg -i tree_1.5.3-1_i386.deb  安装软件
    sudo dpkg -r tree 卸载软件

    APT(Advanced Packaging Tool)高级软件工具。这种方法适合系统能够连接互联网的情况。

    依然以tree为例

    sudo apt-get install tree 安装tree
    sudo apt-get remove tree 卸载tree
    sudo apt-get update  更新软件
    sudo apt-get upgrade

    10.vim使用

    vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。

    命令模式下:

    :q                      退出
    :q!                     强制退出
    :wq                   保存并退出
    :set number     显示行号
    :set nonumber  隐藏行号
    /apache            在文档中查找apache 按n跳到下一个,shift+n上一个
    yyp                   复制光标所在行,并粘贴
    h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)

    11. 用户及用户组管理

    /etc/passwd    存储用户账号

    /etc/group       存储组账号

    /etc/shadow    存储用户账号的密码

    /etc/gshadow  存储用户组账号的密码

    useradd 用户名
    userdel 用户名
    adduser 用户名
    groupadd 组名
    groupdel 组名
    passwd root     给root设置密码
    
    su root su - root su user 切换用户,加载配置文件.bashrc su - user 切换用户,加载配置文件/etc/profile ,加载bash_profile


    /etc/profile 系统环境变量

    bash_profile 用户环境变量

    .bashrc 用户环境变量

    更改文件的用户及用户组

    sudo chown [-R] owner[:group] {File|Directory}

    例如:还以jdk-7u21-linux-i586.tar.gz为例。属于用户hadoop,组hadoop

    要想切换此文件所属的用户及组。可以使用命令。

    sudo chown root:root jdk-7u21-linux-i586.tar.gz

    总结:面试的问题有

    1. linux 中查看监听网络端口命令

    netstat - a 

    2. more和cat的区别

    cat 查看文件内容 
    more 分页查看文件的内容

    3. linux 改密码命令 

    passwd

    4. 改权限命令

    chmod

    5. 如何结束一个进程?kill-9和kill -11的区别——美团

    kill命令。kill命令是通过发送信号给进程达到中断的目的。

    kill -9:发送的信号是:SIGKILL,相当于exit,不能被捕捉或忽略,所以会立即杀死进程

    kill -11:发送的信号是:SIGTERM,当进程接受到这个信号后,大部分会释放自己的资源,然后再停止。但是有一部分,接收到信号以后,可以不立即停止,例如如果正在等待IO,则不会立即作出响应。所以SIGTERM信号会被阻塞、忽略。

    6. 在性能测试中,你有用到什么命令?——美团

    ps、top、free查看进程使用情况,kill杀死进程

    iostat查看CUP和各设备IO使用率

    vmstat查看内存使用情况

    7. 查看磁盘空间的命令

    du 查看文件目录大小
    df 查看磁盘使用情况
        -h 带有大小单位

    8. 如何找到一个文件中含有aaa 和 bbb和行

    grep 'aaa' *.txt|xargs grep 'bbb' 
  • 相关阅读:
    JavaScript 将行结构数据转化为树结构数据源(高效转化方案)
    转—记录一下获取NC程序名称的方法
    选择对象单开图层
    找体的顶平面
    关闭当前工作部件
    对同一高度的体着色
    NX二次开发,对象上色
    隐藏同色对象
    线性移动更新
    NX 二次开发,线性移动uf5943
  • 原文地址:https://www.cnblogs.com/lesleysbw/p/6388026.html
Copyright © 2020-2023  润新知