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

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命令行及脚本编程实例详解-刘艳涛.mobi kindle版

    对于初次接触Linux Shell的读者,本书是一本很好的自学教材;对于接触过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脚本全面学习.pdf

    Linux Shell 脚本编程基础知识点总结 Linux 脚本编写基础 1.1 语法基本介绍 * `#!` 符号用来告诉系统它后面的参数是用来执行该文件的程序 * 在 Linux 中,使用 `/bin/sh` 来执行程序 * 编辑好脚本后,需要使其可...

    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不仅...

Global site tag (gtag.js) - Google Analytics