shell编程练习题

  1. 求2个数之和
  2. 计算1-100的和
  3. 将一目录下所有的文件的扩展名改为bak
  4. 编译当前目录下的所有.c文件:
  5. 打印root可以使用可执行文件数,处理结果: root's bins: 2306
  6. 打印当前sshd的端口和进程id,处理结果: sshd Port&&pid: 22 5412
  7. 输出本机创建20000个目录所用的时间,处理结果:

real    0m3.367s

user    0m0.066s

sys     0m1.925s

  1. 打印本机的交换分区大小,处理结果: Swap:1024M
  2. 文本分析,取出/etc/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

  1. 文件整理,employee文件中记录了工号和姓名, bonus文件中记录工号和工资要求把两个文件合并并输出如下,处理结果:(提示join)

400 ashok sharma $1,250

100 jason smith  $5,000

200 john doe  $500

300 sanjay gupta  $3,000

 

employee.txt:

100 Jason Smith

200 John Doe

300 Sanjay Gupta

400 Ashok Sharma

bonus.txt:

100 $5,000

200 $500

300 $3,000

400 $1,250

  1. 写一个shell脚本来得到当前的日期,时间,用户名和当前工作目录。
  2. 编写shell脚本获取本机的网络地址。
  3. 编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下
  4. 编写一个名为myfirstshell.sh的脚本,它包括以下内容。

a) 包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的。

b) 问候用户。

c) 显示日期和时间。

d) 显示这个月的日历。

e) 显示您的机器名。

f) 显示当前这个操作系统的名称和版本。

g) 显示父目录中的所有文件的列表。

h) 显示root正在运行的所有进程。

i) 显示变量TERM、PATH和HOME的值。

j) 显示磁盘使用情况。

k) 用id命令打印出您的组ID。

m) 跟用户说“Good bye”

  1. 文件移动拷贝,有m1.txt m2.txt m3.txt m4.txt,分别创建出对应的目录,m1 m2 m3 m4 并把文件移动到对应的目录下。
  2. root用户今天登陆了多长时间
  3. 终端输入一个文件名,判断是否是设备文件
  4. 统计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)"

  1. 设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。
  2. 设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30,并设置密码为对应的stdxx。
  3. 编写shell程序,实现自动删除30个账号的功能。账号名为std01至std30。
  4. 用户清理,清除本机除了当前登陆用户以外的所有用户
  5. 设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名,为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。
  6. 对于一个用户日志文件,每行记录了一个用户查询串,长度为1-255字节,共几千万行,请排出查询最多的前100条。 日志可以自己构造> 。 (提示:awk sort uniq head)
  7. 编写自己的ubuntu环境安装脚本
  8. 编写服务器守护进程管理脚本。

转载于:https://www.cnblogs.com/wanghao-boke/p/11568733.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/384824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shell编程题(一)

求2个数之和 #!/bin/bashfunction add {if(( $# < 2 )); thenecho "The arg int correct"elsesum$(($1$2))echo $sumfi }add 1 add 1 2 运行结果&#xff1a; exbotubuntu:~/shareWin/linux/shell$ ./sum.sh 1 2The arg int correct3 $#&#xff1a;相当于C语言…

vimset

vim ~./vimrc set nocompatible "去掉有关vi一致性模式&#xff0c;避免以前版本的bug和局限 set nu! "显示行号 set guifontLuxi/ Mono/ 9 " 设置字体&#xff0c;字体名称和字号 filetype on …

shell编程题(二)

计算1-100之和 #!/bin/bashsum0 for i in seq 1 100;do #符号不是单引号 是 1左边的符号sum$[$i $sum ] done echo $sum #!/bin/bashi0 n1              #定义循环变量 while [ $n -lt 101 ];do  #循环变量小于101 i$(( $i $n))        #累加 n$(( …

vim命令大全

1. vim模式 正常模式&#xff08;按Esc或Ctrl[进入&#xff09; 左下角显示文件名或为空 插入模式&#xff08;按i进入&#xff09; 左下角显示--INSERT-- 可视模式&#xff08;按v进入&#xff09; 左下角显示--VISUAL-- 替换模式&#xff08;按r或R开始&#xff09; 左下角显…

signal()函数

函数原型 void (*signal(int sig,void(*func)(int)))(int); 指定使用sig指定的信号编号处理信号的方法。参数func指定程序可以处理信号的三种方式之一&#xff1a; l 默认处理(SIG_DFL)&#xff1a; 信号由该特定信号的默认动作处理l 忽略信号&#xff08;SIG_IGN&a…

setitimer()函数

定时器时间函数 struct itimerval&#xff1a;struct itimerval *new_value&#xff0c;其定义如下&#xff1a;struct itimerval {struct timeval it_interval; /*next value*/struct timeval it_value; /*current value*/};struct timeval {long tv_sec; /*seconds*/lonng t…

