热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linuxshell脚本分享-linux运维

Shell是一个命令解释器,处于内核和用户之间,负责把用户的指令传递给内核并且把执行结果回显给用户,Shell它是一个用C语言编写的程序,它是用户使用Linux的桥梁,同时,Shell也可以作为一门强大的编程语言。
Linux shell 脚本分享

Shell 是一个命令解释器,处于内核和用户之间,负责把用户的指令传递给内核并且把执行结果回显给用户,Shell 它是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁,同时,Shell 也可以作为一门强大的编程语言

推荐:【Linux视频教程】

理论

我们常说的 Shell 是命令行解释器的意思,也有内核上的一层壳的含义,Shell 常见的几种类型有 sh、csh、bash、zsh 等提供的脚本支持.

Shell 诞生于 Unix,是与 Unix/Linux 交互的脚本编程,单独地学习 Shell 是没有意义的,有 Linux 基础的同学应该知道,Linux 都默认集成了 Shell 环境,Shell 的功能点在于外部命令的使用.

其内部数据处理方面,侧重文本(或者说字符串,或字符流)处理,而对运算和其他基本数据结构的原生较弱(例如常用的 array、set、map 等等), 功能目标在于实现命令自动化.

但是呢,实现命令自动化的同时,Shell 需要依赖其他程序才能完成大部分的工作,这是它的缺陷也是一个优点吧,但它不容置疑的长处是:简洁的脚本语言标记方式,而且比 C 语言编写的程序执行更快、更有效率.

所以我们如果有做运维甚至是基础管理 Linux 服务器的朋友,只要学会了 Shell 编程,大大的可以节约我们的时间,更快捷的管理我们的服务器了.

Bash 是 Linux 标准默认的 Shell,是 BourneAgain Shell 的缩写,因为 bash 有很多特性,比如:可以使用类似 DOS 下面的 doskey 的功能,用方向键查阅和快速输入并修改命令。自动通过查找匹配的方式给出以某字符串开头的命令

还有就是 bash 包含了自身的帮助功能,你只要在提示符下面键入 help 就可以得到相关的帮助,在 Linux 系统中我们经常看见以:#!/bin/bash 开头的文件内容,这就是声明了该文件是一个基于 bash 的 Shell 编程文件

干货

有这么一个程序 :

#!/bin/bash
cd /home/liwei/mongodb/bin
./mongod --dbpath=../liwei_db

我们知道计算在执行指令的时候,是一条一条执行的。那么很好理解以上这 3 行。依次操作的目的是:进入 mongodb/bin 目录,接着执行启动 mongodb 数据,保存为 m.sh, 这样,只要我们在 Linux 终端执行一条:sh m.sh,回车,计算就会依次执行指令,达到启动 mongodb 数据库的功能.

那么要执行更多的指令,可以么?回答肯定是可以,如果我们需要执行上百行指令,单独执行的话,我们要重复操作,那么把它们依次写入一个 Shell,这样来执行的时候就可以很方便了,执行 Shell 的过程中,我们可以通过 > 或者 >> 来记录下一些节点的结果报告.

比如这么一个 shell:

#!/bin/bash
cd /lamp
ls *.tar.gz > ls.list
for TAR in `cat ls.list`
do
tar -zxf $TAR
done

这个 Shell 要解决的实际问题是将 lamp 目录里面所有的压缩包,批量解压出来,这样我们可以看出 ls 的结果集可以拿出来参与下一个指令的执行

那么我们现在有个需求就是将某个文件夹下所有的文件名字里的大写字母改成小写字母,如果要人工一个个改的话,但是找文件就够眼花蛋疼了,这个时候 Shell 就发挥了强大的力量了

#!/bin/bash
for file in `ls | grep '[A-Z]'`
do
str=`echo $file|tr 'A-Z' 'a-z'`
mv $file $str

这样就很好的解决了一个复杂的操作

有时候我们在管理文件的时候需要将空文件,没用的文件全删掉

for filename in `ls`
do
if test -d $filename
then b=0
else    
   a=$(ls -l $filename | awk '{ print $5 }')
        if test $a -eq 0
         then rm $filename
        fi
fi      
done

针对于 Shell 编程,远远不止我给大家分享的这些,还有很多强大的地方,大家慢慢的挖掘吧。

以上就是Linux shell 脚本分享的详细内容,更多请关注 第一PHP社区 其它相关文章!


推荐阅读
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 对于一般的扩展包,我们一般直接pipinstallxxx即可安装,但是unrar直接安装后,发现并不能通过Python程序实现解压的功能& ... [详细]
  • Docker安装Rabbitmq(配合宝塔)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Docker安装Rabbitmq(配合宝塔)相关的知识,希望对你有一定的参考价值。一、事前准备 ... [详细]
  • 之前项目在windows2003服务器上设置定时任务,每天执行。现在把项目移植到linux系统。也要在linux系统上设置计划任务。但是之前我从来没有做过。所以多得不 ... [详细]
  • 阿里云服务器iis设置方法与上千种Linux桌面版本相比,Linux服务器只有可怜的十几种。但想要选对适合你的企业需要的仍然不是件容易的事情,选Linux服务器首先要 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • step1.为mongodb添加admin管理员root@12.154.29.163:~#mongoMongoDBshellversionv3.4.2connectingto:mo ... [详细]
  • 1、DashAPI文档Dash是一个API文档浏览器,使用户可以使用离线功能即时搜索无数API。程序员使用Dash可访问iOS,MacOS, ... [详细]
author-avatar
mobiledu2502889253
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有