`
qindongliang1922
  • 浏览: 2183210 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117507
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125900
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59878
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71283
社区版块
存档分类
最新评论

Linux的shell小脚本的用途

阅读更多
熟悉Linux的朋友们,对linux的命令,肯定都不陌生,大部分时候我们都可以使用系统自带的命令来轻松完成我们的工作。如果我们再能简单掌握下这些shell的制作,在某些场景下对我们的工作是非常有利的,当然如果你shell功底深,那么你完全可以制作出很多有意思的东西。
本篇散仙只是简单介绍下怎么入门,以及这些封装的shell脚本在一些集群作业带来的便利,
下面截个tomcat的bin下面的目录,来熟悉一下我们最常用的tomcat的一些脚本组成



上图中,我们会发现大部分都是cat和sh结尾的,而这个sh结尾的其实就是linux下自定义的shell的命令用来完成特定的功能,而以cat结尾的这个就是Windows上的批处理命令,类似win上的shell,有了这两种脚本就可以兼容Windows和linux的平台应用了。

我们先制作一个经典的Hellow World的shell脚本,步骤非常简单,打开你的记事本(推荐使用Notepad++),输入以下内容即可。


然后保存成x.sh即可,然后我们就可以上传到linux上,并赋予可执行权限后,就可以执行sh   x.sh看输出效果了,截图如下:


下面在给一个使用shell循环打印10-20间的例子,内容如下

依旧上传linux,添加可执行权限后,进行执行打印效果如下:


另外一点,需要特别注意的是,由于编辑脚本是直接在windows下写的,并没有使用特定的编辑器或者其他工具,所以很有可能出现一些莫名其妙的异常,这些错误是我们眼睛看不到的,遇到这个情况,例如如下异常或者提示语法错误
unexpected end of file

我们可以在linux上使用cat命令,进行清洗数据,
使用工具 cat 和 tr, 方法如下:

bash$ cat -v startqftest.sh |tr -d "^M" > qf.sh

其中 startqftest.sh 是存在问题的脚本, qf.sh是新生成的文件。

sed 's/^M//' test.sh > back.sh^M是Ctrl+v Ctrl+m

解释一下, cat 可以查看许多不可见这符,
cat -t 显示TAB 为 ^I
cat -e 显示行尾为 $,
cat -v 显示不可见字符,用^M表示,所以^M就表示不认识的不可见字符。M 表示Mark,标记的意思。
tr - translate or delete characters
另外,cat 还可以用来调Makefile,
cat -t Makefile 查看命令中有非Tab开头的,
grep '^ ' Makefile 查找命令行中以空格开头的行
cat -e Makefile 查看行尾是否正确,防止\后面多一个空格,
grep '\\[ ]$' Makefile 找出以上那样的行


最后,散仙还讲说一下,会简单的shell编程带来的好处,当我们使用hadoop进行集群提交作业时,你可能使用的是C++,或者PHP,或者Python语言等非Java编写的MR程序,这种方式就是Hadoop Streaming的方式了,当我们向集群提交作业时,可能会执行一段很长的shell命令来提交作业,并且在每个集群上都要分发一份命令,而这时候我们封装一个shell脚本,就很方便了,因为你不可能去手动执行每个节点上的命令,假设集群规模很大,那将是多么耗时的一件事情,而且还容易出错,所以,封装个脚本可以重复利用,也很简洁,如下所示的一段提交命令
#!/bin/sh
 bin/hadoop jar 
 hadoop-streaming-1.2.0.jar \
 -files map.py  \
 -files r.py  \
 -mapper 'map.py' \
 -reducer 'r.py' \
 -input /note \
 -output /noteout


封装一个shell脚本里面,可以重复使用,执行起来也非常方便,当然使用shell编程的可以完成很多事情,散仙上面所举的例子只是它的冰山一角,有兴趣的朋友可以再去深入的研究一下。




  • 大小: 75.1 KB
  • 大小: 10.1 KB
  • 大小: 20.9 KB
  • 大小: 12.1 KB
  • 大小: 12.2 KB
0
0
分享到:
评论

相关推荐

    linux shell学习资料

    在本学习资料包中,包含了三本关于Linux Shell的重要书籍:《Linux Shell编程艺术》、《Linux Shell脚本攻略》以及《Linux Shell从入门到精通》,这些资源将帮助你全面深入地理解和掌握Linux Shell。 《Linux Shell...

    linux_shell实例精解

    "Linux Shell实例精解"这本书籍正是针对这个主题,为初学者提供了丰富的学习资源。 在Linux世界中,Shell扮演着至关重要的角色。它不仅用于执行单个命令,还能通过脚本进行批量处理、文件操作、系统管理、数据处理...

    Linux Shell Scripting Cookbook(3rd) mobi

    Linux Shell Scripting Cookbook(3rd) 英文mobi 第3版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书

    LinuxShell编程基础教程.pdf

    本资源为 Linux Shell 编程基础教程,涵盖了 Linux Shell 编程的基础知识,包括语法基本介绍、变量、环境变量、Shell 命令和流程控制等。 一、语法基本介绍 在 Linux Shell 编程中,必须以#!开头,指定解释器的...

    linux shell 视频教学

    Linux Shell是Linux操作系统中不可或缺的一部分,它是一种命令行接口,允许用户通过文本命令与系统进行交互。Shell脚本则是编写的一系列命令,可以自动化执行一系列任务,极大地提高了工作效率。在这个"Linux Shell...

    Linux Shell Scripting Cookbook Third Edition

    Linux Shell脚本手册 - 第三版,. This book will take you through useful real-world recipes designed to make your daily life easier when working with the shell.

    linux Shell编程入门 实例讲解详解

    Linux Shell编程入门实例讲解详解 Linux Shell编程是Linux系统中一种非常灵活的工具,通过shell编程可以自动化大量的任务,especially适合那些易用性、可维护性和便携性比效率更重要的任务。下面是Linux Shell编程...

    2本linux shell 编程chm

    Linux Shell编程是Linux系统管理与自动化任务的核心技术之一,它主要指的是使用Shell脚本来执行一系列命令,实现自动化操作。在Linux环境中,Bash(Bourne-Again SHell)是最常用的Shell,也是许多Linux发行版的默认...

    Linux Shell Scripting Cookbook.epub

    Proper usage of shell commands can easily solve many complex tasks with a few lines of code, but most linux users don't have the right know-how to use the Linux shell to its full potential. ...

    linux shell 应用.chm

    linux shell 应用.chm,学习linux shell资料

    Linux Shell Scripting Cookbook Second Edition

    《Linux Shell Scripting Cookbook 第二版》是一本系统讲解Linux Shell脚本编写方法的书籍,涵盖了超过110个实用的配方,用于解决真实世界中的Shell脚本问题。通过这些配方,读者可以学习到如何利用Shell脚本自动化...

    Linux Shell编程从入门到精通

    本书由浅入深、循序渐进地详细讲解了LinuxShell编程的基本知识。这些基本知识包括Shell编程的基本知识、文本处理的工具和方法、正则表达式、Linux系统知识等。  本书旨在通过理清Linux Shell编程的脉络,从基本概念...

    Linux Shell 脚本攻略

    本攻略将深入探讨Linux Shell脚本的核心概念、语法结构以及实战应用。 1. **Shell基础** - **什么是Shell?** Shell是Linux操作系统中的一个命令解释器,它为用户提供了一个与操作系统内核交互的接口。 - **常见的...

    linux shell 编程电子书

    linux shell 编程电子书,学习linux shell很不错的资料,高清的

    LinuxShell编程基础.pdf

    Linux Shell 编程基础 Linux Shell 编程基础是 Linux 操作系统中一个非常重要的组件,它提供了一个交互式命令行界面,允许用户输入命令来执行各种操作。在 Linux 系统中,Shell 是一个命令解释器,它可以解释用户...

    Linux shell 脚本读取配置文件

    Linux 系统 shell脚本读取配置文件

    Linux Shell Scripting Cookbook.mobi

    Proper usage of shell commands can easily solve many complex tasks with a few lines of code, but most linux users don't have the right know-how to use the Linux shell to its full potential. ...

    linux shell 编程经典 教程

    本教程将深入探讨Linux Shell编程的经典概念和技术,帮助你提升在Linux环境下的工作效率。 一、Shell简介 Linux Shell有多种类型,如Bash(Bourne-Again SHell)、Sh、Csh、Ksh等,其中Bash是最常用的。Bash不仅...

    Linux Shell 实例精解3 (pdf 版本)

    Linux Shell 实例精解 (pdf 版本)

    linux Shell 编程实例书一本

    Linux Shell编程是Linux系统管理与自动化任务的核心技术之一。Shell脚本可以理解为Linux环境下的批处理程序,它允许用户通过编写脚本来执行一系列命令,从而实现自动化操作,提高工作效率。这本书《Linux Shell编程...

Global site tag (gtag.js) - Google Analytics