shell练习题讲解】的更多相关文章

写一个脚本,计算100以内所有的奇数的和以及所有偶数的和,分别显示出来#! /bin/bashsum1=0for i in `seq 1 2 100`do sum1=$[$sum1+$i]doneecho $sum1 sum2=0for j in `seq 2 2 100`do sum2=$[$sum2+$j]doneecho $sum2 写一个脚本,利用RANDOM生成10个随机数,并且找出最大值和最小值 for i in `seq 1 10`do n[$i]=$RANDOM echo ${n…
1037774765 克隆 1.创建一个用户redhat,其ID号为1001,基本组为like(组ID为2002),附近租为linux. groupadd -g 2002 likegroupadd linuxuseradd -u 1001 -g 2002 -G linux redhat 2.创建一个用户fedora,其注释信息为Fedora Commuity,默认shell为sh man useradd 查看到-c是注释 useradd -c "Fedora Commuity" -s…
整理了一些 shell 相关的练习题,记录到这里. 1. 请按照这样的日期格式 xxxx-xx-xx 每日生成一个文件,例如:今天生成的文件为 2013-09-23.log, 并且把磁盘的使用情况写到到这个文件中. #!/bin/bash # Date: -- # Author: liwei today=$(date +%Y-%m-%d) log_file_name=/var/log/selfdefine/${today}.log /bin/df -lh > $log_file_name 然后再…
需求如下: 用shell实现,把一个文件文档中只有一个数字的行给打印出来.(以/password文件为例,自行修改) 参考解答如下 方法1 #!/bin/bash file_name=passwd num=$(awk -F: 'END{print NR}' $file_name) for i in $(seq 1 $num) do num=$(sed -n "$i"p $file_name | sed 's/[^0-9]//g' | wc -L) if [ $num -eq 1 ];t…
需求如下: 系统logrotate工具,可以完成日志切割.归档.写一个shell脚本实现类似功能. 举例:假如服务的输出日志是1.log,要求每天归档一个,1.log第二天就变成1.log.1, 第三天1.log.2,第四天l.log.3,一直到1.log.5 参考解答如下 方法1 #!/bin/bash # rem_file() { [ -f $1 ] && rm $1 } for i in $(seq 5 -1 2) do i2=$(($i-1)) rem_file /data/1.l…
需求如下: 写一个shell脚本,检查指定的shell脚本是否有语法错误,若有错误,首先显示错误信息,然后提示用户输入q或Q退出脚本, 输入其他内容则直接用vim打开该shell脚本. 参考解答如下 方法1 #!/bin/bash cmd="/bin/bash" ed="/usr/bin/vim" if [ $# -ne 1 ];then echo "USAGE:$0 script_name" exit 1 fi $cmd -n $1 if […
需求如下: 写一个shell脚本,把10.0.1.0/24网段在线的ip列出来. 参考解答如下 方法1 #!/bin/bash ip="10.0.1." for i in $(seq 1 254) do ping -c 2 $ip$i &> /dev/null if [ $? -eq 0 ] then echo The host $ip$i is online. else echo The host $ip$i is offline. fi done 方法2 ip=&qu…
一.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. 原文代码为:         Shell   1 2 3 4 5 6 7 8 9 10 #!/bin/bash if  ! grep "^#!" $1 &>/dev/null; then cat >> $1 << EOF #!/bin/bash # Author: #Date & Time: `date +"%F %T"` #Des…
1.编写脚本/bin/per.sh,判断当前用户对指定参数文件,是否不可读并且不可写 read -p "Please Input A File: " file if [ ! -e $file ];then echo "$file not exits" elif [ -f $file ];then if [ ! -r $file -a ! -w $file ];then echo "User Not read and write" else ech…
1.实现每次打开一个xx.sh时,自动添加注释信息 [root@chengyinwu ~]# cat .vimrc set ignorecase set nu set autoindent autocmd BufNewFile *.sh exec ":call SetTitle()" func SetTitle() if expand("%:e") == 'sh' call setline(1,"#!/bin/bash") call setlin…
本文为原创博客,转载请注明出处:http://www.cnblogs.com/MrFee/p/4683953.html    1.appendToFile   功能:将一个或多个源文件系统的内容追加至目标文件系统 使用方法:hadoop fs -appendToFile 源文件1,源文件2... 目标文件                  hadoop fs -appendToFile /flume/web_output/part-r-00000    /flume/app_output/par…
需求如下: 输入一串随机数字,然后按千分位输出. 例如:输入随机数字为"123456789",输出为123,456,789 参考解答如下 -方法1 [root@lanquark sh]# echo "123456789" | sed '{ :start s/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/ t start }' or echo "123456789" | sed -r '{:start;s#(.*[0-9])([0…
需求如下: 有日志access.log,部分内容如下: 127.0.0.1 - - [03/Jul/2018:00:00:01 +0800] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" 127.0.0.1 - - [03/Jul/2018:00:01:48 +0800] "GET /1.php HTTP/1.1" 200 19 "-" "curl/7.29…
需求如下: 请按照这样的日期格式(xxxx-xx-xx)每天生成一个文件,例如今天生成的文件为2018-10-19.log, 并把磁盘的使用情况入到这个文件,(不需要写cron,写脚本即可) 参考解答如下 方法1 #!/bin/bash day=$(date "+%F") echo "The usage of disk" > ${day}.log df -h >> ${day}.log exit 0 方法2(取时间的格式稍有变化,与方法1基本相同)…
1.编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到 /root/etcYYYY-mm-dd中 #!/bin/bash echo "start backup" sleep 2 date=`date "+%Y-%m-%d"` cp -av /etc /root/etc$date echo "backup finish" 2.编写脚本/root/bin/disk.sh,显示当前硬盘分区中空间利用率最大的值 #!/bin…
1. 获取ip或MAC地址(方法不唯一) [root@cicd ~]# ip a| grep 'inet' | awk -F " +" '{print $3}'| awk -F "/" '{print $1}' 127.0.0.1 :: 192.168.42.30 172.18.0.1 fe80:::48ff:fef9:c58e 172.17.0.1 fe80::30c5:f7ff:fe76:9ef7 fe80::10ae:aaff:fef9:171e fe80::…
本节内容 1. shell流程控制 2. for语句 3. while语句 4. break和continue语句 5. case语句 6. shell编程高级实战 shell流程控制 流程控制是改变程序运行顺序的指令.linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介绍下,各个语句使用方法 if语句 格式: 格式:if list; then list; [ elif list; then list;…
本节内容 1. shell流程控制 2. for语句 3. while语句 4. break和continue语句 5. case语句 6. shell编程高级实战 shell流程控制 流程控制是改变程序运行顺序的指令.linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介绍下,各个语句使用方法 if语句 格式: 格式:if list; then list; [ elif list; then list;…
为什么要有练习题?    所谓学而不思则罔,思而不学则殆,在系列第一篇就表明我认为写博客,既是分享,也是自己的巩固,我深信"纸上得来终觉浅,绝知此事要躬行"的道理,因此之后的几篇博客都会在知识点后面附上几道练习题,不会单独开一篇来说练习题.    大部分题练习题来自于Richard Warburton的<Java8 函数式编程>,练习题的难度不会很难,大部分都十分的基础(可能偶尔会有一两道进阶题),并且我在后面也会附上可供参考的思路与代码,但是我认为想要学习的人(包括我)应…
本节内容 1. shell函数 2. shell正则表达式 shell函数 shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数.给这段代码起个名字称为函数名,后续可以直接调用该段代码. 格式 func() { #指定函数名 command #函数体 } 实例1: #!/bin/bash func() { echo "This is a function." } func # bash test.sh This is a function. Shell 函…
centos  shell脚本编程2 if 判断  case判断   shell脚本中的循环  for   while   shell中的函数  break  continue  test 命令   第三十六节课 return用在函数中exit用在shell当中 直接退出整个脚本,整个子shell或当前shellbreak退出循环 上半节课 if 判断case判断shell脚本中的循环 下半节课 for whileshell中的函数breakcontinue 课程大纲(继续上节课的) 7. if…
7. if 判断一些特殊用法 if [ -z $a ] 这个表示当变量a的值为空时会怎么样if grep -q '123' 1.txt; then 表示如果1.txt中含有'123'的行时会怎么样if [ ! -e file ]; then 表示文件不存在时会怎么样if (($a<1)); then …等同于 if [ $a -lt 1 ]; then… [ ] 中不能使用<,>,==,!=,>=,<=这样的符号 if [ ! $a -gt 0 ];then... 代表不大于…
为什么要有练习题?    所谓学而不思则罔,思而不学则殆,在系列第一篇就表明我认为写博客,既是分享,也是自己的巩固,我深信"纸上得来终觉浅,绝知此事要躬行"的道理,因此之后的几篇博客都会在知识点后面附上几道练习题,不会单独开一篇来说练习题.    大部分题练习题来自于Richard Warburton的<Java8 函数式编程>,练习题的难度不会很难,大部分都十分的基础(可能偶尔会有一两道进阶题),并且我在后面也会附上可供参考的思路与代码,但是我认为想要学习的人(包括我)应…
例子: 对/code/shell/servers 中每一行最后添加用户名和密码   原来长这样: /code/shell/servers 我对其每行添加" root 950102DK"(我这边默认的密码),脚本如下: sed -i 's/$/& root 950102DK/g' /code/shell/servers   讲解: -i: 在原文件上修改 ^: 每行开头 $: 每行结尾 /g: 每行都改 &: 我理解为休止符,即到哪里停止的意思.如果配合"^&q…
shell函数 shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数.给这段代码起个名字称为函数名,后续可以直接调用该段代码. 格式 func() {   #指定函数名 command    #函数体 } 实例1: #!/bin/bash func() { echo "This is a function." } func # bash test.sh This is a function. Shell 函数很简单,函数名后跟双括号,再跟双大括号.通过函数…
第3章 shell语法讲解 3.1 shell运算讲解 3.1.1 运算符的讲解 3.1.2 shell运算方式的讲解 3.1.2.1 $(())运算 [root@m01 test_init] # a=1 [root@m01 test_init] # b=1 [root@m01 test_init] # echo $a+$b 1+1 [root@m01 test_init] # echo $((c=a+b)) 2 3.1.2.2. let运算(只能计算整数) [root@m01 ~] # a=1…
第2章 shell变量讲解 2.1 shell中的变量讲解 2.1.1 什么是shell变量 变量的本质就是内存中的一块区域 变量名 位置 变量是脚本中经常会使用的内容信息 变量可以在脚本中直接使用 不同变量的类型存放不同的数据信息 2.1.2 变量怎么赋值使用 直接赋值使用    username="张三" 引用其他命令执行的结果在赋值    ip_eth0=`hostname -I | awk '{print $1}'` 使用交互式方式:read -p 使用传参方式:脚本 $1 $…
1 su与su - 的区别 1.1命令说明 su对应是是no-login shell的方式进行账号登陆,命令行的变量配置还是切换账号前的变量. su-对应的是login shell的方式进行账号登陆,这时候相当于完全登陆新的账号获取新的账号的变量信息 因此在写脚本的过程中,根据里面变量的配置,要合理选用“su” 或者“su -”.附上鸟哥书中关于no-login shell与login shell的讲解 login shell:取得 bash 时需要完整的登陆流程的,就称为 login shel…
jenkins本身作为一款运维利器,具备 1. 持续集成 (Continuous integration) 2. 持续交付(Continuous delivery) 3. 持续部署(continuous deployment) 的强大能力, 对于生产的版本部署, 有时候会遇到新发的版本出现严重BUG等问题, 急需进行版本回退,为了解决这种应急问题, 特地介绍下如何使用jenkins做web版本控制,在不同版本之间可以快速切换. 1. jenkins的“构建”tab中增加构建步骤: Execute…
复习: 1. MySQL:文件管理的软件 2. 三部分: - 服务端 - SQL语句 - 客户端 3. 客户端: - MySQL - navicat 4. 授权操作: - 用户操作 - 授权操作 5. SQL语句 - 数据库操作 - 创建数据库要指定字符编码: create database xx default charset=utf8; - 删除数据库: drop database xx; - 数据表操作 - 列 - 数字 整数 小数 - 字符串 - 时间 datatime - 二进制 -…