目录
1. shell的作用和历史
2. shell的常用功能
3. shell变量种类
3. shell脚本的运行
4. 编写简单的shell脚本
Shell的作用及常见种类
Shell的作用 -- 命令解释器,“翻译官”
Bash的常用功能
Tab键自动补齐
命令历史
命令别名
标准输入输出
重定向操作
管道操作
Bash的命令历史
命令历史
保存用户曾经执行过的命令操作
存放位置:~/.bash_history 文件
查看历史命令
使用↑、↓按键逐条翻看,允许编辑并重复执行
执行:history
清除历史命令
执行:history -c
Bash的命令历史
调用历史命令
!n:执行历史记录中的第n条命令
!str:执行历史记录中以“str”开头的命令
设置记录历史命令的条数
修改 HISTSIZE 参数(默认为1000条)
Vi /etc/profile 设置:HISTSIZE=200
Bash的命令别名
命令别名
为使用频率较高的复杂命令行设置简短的调用名称
存放位置:~/.bashrc
Bash的标准输入输出
交互式硬件设备
标准输入:从该设备接收用户输入的数据
标准输出:通过该设备向用户输出数据
标准错误:通过该设备报告执行出错信息
类型设备文件文件描述编号默认设备
标准输入/dev/stdin0键盘
标准输出/dev/stdout1显示器
标准错误输出/dev/stderr2显示器
Bash的重定向操作
改变标准输入、标准输出、标准错误的方向
类型操作符用途
重定向标准输入<将命令中接收输入的途径由默认的键盘更改为指定的文件
重定向标准输出>将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上
>>将命令执行的结果追加输出到指定文件
重定向标准错误2>清空指定文件的内容,并将标准错误信息保存到该文件中
2>>将标准错误信息追加输出到指定的文件中
重定向标准输出和
标准错误&>将标准输出、标准错误的内容全部保存到指定的文件中,而不是直接显示在屏幕上
Bash的管道操作
管道操作符号“|”
[root@localhost ~]# free –m | head -2
[root@localhost ~]# free –m | grep “Mem” | awk ‘{print $2,$4}’
Shell变量的应用
Shell变量
为灵活管理Linux系统提供特定参数,有两层意思:
1.变量名:使用固定的名称,由系统预设或用户定义
2. 变量值:能够根据用户设置、系统环境变化而变化
Shell变量的种类
用户自定义变量:由用户自己定义、修改和使用
环境变量:由系统维护,用于设置用户的Shell工作环境,只有极少数的变量用户可以修改
预定义变量:Bash预定义的特殊变量,不能直接修改
位置变量:通过命令行给程序传递执行参数
变量的赋值与引用
定义新的变量
变量名要以英文字母或下划线开头,区分大小写
格式:变量名=变量值
查看变量的值
格式:echo $变量名
[root@localhost ~]# DAY=Sunday
[root@localhost ~]# echo $DAY
从键盘输入内容为变量赋值
格式: read [-p "信息"] 变量名
结合不同的引号为变量赋值
双引号 “ ” :允许通过$符号引用其他变量值
单引号 ‘ ’ :禁止引用其他变量值,$视为普通字符
反撇号 ` ` :将命令执行的结果输出给变量
设置变量的作用范围
格式:export 变量名...
export 变量名=变量值 [...变量名n=变量值n]
清除用户定义的变量
格式:unset 变量名
变量赋值、引用和删除
[root@localhost ~]# echo $FILESVR
filesvr.lamp.com
[root@localhost ~]# export FILESVR
[root@localhost ~]# zsh
[root@localhost]~# echo $FILESVR
filesvr.lamp.com
[root@localhost]~# exit
[root@localhost root]# unset FILESVR
[root@localhost root]# echo $FILESVR
数值变量的运算
计算整数表达式的运算结果
格式:expr 变量1 运算符 变量2 ...[运算符 变量n]
expr的常用运算符
加法运算:+
减法运算: -
乘法运算: \*
除法运算: /
求模(取余)运算: %
环境变量
1.环境变量配置文件
全局配置文件:/etc/profile
用户配置文件:~/.bash_profile
2.查看环境变量
set命令可以查看所有的Shell变量,其中包括环境变量
环境变量
常见的环境变量:
$USER 、$LOGNAME
$UID 、 $SHELL 、$HOME
$PWD、 $PATH
$PS1、$PS2
查看环境变量
[root@localhost ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# PATH="/opt/bin:$PATH"
[root@localhost ~]# echo $PATH
/opt/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
位置变量
表示为 $n,n为1~9之间的数字
[root@localhost ~]# ./exam01 one two three four
$0:当前执行的进程/程序名 exam01
$1 表示one
$2 表示 two
依次类推
查看当前所执行进程的名称、PID号
[root@localhost ~]#echo $0 $$
bash 5887
[root@localhost ~]#echo $?
127
返回0表示上一条命令正常,返回非0表示上一条命令异常
Shell脚本的概念
Shell脚本
1.用途:完成特定的、较复杂的系统管理任务
2.格式:集中保存多条Linux命令,普通文本文件
3.执行方式:按照预设的顺序依次解释执行
编写可执行的Shell脚本
建立包含执行语句的脚本文件
#脚本文件中包括的内容
运行环境设置:#!/bin/bash
注释信息:以#开始的说明性文字
可执行的Linux命令行
为脚本文件添加可执行权限
给shell脚本增加执行权限
[root@localhost ~]# vi repboot.sh
#!/bin/bash
# To show usage of /boot directory and mode of kernel file.
echo "Useage of /boot: "
du -sh /boot
echo "The mode of kernel file:"
ls -lh /boot/vmlinuz-*
[root@localhost ~]# chmod a+x repboot.sh
运行Shell脚本程序
1.直接执行具有“x”权限的脚本文件
例如:./repboot.sh
2.使用指定的解释器程序执行脚本内容
例如:bash repboot.sh、sh repboot.sh
3.通过source命令(或 . )读取脚本内容执行
例如:souce repboot.sh 或 . hello.sh
Shell脚本应用示例
示例一
[root@localhost ~]# vi /opt/ftpclean.sh
#!/bin/bash
date >> /var/log/pubdir.log
ls -lhR /var/ftp/pub >> /var/log/pubdir.log
rm -rf /var/ftp/pub/*
示例二
[root@localhost ~]# vi /opt/dbbak.sh
#!/bin/bash
DAY=`date +%Y%m%d`
SIZE=`du -sh /var/lib/mysql`
echo "Date: $DAY" >> /tmp/dbinfo.txt
echo "Data Size: $SIZE" >> /tmp/dbinfo.txt
cd /opt/dbbak
tar zcvf mysqlbak-${DAY}.tar.gz /var/lib/mysql /tmp/dbinfo.txt
rm -f /tmp/dbinfo.txt
小结:
1.shell的作用
2.常用的shell类型
3.熟练shell的常用功能
4.shell变量的种类
5.shell脚本的运行条件
练习:
1.对shell常用功能的操作
2.练习shell的各种变量的定义、查看和使用
3.写一个简单的多条命令的shell脚本
4.如何去运行以上的那个shell脚本
5.开机如何自动执行这个shell脚本
练习一参考:
查询命令相关
1 查询data.f文件中字符串”abc”出现的行号以及内容
grep –n ‘abc’ data.f
2 查询data.f文件中字符串”abc”出现的行的内容
grep ‘abc’ data.f
3 查询data.f文件中字符串”abc”出现的行数
grep –n ‘abc’ data.f | cut –f 1 –d ‘:’
4 查询data.f文件中不包含字符串”abc”出现的行号以及内容
grep –vn ‘abc’ data.f
5 使用正则表达式写出与 grep –i “sept” data.f 作用相同的代码
grep ‘[sS][eE][pP][tT]‘ data.f
6 正则表达式 grep ‘48[34]’ data.f 的含义
匹配’483’ or ‘484’
7 正则表达式grep ‘^[^48]’ data.f的含义
匹配不是以4或者8开头的行
8 正则表达式grep ‘K…D’ data.f的含义
.代表任意字符,也就是匹配K ____D
9 正则表达式grep '[0-9][0-5][0-6]' data.f的含义,与grep '^[0-9][0-5][0-6]' data.f的区别?
第一个:匹配3个连续的数字,第一位是0-9,第二位是0-5,第三位是0-6。
第二个:匹配的3个数字必须在行首
10 查询文件中空行的正则表达式
grep '^\s*$' data
11 正则表达式 grep "0:0" /etc/passwd | egrep -v '^root'的真正意图
查找UID和GID都为0的非root用户。
开机自动执行shell脚本
source test.sh 将此命令添加到/etc/rc.local即可
相关推荐
Shell学习第一章主要涵盖了Shell脚本语言的基础知识,包括Shell的介绍、基本语法、变量和字符串操作等内容。以下是对这些知识点的详细阐述: 1. **Shell介绍**:Shell是一种命令行解释器,它允许用户与操作系统进行...
Linux Shell是Linux操作系统中用于与系统交互的一种命令行界面,它是用户与Linux内核之间的桥梁。Shell不仅可以执行单一的命令,还可以通过编写脚本实现复杂的自动化任务。在本学习资料包中,包含了三本关于Linux ...
在Shell学习中,首先需要了解的是一些基础概念。例如,当用户登录到Linux系统时,系统会根据/etc/passwd文件中的信息来决定使用哪个Shell。用户可以在命令提示符下输入命令,由Shell进行解释和执行。例如,输入命令...
**实用的Shell学习资料概述** Shell是Linux和Unix操作系统中的一种命令解释器,它作为用户与操作系统之间交互的界面,允许用户输入命令并执行。在众多的Shell中,Bash(Bourne Again SHell)是最流行的一个,广泛...
1. 使用文本编辑器创建一个新的文件,如`shellTest.sh`,并在文件中添加`#!/bin/bash`作为第一行,这是Shebang,指定该文件应由bash shell解释器执行。 2. 编写Shell命令,例如`echo "Hello world"`用于在终端打印...
以上内容总结了Shell基础学习资料中的关键知识点,包括Shell脚本的基础结构、注释、变量管理、环境变量的概念以及一系列常用的Unix命令和相关概念。这对于初学者来说是非常宝贵的资源,有助于快速掌握Shell脚本的...
1. **什么是Shell**:Shell是操作系统提供的一种命令行界面,它允许用户通过输入指令来与操作系统交互。而在Linux系统中,常见的Shell有Bash(Bourne-Again SHell)、Sh、Csh和Zsh等。 2. **脚本结构**:一个基本的...
以下是对标题“shell学习经典资料”及相关文件的详细解析: 首先,我们看到标题提及了“shell学习”,这指的是对shell编程的学习。Shell编程是一种使用命令行界面编写脚本的技能,它允许用户通过编写简单的或复杂的...
《Shell脚本学习手册》 Shell,是Linux系统中的一种命令语言和程序设计语言,它由C语言编写,作为用户与操作系统内核交互的桥梁。Shell不仅提供了命令行接口,还允许用户编写脚本程序,实现自动化任务处理。本文将...
### Shell学习方法详解 #### 一、Shell简介 在计算机科学领域中,Shell是一种非常重要的交互式编程环境,被广泛应用于各种操作系统中,包括Linux、Unix等。Shell通常被称为“壳”,用来区别于操作系统的核心部分...
这份"Linux Shell脚本学习文档"是针对初学者的一份详细教程,旨在帮助读者快速理解和掌握Bash Shell脚本的基本概念和用法。 首先,让我们从基础开始。在Shell脚本中,每一行都是一个命令或指令,可以执行诸如创建、...
### Shell脚本学习指南知识点详解 #### 一、Shell脚本概述 - **定义与作用**:Shell脚本是用于Unix/Linux系统中的自动化任务的一种编程语言。它通过一系列的命令来实现对系统的控制和管理,可以极大地提高工作效率...
Shell编程是Linux/Unix系统中不可或缺的一部分,它是一种命令行解释器,允许用户与操作系统进行交互,执行系统命令,以及编写脚本自动化任务。在本文中,我们将深入探讨Shell编程的基础知识,包括基本命令、变量、...
本文整理了一份Linux shell学习笔记及基本命令合集,包含了LINUX常用操作命令和命令行编辑快捷键、shell基本命令,Linux相关使用配置教程等,需要的朋友可下载试试! shell是一个用C语言编写的程序,它是用户使用...
**Shell脚本学习指南** Shell脚本是一种在Unix/Linux操作系统中使用的编程语言,它允许用户通过命令行界面执行一系列操作,实现自动化任务处理。作为学习Shell脚本的指南,这本书籍旨在帮助读者深入理解Shell脚本...
在学习Shell的过程中,理解这些基本概念和技巧对于有效利用命令行环境至关重要。熟悉这些操作不仅能够提高操作系统的使用效率,还能帮助用户在日常工作中快速地完成任务。尤其对于系统管理员和需要进行自动化脚本...
Linux shell是学习Linux必须掌握的脚本之一,该文档为本人学习Shell脚本时总结的一些基础知识,包括Shell的语法、简单示例和总结,欢迎下载学习。
### 基本的Shell脚本学习资料 #### 一、引言 Shell脚本作为Linux系统管理的重要组成部分,对于成为一名合格的系统管理员至关重要。在Linux环境下,掌握基础的Shell命令不仅能提高工作效率,还能帮助更好地理解和...