、#!指定执行脚本的shell 如果不写的话,用系统默认的shell  s shell是所有linux ,unix都支持的

、#开始的行表示注释(不限于行首)
命令建议写绝对路径
执行:
./example.sh
sh example.sh date +%F 临时变量:shell内部定义的,范围程序本身
永久变量:环境变量 $PATH :默认搜索路径,环境变量
$LANG 当前支持的语言环境
$SHELL 当前shell
$PS1
变量以字母和下划线开头,区分大小写,一般都为大写
注意:变量赋值时等号两边没有空格 TIME=$(data+%F) <==> TIME=`data+%F)` 当字符串中间有空格时需要用引号引起来,没有则可以不用引 echo NAME = 'songjiankang'
双引号中变量的值会解析,单引号中的则不会 set 查看环境变量和自定义变量
删除变量:unset NAME 变量只有在使用的时候才会加 "$" 特殊的变量:
位置变量 命令$, 后面$~ 是在脚本执行的时候后面传进去的 echo $? 如果为0执行成功,如果非0,有问题 (上一个命令执行的返回值)
$* 这个程序的所有参数
$# 这个程序的参数个数
$$ 执行这个脚本程序的PID
$! 执行上一个后台命令的PID
$? 执行上一个命令的返回值 注意:这些变量都是在脚本中用的 $# is :
$* is : a b
$? is :
$$ is :
$ is : demo.sh 把需要执行的放到shell脚本中,然后计划任务去执行脚本 read 从键盘读入数据,赋值给变量 脚本测试:
read one two three #一个变量名或多个变量名
echo 'first--'$one
echo 'two --'$two
echo 'three--'$three sh -x read.sh 调试 显示代码执行的过程
sh -n read.sh 检测语法错误 如果参数过少,后面的参数接到的空,如果输入的参数过多,会把多余的参数都放到最后一个参数里 变量的算数运算 expr 对整数进行运算,舍去法取整
注意: expr + 运算符两边是有空格的
注意乘号需要转义 expr \*
var7=expr `expr + `/$var4 变量参数语句:参数变量是否相等,是否为空,文件类型
test str1 = str2 #注意两边有空格
test str1 != str2 if [测试语句 ]; then #注意 [] 两边必须有空格 ,then 如果和if在一行必须加分号
[code]
else
[code]
fi
______________________________________________ if [测试]
then
[code]
elif []
then
[code]
else
[code]
fi exit //退出脚本 0 表示正常退出,非0表示非常出退出 ———————————————————————————————————————————————————————— for 变量 in 名字表
do
命令列表
done awk:信息分段提取命令
#查找是root的用户
awk -F : '$3==0 {print $1}' /etc/passwd
#查找密码为空的用户
awk -F : 'length($2)==0 {print $1}' /etc/passwd
grep 如果找不到的话会返回非零值
_______________________________________________________ select 变量 in 名字表 #没有break则会一直循环
do
命令列表
break
done ________________________________________________________ op=$
case "$op" in#引号可有可无
stop) #引号可有可无
echo "stop"
;;
restart)
echo restat
;;
*)
echo "usage:sdf"
esac
——————————————————————————————————————————————————————
echo passwd --stdin mysql shift:参数左移 函数增加了代码的可能性 脚本可以让用户执行:
sh方式:
、对脚本有r权限
、对脚本所在目录有rx权限 直接执行脚本方式:
、对脚本有rx权限
、对脚本所在目录有rx权限 ———————————————————————————————————————————————————————
检测nginx是否运行
web=`pgrep nginx`
if [ "$web" = "" ]
then
echo "nginx is not running"
else
echo "nginx is running。。。。"
fi
_____________________________________________________________________________________________________ histor -c 清除历史
!命令 执行离最近的那条以命令开头的命令
set 查看所有变量
env 查看全局变量
echo "aaa${a}aaaaa"
export 变量名 #使其成为全局的
find / 搜索全部文件 for循环
for((i=;i<;i++))
do
echo $i
done let i++ 只能递增1 ______________________________________ ll &>error.txt 错误和正确都输出到里 ~/.bashrc: 存放别名记录
~/.bash_history 存放历史记录 !ps #执行最近一次的以ps开头的命令
修改 history 记录历史的长度:/etc/profile 中 HISTSIZE= 参数 abc${song}def #包含变量名 export varname #把一个局部变量提升为一个全局变量 cat <<end
s
j
k
end 环境变量
全局:/etc/profile
局部:~/.bash_profile 常见的环境变量:
$USER, $LOGNAME
$UID, $SHELL, $HOME,
$PWD, $PATH
$PS1:[\u@\h \W]\$
$PS2:敲错以后进入的符号 chmod a+x 文件名 三个用户都增加执行权限 [ -d /etc/init.d/ ] && echo "yes"
echo $? dfnum=df -hT |awk 'NR==4{print int($5)}' #打印第五行第四列
[ $dfnum -lq ]&& echo "yes" read -p "please intpu you name :" name #输入的内容会被name获取到 service mysqld status &>/dev/null
echo $? #判断是否启动,返回值在mysqld中 for((i=;i<;i++))
do
echo $i
sleep
done #纯数学运算的简写
let i++
i=$(($i+)) 函数名 参数1 参数2 。。。。 add(){
echo $
echo $
} add
add man test 查看test测试的用法

