将当前目录下大于10K的文件转移到/tmp目录下

  1. find . -type f -size +10k -exec mv {} /tmp \;

编写一个shell,判断用户输入的文件是否是一个字符设备文件。如果是,请将其拷贝至/dev目录下

  1. #!/bin/bash
  2. read -t -p 'Please output the file you specified:' str1
  3. # 读取用户输入内容
  4.  
  5. if [ -n ${str1} ] && [ -e ${str1} ];
  6. # 判断文件的真伪
  7. then
  8. str2=$(ls -l ${str1})
  9. str3=${str2::}
  10. if [ $str3 == "c" ];
  11. # 判断文件是否是块设备
  12. then
  13. mv $str1 /dev/
  14. fi
  15. else
  16. echo "Input is wrong."
  17. fi

请解释该脚本中注释行的默认含义与基础含义

  1. #!/bin/sh
  2. # chkconfig:
  3. # /etc/rc.d/rc.httpd
  4. # Start/stop/restart the Apache web server.
  5. # To make Apache start automatically at boot, make this
  6. # file executable: chmod /etc/rc.d/rc.httpd
  7. case "$1" in
  8. 'start')
  9. /usr/sbin/apachectl start ;;
  10. 'stop')
  11. /usr/sbin/apachectl stop ;;
  12. 'restart')
  13. /usr/sbin/apachectl restart ;;
  14. *)
  15. echo "usage $0 start|stop|restart" ;;
  16. esac
  1. 请解释该脚本中注释行的默认含义与基础含义
  2. 第一行:指定脚本文件的解释器
  3. 第二行:指定脚本文件在chkconfig程序中的运行级别,2345代表具体用户模式启动(可用'-'代替),20表示启动的优先级,80代表停止的优先级。优先级数字越小表示越先被执行
  4. 第三行:告诉使用者脚本文件应存放路劲
  5. 第四行:告诉用户启动方式以及启动的用途
  6. 第五行:对于脚本服务的简单描述
  7. 第六行:文件的扩展可执行操作

写一个简单的shell添加10个用户,用户名以user开头

  1. #!/bin/bash
  2. for i in `seq `;
  3. do
  4. useradd user${i}
  5. done

写一个简单的shell删除10个用户,用户名以user开头

  1. #!/bin/bash
  2. for i in `seq `;
  3. do
  4. userdel -r user${i}
  5. done

写一个shell,在备份并压缩/etc目录的所有内容,存放在/tmp/目录里,且文件名如下形式yymmdd_etc.tar.gz

  1. #!/bin/bash
  2. NAME=$(date +%y%m%d)_etc.tar.gz
  3. tar -zcf /tmp/${NAME} /etc

批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串)

  1. #!/bin/bash
  2. for i in `seq `;
  3. do
  4. useradd oldboy${i}
  5. echo $RANDOM | md5sum | cut -c - | passwd --stdin oldboy${i}
  6. done

写一个脚本,实现判断192.168.10.0/24网络里,当前在线用户的IP有哪些(方法有很多)

  1. #!/bin/bash
  2. red="\e[31m"
  3. shutdown="\e[0m"
  4. green="\e[32m"
  5. for((i=;i<=;i++))
  6. do
  7. ping -c -W1 -w 0.1 192.168..${i} &> /dev/null
  8. if [ $? -eq ]
  9. then
  10. echo -e "${green}"192.168..${i}${shutdown}" is running."
  11. else
  12. echo -e "${red}"192.168..${i}${shutdown}" is stop."
  13. fi
  14. done

取出/etc/passwd文件中shell出现的次数

注:shell是指后面的/bin/bash,/sbin/nologin等

  1. awk -F: '{print $7}' /etc/passwd | sort | uniq -c

文档合并,并输出指定样式内容

  1. Jason Smith
  2. John Doe
  3. Sanjay Gupta
  4. Ashok Sharma

employee.txt

  1. $,
  2. $
  3. $,
  4. $,

bonus.txt

  1. ashok sharma $,
  2. jason smith $,
  3. john doe $
  4. sanjay gupta $,

处理结果

  1. 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, 并且把磁盘的使用情况写到到这个文件中

  1. df -h > $(date '+%Y-%m-%d').log

