Shell考题初级篇
将当前目录下大于10K的文件转移到/tmp目录下
- find . -type f -size +10k -exec mv {} /tmp \;
编写一个shell,判断用户输入的文件是否是一个字符设备文件。如果是,请将其拷贝至/dev目录下
- #!/bin/bash
- read -t -p 'Please output the file you specified:' str1
- # 读取用户输入内容
- if [ -n ${str1} ] && [ -e ${str1} ];
- # 判断文件的真伪
- then
- str2=$(ls -l ${str1})
- str3=${str2::}
- if [ $str3 == "c" ];
- # 判断文件是否是块设备
- then
- mv $str1 /dev/
- fi
- else
- echo "Input is wrong."
- fi
请解释该脚本中注释行的默认含义与基础含义
- #!/bin/sh
- # chkconfig:
- # /etc/rc.d/rc.httpd
- # Start/stop/restart the Apache web server.
- # To make Apache start automatically at boot, make this
- # file executable: chmod /etc/rc.d/rc.httpd
- case "$1" in
- 'start')
- /usr/sbin/apachectl start ;;
- 'stop')
- /usr/sbin/apachectl stop ;;
- 'restart')
- /usr/sbin/apachectl restart ;;
- *)
- echo "usage $0 start|stop|restart" ;;
- esac
- 请解释该脚本中注释行的默认含义与基础含义
- 第一行:指定脚本文件的解释器
- 第二行:指定脚本文件在chkconfig程序中的运行级别,2345代表具体用户模式启动(可用'-'代替),20表示启动的优先级,80代表停止的优先级。优先级数字越小表示越先被执行
- 第三行:告诉使用者脚本文件应存放路劲
- 第四行:告诉用户启动方式以及启动的用途
- 第五行:对于脚本服务的简单描述
- 第六行:文件的扩展可执行操作
写一个简单的shell添加10个用户,用户名以user开头
- #!/bin/bash
- for i in `seq `;
- do
- useradd user${i}
- done
写一个简单的shell删除10个用户,用户名以user开头
- #!/bin/bash
- for i in `seq `;
- do
- userdel -r user${i}
- done
写一个shell,在备份并压缩/etc目录的所有内容,存放在/tmp/目录里,且文件名如下形式yymmdd_etc.tar.gz
- #!/bin/bash
- NAME=$(date +%y%m%d)_etc.tar.gz
- tar -zcf /tmp/${NAME} /etc
批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串)
- #!/bin/bash
- for i in `seq `;
- do
- useradd oldboy${i}
- echo $RANDOM | md5sum | cut -c - | passwd --stdin oldboy${i}
- done
写一个脚本,实现判断192.168.10.0/24网络里,当前在线用户的IP有哪些(方法有很多)
- #!/bin/bash
- red="\e[31m"
- shutdown="\e[0m"
- green="\e[32m"
- for((i=;i<=;i++))
- do
- ping -c -W1 -w 0.1 192.168..${i} &> /dev/null
- if [ $? -eq ]
- then
- echo -e "${green}"192.168..${i}${shutdown}" is running."
- else
- echo -e "${red}"192.168..${i}${shutdown}" is stop."
- fi
- done
取出/etc/passwd文件中shell出现的次数
注:shell是指后面的/bin/bash,/sbin/nologin等
- awk -F: '{print $7}' /etc/passwd | sort | uniq -c
文档合并,并输出指定样式内容
- Jason Smith
- John Doe
- Sanjay Gupta
- Ashok Sharma
employee.txt
- $,
- $
- $,
- $,
bonus.txt
- ashok sharma $,
- jason smith $,
- john doe $
- sanjay gupta $,
处理结果
- paste employee.txt bonus.txt | awk '{print $1,$2,$3,$5}' | tr '[A-Z]' '[a-z]' | sort -k
答案
请按照这样的日期格式(xxxx-xx-xx)每日生成一个文件,例如今天生成的文件为2017-07-05.log, 并且把磁盘的使用情况写到到这个文件中
- df -h > $(date '+%Y-%m-%d').log
Shell考题初级篇的更多相关文章
- Shell考题中级篇
写脚本实现,可以用shell.perl等.把文件b中有的,但是文件a中没有的所有行,保存为文件c,并统计c的行数. grep -v -x bbb -f aaa > ccc && ...
- 零基础学习hadoop到上手工作线路指导初级篇:hive及mapreduce
此篇是在零基础学习hadoop到上手工作线路指导(初级篇)的基础,一个继续总结.五一假期:在写点内容,也算是总结.上面我们会了基本的编程,我们需要对hadoop有一个更深的理解:hadoop分为h ...
- [转帖]APP逆向神器之Frida【Android初级篇】
APP逆向神器之Frida[Android初级篇] https://juejin.im/post/5d25a543e51d455d6d5358ab 说到逆向APP,很多人首先想到的都是反编译,但是单看 ...
- Python 正则表达式入门(初级篇)
Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...
- python 面向对象初级篇
Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...
- 25个增强iOS应用程序性能的提示和技巧(初级篇)
25个增强iOS应用程序性能的提示和技巧(初级篇) 标签: ios内存管理性能优化 2013-12-13 10:53 916人阅读 评论(0) 收藏 举报 分类: IPhone开发高级系列(34) ...
- ASP.NET MVC 随想录——开始使用ASP.NET Identity,初级篇(转)
ASP.NET MVC 随想录——开始使用ASP.NET Identity,初级篇 阅读目录 ASP.NET Identity 前世今生 建立 ASP.NET Identity 使用ASP.NET ...
- python_way ,day7 面向对象 (初级篇)
面向对象 初级篇 python支持 函数 与 面向对象 什么时候实用面向对象? 面向对象与函数对比 类和对象 创建类 class 类名 def 方法名(self,xxxx) 类里面的方法,只能 ...
- Entity Framework 学习初级篇--基本操作:增加、更新、删除、事务(转)
摘自:http://www.cnblogs.com/xray2005/archive/2009/05/17/1458568.html 本节,直接写通过代码来学习.这些基本操作都比较简单,与这些基本操作 ...
随机推荐
- git之分支
分支相互之间互不干扰 1.小乌龟创建分支,切换/检出 创建后直接切换到该分支,另一个需要再切换一下. 2.点击这个可以看到所有的分支,进行删除操作. 3.在fen1,fen2分别进行操作更新,互不 ...
- JDK源码那些事儿之浅析Thread上篇
JAVA中多线程的操作对于初学者而言是比较难理解的,其实联想到底层操作系统时我们可能会稍微明白些,对于程序而言最终都是硬件上运行二进制指令,然而,这些又太过底层,今天来看一下JAVA中的线程,浅析JD ...
- 并查集的超市问题---溜TM的
三个月前我就错了,现在又错了,我就是个傻****** 服了,看图哇 打扰了... #include<cstdio> #include<iostream> #include< ...
- 用Robot Framework+python来测试基于socket通讯的C/S系统(网络游戏)
项目终于换了方案,改用socket来实现而不是之前的http了,所以测试工具就不能用以前的了,因为测试人手少,逼不得已的必须要挖掘更多的自动化方案来弥补.于是先研究了下python的socket解决方 ...
- Echarts大数据可视化物流航向省份流向迁徙动态图,开发全解+完美参数注释
最近在研究Echarts的相关案例,毕竟现在大数据比较流行,比较了D3.js.superset等相关的图表插件,还是觉得echarts更简单上手些. 本文是以原生JS为基础,如果使用Vue.js的话, ...
- less实现if else
less没有我们平常使用的if,else条件判断,而是用when来实现这种用法 1.比如我们要设置宽度 宽度可以百分比,也可以是像素,当是百分比时做对应处理,当是px时做另一种处理,这时候就需要用wh ...
- String字符串,输入一串字符判断其中数字,字母,其他的字符的个数
public class StringClassTest { public static void main(String[] args) { //遍历字符串 String str = "H ...
- Scanner使用方法
import java.util.Scanner; //导入包 public void main (String args[]){ Scanner a=new Scanner(System.in); ...
- 【GeneXus】开发移动APP时,如何使用Canvas进行布局?
当我们开发移动端APP的时候,经常遇到一种布局方式,那就是层级的布局,比如:一张照片我想在照片的上面显示它的名称,但不影响我照片展示的布局大小,也就是这个名称是浮在照片上的,如图: 如果要实现这样的布 ...
- 揭秘webpack plugin
前言 Plugin(插件) 是 webpack 生态的的一个关键部分.它为社区提供了一种强大的方法来扩展 webpack 和开发 webpack 的编译过程.这篇文章将尝试探索 webpack plu ...