跳至主要內容

Linux

soulballad面试面试约 1613 字大约 5 分钟

Linux篇
1、 绝对路径用什么符号表示?当前目录、上层目录用什么表示?
主目录用什么表示? 切换目录用什么命令?

  • 绝对路径:如/etc/init.d

  • 当前目录和上层目录: ./ ../

  • 主目录: ~/

  • 切换目录:cd

2、怎么查看当前进程?怎么执行退出?怎么查看当前路径?

  • 查看当前进程:ps

  • ps -l 列出与本次登录有关的进程信息;

  • ps -aux 查询内存中进程信息;

  • ps -aux | grep 查询进程的详细信息;

  • top 查看内存中进程的动态信息;

  • kill -9 pid 杀死进程。

  • 执行退出:exit

  • 查看当前路径:pwd

3、查看文件有哪些命令

  • vi 文件名 #编辑方式查看,可修改

  • cat 文件名 #显示全部文件内容

  • more 文件名 #分页显示文件内容

  • less 文件名 #与 more 相似,更好的是可以往前翻页

  • tail 文件名 #仅查看尾部,还可以指定行数

  • head 文件名 #仅查看头部,还可以指定行数

4、列举几个常用的 Linux 命令

列出文件列表:ls【参数 -a -l】
创建目录和移除目录:mkdir rmdir
用于显示文件后几行内容:tail,例如:tail -n 1000:显示最后 1000 行
打包:tar -xvf
打包并压缩:tar -zcvf
查找字符串:grep
显示当前所在目录:pwd 创建空文件:touch
编辑器:vim vi

5、你平时是怎么查看日志的?

Linux 查看日志的命令有多种:tail、cat、tac、head、echo 等,本文只介绍几种常用的方法。

  1. tail

最常用的一种查看方式
命令格式:tail[必要参数][选择参数][文件]

  • -f 循环读取

  • -q 不显示处理信息

  • -v 显示详细的处理信息

  • -c<数目> 显示的字节数

  • -n<行数> 显示行数

  • -q, --quiet, --silent 从不输出给出文件名的首部

  • -s --sleep-interval=S 与-f 合用,表示在每次反复的间隔休眠 S 秒

例如:

tail -n 10 test.log 查询日志尾部最后 10 行的日志;
tail -n +10 test.log 查询 10 行之后的所有日志;
tail -fn 10 test.log 循环实时查看最后 1000 行记录 (最常用的)
一般还会配合着 grep 搜索用,例如 :
tail -fn 1000 test.log | grep '关键字'
如果一次性查询的数据量太大,可以进行翻页查看,例如:
tail -n 4700 aa.log |more -1000 可以进行多屏显示 (ctrl + f 或者 空格键可以快捷键)
  1. head
    跟 tail 是相反的 head 是看前多少行日志
    head -n 10 test.log 查询日志文件中的头 10 行日志;
    head -n -10 test.log 查询日志文件除了最后 10 行的其他所有日志;
    head 其他参数参考 tail

  2. cat
    cat 是由第一行到最后一行连续显示在屏幕上

  • 一次显示整个文件:$ cat filename

  • 从键盘创建一个文件 : $cat > filename

  • 将几个文件合并为一个文件: $cat file1 file2 > file 只能创建新文件,不能编辑已有文件

  • 将一个日志文件的内容追加到另外一个 : $cat -n textfile1 > textfile2

  • 清空一个日志文件:$cat : >textfile2
    注意:> 意思是创建,>>是追加。千万不要弄混了。

cat 其他参数参考 tail

  1. more
    more 命令是一个基于 vi 编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持 vi 中的关键字定位操作。more 名单中内置了若干快捷键,常用的有 H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。more 命令从前向后读取文件,因此在启动时就加载整个文件。

该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:–More–(XX%)
more 的语法:more 文件名

  • Enter 向下 n 行,需要定义,默认为 1 行

  • Ctrl f 向下滚动一屏

  • 空格键 向下滚动一屏

  • Ctrl b 返回上一屏

  • = 输出当前行的行号

  • :f 输出文件名和当前行的行号

  • v 调用 vi 编辑器

  • ! 命令 调用 Shell,并执行命令

  • q 退出 more

  1. sed
    这个命令可以查找日志文件特定的一段 , 根据时间的一个范围查询,可以按照行号和时间范围查询按照行号

sed -n '5,10p' filename 这样你就可以只查看文件的第 5 行到第 10 行。
按照时间段 sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log

  1. less
    less 命令在查询日志时,一般流程是这样的 less log.log
    shift + G 命令到文件尾部 然后输入?加上你要搜索的关键字例如?1213

按 n 向上查找关键字
shift+n 反向查找关键字

less 与 more 类似,使用 less 可以随意浏览文件,而 more 仅能向前移动,不能向后移动,而且 less 在查 看之前不会加载整个文件。

less log2013.log 查看文件
ps -ef | less ps 查看进程信息并通过 less 分页显示
history | less 查看命令历史使用记录并通过 less 分页显示
less log2013.log log2014.log 浏览多个文件

常用命令参数:

  • -b <缓冲区大小> 设置缓冲区的大小

  • -g 只标志最后搜索的关键词

  • -i 忽略搜索时的大小写

  • -m 显示类似 more 命令的百分比

  • -N 显示每行的行号

  • -o <文件名> 将 less 输出的内容在指定文件中保存起来

  • -Q 不使用警告音

  • -s 显示连续空行为一行

  • /字符串:向下搜索"字符串"的功能

  • ?字符串:向上搜索"字符串"的功能

  • n:重复前一个搜索(与 / 或 ? 有关)

  • N:反向重复前一个搜索(与 / 或 ? 有关)

  • b 向后翻一页

  • h 显示帮助界面

  • q 退出 less 命令

一般本人查日志配合应用的其他命令

history // 所有的历史记录
history | grep XXX // 历史记录中包含某些指令的记录
history | more // 分页查看记录
history -c // 清空所有的历史记录

!! 重复执行上一个命令

查询出来记录后选中 : !323

上次编辑于:
贡献者: soulballad