Shell考题初级篇的更多相关文章

  1. Shell考题中级篇

    写脚本实现,可以用shell.perl等.把文件b中有的,但是文件a中没有的所有行,保存为文件c,并统计c的行数. grep -v -x bbb -f aaa > ccc && ...

  2. 零基础学习hadoop到上手工作线路指导初级篇:hive及mapreduce

      此篇是在零基础学习hadoop到上手工作线路指导(初级篇)的基础,一个继续总结.五一假期:在写点内容,也算是总结.上面我们会了基本的编程,我们需要对hadoop有一个更深的理解:hadoop分为h ...

  3. [转帖]APP逆向神器之Frida【Android初级篇】

    APP逆向神器之Frida[Android初级篇] https://juejin.im/post/5d25a543e51d455d6d5358ab 说到逆向APP,很多人首先想到的都是反编译,但是单看 ...

  4. Python 正则表达式入门(初级篇)

    Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...

  5. python 面向对象初级篇

    Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...

  6. 25个增强iOS应用程序性能的提示和技巧(初级篇)

    25个增强iOS应用程序性能的提示和技巧(初级篇) 标签: ios内存管理性能优化 2013-12-13 10:53 916人阅读 评论(0) 收藏 举报  分类: IPhone开发高级系列(34)  ...

  7. ASP.NET MVC 随想录——开始使用ASP.NET Identity,初级篇(转)

    ASP.NET MVC 随想录——开始使用ASP.NET Identity,初级篇   阅读目录 ASP.NET Identity 前世今生 建立 ASP.NET Identity 使用ASP.NET ...

  8. python_way ,day7 面向对象 (初级篇)

    面向对象 初级篇   python支持 函数 与 面向对象   什么时候实用面向对象? 面向对象与函数对比 类和对象 创建类 class 类名 def 方法名(self,xxxx) 类里面的方法,只能 ...

  9. Entity Framework 学习初级篇--基本操作:增加、更新、删除、事务(转)

    摘自:http://www.cnblogs.com/xray2005/archive/2009/05/17/1458568.html 本节,直接写通过代码来学习.这些基本操作都比较简单,与这些基本操作 ...

随机推荐

  1. git之分支

    分支相互之间互不干扰 1.小乌龟创建分支,切换/检出   创建后直接切换到该分支,另一个需要再切换一下. 2.点击这个可以看到所有的分支,进行删除操作. 3.在fen1,fen2分别进行操作更新,互不 ...

  2. JDK源码那些事儿之浅析Thread上篇

    JAVA中多线程的操作对于初学者而言是比较难理解的,其实联想到底层操作系统时我们可能会稍微明白些,对于程序而言最终都是硬件上运行二进制指令,然而,这些又太过底层,今天来看一下JAVA中的线程,浅析JD ...

  3. 并查集的超市问题---溜TM的

    三个月前我就错了,现在又错了,我就是个傻****** 服了,看图哇 打扰了... #include<cstdio> #include<iostream> #include< ...

  4. 用Robot Framework+python来测试基于socket通讯的C/S系统(网络游戏)

    项目终于换了方案,改用socket来实现而不是之前的http了,所以测试工具就不能用以前的了,因为测试人手少,逼不得已的必须要挖掘更多的自动化方案来弥补.于是先研究了下python的socket解决方 ...

  5. Echarts大数据可视化物流航向省份流向迁徙动态图,开发全解+完美参数注释

    最近在研究Echarts的相关案例,毕竟现在大数据比较流行,比较了D3.js.superset等相关的图表插件,还是觉得echarts更简单上手些. 本文是以原生JS为基础,如果使用Vue.js的话, ...

  6. less实现if else

    less没有我们平常使用的if,else条件判断,而是用when来实现这种用法 1.比如我们要设置宽度 宽度可以百分比,也可以是像素,当是百分比时做对应处理,当是px时做另一种处理,这时候就需要用wh ...

  7. String字符串,输入一串字符判断其中数字,字母,其他的字符的个数

    public class StringClassTest { public static void main(String[] args) { //遍历字符串 String str = "H ...

  8. Scanner使用方法

    import java.util.Scanner; //导入包 public void main (String args[]){ Scanner a=new Scanner(System.in); ...

  9. 【GeneXus】开发移动APP时,如何使用Canvas进行布局?

    当我们开发移动端APP的时候,经常遇到一种布局方式,那就是层级的布局,比如:一张照片我想在照片的上面显示它的名称,但不影响我照片展示的布局大小,也就是这个名称是浮在照片上的,如图: 如果要实现这样的布 ...

  10. 揭秘webpack plugin

    前言 Plugin(插件) 是 webpack 生态的的一个关键部分.它为社区提供了一种强大的方法来扩展 webpack 和开发 webpack 的编译过程.这篇文章将尝试探索 webpack plu ...