1:每个脚本开头均需配置,指向bash的链接
#!/bin/bash
2:FUNCNAME[0]表示当前运行的方法名称。
3:awk
在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。
例如:
awk -F: '{print $2}'
表示:以':'分割,获取打印出的第2个信息。
如果后面不带-F,则默认是以空格分隔。
4:exit $?
5:字符串比较
-e file 文件 file 已经存在
-f file 文件 file 是普通文件
-s file 文件 file 大小不为零
-d file 文件 file 是一个目录
-r file 文件 file 对当前用户可以读取
-w file 文件 file 对当前用户可以写入
-x file 文件 file 对当前用户可以执行
-g file 文件 file 的 GID 标志被设置
-u file 文件 file 的 UID 标志被设置
-O file 文件 file 是属于当前用户的
-G file 文件 file 的组 ID 和当前用户相同
6:两个命令直接使用“ && ”表示并且,即执行前面的命令,同时执行后面的命令
7:定义function时。
1) 局部变量定义:local
2) 暂停当前进程多少豪秒:sleep 数字
8:shell调用java程序(见如下)
export CLASSPATH="${javahome}/lib/tools.jar:${javahome}/jre/lib:/usr/local/bin/bin/memcached.jar:"
local test=$(java com.jzh.operate.OperateMemcached "${memcached_ip}":"${memcached_port}" memcachedtest memcachedtest | awk '{print $1}')
9:Memcached启动时指定IP配置
INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。 一般来说,在各个系统中均定义成为0值。
10:Linux系统环境变量在/etc/.profile文件中
11:BASH shell脚步在读取(properties)配置文件时,最好先进行dos2unix命令,将配置文件中的换行去除。
12:su 命令详解
使用权限:所有使用者
使用方式:su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
说明:变更为其他使用者的身份,除 root 外,需要键入该使用者的密码
参数:
-f 或 --fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
-m -p 或 --preserve-environment 执行 su 时不改变环境变数
-c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
-s shell 或 --shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell
--help 显示说明文件
--version 显示版本资讯
- -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root
13:tee命令
tee能将输入数据流同时双向输出到屏幕和文件
USER 欲变更的使用者帐号
ARG 传入新的 shell 参数
14:typeset
typeset用于设置变量属性,如大小写,宽度,左右对齐等都可以用typeset来控制, 当用typeset改变一个变量的属性时,这种改变是永久的
15:touch
更新文件的访问和修改时间。
16:1>/dev/null 2>&1
shell中可能经常能看到:>/dev/null 2>&1
命令的结果可以通过%>的形式来定义输出
/dev/null 代表空设备文件
> 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
那么本文标题的语句:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件
17:if的逻辑表达式
逻辑非 ! 条件表达式的相反
if [ ! 表达式 ]
if [ ! -d $num ] 如果不存在目录$num
逻辑与 –a 条件表达式的并列
if [ 表达式1 –a 表达式2 ]
逻辑或 -o 条件表达式的或
if [ 表达式1 –o 表达式2 ]
18:如何执行多重用户下命令,且得到返回值
如:su - oracle -c "echo \"startup;\" | sqlplus \"/as sysdba\"" | tee /tmp/start_instance.log
即:当前用户为root,切换至oracle用户下,同时执行sqlplus / as sysdba 中的startup命令。
19:shell脚本中包含另一个脚本文件的使用,见如下:
. 脚本文件名
20:" ' `含义
"":表示字符串。里面如果存在命令也不会执行
'' :同上
``:表示字符串。里面如果存在命令也会执行,且会返回执行结果。
21:在文件夹中搜索文件中包含的字符串
grep "字符串" * -R
22: usage使用
function usage
{
echo "Usage:"
echo "db_instance.sh [create|delete|start|stop]"
echo " create create the instance"
echo " delete delete the instance"
echo " start start the instance"
echo " stop stop the instance"
}
case $1 in
create)
create_instance
exit $?
;;
delete)
delete_instance
exit $?
;;
start)
start_instance
exitcode=$?
log INFO db_instance.sh "Start the instance,exit code:${exitcode}"
exit ${exitcode}
;;
stop)
stop_instance
exitcode=$?
log INFO db_instance.sh "Stop the instance,exit code:${exitcode}"
exit ${exitcode}
;;
help)
usage
exit 0
;;
esac
usage
23:命令操作文件(sed、ed)
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下介绍的是Gnu版本的Sed 3.02。
24:指定文件行数插入内容样例
line_no=`grep -n "^[ ]*include[ ]*\"types.cf\"" /etc/main.cf | awk -F: '{print $1}'`
((line_no+=1))
expr_str="include \"OracleTypes.cf\""
cat << HERE | ed /etc/main.cf 1>/dev/null 2>&1
$line_no
i
$expr_str
.
w
q
HERE
25:dos2unix
dos2unix filename : 把dos文件转换成unix文件,可以避免在unix下执行文件时空行报错。
分享到:
相关推荐
### bash_shell笔记_1_脚本基础知识 #### 一、Shell基本概念与使用 Shell是Linux操作系统中的一个重要组成部分,它充当用户与系统内核之间的接口。通过Shell,用户可以执行命令、运行程序以及进行各种系统管理操作...
**Bash脚本基础实例详解** Bash,全称Bourne-Again SHell,是Linux和类Unix系统中的默认...记住,Bash的强大之处在于其灵活性和与其他Linux命令的集成,所以随着你对系统的熟悉,你的脚本也将变得更加高效和强大。
【标题】"Bash脚本编程基础共58页.pdf.zip" 涉及到的是Linux环境下的一种重要脚本语言——Bash shell脚本的基础知识。Bash是Bourne-Again SHell的缩写,它是Unix和类Unix系统如Linux、macOS中的默认命令解释器,用于...
### Bash脚本编程基础知识点详解 #### 一、Bash脚本编程概述 **Bash**(Bourne Again SHell)是一种广泛使用的Unix shell,它不仅是一个强大的命令行解释器,同时也是一种功能丰富的编程语言。Bash脚本编程允许...
Bash参考手册.pdf是Bash shell的官方参考手册,涵盖了Bash shell的所有方面,包括基本语法、变量、命令、函数、文件处理、流程控制、输入输出、错误处理等。 1. Bash简介 Bash是GNU项目的一部分,是自由软件基金会...
1. **Bash基础知识**:理解Bash环境,包括Shell变量、命令替换、流程控制结构(如if语句、for循环、while循环)以及函数的创建和使用。 2. **输入/输出重定向**:学习如何改变程序的默认输入和输出,包括重定向到...
### Bash 脚本编程基础知识点 #### 一、Shell 概述与分类 - **定义**:Shell 是一种命令行解释器,同时也是 Linux 和 Unix 操作系统的用户界面。它接收用户的输入,并将这些命令传递给操作系统进行处理。 - **语言...
下面是 bash 的一些重要知识点: 一、什么是 shell shell 是 Linux 系统中,用户和内核之间的交互程序。它翻译用户输入的命令,并将其传递给内核执行。shell 是 Linux 系统的一个核心组件,但它不是系统内核的一...
Linux操作系统的基础知识中,Bash Shell扮演着至关重要的角色。Bash,全称为Bourne-Again SHell,是GNU项目中的一个Unix shell,它允许用户通过命令行与操作系统进行交互,请求内核提供各种服务。Bash拥有丰富的特性...
**Bash 概述** Bash,全称是 Bourne-Again SHell,是Linux操作系统中最常用的命令行解释器,...掌握Bash的基础知识,能让你更高效地与Linux系统交互。通过实践和学习,你可以深入理解其内在机制,进一步提升工作效率。
在这个场景中,我们关注的是与Bash shell相关的配置文件——"bash.acp"和"bash.stx",这些文件是专门为EditPlus定制的,目的是增强在编辑Bash脚本时的用户体验。 `bash.acp` 文件是EditPlus的语法规则配置文件,...
本文档是关于 Bash Script 的详细指南,旨在为读者提供从基础到高级的 Shell 编程技术。作者 Mendel Cooper 和译者杨春敏、黄毅通过这本书,想要提供一个系统化的学习 Bash Script 的方法,让读者能够快速掌握 Shell...
"bash 官方手册/Bash Reference Manual" bash 官方手册是 GNU 项目的一部分,由 Chet Ramey 和 Brian Fox 编写,提供了 Bash shell 的详细参考手册。该手册涵盖了 Bash shell 的所有方面,包括基本语法、shell ...
比较基础的关于BASH介绍,很不错的一部入门教程,打印版。
总结一下,"bash.tar.gz" 文件可能包含一个 Bash 脚本或文档,涵盖了 Bash shell 的基础知识,如命令行操作、脚本编写和流程控制。同时,由于涉及到 Python,这个压缩包可能还探讨了 Bash 与 Python 的集成,以及在...
它不仅覆盖了Bash Shell的基础知识,还深入探讨了如何通过Shell脚本来解决实际问题,适合初学者到进阶用户的不同需求。 - **核心章节概览**: - **第1章:介绍**:介绍了Shell的历史背景、Bash的发展历程及其在现代...
综上所述,《GNU Bash 参考手册》是一部全面而深入的指南,不仅适合初学者了解Bash的基础知识,也适合有经验的用户进一步探索Bash的高级功能。通过学习本手册,用户将能够更高效地使用Bash,编写出更加复杂和功能...
本文详细介绍了Bash编程的基础知识和高级技巧,从为什么学习Bash编程到具体的语法细节都有所涵盖。学习这些知识不仅可以帮助你更好地理解Bash脚本的工作原理,还能让你具备编写高效、可靠的脚本的能力。随着实践的...