企业Shell面试题8:筛选符合长度的单词案例 利用bash for循环打印下面这句话中字母数不大于6的单词(某企业面试真题). I am oldboy teacher welcome to oldboy trainingclass 解答: [root@jenkins scripts]# sh danci.sh I am to [root@jenkins scripts]# cat danci.sh #!/bin/bash ####################################…
企业Shell面试题5:解决DOS攻击生产案例 写一个Shell脚本解决DOS攻击生产案例. 请根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100(读者根据实际情况设定),即调用防火墙命令封掉对应的IP.防火墙命令为:iptables-I INPUT -s IP地址 -j DROP. [root@web03 scripts]# cat dos_gj.sh #!/bin/bash #tt=--.txt| #获取同一时间段和同一IP共同作为下标的数组,数组下标具有唯一…
19.1.4企业Shell面试题4:扫描网络内存活主机案例 写一个Shell脚本,判断10.0.0.0/24网络里,当前在线的IP有哪些? [root@st153 tools]# cat check_user.sh #!/bin/bash bb= .{..} do aa=$(|awk 'NR==6{print $4}') ] then echo "${i} is online" ((bb+=)) fi done echo $bb 方法二: [root@cache01 yum.repos…
1.企业Shell面试题1:批量生成随机字符文件名案例 使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下: 1 2 3 4 5 [root@oldgirl C19]# ls /oldboy apquvdpqbk_oldboy.html  mpyogpsmwj_oldboy.html  txynzwofgg_oldboy.html bmqiwhfpgv_oldboy.html  mtrzobsprf_old…
0 运行环境 本机系统:Windows 10 虚拟机软件:Oracle VM VirtualBox 6 虚拟机系统:Ubuntu 18 1 引言 - 编译过程 我们知道在 CPU 上执行的是低级别的机器语言,从高级语言到低级别的机器语言是要经过 4 个编译过程,以 Linux 下 GCC 编译 C 语言程序的过程为例, 如下图所示: 预处理:编译器将 C 源代码中的包含的头文件如stdio.h编译进来,替换宏. gcc -E hello.c -o hello.i 编译:GCC 首先要检查代码的规…
描述 计算字符串最后一个单词的长度,单词以空格隔开. 知识点 字符串,循环 运行时间限制 0M 内存限制 0 输入 一行字符串,长度小于128. 输出 整数N,最后一个单词的长度. 样例输入 hello world 样例输出 5 测试OK代码: import java.util.Scanner; public class Main{ public static void main(String[] args) { int i; // System.out.println("请输入字符串:&quo…
//计算字符串最后一个单词的长度,单词以空格隔开. #include<stdio.h> #include<string.h> #include<windows.h> int main() { ]; gets(str); ; int len=strlen(str); );i>=;i--) { if(str[i]!=' ') { count++; } else { break; } } printf("%d\n",count); system(&q…
题目描述:计算字符串最后一个单词的长度,单词以空格隔开.  输入描述: 一行字符串,非空,长度小于5000. 输出描述: 整数N,最后一个单词的长度. #coding=utf-8 str = raw_input('enter a string:') if str.strip() !=0 and len(str)<5000: count = len(str.split()[-1]) print count else: print '输入错误!!!' 知识梳理: strip()方法语法: 声明:s为…
这些题目收集自网络,对比原来的答案,又根据实际情况重新编写了自己的答案 企业实践题1: (生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进程脚本每30秒实现检测一次.阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误. 阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分) 重点语句分析mysql查看状态语句 mysql>s…
在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快. 一.判断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var相同     ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${var:-DEFAULT} 如果var没有被声明, 或者其值为空, 那…
Shell在编程方面比Windows批处理强大很多,无论是在循环.运算. bash支持一维数组(不支持多维数组),并且没有限定数组的大小.类似与C语言,数组元素的下标由0开始编号.获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0. 定义数组 在Shell中,用括号来表示数组,数组元素用“空格”符号分割开.定义数组的一般形式为:     array_name=(value1 ... valuen) 例如: array_name=(value0 value1 value2…
Shell在编程方面比Windows批处理强大很多,无论是在循环.运算. bash支持一维数组(不支持多维数组),并且没有限定数组的大小.类似与C语言,数组元素的下标由0开始编号.获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0. 定义数组 在Shell中,用括号来表示数组,数组元素用“空格”符号分割开.定义数组的一般形式为:     array_name=(value1 ... valuen) 例如: array_name=(value0 value1 value2…
1) 如何向脚本传递参数 ? ./script argument 例子: 显示文件名称脚本 ./show.sh file1.txt cat show.sh #!/bin/bash echo $1 (LCTT 译注:谢谢某匿名访客的提醒,原题有误,修改之.) 2) 如何在脚本中使用参数 ? 第一个参数 : $1,第二个参数 : $2 例子 : 脚本会复制文件(arg1) 到目标地址(arg2) ./copy.sh file1.txt /tmp/ cat copy.sh #!/bin/bash cp…
1.面试题:使用for循环在/tmp目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串template,示例如下 aaesdffbnv_template.html 方法1: ;i<;i++));-`_template.html;done 方法2: `; | -`_template.html;done 2.面试题:批量改名 将以上所得的文件名中的template全部改成leon,并且将html改成大写 方法1: rename template.html leon.…
1.给一个放有IP的文件,其中一个IP一行,统计哪个IP出现的次数最多. ip_input.txt内容如下: 219.217.49.14 175.43.4.87 87.48.98.1 59.73.38.25 219.217.50.14 59.92.48.32 219.217.49.14 59.72.38.142 59.73.38.25 219.217.49.14 用shell脚本实现如下: | }’ 命令拆解结果如下: sort ip_input.txt: sort ip_input.txt:|…
  1. 用sed修改test.txt的23行test为tset:     sed –i ‘23s/test/tset/g’ test.txt 2. 查看/web.log第25行第三列的内容.     sed –n ‘25p’ /web.log | cut –d “ ” –f3     head –n25 /web.log | tail –n1 | cut –d “ ” –f3     awk –F “ ” ‘NR==23{print $3}’ /web.log 3. 删除每个临时文件的最初三行…
方法一:Linq ChannelList就是一个List类型的数据,IsOpen 是其元素的属性 channelCount = (from channel in DevicesManager.Instance.CurrentDevice.ChannelList where channel.IsOpen group channel by channel.ChannelID).Count(); 方法二:泛型委托Predicate<T> public delegate bool Predicate&…
1.用Shell编程,判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下. #!/bin/bash#1.sh#判断一文件是不是字符或块设备文件,如果是将其拷贝到 /dev 目录下#file executable: chmod 755 1.shPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHecho -e "The program will Judge a file…
package com.sinaWeibo.interview; import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet; /** * @Author: weblee * @Email: likaiweb@163.com * @Blog: http://www.cnblogs.com/lkzf/ * @Time: 2014年10月25日下午5:22:58 * ************* fu…
一.取出/etc/passwd文件中shell出现的次数 问题:下面是一个/etc/passwd文件的部分内容.题目要求取出shell并统计次数,shell是指后面的/bin/bash,/sbin/nologin等,如下面/bin/bash出现12次,/sbin/nologin出现3次.   hyn:x:525:500::/home/hyn:/bin/bash    ljlxx:x:526:500::/home/ljlxx:/bin/bash    lzj:x:527:500::/home/lz…
1.按照给出的运行结果,编写一个名为xunhuan 的shell过程(用循环语句). 0 10 210 3210 43210 543210 6543210 76543210 876543210 2.编写一个名为cala的shell过程,其功能是小型计算器,可以进行两数加.减.乘.除运算.两操作数和运算符由位置参数给出(位置参数1和3分别是两操作数,位置参数2是运算符),并将四种运行结果追加存入cal文件中. 一: A= `; do A=$i$A ; echo $A ; done 二: ;i<;i…
题目:给定一个长度为N的数组,其中每个元素的取值范围都是1到N.判断数组中是否有重复的数字.(原数组不必保留) 方法1.对数组进行排序(快速,堆),然后比较相邻的元素是否相同.时间复杂度为O(nlogn),空间复杂度为O(1). 方法2.使用bitmap方法.定义长度为N/8的char数组,每个bit表示对应数字是否出现过.遍历数组,使用 bitmap对数字是否出现进行统计.时间复杂度为O(n),空间复杂度为O(n). 方法3.遍历数组,假设第 i 个位置的数字为 j ,则通过交换将 j 换到下…
按文件每行长度排序  awk -F: '{print length($0) " "  $0}' /etc/shadow | sort -r -n | awk '{print $2}'…
1.查找当前目录中所有大于500M的文件,把这些文件名写到一个文本文件中,并统计其个数.find ./ -size +500M -type f | tee file_list | wc -l 2.在目录/tmp下找到100个以abc开头的文件,然后把这些文件的第一行保存到文件new中.for filename in `find /tmp -type f -name "abc*"|head -n 100`dosed -n '1p' $filename>>newdone 3.把…
1. 从a.log文件中提取包含"WARNING"或"FATAL",同时不包含"IGNOR"的行,然后提取以":"分割的第5个字段 2. 编写一个脚本,只想简单的减法运算,要求提示输入变量 3. Shell脚本阅读(解释下面执行的功能),请挑出下面程序或脚本中的错误,并说明错在哪里. #!/bin/bash #监控cpuser的point端口是否正常 logname="/home/forum/log/lpointlo…
1.用Shell编程,判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下. #!/bin/bash#1.sh#判断一文件是不是字符或块设备文件,如果是将其拷贝到 /dev 目录下#file executable: chmod 755 1.shPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHecho -e “The program will Judge a file…
1. 用sed修改test.txt的23行test为tset: sed –i ‘23s/test/tset/g’ test.txt 2. 查看/web.log第25行第三列的内容. sed –n ‘25p’ /web.log | cut –d “ ” –f3 head –n25 /web.log | tail –n1 | cut –d “ ” –f3 awk –F “ ” ‘NR==23{print $3}’ /web.log 3. 删除每个临时文件的最初三行. sed –i ‘1,3d’ /t…
源地址:http://blog.csdn.net/zcsylj/article/details/6799632 1.用Shell编程,判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下. #!/bin/bash#1.sh#判断一文件是不是字符或块设备文件,如果是将其拷贝到 /dev 目录下#file executable: chmod 755 1.shPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbi…
企业实践题16:企业案例:写网络服务独立进程模式下rsync的系统启动脚本 例如:/etc/init.d/rsyncd{start|stop|restart} .要求:1.要使用系统函数库技巧.2.要用函数,不能一坨SHI的方式.3.可被chkconfig管理. 脚本1:自己写的 #!/bin/bash pidfile="/var/run/rsyncd.pid" result=`ps aux|grep 'rsync --daemon --config=*'|grep -v grep`…
#!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin HTMLFILE=/home/oldboy/html HTTP=http://oldboy.blog.51cto.com/all/2561410 NUM=$(curl $HTTP |awk -F "[ /]" '/页数/ {print $(NF-3)}') [ -d $HTMLFILE ]||mkdir $HTMLFILE -p ech…