Linux--Bash 和 Shell讲解
发布时间 - 2017-07-18 00:00:00 点击率:次一、什么是 shell?
狭义的shell指的是指令列方面的软件,包括基本的Linux操作窗口Bash等,广义的shell则包括 图形接口的软件,因为图形接口其实也可以操作各种驱动程序来呼叫核心进行工作。
系统合法的 shell 均写在 /etc/shells 文件中。
二、Bash Shell 的基本操作技巧
1、查看前一次登录执行过的命令:vim ~/.bash_history 2、命令和文件补全功能(Tab键) tab 接在一串指令的第一个字后面,则为命令补全 tab 接在一串指令的第二个字后面,则为文件补全 3、命令别名设定功能:alias alias lm='ls -al' 4、程序化脚本(shell scripts) 5、通配符 6、换行输入 \ +[enter] 7、从光标向前或者向后删除字符串 [crtl]+u / [crtl] +k 8、从光标移动到整个指令串的最前面/最后面 [crtl] +a / [crtl]+e 9、使用 env 和 export 可观察环境变量;set 可以观察目前 bash 环境下的所有变量 10、连续命令中 ; 可以让两个命令连续执行:&& 前一个指令必须没有错误信息
|| 如果正确就不执行第二条。错误接着执行第二条
: type -a 别名命令
13、列出所有的按键和按键内容:stty -a
14、设定按键功能:stty erase ^h : 设定crtl + h 向后删除字符
15、获取核心版本:echo $(uname -r)
三、Shell Script
概念:Shell script 是利用shell 的功能 所写的一个程序,这个程序是使用纯文本文件。将一些 shell 的语法与指令写在里面,搭配正则表达式、管线命令与数据流重导向等功能,以达到我们的处理命令。
个人理解:其实Shell script 就是window 中的批处理命令,它将shell 指令、再加上一点脚本的语法 写出来的程序。shell script 用在系统管理上面是很好的一项工具,但是用在处理大量数值运算上,就不够好了,因为shell scripts的速度较慢,且使用的CPU资源较多,造成主机资源的分配不良。
变量:
变量类型:bash变量类型默认为字符串,可以是整型或数组类型,没有浮点型,所以没有小数,1/3 结果是0.
变量声明:默认为字符串,可以 直接声明为 变量名=变量内容(x=123)这样,如果要声明为数组或者整型可以:
变量和变量内容以一个等号=连接,a=123
等号两边不能直接接空格符
由英文字母和数字组成,但开头不能是数字
变量内容中如果有特殊字符,可以用""或''将变量内容结合起来
" "中 $变量,可以保留原本的特性
' ' 中$变量,当成一般字符来处理
可以用跳脱字符 \ 来使不认识的特殊字符来当成一般字符
``或者()的意义:``或者()里面的指令先被执行,作为外部的输入信息
将 - 变成 + 可以进行[取消]动作:declare +x sum :
单独列出变量的类型:declare -p sum
升级成环境变量:export PATH
取消变量 :unset a
数组定义:var[1]="123" var[2]="456" var[3]="789"
- ``或者()的意义:``或者()里面的指令先被执行,作为外部的输入信息
- 变量 $$:出现的数字就是你的PID号码
- 变量 ?:上一个错误指令的错误代码,如果没有错误就为0
变量交互:read -p "请输入你的名字:" -t 30 name (-p表示提示世界,-t 表示30秒的输入时间) 变量内容的扩展:PATH="$PATH":/home/bin 变量内容的删除:echo ${path#/*:} 这句话的意思是从/开始到:之间删除掉最短的字符
变量内容的替换:
执行: 1、直接绝对路径和相对路径执行,执行者必须要有脚本的执行权限。 2、全局变量的话 可以通过 bash shell.sh 或 sh shell.sh来执行 source、 sh script 的执行方式差异? sh script 或者 bash script 都会使用一个新的bash环境来执行脚本中的命令,当子程序完成后,子程序完成后,在子程序内的各个变量或者动作将会结束而不会传回父程序中 source script 会在父程序中执行,因此各项动作都会在原本的bash 内生效 流程控制(顺序):shell scripts 依照 从上到下、从左到右 的顺序执行。 流程控制(条件):
test -e file 文件名是否存在
test -f file 文件名是否存在 且为file
test -d directory 文件名是否存在且为目录
test -r -w -x filename 是否具有可读可写可执行的权限
test n1 -eq n2 两数值相等
test n1 -ne n2 两数值不等
-gt n1大于n2
-lt n1小于n2
-ge 大于等于
-le 小于等于
脚本的变量交互还可以用 ${0}、${1}、${2}、${3} 来进行,${0} 表示执行的脚本名、${1} 表示输入的第一个变量、${2}表示输入的第二个变量、${3} 表示输入的第三个变量
if 条件判断
case 条件判断
流程控制(循环):
while 循环
for 循环
for 循环
函数:
注意点:和传统语言不同,函数必须定义在脚本最前面,以便程序执行的时候可以认识函数。函数 形参 也是用${1}、${2}、${3} 来传参,也就是说函数内的${1}/${2}/${3} 辨认的调函数时传进去的实参。而不是 执行脚本传递时的参数
# linux
# 子程序
# 可以用
# 是否存在
# 就不
# 会在
# 个字
# 用在
# 第二条
# 写在
# 则为
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
详解Android图表 MPAndroidChart折线图
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
米侠浏览器网页背景异常怎么办 米侠显示修复
黑客入侵网站服务器的常见手法有哪些?
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
如何用wdcp快速搭建高效网站?
清除minerd进程的简单方法
如何快速生成专业多端适配建站电话?
LinuxCD持续部署教程_自动发布与回滚机制
如何用PHP工具快速搭建高效网站?
如何快速辨别茅台真假?关键步骤解析
如何快速搭建自助建站会员专属系统?
Android okhttputils现在进度显示实例代码
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
如何将凡科建站内容保存为本地文件?
如何快速重置建站主机并恢复默认配置?
晋江文学城电脑版官网 晋江文学城网页版直接进入
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
Laravel如何自定义错误页面(404, 500)?(代码示例)
Laravel观察者模式如何使用_Laravel Model Observer配置
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
Laravel中的Facade(门面)到底是什么原理
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
微信小程序制作网站有哪些,微信小程序需要做网站吗?
如何用5美元大硬盘VPS安全高效搭建个人网站?
制作企业网站建设方案,怎样建设一个公司网站?
Linux系统命令中screen命令详解
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
音乐网站服务器如何优化API响应速度?
进行网站优化必须要坚持的四大原则
如何快速完成中国万网建站详细流程?
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
Python进程池调度策略_任务分发说明【指导】
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
JS中对数组元素进行增删改移的方法总结
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
微信小程序 require机制详解及实例代码
bootstrap日历插件datetimepicker使用方法
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
如何获取免费开源的自助建站系统源码?
动图在线制作网站有哪些,滑动动图图集怎么做?
如何在新浪SAE免费搭建个人博客?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?

