【shell基础】
Ctrl+R 搜索之前的命令
Ctrl+D 退出
Ctrl+A 移动到行首
Ctrl+E 移动到行尾
Ctrl+U 删除光标前的内容
Ctrl+K 删除光标后的内容
Ctrl+S 锁频
Ctrl+Q 解锁
Ctrl+Y 撤销之前的操作
shell变量:用一个特定的字符串去表示不固定的内容
变量的类型
1 自定义变量
定义变量: 变量名=变量值 变量名必须以字母或下划线开头 区分大小写
引用变量: $变量名 或 ${变量名}
查看变量: echo $变量名 set(所有变量:包括自定义变量和环境变量)
取消变量: unset 变量名
作用范围: 仅在当前shell中有效
2 环境变量
定义环境变量
方法一:export back_dir2=/home/backup
方法二:export back_dir1 将自定义变量转换为环境变量
引用环境变量:$变量名或 ${变量名}
查看环境变量:echo $变量名 env 例如 env |grep back_dir2
取消环境变量:unset 变量名
变量作用范围:在当前shell和子shell有效
3 位置变量
$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10}
4 预定义变量
$0 脚本名
$* 所有的参数
$@ 所有的参数
$# 参数的个数
$$ 当前进程的PID
$! 上一个后台进程的PID
$? 上一个命令的返回值 0表示成功
变量的赋值方式
显示赋值
变量名=变量值
read从键盘读入变量值
read 变量名
read -p “提示信息:” 变量名
read -t -p "提示信息:" 变量名
read -n 变量名 定义或引用变量时注意事项:
" " 弱引用
' ' 强引用
· · 命令替换 等价于$() 反引号中的shell命令会被先执行
变量的运算
整数运算
方法一:expr
expr +
expr $num1+$num2 +-*/%
方法二:$(())
echo $(($num1+$num2)) +-*/%
echo $((num1+num2))
echo $((-*))
echo $(((-)*))
echo $((**))
sum=$((+));echo $sum
方法三:$[]
echo $[+] +-*/%
echo $[**]
方法四:let
let sum=+;echo $sum
let i++;echo $i 小数运算
echo "2*4" |bc
echo "2^4" |bc
echo "scale=2;6/4" |bc
echo "BEGIN{print 1/2}"
echo "print 5.0/2" |python
变量"内容"的删除和替换
url=www.sina.com.cn
echo ${#url} 获取变量值的长度
输出:
echo ${url} 标准查看
输出:www.sina.com.cn
echo ${url#*.}
输出:sina.com.cn
echo ${url##*.}
输出:cn
echo ${url%.*}
输出:www.sina.com
echo ${url%%.*}
输出:www
索引及切片
echo $url
输出:www.sina.com.cn
echo ${url::} :索引开始位置 :取长度
echo ${url:} 从5取到结束
"内容"的替换
url=www.sina.com.cn
echo $(url/sina/baidu)
输出:www.baidu.com.cn
echo $(url/n/N)
输出:www.siNa.com.cn
echo $(url//n/N)
输出:www.siNa.com.cN
【shell基础】的更多相关文章
- Shell基础学习小结
0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本 ...
- Shell基础-环境变量配置文件
Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...
- shell基础二十篇 一些笔记
shell基础二十篇 转自 http://bbs.chinaunix.net/thread-452942-1-1.html 研讨:Bash 内建命令 read (read命令更具体的说明见博客收藏的一 ...
- shell基础(转)
shell基础1:文件安全与权限 http://bbs.chinaunix.net/forum/viewtopic.php?t=434579&highlight=wingger 附:Linux ...
- Linux实战教学笔记17:精简shell基础
第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...
- shell基础及变量
一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...
- Shell 基础教程
一个比较好的shell基础教程: http://www.runoob.com/linux/linux-shell.html
- Linux基础学习(10)--Shell基础
第十章——Shell基础 一.Shell概述 1.Shell是什么: (1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来 ...
- Linux Shell基础(下)
Linux Shell基础(下) 目录 一.shell特殊符号cut命令 二.cut.sort.wc.uniq命令 三.tee.tr.split命令 四.简易审计系统 五.fork, exec, so ...
- Linux shell基础知识(上)
Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...
随机推荐
- .Net实现发送邮件功能
public ActionResult AddPost() { ResponseResult result = new ResponseResult(); ...
- POJ 2993:Emag eht htiw Em Pleh
Emag eht htiw Em Pleh Time Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64 ...
- SpringCloud学习之手把手教你用IDEA搭建入门项目【番外篇】(一)
之前的文章里,我曾经搭建了一个Springcloud项目,但是那个时候我对于SpringCloud架构的很多组件不甚清楚,只是通过查找资料然后动手稀里糊涂的把一个项目成功搭建起来了,其中有很多不合理和 ...
- github访问过慢解决
为了更加愉快地使用全球最大同性交友网站上的优质资源,我们来做一些简单的本机上的调整. 通过查看下载链接,能够发现最终被指向到Amazon的服务器(http://github-cloud.s3.amaz ...
- SQL基础教程(第2版)第7章 集合运算:7-2 联结(以列为单位对表进行联结)
第7章 集合运算:7-2 联结(以列为单位对表进行联结) ■联结的特定语法和过时语法 ● 联结( JOIN)就是将其他表中的列添加过来,进行“添加列”的集合运算.UNION是以行(纵向)为单位进行操作 ...
- HGP|VCG|UK10K|中科院职业人群队列研究计划|药物基因组学
全球性计划:表观组计划:肝计划 测1000人的变异level HGP计划三个阶段,范围逐步扩大和深化. Pilot:deep sequence---low coverage Phase 1 Phase ...
- Linux--Shell传递参数
参考:http://www.runoob.com/linux/linux-shell-passing-arguments.html
- Element.shadowRoot
Element.shadowRoot http://www.zhuyuntao.cn/shadow-dom的样式/ Shadow DOM的样式 我们已经可以使用原生的操作DOM的方式和使用模板的方式来 ...
- TCP协议的学习
1.关于TCP理解的重点(TCP协议可以理解为就是一段代码) (1).TCP协议工作在传输层,对上服务socket接口,对下调用IP层 (2).TCP协议面向连接,通信前必须先3次握手建立连接关系后才 ...
- 加速软件源更新和安装 ubuntu 软件中心
Linux mint 12 修改加速软件源更新和安装 ubuntu 软件中心 由于 linux mint 12 是基于 ubuntu 的,可以使用 ubuntu 的源(Ubuntu 11.10 代号 ...