面试的问题:

腾讯:

1. 查看进程的命令

美团:

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

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

3. kill -9/-15区别

滴滴:

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

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

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

2. 你有用Linux安装软件吗

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

1.文件系统结构

  1. ls / 查看文件系统目录

2. 文件系统命令:

  1. ls 显示文件或目录
  2. -l:列出文件的详细信息 stat更详尽
  3. -a:列出当前目录下的所有文件及目录,包括隐藏(all
  4.  
  5. mkdir 创建目录
  6. -p:如果没有父目录,则创建(parent
  7.  
  8. tree 树形结构显示目录,需要安装tree
  9.  
  10. pwd 显示当前目录
  11.  
  12. rmdir 删除目录(只能为空时)——>目录不为空:rm -r
  13.  
  14. rm 删除文件
  15. -r:递归删除,可删除子目录及文件
  16. -f:强制删除(force
  17.  
  18. cd 切换目录
  19. -:切换前一个工作目录
  20. ..:切换到上一级目录
  21.  
  22. touch 创建一个空文件 ——>echo:创建有内容的文件
  23.  
  24. echo:. 将字符串输入到控制台:echo 'sbw'
  25. . 创建带有内容的文件:echo 'sbw' > test.txt
  26. . 在文件中追加内容:echo 'add' >>test.txt
  27. . 显示所有带有目标格式的文件:echo *.txt(如果不存在这种格式的文件,则当作字符串将 *.txt输出到控制台) == ls *.txt
  28. . 输出变量的值:echo $PATH
  29.  
  30. cat 查看文件内容
  31. -n:输出行号+内容
  32.  
  33. nl 显示行号的查看文件内容
  34.  
  35. cp 拷贝文件: cp source.txt ''../target.txt'
  36.  
  37. mv 移动文件或者重命名
  38.  
  39. ln 为某一个文件在另一个文件夹中创建链接文件
  40. -s:生成文件的镜像,不着用磁盘空间。如果没有-s:他会在你选定的位置生成一个与源文件大小相同的文件,并且保持同步变化
  41.  
  42. find 在文件系统中搜索某文件
  43.  
  44. wc 统计文本中行数、字数、字符数
  45. ls | wc - 统计一个目录下有多少个文件(|是管道,表示前一个命令的输出结果,是后一个命令的输入,eg:ls *.docx|wx:统计目录下有多少个.docx类型的文件)
  46.  
  47. grep 在文本文件中查找某个字符串
  48. -n:显示行号
  49.  
  50. more/less 分页显示文本文件内容
  51.  
  52. head/tail 显示文件头/尾内容
  53.  
  54. du 查看文件大小(目录大小)
      -h:按单位显示
      -d:指文件的层级:例如1就是当前目录,
  55.  
  56. diff 查看两个文件内容的不同
  57.  
  58. chmod 修改文件的权限(权限可通过:ls -l来查看)
    chgrp 修改属组
  1. xargs 将标准输出的内容作为参数,转换成小块分段传递后面的函数(可以读入stdin标准输入的内容,并以空白字元、断行字元作为分割)
  2.   -:当stdin有特殊字元时,当作普通字符处理
  3.   -a file:从文件中读入作为stdin
  4.   xargs 还可以循环删除
  5. songbowendeMacBook-Pro:~ lesley$ find . -type f |xargs rm
  6.  
  7. find pathname -option [-print -exec -ok] 用于在文件树种查找文件,并作出相应的处理
  8. . 其中pathname:查找目录:.表示当前目录;/表示系统根目录
  9. -printfind命令将匹配的文件输出到标准输出
  10. -execfind命令将匹配的文件执行该桉树所给出的shell命令。命令形式:'command'{} \; 注意{ }和\;之间的空格。
  11. -ok:同-exec,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
  12.  
  13. . option
  14. -name 按照文件名查找文件。
  15. -type 查找某一类型的文件,诸如:
  16. b - 块设备文件。
  17. d - 目录。
  18. c - 字符设备文件。
  19. p - 管道文件。
  20. l - 符号链接文件。
  21. f - 普通文件。
  22. -perm 按照文件权限来查找文件。
  23. -mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
  24. -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
  25. -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

***另外:其他考题:

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

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

2. 系统管理命令

  1. stat 显示文件的详细信息,比ls更详尽
  2.  
  3. who 显示在线登录用户
  4.  
  5. whoami 显示当前操作用户
  6.  
  7. hostname 显示主机名
  8.  
  9. uname 显示系统信息
  10. du 查看目录大小(同样可以查看指定文件)
  11. -h:带有大小单位
  12.  
  13. df 查看磁盘使用情况
  14. -h:带有大小单位
  15.  

3. 进程管理

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

4. 网络

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

5. 性能检测工具

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

6. 打包压缩命令

  1. gzip
  2.  
  3. bzip2
  4.  
  5. tar: 打包压缩
  6. -c:归档文件
  7. -x:压缩文件
  8. -zgzip压缩文件
  9. -jbzip2压缩文件
  10. -v:显示压缩或解压缩过程(view
  11. -f:使用档名
  12.  
  13. 例如:
  14. tar -cvf /testTar/test1.tar testTar/test1 只打包,不压缩
  15. tar -zcvf /testTar/test.tar.gz 打包,并用gzip压缩
  16. tar -jcvftestTar/test.tar.bz2 打包,并用bzip2压缩
  17.  
  18. tar -xvf/ tar -zxvf/ tar -jxvf 解压缩

7. 关机/重启

  1. shutdown 关机
  2. -r:关机重启
  3. -h:关机不重启
  4. now 立即关机
  5.  
  6. halt 关机
  7. reboot 重启

.8 Linux管道:

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

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

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

9. Linux软件包管理

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

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

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

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

依然以tree为例

  1. sudo apt-get install tree 安装tree
  2. sudo apt-get remove tree 卸载tree
  3. sudo apt-get update 更新软件
  4. sudo apt-get upgrade

10.vim使用

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

命令模式下:

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

11. 用户及用户组管理

/etc/passwd    存储用户账号

/etc/group       存储组账号

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

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

  1. useradd 用户名
  2. userdel 用户名
  3. adduser 用户名
  4. groupadd 组名
  5. groupdel 组名
  6. passwd root root设置密码

  7. su root
  8. su - root
  9. su user 切换用户,加载配置文件.bashrc
  10. su - user 切换用户,加载配置文件/etc/profile ,加载bash_profile

/etc/profile 系统环境变量

bash_profile 用户环境变量

.bashrc 用户环境变量

更改文件的用户及用户组

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

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

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

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

总结:面试的问题有

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

  1. netstat - a

2. more和cat的区别

  1. cat 查看文件内容
  2. more 分页查看文件的内容

3. linux 改密码命令

  1. passwd

4. 改权限命令

  1. 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. 查看磁盘空间的命令

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

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

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

面试准备——(二)专业知识(1)Linux的更多相关文章

  1. 2014专业知识学习---be strong

    一 公司工作 完成好自动化营销系统构建,并以此为契机掌握推荐,数据分析,可视化等知识 1 完成统计和可视化.具体参考 cookie mapping项目规划 2 以广告投放为契机,学习数据分析,推荐系统 ...

  2. Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核

    Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核 标签(空格分隔): Qemu ARM Linux 在上文<Qemu搭建ARM vexpress开发环 ...

  3. Linux运维知识之linux shell date 用当天时间做备份文件名

    本文主要向大家介绍了Linux运维知识之linux shell date 用当天时间做备份文件名,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. #!/bin/bash #dat ...

  4. 面试准备——(二)专业知识(2)Python

    面试遇到的问题: 滴滴: 1. Python的数据结构 2. list和tuple的区别 3. list中有哪些操作?append和extend的区别? 4. list和dict的却别?dict是有序 ...

  5. 面试准备——(二)专业知识(4)C/C++语言

    1. 预处理 断言 assert的功能,assert(statement),如果statement为真则程序继续执行,为假则整个程序中断退出 3. #define [ #ifndef DISKSIM_ ...

  6. PHP面试(二):程序设计、框架基础知识、算法与数据结构、高并发解决方案类

    一.程序设计 1.设计功能系统——数据表设计.数据表创建语句.连接数据库的方式.编码能力 二.框架基础知识 1.MVC框架基本原理——原理.常见框架.单一入口的工作原理.模板引擎的理解 2.常见框架的 ...

  7. [Java面试三]JavaWeb基础知识总结.

    1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供外界访问的Web资源分为: • 静 ...

  8. Linux(1)- 服务器核心知识、Linux入门、VMware与centeos安装、远程连接linux、linux基本命令使用

    一.服务器核心知识 1.电脑和电脑的硬件组成 现在的人们几乎无时无刻不在使用着电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑,还是智慧型手机等等,这些东西都算是电脑.虽然接触这么多,但是 ...

  9. iOS面试必备-iOS基础知识

    近期为准备找工作面试,在网络上搜集了这些题,以备面试之用. 插一条广告:本人求职,2016级应届毕业生,有开发经验.可独立开发,低薪求职.QQ:895193543 1.简述OC中内存管理机制. 答:内 ...

随机推荐

  1. Node.js学习笔记(一) --- HTTP 模块、URL 模块、supervisor 工具

    一.Node.js创建第一个应用 如果我们使用 PHP 来编写后端的代码时,需要 Apache 或者 Nginx 的 HTTP 服务器, 来处理客户端的请求相应.不过对 Node.js 来说,概念完全 ...

  2. Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

    Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...

  3. CXF生成客户端遇到的问题

    一.CXF环境配置路径错误 1.错误现象 在命令行中输入 wsdl2java -v 检查CXF安装是否正确. 出现错误=> ERROR: Unable to find cxf-manifest. ...

  4. centos7安装java开发环境

    一. 安装jdk 1.进入oracle官网下载jdk-8u152-linux-x64.tar.gz,用WinScp将文件上传到/usr/local文件下 2.解压:执行命令 tar –xzvf jdk ...

  5. (MVVM) ListBox Binding 和 实时刷新

    当需要用Lisbbox 来log 一些记录的时候,ObservableCollection 并不可以是记录实时的反应在WPF 的UI上面. 这个时候就需要用一个异步collection 来完成. // ...

  6. Tesseract-OCR -01-Tesseract 介绍

    Tesseract-OCR -01-Tesseract 介绍 OCR(Optical Character Recognition): 光学字符识别,是指对图片文件中的文字进行分析识别,获取的过程 Te ...

  7. vue2.0 生命周期 简析

    Vue2.0 生命周期钩子函数: <template> <div id='app'> {{message}} </div> </template> va ...

  8. 微信公众号 报token验证失败

    最近两天一直碰到token验证失败的问题,如下图所示 然后上网疯狂的搜索答案,碰到的人还真不少,原因大概有这几个: 1)服务器URL未实名认证 2)token重名(基本不可能) 3)服务器部署的项目 ...

  9. PHP通过header和meta实现页面编码声明

    一.使用方式: <META http-equiv=”content-type” content=”text/html; charset=xxx”> header(“content-type ...

  10. [问题记录]libpomelo的安装

    1. 描述: 按照github上的操作完成 Windows in your libpomelo project root directory open git bash and type in mkd ...