shell编程题(三)

将一目录下所有的文件的扩展名改为bak #! /bin/bashfor i in ls domv $i ${i%%.*}.bak done ${i%%.*} 截掉一个变量字符串第一个"."以及其右侧的所有字符&#xff0c;即最短前缀匹配。 #! /bin/bashdir./ #指定文件夹for file in $dir*.txt #指定文件夹下面文件类型…

VMware安装VMwaretools

默认点击“安装VMware Tools&#xff08;T&#xff09;”选项下载好安装包 下载的安装包放在计算机的media目录下 进入/media/ubuntu14-04/VMware Tools目录&#xff1a; cd /media/ubuntu14-04/VMware Tools 将安装包复制到tmp文件夹下&#xff1a; cp VMwareTools-10.0.5-322…

shell编程题(四)

编译当前目录下的所有.c文件 #!/bin/bashif [ $# -lt 1 ] ;then #如果输入参数小于1则报错 $# C语言中的argv[0] 输入参数个数echo "Please follow up file.c!"echo "eg: ./make.sh xxx.c"exit fiif [[ $2 "debug" ]] ;then #如果第三个参数…

stat函数

int lstat(const char *path,struct stat*buf) 当文件是一个符号链接时&#xff0c;lstat返回的是该符号链接本身的信息&#xff0c;而stat返回的是该链接指向的文件的信息。 struct stat {dev_t st_dev; //设备号码ino_t st_ino; //inode节点号mo…

字符串函数参数传入传出(字符串反转)

/*** strstr.c ***/ #include<stdio.h> #include<string.h>//求字符串p中abcd出现的次数 //自定义函数接口完成业务函数和main函数分开 int getCount(char *mystr,char *sub,int *ncount) {int ret 0;if(mystr NULL || sub NULL || ncount NULL){ret -1;print…

字符串函数参数传入传出(去空格)

字符串作为函数参数传入传出 /*** delSpace.c ***/ #include<stdio.h> #include<string.h>int DelSpace(char *str) {int iRet -1;int i ;int j ;int ncount 0;char *out str;if(NULL str ){printf("the point in is NULL\n");return iRet;}i 0;j …

字符串的规范使用

有一个字符串”1a2b3d4z”,&#xff1b; 要求写一个函数实现如下功能&#xff0c; 功能1&#xff1a;把偶数位字符挑选出来&#xff0c;组成一个字符串1。valude&#xff1b;20分 功能2&#xff1a;把奇数位字符挑选出来&#xff0c;组成一个字符串2&#xff0c;valude 20 功能…

字符串的规范使用(二)

键值对&#xff08;”key valude”&#xff09;字符串&#xff0c;在开发中经常使用&#xff1b; 要求1&#xff1a;请自己定义一个接口&#xff0c;实现根据key获取valude&#xff1b;40分 要求2&#xff1a;编写测试用例。30分 要求3&#xff1a;键值对中间可能有n多空格&am…

字符串逆序打印

版本1 两个指针从头到尾和从尾到头交换内容逆序 /*** str_reverse.c ***/ #include<stdio.h> #include<string.h>int main() {char buf[] "abcdrfg";int len strlen(buf);char *p1 buf;char *p2 buf len - 1;while(p1 < p2){char c *p1;*p1 *p…

realloc()函数

原型&#xff1a;extern void *realloc(void *mem_address, unsigned int newsize); 参数&#xff1a; mem_address&#xff1a; 要改变内存大小的指针名newsize &#xff1a; 新的内存大小。 如果分配内存减少&#xff0c;realloc仅仅改变索引的信息。 如果将…

fgets()函数

声明&#xff1a;  char *fgets(char *str&#xff0c;int n,FILE* stream) 参数&#xff1a;  str—这是指向一个字符数组的指针&#xff0c;该数组存储了要读取的字符串 n – 这是要读取的最大字符数&#xff08;包括最后的空字符&#xff09;。通常是使用以str传递的数组…

C语言实现文件类型统计函数

#include<dirent.h> #include<limits.h> #include<sys/stat.h> #include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<string.h>#define FTW_F 1 //标记非目录文件 #define FTW_D 2 //标…

C语言实现多线程排序

#include <stdio.h> #include <pthread.h> #include <stdlib.h> #include <string.h>/* 声明变量 */ int array_length, file_length; int *array_master; FILE *freader;/* 用于从文件读取数据 */ int *read_file(char *fname) {freader fopen(fnam…

linux线程操作

初始化条件变量 int pthread_cond_init(pthread_cond_t *cv,pthread_cond_attr *cattr); 函数返回值&#xff1a;返回0表示成功&#xff0c;返回其他表示失败。 参数&#xff1a; pthread_cond_attr是用来设置pthread_cond_t的属性&#xff0c;当传入的值是NULL的时候表…