大数据避免不了和linux系统打交道。其中一些简单的命令为就不说了,下面是面试的时候问我的关于linux一些问题。
问题一:关于linux查看进程的命令是什么
我的回答:jps
面试官希望的回答:
1.ps 查看进程的瞬间消息
2.top 实时监控进程的运行情况,类似于windows的任务管理器
3.netstat 查看系统中网络连接和端口的坚挺情况(网络端口)
4.jps 最基础的。查看所有进程的pid
其中ps可以搭配很多命令来来使用,比如ps -a。jps最基础,也最基本,所以有的时候开启了进程jps居然没看见!!别着急,可以用ps -ef|gerp java试一试。
问题二:查看内存的命令是什么
我的回答:忘了
面试官希望的回答:
1.total。一共的物理内存是多少
2.used。我用了多少
3.free。还剩多少
4.shared。多个进程共享的内存总额
5.Buffers/cached。磁盘缓存的大小
问题三:写一些简单地脚本
首先来一个最简单的:
#!/bin/bash
a = "hello world"
num = 2
echo "$a,${num}"
其中第一行是每个脚本进去都要写的,然后是a,num两个赋值,而linux下用的输出语句用的是echo,我打印的时候我直接在前面写上一个 $ (变量)就好,如果是数值的话,我就把变量加一个{}就好。
其次来一个稍微复杂一点的。
三个要求:
- 切换工作目录至/tmp
- 依次向/tmp目录中的每个文件或子目录问好
- 统计/tmp目录下共有多少个文件夹,并显示出来
#!/bin/bash
cd /tmp
for i in /tmp/*
do
echo "“hello,$i”
done
count=ls -l |grep "^-"|wc -l
echo "The num of the file is$count"
来一个进阶版的
QUESTION:把/home/test/文件夹下以TEST-YYYY-MM-DD.dog格式命名的五天前的文件删除
ANSWER :
#! /bin/bash
Removedir=/home/test/
dt = 'data + %y-%m-%d -d "5 day ago "'
for subdir in ls $RemoveDir;
do
if [ "${subdir}" \< "${dt}" ];
then
rm -rf $RemoveDir/$subdir >/dev/null
echo "The directory(date) $RemoveDir/$subdir has been removed."
fi
done