Linux学习日记—shell脚本基础

在Linux的日常维护中,shell脚本是我们必不可少的日常管理之一;其作用是解决服务器的自动化维护工作,减轻管理员的工作量;如果想提高shell脚本的编写速度,必须要熟练使用vi编辑器的各种快捷键。

【什么是shell】
    Shell Script,Shell脚本Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,毕竟它使用了Linux/Unix下的命令。

【我的第一个脚本】

首先创建一个vim脚本文件,本例为创建一个以.sh结尾的test1测试文件

在文件内出入以下内容

其中echo为注释内容输出到屏幕,让使用者更容易读懂

添加权限并执行:

常用的执行方式:#sh 脚本路径与名称

#source 脚本路径与名称

#直接输入脚本路径或名称(需要给脚本添加执行权限)

【重定向操作】

用户通过操作系统出了信息的过程中,包括以下几类交互设备文件

  • 标准输入(STDIN):默认的设备是键盘,文件编号为0,命令将从标准输入文件中读取在执行过程中需要的输入数据。
  • 标准输出(STDOUT):默认的设备是显示器,文件编号为1,命令将执行后的输出结果发送到标准输出文件。
  • 标准错误(STDERR):默认的设备是显示器,文件编号为2,命令将执行期间的各种错误信息发送到标准错误文件

(1)重定向输出:将命令的正常输出结果保存到指定的文件中,而不是显示在显示器上

“>”表示重定向输出(如果文件存在则会覆盖)

>>表示重定向追加

(2)重定向输入:将命令中接收输入的途径有默认的键盘改为指定的文件,而不是等待从键盘输入,重定向输入使用“<”操作符。

使用vim在pass.txt文件中添加123456

然后执行passwd --stdin jerry < pass.txt

(3)错误重定向:将执行命令的过程中出现的错误信息保存到指定的文件,而不是直接显示在屏幕上;错误重定向使用“2>”操作符,其中 2 是指错误文件的编号

(4)使用“&>”操作符将两类输出信息保存到统一目录。例如,在编译源码包的自动化脚本中,若要忽略make,make install等操作过程信息,可以将其定向到空文件/dev/null

创建一个脚本文件:vim httpd_install.sh

添加权限并执行:chmod +x httpd_install.sh

【管道操作】

管道操作作为不同命令之间的协同工作提供了一种机制,位于管道符号“|”左侧的命令输出的结果,将作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道。

(1)提取之前的结果

(2)提取之后的效果,只显示用户名和shell列

(3)在例如显示磁盘已用百分比

时间: 2024-10-05 06:57:38

Linux学习日记—shell脚本基础的相关文章

Linux学习日记—Shell脚本与计划任务

本篇文章将以实现MySQL数据库的定期自动备份为目标,介绍Shell脚本与计划任务的完美协作过程.其中,Shell脚本负责具体的备份操作,Crond服务器负责控制备份周期. [确认备份方案] 备份主机:IP地址为192.168.4.110,通过机柜内网络连接目标主机. 数据库服务器:IP地址为192.168.4.11,MySQL服务监听端口为3306. 备份内容:对MySQL服务器中的studydb,coursdb库进行远程备份,每天凌晨2:30执行,每个库备份独立的.sql文件,然后压缩为.t

linux学习19 shell脚本基础-bash脚本编程基础及配置文件

一.shell脚本编程 1.编程语言的分类,根据运行方式 a.编译运行:源代码 --> 编译器(编译) --> 程序文件 C语言: b.解释运行:源代码 --> 运行时启动解释器,由解释器边解释边运行:即源代码本身并不能运行,而是启动一个解释器的进程,把整个源代码的内容当做解释器的参数.因为其是边解释边运行因此运行过程中比起编译运行速度会差一些. c.无论是编译器还是解释器中间总需要另外一个程序,即在运行过程中全程参与,这就是我们说的翻译官,他需要将我们人能识别的代码转换成机器所能识别的

linux学习18 shell脚本基础-bash变量和逻辑运行

一.回顾 1.用户管理,权限管理,install,mktemp 2.用户管理: 3.权限管理: mode,ownership mode: user group other r w x 4.命令:install,mktemp 二.bash特性及bash脚本编程初步 1.终端:附着在终端的接口程序 GUI:KDE,GNome,Xfce CLI:/etc/shells 2.bash的特性: a.命令行展开:~,{} b.命令别名:alias,unalias c.命令历史:history d.文件名通配

linux学习之shell脚本 ------- 输入与输出

[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020] 前面介绍了Shell脚本的基础和运算符等,今天再来看一下关于Shell脚本的输入与输出. Shell输入与输出的一些命令: echo read cat 管道 tee exec Shell输入与输出的一些概念: 文件重定向 标准输入.输出和错误 合并标准输出和标准错误 使用文件描述符 下面,我们挨个看每个命令的用法: 输入输出命令的用法: 1. echo 该命令的作用是可以显

linux学习之shell脚本

[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020] Shell脚本基本元素: #!/bin/bash --- 第一行 # --- 注释 变量 流程控制结构 看一个简单的例子,学任何语言,我想大多数情况下都是从helloworld程序开始的,shell也是一门语言,我们也从helloworld开始. 新建一个名为helloworld.sh的文件,在里面写入: helloworld.sh #!/bin/sh #这是一个很简单的打

linux学习之shell脚本 ------- 脚本参数传递

[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020] 今天再来看一下如何向shell脚本传递参数,需要掌握两个命令,一个是 shift命令,另一个是getopts. 脚本参数传递 shift命令 用法: shift n 每次将参数位置向左偏移n位 假如我们要实现统计多个文件的总行数,就可以用到这个shift命令了,如下: opt2.sh #!/bin/bash #op2 static files total lines; st

linux学习笔记:shell脚本编程相关(上)

前言 unix/linux操作系统下的shell,是一种壳,其目的是提供一个用户与计算机相互交互的命令接口,通过输入各种命令,达到操作的目的. 与此同时,shell支持控制流程,进而可以组合出各种各样的应用实例. shell脚本的格式 首行shebang机制: bash脚本,首行添加#!/bin/bash [options] csh脚本,首行添加#!/bin/csh [options] ksh脚本,首行添加#!/bin/ksh [options] -- 描述脚本的注释部分: 包括Author,

Linux学习之Shell编程基础

转自:http://my.oschina.net/itblog/blog/204410 1 语法基本介绍1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序.  当编辑好脚本时,如果要执行该脚本,还必须使其可执行.  要使脚本可执行: 编译 chmod +x filename 这样才能用./filename 来运行 1.2 注释  在进行shell编程时,以#开头的

Linux学习-高级shell脚本编程(一)函数

引文: 通常编写shell脚本时,你会发现很多地方都要用到相同的代码或者说是相同的功能.如果是一段小代码,那无所谓.可如果多次使用而且还是相同的代码,我想你也会感觉很烦的.为了能够让代码重用,这就使用到函数了. 温馨提示 变量赋值的格式为: 变量名=变量值 注意事项: 变量名前面不应加美元"$"符号.(和PHP不同)等号"=" 前后不可以有空格.和C语言不同,Shell中不需要显式的语法来声明变量. 变量名不可以直接和其他字符相连,如果想相连,必须用括号:echo