`
famoushz
  • 浏览: 2952359 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

shell 面试题汇集

阅读更多

利用 top 取某个进程的 CPU 的脚本 :

 

st1\:*{behavior:url(#ieooui) } <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"\@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} a:link, span.MsoHyperlink {color:blue; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline; text-underline:single;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->

2009-8-21

磁针石: xurongzhong#gmail.com

博客: oychw.cublog.cn



#/bin/sh

Max_CPU=0
Avg_CPU=0
Total_Time=1

Process=$1
Interval=$2

# check the parameters
if [ $# -ne 2 ]; then
   echo "Usage: $0 ProcessName Interval"
   exit
fi

LogFile="Per.txt"
echo "`date`" > $LogFile

while sleep $Interval
do
   top -d 1 -n 1|grep $Process|grep -v grep|awk '{print $9"\t"$10}' >> $LogFile
done

 

判断是否是设备文件

 

#/bin/bash

echo -e "The program will Judge a file is or not a device file.\n\n"

read -p "Input a filename:" filename

if [ -b $filename -o -c $filename ]; then

         echo "$filename is a device file"

        exit 0

else

        echo "$filename is not a device file"

        exit 1

firead –p :用于在读数据时输出提示信息

 

注意! [ 之间是有空格的: if ! [ -f $filename ] ; then 。一般用 if [ ! * ]

 

添加用户:

 

#/bin/bash

 

groupadd -f class1

for i in {9909..9911}

do

        xx=`echo $i | sed 's/99//g'`

        useradd -g class1 std${xx}

        echo std${xx} | passwd std${xx} --stdin

        echo -e "user std${xx} passwd is std${xx}">>/root/newuser.txt

done

exit 0

 

       注意等号的前后不要有空格: xx=`echo $i | sed 's/99//g'`

       变量如果前后有字符,要是大括号

 

统计 IP 访问:

要求分析 apache 访问日志,找出访问页面数量在前 100 位的 IP 数。日志大小在 78M 左右。以下是 apache 的访问日志节选

 

202.101.129.218 - - [26/Mar/2006:23:59:55 +0800] "GET /online/stat_inst.php?pid=d065 HTTP/1.1" 302 20-"-" "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"

 

 

# awk '{print $1}' log      |sort |uniq -c|sort -r |head -n10

      5 221.224.78.15

      3 221.233.19.137

      1 58.63.148.135

      1 222.90.66.142

      1 222.218.90.239

      1 222.182.95.155

      1 221.7.249.206

      1 221.237.232.191

      1 221.235.61.109

      1 219.129.183.122

 

这个地方有个疑问,为什么在使用 uniq 之前要 sort

 

2 个数之和

#/bin/bash

typeset first second

read -p "Input the first number:" first

read -p "Input the second number:" second

result=$[$first+$second]

echo "result is : $result"

exit 0

 

 

文本分析

取出 password shell 出现的次数
第一种方法结果 :
      4 /bin/bash
      1 /bin/sync
      1 /sbin/halt
     31 /sbin/nologin
      1 /sbin/shutdown
第二种方法结果 :
/bin/sync       1
/bin/bash       1
/sbin/nologin   30
/sbin/halt      1
/sbin/shutdown  1

 

答案:

cat /etc/passwd|awk -F: '{if ($7!="") print $7}'|sort|uniq –c

cat /etc/passwd|awk -F: '{if ($7!="") print $7}'|sort|uniq -c | awk '{print $2,$1}'

 

 

文件整理

employee 文件中记录了工号和姓名
employee.txt:
100 Jason Smith
200 John Doe
300 Sanjay Gupta
400 Ashok Sharma
bonus
文件中记录工号和工资
bonus.txt:
100 $5,000
200 $500
300 $3,000
400 $1,250
要求把两个文件合并并输出如下
处理结果 :
400 ashok sharma $1,250
100 jason smith  $5,000
200 john doe  $500
300 sanjay gupta  $3,000

 

答案: join employee bonus | sort -k 2

 

 

打印本机的交换分区大小

处理结果 :
Swap:1024M

 

free -m | sed -n '/Swap/p' | awk '{ print $2}'

free -m | sed -n 's/Swap:\ *\([0-9]*\).*/\1/p'

 

输出本机创建 20000 个目录所用的时间

处理结果 :
real    0m3.367s
user    0m0.066s
sys     0m1.925s

 

答案:

# time for i in {1..2000} ; do mkdir /root/neil$i; done

 

real    0m6.200s

user    0m1.128s

sys     0m4.710s

 

打印当前 sshd 的端口和进程 id

处理结果 :
sshd Port&&pid: 22 5412

 

答案: netstat -anp | grep sshd | sed -n 's/.*:::\([0-9]*\)\ .* \ \([0-9]*\)\/sshd/\1 \2/p'

 

打印 root 可以使用可执行文件数

处理结果 :
root's bins: 2306

 

echo "root's bins: $(find ./ -type f | xargs ls -l | sed '/-..x/p' | wc -l)"

root's bins: 3664

 

编译当前目录下的所有 .c 文件:

 

for file in *.c; do echo $file ; gcc -o $(basename $file .c) $file  ; sleep 2;  done > compile 2>&1

 

将一目录下所有的文件的扩展名改为 bak

for i in *.*;do mv $i ${i%%.*}.bak;done

分享到:
评论

相关推荐

    linux运维学习笔记:企业Shell面试题总结-2.pdf

    linux运维学习笔记:企业Shell面试题总结-2

    5个实用的shell脚本面试题和答案

    这边提到的5个面试问题,延续之前的有关Linux面试问题和答案。如果你是Tecmint的读者,你的支持我非常感谢。 1. 写一个shell脚本来得到当前的日期,时间,用户名和当前工作目录。 答案 : 输出用户名,当前日期和时间...

    linux运维学习笔记:企业Shell面试题总结-1.pdf

    根据提供的文件信息,本文将总结其中的Linux运维学习笔记中提及的多个企业Shell面试题及其解决方案和知识点。 1. 批量生成随机字符文件名案例 该案例主要考察使用Shell脚本批量创建文件,并为每个文件赋予随机生成...

    linux/shell面试题

    以下是一些基于"Linux/Shell面试题"的相关知识点,这些知识点可能会出现在面试中,对提升技能和准备面试非常有帮助。 1. **Linux基础** - 文件系统:理解EXT2、EXT3、EXT4、XFS等常见Linux文件系统的特点和区别。 ...

    linuxshell面试题

    根据提供的信息,我们可以总结出以下关于Linux Shell面试题的相关知识点: ### Linux Shell 面试题概述 #### 1. Linux Shell 基础概念 - **Shell 的定义**: Shell 是用户与操作系统之间的接口,是一种命令解释器。...

    shell面试题大全

    shell 面试题大全 shell 是一个命令行解释器,主要用于 Unix 和 Linux 操作系统中。它提供了一种交互式的命令行界面,允许用户输入命令来执行各种操作。shell 也是一个脚本语言,可以编写脚本来自动执行一系列命令...

    Shell、awk、sed面试题汇总(无答案).doc

    Shell、awk、sed 面试题汇总 以下是从给定的文件中生成的相关知识点: Shell 1. 变量赋值:在 Shell 中,可以使用多种方法来赋值变量,包括直接赋值、使用 `read` 命令、使用命令行参数和使用命令的输出。 2. ...

    Shell编程常见面试题(待续)

    以下是一些常见的Shell编程面试题及其详细解答: 1. **查询空行所在的行号** 使用`awk`命令,通过正则表达式`/^$/{print NR}`匹配空行,并打印出对应的行号。`^`表示行首,`$`表示行尾,`NR`是awk内置变量,代表...

    2024年必知必会的 Shell 脚本面试题

    shell脚本【内容概要】 这篇文章为面试者提供了关于Shell脚本常考面试题的详细解析。文章内容包括Shell脚本的基础概念、语法和结构、文件操作、常见面试题及解答。文章旨在帮助面试者更好地准备与Shell脚本相关的...

    25道shell面试题借鉴.pdf

    以下是对给定文件中25道shell面试题的详细解释: 1. 使用`sed`修改`test.txt`的第23行,将`test`改为`tset`: `sed -i '23s/test/tset/g' test.txt` 这条命令使用`-i`选项直接在文件中修改,`23s`指定第23行,`...

    百度面试题 shell

    根据给定的信息,我们可以从以下几个方面来探讨与“百度面试题 shell”相关的知识点: ### 一、斐波那契数列实现(Shell版) 题目要求使用Shell脚本编写斐波那契数列的生成器。这里提供的代码示例是Python语言的...

    25道shell面试题1

    19、1到10数字相加,写出shell脚本 #!

    大数据技术之高频面试题8.0.2.pdf

    大数据技术之高频面试题8.0.2.pdf 以下是从给定文件中生成的相关知识点: Linux和Shell * Linux常用高级命令:包括文件管理、进程管理、磁盘管理、网络管理等命令。 * Shell常用工具及写过的脚本:包括sed、awk、...

    shell编程面试题.doc

    以上就是针对给定的Shell编程面试题涉及的各个知识点的详细解释。这些知识点涵盖了基本的脚本编写、文件操作、系统监控、网络服务管理和日志分析等方面,是Linux系统管理员和运维工程师必备的技能。通过掌握这些技能...

    2022超全后台开发面试题整理合集(22份).zip

    108道 Shell脚本面试题.pdf 微服务面试题.pdf 消息队列面试题.pdf ansible面试题.pdf DevOps & CI_CD 常见面试题汇总.pdf Docker面试题.pdf dubbo面试题.pdf Go 语言面试题合集.pdf Golang面试题.pdf Jenkins面试题....

    shell经典的面试题目

    【Shell经典面试题解析】 1. **打印1-99的奇数到文件** 这个面试题考察的是基本的shell命令使用。通过`seq`命令我们可以生成一系列的数字,`seq`的语法是`seq [选项] [起始值] [终止值]`。在题目的例子中,`seq 1 ...

    马哥运维推荐的108道Shell脚本面试真题

    Shell脚本是Linux系统管理的重要工具,用于自动化执行一系列...以上内容涵盖了部分Shell脚本面试题的重点,深入理解和熟练应用这些知识点对于运维工程师至关重要,不仅能提高面试竞争力,还能在实际工作中提升效率。

    04-大数据技术之高频面试题9.0.5.pdf

    以上就是根据给定的大数据技术高频面试题文档中涉及的主要知识点的详细解析。这些知识点涵盖了从操作系统层面上的Linux与Shell,到大数据平台层面上的Hadoop及其组件等多个方面,对于准备面试或者想要深入了解大数据...

Global site tag (gtag.js) - Google Analytics