linux shell 总结
、#!指定执行脚本的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 总结的更多相关文章
- linux shell 中的sleep命令
开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...
- Linux shell脚本编程(三)
Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...
- Linux shell脚本编程(二)
Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...
- Linux shell脚本编程(一)
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...
- Linux Shell 流程控制语句
* 本文主要介绍一些Linux Shell 常用的流程控制语句* 1. if 条件语句:if-then/if-elif-fi/if- else-fi if [条件判断逻辑1];then command ...
- Linux Shell 截取字符串
Linux Shell 截取字符串 shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%/*} ${var%%/*} ${var:start:len} ${var: ...
- Linux Shell 重定向与管道【转帖】
by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以 ...
- Linux Shell 通配符、元字符、转义符【转帖】
作者:程默 说到shell通配符(wildcard),大家在使用时候会经常用到.下面是一个实例: 1 1 2 3 4 [chengmo@localhost ~/shell]$ ls a.txt ...
- Linux Shell中单引号、双引号、反引号的区别【转载】
linux shell可以识别4种不同类型的引字符号: 单引号字符' 双引号字符" 反斜杠字符\ 反引号字符` 1. 单引号 ( '' )# grep Susan phonebook Sus ...
- 【shell 大系】Linux Shell常用技巧
在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...
随机推荐
- 如何在SpringBoot当中上传多个图片或者上传单个图片 工具类
如何在SpringBoot当中上传多个图片[上传多个图片 ] 附赠工具类 1.SpringBoot 上传图片工具类 public class SpringUploadUtil { /*** * 上传图 ...
- codevs 1060 搞笑运动会 dp
1060 搞笑世界杯 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codevs.cn/problem/1060/ Description ...
- python 基本语法速览,快速入门
https://zhuanlan.zhihu.com/p/24536868 学习参考于这个博文. 我做一个笔记. 关于python一些常用的语法快速的预览,适合已经掌握一门编程语言的人.零基础,没有任 ...
- 【原】【Git】EGit强制覆盖本地文件
今天带来的是EGit使用中有时会用到的一个技巧,强制覆盖本地.EGit强制覆盖远端(其实没有这个说法),在另一篇文章中写了http://www.cnblogs.com/guodongdidi/p/48 ...
- 关闭Spring Boot的Jsckson的FAIL_ON_EMPTY_BEANS
说明:Spring Boot中默认使用了Jackson做JSON的解析. 解决方法: 1.通过注入Bean来实现 错误: org.springframework.http.converter.Http ...
- Object-C编程基础总结:
1,nil,NULL,NSNull:nil用来给对象附值,object—c里允许对象为空,空对象也可以接受消息.但是不允许指针为空,NULL是给任何指针附值的.所以NULL只在C或C++里才用.NSN ...
- pytest文档4-测试用例setup和teardown
前言 学过unittest的都知道里面用前置和后置setup和teardown非常好用,在每次用例开始前和结束后都去执行一次. 当然还有更高级一点的setupClass和teardownClass,需 ...
- python接口自动化10-token登录
前言 有些登录不是用cookie来验证的,是用token参数来判断是否登录. token传参有两种一种是放在请求头里,本质上是跟cookie是一样的,只是换个单词而已:另外一种是在url请求参数里,这 ...
- 对java3d的位置理解
以一个圆柱体为例: 圆柱体的一个特征点假设为(0,0,0),如下图示: 当特征点变为(0,0.4f,0)时,我们看到的圆柱体就如下所示: 当特征点变为(0,0.8f,0)时,我们看到的圆柱体就如下所示 ...
- Oracle数据库常用函数使用--持续更新中
NVL函数.NVL( string1, replace_with).如果string1为NULL,则NVL函数返回replace_with的值,否则返回原来的值. INSTR函数.用于查找指定字符串是 ...