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基础】的更多相关文章

  1. Shell基础学习小结

    0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本 ...

  2. Shell基础-环境变量配置文件

    Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...

  3. shell基础二十篇 一些笔记

    shell基础二十篇 转自 http://bbs.chinaunix.net/thread-452942-1-1.html 研讨:Bash 内建命令 read (read命令更具体的说明见博客收藏的一 ...

  4. shell基础(转)

    shell基础1:文件安全与权限 http://bbs.chinaunix.net/forum/viewtopic.php?t=434579&highlight=wingger 附:Linux ...

  5. Linux实战教学笔记17:精简shell基础

    第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...

  6. shell基础及变量

    一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...

  7. Shell 基础教程

    一个比较好的shell基础教程: http://www.runoob.com/linux/linux-shell.html

  8. Linux基础学习(10)--Shell基础

    第十章——Shell基础 一.Shell概述 1.Shell是什么: (1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来 ...

  9. Linux Shell基础(下)

    Linux Shell基础(下) 目录 一.shell特殊符号cut命令 二.cut.sort.wc.uniq命令 三.tee.tr.split命令 四.简易审计系统 五.fork, exec, so ...

  10. Linux shell基础知识(上)

    Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...

随机推荐

  1. 每天一点点之laravel框架开发 - passport授权报invalid_credentials

    {"error":"invalid_credentials","message":"The user credentials we ...

  2. NtQueryObject 获得内核对象使用计数

    一个内核对象有两个计数器:一个是句柄计数,句柄是给用户态用的:另一个是指针计数,也叫引用计数,因为核心态也常常用到内核对象,为了方便,在核心态的代码用指针直接访问对象,所以Object   Manag ...

  3. JZOJ-2019-11-7 A组

    T1 Input 从文件 awesome.in 中读入数据. 第一行 2 个用空格隔开的整数 \(n\), \(P\). 第二行 n 个用空格隔开的整数 \(A_1, \cdots , A_n\). ...

  4. 洛谷 P1018乘积最大

    题目描述 今年是国际数学联盟确定的“20002000――世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰9090周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友 ...

  5. java课程之团队开发冲刺阶段1.9

    一.总结昨天进度 1.学习了简单的消息推送方法,并且能够使用进行每日定时推送 二.遇到的困难 1.在每日推送的过程中,程序必须被正常关闭,如果程序是被切到后天然后直接结束进程的话,每日推送的线程服务也 ...

  6. 聚类算法总结以及python代码实现

    一.聚类(无监督)的目标 使同一类对象的相似度尽可能地大:不同类对象之间的相似度尽可能地小. 二.层次聚类 层次聚类算法实际上分为两类:自上而下或自下而上.自下而上的算法在一开始就将每个数据点视为一个 ...

  7. [题解] 洛谷P3950 部落冲突

    传送门 拿到题目,一看 裸LCT (其实是我懒得打,splay又臭又长) 首先,这道题的意思就是删掉一些边 所以常规操作 点权转边权 之后对于战争操作,在对应的边上+1 对于和平操作,在对应的边上-1 ...

  8. python刷LeetCode:3.无重复字符的最长子串

    难度等级:中等 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 ...

  9. javaweb04 ServletRequest&ServletResponse

    WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循一定的规则,这个歌规则就是 HTTP协议HTTP协议是超文本传输协议,它是TCP/IP协议集中的一个应用层协议,用于定义WEB浏览器与WEB服 ...

  10. MySQL--Centos7下安装5.7.19

    https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html https://segmentfault.com/a/11900000 ...