linux shell 总结的更多相关文章

  1. linux shell 中的sleep命令

    开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...

  2. Linux shell脚本编程(三)

    Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...

  3. Linux shell脚本编程(二)

    Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...

  4. Linux shell脚本编程(一)

    Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...

  5. Linux Shell 流程控制语句

    * 本文主要介绍一些Linux Shell 常用的流程控制语句* 1. if 条件语句:if-then/if-elif-fi/if- else-fi if [条件判断逻辑1];then command ...

  6. Linux Shell 截取字符串

    Linux Shell 截取字符串 shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%/*} ${var%%/*} ${var:start:len} ${var: ...

  7. Linux Shell 重定向与管道【转帖】

    by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以 ...

  8. Linux Shell 通配符、元字符、转义符【转帖】

    作者:程默 说到shell通配符(wildcard),大家在使用时候会经常用到.下面是一个实例: 1   1 2 3 4 [chengmo@localhost ~/shell]$ ls a.txt  ...

  9. Linux Shell中单引号、双引号、反引号的区别【转载】

    linux shell可以识别4种不同类型的引字符号: 单引号字符' 双引号字符" 反斜杠字符\ 反引号字符` 1. 单引号 ( '' )# grep Susan phonebook Sus ...

  10. 【shell 大系】Linux Shell常用技巧

    在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...

随机推荐

  1. bzoj 2938

    收获: 1.AC自动机可以在建立fail时将一些不存在的儿子指针指向对应的位置. 2.判断环时不要想当然地写个这样的版本: bool dfs( int u ) { if( vis[u] ) retur ...

  2. JavaScript学习笔记 isPrototypeOf和hasOwnProperty使用区别

    1.isPrototypeOf isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的原型链中,是则返回true,否则返回false. 格式如下: object ...

  3. Redis-Linux安装

    简介 redis是一个开源项目,一种基于hash存储于内存的nosql数据库.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括string. ...

  4. HDU 4577 X-Boxes

    X-Boxes Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Sub ...

  5. SEPIC 单端初级电感转换器 稳压器 -- Zeta 转换器

    single ended primary inductor converter 单端初级电感转换器 SEPIC(single ended primary inductor converter) 是一种 ...

  6. TRF7970A 天线

  7. .NET Versioning and Multi-Targeting - .NET 4.5 is an in-place upgrade to .NET 4.0

    Say what you will about the past ridiculousness of .NET Framework versioning, since the confusion of ...

  8. SharePoint Server 2013 Offline Installation (without Internet)

    转自:http://social.msdn.microsoft.com/Forums/sharepoint/zh-CN/08f90e0f-1f52-4eba-9f6e-4dd635ffaadc/sha ...

  9. 7款Flash和Javascript网页视频播放器

    Flash和javascript网页视频播放器.梦想中的视频播放器是这样的: 支持所有格式,兼容所有主流视频网站,支持播放列表.视频缩略图.全屏播放.画面调节.预加载.体积贼小,功能贼多……. 也许你 ...

  10. PHP:面向对象学习笔记,重点模拟Mixin(掺入)

    背景 相对于Python.Node和Ruby来说PHP算是一门容易学习和使用的语言,因为这个特点也使其成为WEB开发领域的佼佼者,本文记录一下我对PHP面向对象部分的学习笔记. 先来一个复杂的例子:M ...