【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 ...
随机推荐
- 用tensorflow求手写数字的识别准确率 (简单版)
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #载入数据集 mnist = in ...
- [极客大挑战 2019]FinalSQL
0x00 知识点 盲注 0x01 解题 根据题目提示盲注,随便点几下找到注入点 发现我们输入^符号成功跳转页面,证明存在注入 1^(ord(substr((select(group_concat(sc ...
- 1.3 this深度面试题
var big = "1" var obj = { big: "2", showBig: function() { return this.big }, } o ...
- openstack trove redis配置项
trove在mitaka版本更新了一个功能,configuration 具体如下: trove help |grep configuration configuration-attach Attach ...
- java多线程之volatile关键字
public class ThreadVolatile extends Thread { public boolean flag=true; @Override public void run() { ...
- 大数据高可用集群环境安装与配置(03)——设置SSH免密登录
Hadoop的NameNode需要启动集群中所有机器的Hadoop守护进程,这个过程需要通过SSH登录来实现 Hadoop并没有提供SSH输入密码登录的形式,因此,为了能够顺利登录每台机器,需要将所有 ...
- CSS 宽,高,背景设置
width 宽,height 高,background 背景:背景色 background-color:颜色值--英文单词/十六进制/rgb:背景图 background-image:url(‘图片路 ...
- Maven:Failure executing javac, but could not parse the error:javac: 无效的目标发行版: 1.8
eclipse中对着项目maven——>>maven install时出现错误:Failure executing javac, but could not parse the error ...
- JavaScript 之 原型及原型链
对象[回顾] 通过字面量创建对象 //通过字面量创建对象 var obj1 = { name:'Jack', age: 18 } 通过系统自带的构造函数构造对象 // 通过系统自带的构造函数构造对象 ...
- [转]java 的HashMap底层数据结构
java 的HashMap底层数据结构 HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在.在HashMap中,key-v ...