shell 笔记】的更多相关文章

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/505644 ****shell 脚本基础知识**** ##########实验环境是RHEL5.3,内核2.6.18########### 一.基本脚本编译 知识内容: # 构建脚本 # 将命令串联起来 # 存储变量 # 数学计算 # 重定向输出 # 检查代码 1.使用多条命令 shell不像高级语言需要编译后执…
本文是上课笔记总结,涉及细节知识点会在以后文章说明! bash脚本编程: 脚本程序:解释器解释执行: shell: 交互式接口:编程环境: shell: 能够提供一些内部命令,并且能通过PATH环境变量找到外部命令:把命令提交给内核启动为进程: 编程环境: 流程控制语句: 顺序执行: 循环执行: 选择执行: 条件测试:真.假 $? 命令的状态结果: 0: 真 1-255: 假 过程式的编程语言的元素:变量.流程.函数.数组 变量:局部变量.本地变量.环境变量.位置参数变量.特殊变量 变量: 数值…
在java中执行shell有好几种方式:第一种(exec)方式一 public static synchronized void runshell2() {    File superuser = new File("/system/bin/superuser");      if (superuser.exists())    {       // return device to original state       Process process;       try    …
shell:俗称操作系统的"外壳",就是命令解释程序.     是用户与Linux内核之间的接口.     是负责与用户交互,分析.执行用户输入的命令,并给出结果或出错提示.     每个用户账号创建时都会指定一个shell.当用户使用该账号注册成功,便会马上执行.     root账号的shell提示符是#号.   shell种类: ash:占用资源最少的shell. bash:默认使用,内部命令一共用40个. ksh:共42条内部命令,与商业版ksh完全兼容. csh:linux较…
local一般用于局部变量声明,多在在函数内部使用.     1.    Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止.     2.    Shell函数定义的变量默认是global的,其作用域从“函数被调用时执行变量定义的地方”开始,到shell结束或被显示删除处为止.函数定义的变量可以被显示定义成local的,其作用域局限于函数内.但请注意,函数的参数是local的.     3.    如果同名,Shell函数定义的loc…
shell 笔记 通配符 没有 '.' [Aa] 表示 A 或者 a ? 表示任意字符 * 表示任意字符串 IFS data='name, sex, rollno, location' oldIFS=$IFS IFS=', ' for i in $data; do echo $i; done 变量 $* 参数被作为一个单词 (这个变量很少被使用) $@ 参数按 IFS 分割 $? 退出参数 $$ 当前 shell 进程的 pid $! 后台运行的最后一个进程的 pid 长度 var='xxxx'…
一.编写第一个shell程序 实例1: [程序] #!/bin/sh echo "hello word !" [运行]…
local一般用于局部变量声明,多在在函数内部使用.    1.    Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止.    2.    Shell函数定义的变量默认是global的,其作用域从"函数被调用时执行变量定义的地方"开始,到shell结束或被显示删除处为止.函数定义的变量可以被显示定义成local的,其作用域局限于函数内.但请注意,函数的参数是local的.    3.    如果同名,Shell函数定义的l…
由于工作的需要,越来越多的接触到linux系统.最近看了<Linux与Unix Shell>这本书,安装书的章节整理了一些自己认为比较重要的命令,方便以后查阅. No.001 文件安全与权限 1. umask 决定了新建文件的权限 2. 软链接(符号链接) ln -s source_path target_path No.002 find和xargs 1. find pathname -options [-print -exec -ok]    其中exec参数的命令格式: 'command-…
shell提取文件名: http://blog.csdn.net/u011544778/article/details/50773053 一.使用${} 1.${var##*/}该命令的作用是去掉变量var从左边算起的最后一个'/'字符及其左边的内容,返回从左边算起的最后一个'/'(不含该字符)的右边的内容.使用例子及结果如下: 从运行结果可以看到,使用该命令,可以提取出我们需要的文件名file.txt. 若使用时在shell程序文件中,可以使用变量来保存这个结果,再加以利用,如file=${v…
1.查看进程的环境变量 普通:$cat /proc/1642/environ  换行:$cat /proc/1642/environ | tr '\0' '\n' tr的命令格式是tr SET1 SET2,凡是在SET1中的字符,都会被替换为SET2中相应位置上的字符. 2.SHELL脚本赋值与等于判断 赋值:$var=value 相等:$var  = value 在赋值时不要留有空格. 3.从进程名字得知进程ID $ pgrep my_proc  4.当前环境变量 $PATH 记住必须是大写…
算术运算在Bash shell环境中,可以利用let.(( ))和[]执行基本的算术操作.而在进行高级操作时,expr和bc这两个工具也会非常有用.let命令可以直接执行基本的算术操作.当使用let时,变量名之前不需要再添加$, [root@server0 ~]# a=5[root@server0 ~]# let a++ #自加操作[root@server0 ~]# echo $a6[root@server0 ~]# b=4[root@server0 ~]# let b-- #自减操作[root…
------------------------------------------------------------------- --------------------------------------------------------------------------------------- PS :  把命令的 返回的值  赋值给变量   使用 ‘  ’  ,比较常用 PS:打印变量一定要用   echo $A PS:$n是为了传参数的时候  获取参数. PS:只能进行整形运…
如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value of a is $a \n" 运行结果: Value of a is 10 这里 -e 表示对转义字符进行替换.如果不使用 -e 选项,将会原样输出: Value of a is 10\n 下面的转义字符都可以用在 echo 中:   转义字符 含义 \\ 反斜杠 \a 警报,响铃 \b 退格(删除…
前面已经讲到,变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即pid,看下面的代码: $echo $$ 运行结果 29949   特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数是$1,第二个参数是$2. $# 传递给脚本或函数的参数个数. $* 传递给脚本或函数的所有参数. $@ 传递给脚本或函数的所有参数.被双引号("…
Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名的命名须遵循如下规则: 首个字符必须为字母(a-z,A-Z). 中间不能有空格,可以使用下划线(_). 不能使用标点符号. 不能使用bash里的关键字(可用help命令查看保留关键字). 变量定义举例: myUrl="http://see.xidian.edu.cn/cp…
打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了. 输入一些代码: #!/bin/bash echo "Hello World !" “#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell.echo命令用于向窗口输出文本. 运行Shell脚本有两种方法. 作为可执行程序 将上面的代码保存为test.sh,并 cd 到相应目录: chmod +…
https://www.shellscript.sh/variables1.html 变量是一个可操作(读.写)的内存块的名字. 尝试-1 创建一个变量: root@iZwz:~/labs# sh mytest.sh Hello. root@iZwz:~/labs# cat mytest.sh #!/bin/bash MY_MESSAGE="Hello." echo $MY_MESSAGE 赋值号两边不应该有空格!~ 尝试-2 从标准输入读取一行: root@iZwz:~/labs#…
root@iZwz:~/labs# vim myfirst root@iZwz:~/labs# cat myfirst #!/bin/bash clear echo "this is my first script." 上面的代码应该非常“顾名思义”了,试着执行一下这个脚本: root@iZwz:~/labs# sh myfirst this is my first script. 2.#!/bin/bash 是必须的吗? 这个在大多数 Linux 系统下不是问题,因为一般linux用…
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/525126 知识体系: #创建函数 #使用参数 #共享函数 shell脚本代码可以封装在函数内,而函数可以在脚本任意处使用,由此减少大段代码的重复编写. 1.基本脚本函数 函数是被赋予名称的脚本代码块,可以在代码的任意位置使用.当需要调用代码块的时候,只需引用代码块被赋予的函数名即可. 1.1.创建函数 在bas…
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/522415 知识体系: #回顾信号功能 #隐藏在背景中 #在没有控制台的情况下运行 #做得更好 #准确无误的运行 #从头开始 前面运行脚本的方式都是在命令行界面运行,实际上还有运行shell脚本的其他方式,以及中断脚本的运行进程,控制脚本的运行时间都可以实现. 1.处理信号 linux下有各种信号,如停止.启动.…
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/521455 知识体系: #回顾重定向 #标准输入和输出 #报告错误 #丢弃数据 #创建日志文件 这里主要讲述如何将脚本重定向到linux系统的各个位置. 1.了解输入和输出 我们知道显示脚本输出的方法有两种: *在监视器屏幕上显示 *将输出重定向到文件 下面主要讲述如何使用标准的linux输入和输出体系满足将脚本…
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/521448 知识体系: #使用命令行参数 #设置选项 #获取用户输入 有时编写的脚本需要能和运行脚本的人员进行交互,bash shell提供了一些方法来从用户处获取数据,这些方法有如下三种: 1- 命令行参数(添加在命令后的参数) 2- 命令行选项(修改命令行为的单字符串) 3- 直接读取键盘输入 1.命令行参数…
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/513601 三.更多结构化命令 前面已经讲述了检查命令的输出和变量的值来操作shell脚本程序中的流.如下主要说明如何执行重复的过程和命令,使得一组命令循环下去,直到满足特定的条件. 知识内容: # 使用for语句循环 # 使用until语句迭代 # 使用while语句 # 结合循环 # 重定向循环输出 1.fo…
二.使用结构化命令 知识内容: # 改变命令流 # 使用if-then逻辑 # 嵌套if-then # 测试条件 # 高级if-then功能 许多程序在脚本命令之间需要某些逻辑控制流,有些命令允许脚本根据变量值的条件或者命令的结果跳过一些命令或者循环执行这些命令,这叫做结构化命令. 1.使用if-then语句 最基本的结构化命令类型就是if-then语句,其格式如下: if command then command fi 意思是说:if语句后面的命令的退出状态值是0,则执行then后面的所有命令…
1.nfs 2.crond 3.shell 1.准备环境: 防火墙 selinux 配置ip 2.安装软件 二进制 源码安装 3.改改配置文件 二进制:/etc/nginx/nginx.conf 源码:/usr/local/nginx/conf/nginx.conf 4.启动服务 二进制:systemctl start nginx 源码:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 5.测试 samba samba…
目录 Mac一些常用的快捷键记录 iTerm2或者命令行相关 Mac桌面上或者某目录下操作 一些实用脚本示例 代码无提示或者其他抽风症状,清除Xcode缓存 查看当前网络ip地址 日常提交推送git代码 统计iOS代码行数 Plistbuddy相关的操作 shell 代码集合 Mac一些常用的快捷键记录 iTerm2或者命令行相关 命令 说明 ctrl + d 删除当前光标的字符 ctrl + h 删除光标之前的字符 ctrl + w 按单词(word)单步删除输入的命令 ctrl + a 光标…
0x00 NC命令详解 在介绍如何反弹shell之前,先了解相关知识要点. nc全称为netcat,所做的就是在两台电脑之间建立链接,并返回两个数据流 可运行在TCP或者UDP模式,添加参数 —u 则调整为udP,默认为tcp -v 参数,详细输出 n参数高数netcat不要DNS反向查询IP的域名 z参数,连接成功后立即关闭连接 $ nc -v 172.31.100.7 21netcat 命令会连接开放端口21并且打印运行在这个端口上服务的banner信息. 使用nc聊天 $nc -l 156…
linux下面一切都是可以配置的 #vim可以有 .vimrc文件 #------.vimrc开始---- set vb t_vb= set number syntax on set hlsearch "set autoindent "set smartindent set tabstop= set shiftwidth= set expandtab "set textwidth=72 set fileencoding=utf- set fenc=utf- set incse…
改脚本查看哪些ip被占用. #!/bin/bash for i in {1..10}   //赋予i变量1-10 do   //干什么 ping -c1 -w1 192.168.7.$i &> /dev/null   //ping 192.168.7.网段 每个ip1次 显示1行全输出到无底洞 if [ $? -eq 0 ]; //返回值是否为0 then   //如果返回值为0则做下面的输出 echo station$i is up! else   //否则 echo station$i…