【linux】学习6
鸟哥13章的东西
shell script速度较慢,适合用于系统管理,但不适合处理大量数值运算
var=$((运算内容)) 可以用来做变量的加减乘除求余运算
total=$(($firstnum*$secnu))
declare -i total="$firstnum*$secnu"
上面两句功能一样,建议用第一种
echo -e "\nYour full name is: $firstname $lastname"
-e表示后面 \表示转义,例子表示了在echo中显示两个变量的方法
file1=${filename}${date1}
一个变量是另两个变量的连接的写法
执行script
sh scriptname 在子进程中执行,变量不会出现在父进程
source scriptname 在父进程中执行,变量会出现在父进程
test :测试
test -e /test && echo "exist" || echo "Not exist" 测试文件名/test是否存在 目录文件都可以
test -f sh03.sh && echo "exist" || echo "Not exist" 测试文件是否存在 必须是文件
test -d abc && echo "exist" || echo "Not exist" 测试目录是否存在 必须是目录
下面代码测试文件是否存在 以及文件的执行权限
read -p "Please input a filename: " filename
test -z $filename && echo "You MUST input a filename." && exit
test ! -e $filename && echo "The filename '$filename' DO NOT exist" && exit
test -f $filename && filetype="regulare file"
test -d $filename && filetype="directory"
test -r $filename && perm="readable"
test -w $filename && perm="$perm writable"
test -x $filename && perm="$perm executable"
echo "The filename: $filename is a $filetype"
echo "And the permissions are: $perm"
[]: 表判断,但是挨着括号的两端必须都是空格
[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK, CONTINUE" && exit 0 判断yn等于Y或y,任意一个都返回true
脚本后面带参数:
$0 代码文件名 $1代码后面第一个参数 $2代码后面第二个参数....
$@ 代表除文件名之外的所有参数 $# 表后面接的参数个数
下面例子输入少于两个参数会退出 会显示所有参数和第一第二个参数
echo "The script name is --> $0"
echo "Total parameter number is --> $#"
[ "$#" -lt ] && echo "The number of parameter is less than 2. Stop here." && exit
echo "Your whole parameter is --> '$@'"
echo "The 1st parameter --> $1"
echo "The 2nd parameter --> $2"
shift num: 移除后面num个变量
条件判断式
if [] ; then
elif []; then
else
fi
if [ "$1" == "hello" ]; then
echo "Hello, how are you?"
elif [ "$1" == "" ]; then
echo "You Must input parameters, ex> {$0 someword}"
else
echo "The only parameter is 'hello', ex> {$0 hello}"
fi
netatat -tuln 获得目前主机启动的服务
80:www
22:ssh
21:ftp
25:mail
检测常见端口
echo "Now, I will detect your linux server's services!"
echo -e "The www, ftp, ssh and mail will be detect!\n" testing=$(netstat -tuln | grep ":80 ")
if [ "$testing" != "" ]; then
echo "WWW is running in your system."
fi testing=$(netstat -tuln | grep ":22 ")
if [ "$testing" != "" ]; then
echo "SSH is running in your system."
fi testing=$(netstat -tuln | grep ":21 ")
if [ "$testing" != "" ]; then
echo "FTP is running in your system."
fi testing=$(netstat -tuln | grep ":25 ")
if [ "$testing" != "" ]; then
echo "MAIL is running in your system."
fi

case 条件判断
case $变量名称 in
"第一个变量内容“)
程序段
;;
"第二个变量内容“)
程序段
;;
*)
其他变量内容的程序段
exit
;;
esac
函数:
function fname(){
程序段
}
后面接内置参数和shell的内置参数方法一样 也是$1 $2 ...
循环:
买足条件就循环
while [ condition ]
do
程序段
done
满足条件就结束循环
until [ condition ]
do
程序段
done
for循环
for var in con1 con2 con3 ...
do
程序段
done
for ((初始值;限制值;执行步长))
do
程序段
done
调试script
sh [-nvx] scriptname.sh
-n 不执行,仅检查语法
-v 执行前把script内容输出到屏幕
-x 将使用到的script内容输出到屏幕 debug很有用
【linux】学习6的更多相关文章
- Linux学习日记-使用EF6 Code First(四)
一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是 请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...
- Linux学习之CentOS(二十二)--单用户模式下修改Root用户的密码
在上一篇随笔里面详细讲解了Linux系统的启动过程 (Linux学习之CentOS(二十一)--Linux系统启动详解),我们知道Linux系统的启动级别一共有6种级别,通过 /etc/inittab ...
- Linux学习笔记之兄弟连
systemctl --user enable pulseaudio说明:安装完成后系统没有声音,用该命令可以打开.ifconfig eth0 192.168.118.1说明:给网卡设置IP地址.ap ...
- Linux学习内容
Linux学习要点(转载自红联) 一.学习Linux的基本要求1. 掌握至少50个以上的常用命令. 2. 熟悉Gnome/KDE等X-windows桌面环境操作 . 3. 掌握.tgz..rpm等软件 ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- Linux学习心得之 Linux下命令行Android开发环境的搭建
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...
- Linux学习心得之 Linux下ant安装与使用
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下ant安装与使用 1. 前言2. ant安装3. 简单的a ...
- 实验楼 linux 学习
实验楼 linux 学习 一.Linux 用户管理 1.查看用户 who am i // who mom likes whoami ====--------====== 输入的第一列表示打 ...
- linux学习网站分享
http://www.zhihu.com/question/19895288 http://linux.vbird.org/ 两个linux学习的网页存起来,以后学习.
- linux学习笔记2-linux的常用命令
第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...
随机推荐
- fullPage 全屏滚动【上下滚动】效果
由于个人能力,研究了两天,终于写出来了. 又花了一天的时间成功的将30多行脚本,改成了70多行,我也是够有心的了. 那么接下来就是我制作这个效果的全部过程. 那一年我十七,她十八,在那个夏天里,我们, ...
- [译]git fetch
git fetch从远程仓储导入commit到你的本地仓储. 这些fetch到的commit是做为一个远程分支存储在你本地的. 这样你可以在集成这些commit到你的项目前先看看都有些什么修改. 用法 ...
- 黄学长模拟day1 某种密码
关于某种密码有如下描述:某种密码的原文A是由N个数字组成,而密文B是一个长度为N的01数串,原文和密文的关联在于一个钥匙码KEY.若KEY=∑▒[Ai*Bi],则密文就是原文的一组合法密码. 现在有原 ...
- 动态调用web服务
通常我们在程序中需要调用WebService时,都是通过“添加Web引用”,让VS.NET环境来为我们生成服务代理,然后调用对应的Web服务.这样是使工作简单了,但是却和提供Web服务的URL.方法名 ...
- 大数据之pig 命令
1.pig与hive的区别 pig和hive比较类似的,都是类sql的语言,底层都是依赖于hadoop 走的mapreduce任务. pig和hive的区别就是,想要实现一个业务逻辑的话, ...
- Asp.net 网站防攻击安全设置
针对已解密的_ViewStat参数漏洞整改建议:在<system.web>下添加 <machineKey validation="3DES"/> 禁用脚本调 ...
- docker镜象
1.安装好docker后,用docker命令的时候有时候会报错:Post http:///var/run/docker.sock/v1.19/images/create?fromImage=ubunt ...
- java web 相对路径中已/开头和不已/开头的区别
通俗的讲,有/会从跟目录开始算,没有会从当前目录开始算 1.前台页面 页面中向服务器页面请求静态资源且没有指定<base href="<%=basePath%>" ...
- 21个免费的UI设计工具和资源网站,不管是web,js,android都
本帖最后由 hua631150873 于 2014-9-12 18:26 编辑 Lumzy 官方地址:http://www.lumzy.com/ Lumzy是一个网站应用和原型界面制作工具.使用Lum ...
- 带你走进rsync的世界
导读 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录.rsync共有3种使用方 ...