IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> shell基础 -> 正文阅读

[系统运维]shell基础

一、什么shell?什么是shell命令?什么是shell脚本?
?? ?1.shell ?命令行解释器
?? ??? ?(1)sh ? :(全称 Bourne Shell)是UNIX最初使用的 shell,
?? ??? ?而且在每种 UNIX 上都可以使用。Bourne Shell 在 shell?
?? ??? ?编程方面相当优秀,但在处理与用户的交互方面做得不如
?? ??? ?其他几种 shell。
?? ??? ?(2)csh ?:是一种比 Bourne Shell更适合的变种 Shell,
?? ??? ??? ?它的语法与 C 语言很相似
?? ??? ?(3)ksh ?:集合了 C Shell 和 Bourne Shell 的优点并且
?? ??? ??? ?和 Bourne Shell 完全兼容。?
?? ??? ?(4)bash :LinuxOS 默认的,它是 Bourne Shell 的扩展。
?? ??? ?与 Bourne Shell 完全兼容,并且在 Bourne Shell 的基
?? ??? ?础上增加了很多特性。可以提供命令补全,命令编辑和命
?? ??? ?令历史等功能。它还包含了很多 C Shell 和 Korn Shell?
?? ??? ?中的优点,有灵活和强大的编辑接口,
?? ??? ?同时又很友好的用户界面
?? ??? ?
?? ??? ?dash--bash的轻量版
?? ??? ?
?? ??? ?echo $SHELL
?? ?
?? ?
?? ?2.shell命令 ? 就是我们平时用的命令 如ifconfig
?? ?
?? ?
?? ?3.shell脚本 ? 本身是一个以.sh结尾的文件,里面是命令的集合
?? ??? ?能批量执行命令
?? ??? ?
?? ??? ?是一种解释语言,不需要编译。
?? ??? ?
?? ?4.shell脚本的执行方式
?? ??? ?1.以 ?./xxx.sh 的方式执行 ?(chmod u+x xxx.sh ?./xxx.sh)
?? ??? ?
?? ??? ?2. bash xxx.sh
?? ??? ?
?? ??? ?3. source xxx.sh
?? ?
?? ?
?? ??? ?三种执行方式的区别
?? ??? ??? ?1. ./ 的方式执行需要加执行权限 ? bash ?source ?不需要加执行权限
?? ??? ??? ?2. source 的方式执行,是在当前终端执行
?? ??? ??? ??? ?./ 和 bash 的方式是在后台新启动一个终端执行,将执行结果返回到当前终端
?? ??? ??? ??? ?这个终端我们看不到
??

二、shell中的变量
?? ?1.shell中定义变量时 无需加数据类型?
?? ?2.变量的命名规则
?? ??? ?1.变量名一般用大写
?? ??? ?2.和C语言类似,也有命名规范
?? ??? ??? ?数组字符下划线组成
?? ??? ??? ?不能以数字开头
?? ??? ??? ?不能和shell中的关键字冲突
?? ?3.每条指令结束后不需要加 分号
?? ?4.变量的赋值
?? ??? ?1.shell中的变量都是字符串,没有整型 浮点型 字符型的区别
?? ??? ?2.变量赋值时 等号 前后不要加空格
?? ??? ?3.如果赋值的字符串中有空格 ?要用 '' ?""
?? ??? ?4.''不能引用其他变量的值?? ?
?? ??? ?//VAR0=beijing;VAR1='hello world $VAR0' ? ---输出 hello world $VAR0
?? ??? ?
?? ??? ?5.“”可以引用其他变量的值?? ?
?? ??? ?//VAR0=beijing;VAR2="hello world $VAR0" ? ---输出 hello world beijing
?? ??? ?
?? ??? ?6.“”双引号可以识别转义字符,''单引号不能
?? ??? ??? ?'hello \"world\"' ?---- ?hello \"world\"
?? ??? ??? ?"hello \"world\"" ?---- ?hello "world"
?? ?
?? ?5.引用变量的值
?? ??? ?$变量名
?? ??? ?${变量名}
?? ??? ?
?? ??? ?注意不要写成 $() ?----命令置换符
?? ??? ?
?? ??? ?
?? ?6.输出:
?? ??? ?echo $VAR ?---自动加换行
?? ??? ?echo -n $VAR ---输出不加换行
?? ??? ?echo -e $VAR ---能识别转义字符 ?\n ?输出
?? ??? ?
?? ??? ?例如:
?? ??? ??? ?VAR1=hello
?? ??? ??? ?echo ?$VAR1 ?//hello
?? ??? ??? ?echo ?VAR1 //VAR1?? ?7.shell中的注释:

?? ? ? ? ? ? ?# 单行注释

?? ??? ??? ??? ?:<<EOF
?? ??? ??? ??? ??? ?#多行注释
?? ??? ??? ??? ?EOF

?

8.unset 清空变量的值
?? ??? ?格式
?? ??? ??? ?unset 变量 ? //注意 ? 变量前不要加$
?? ??? ?例如:
?? ??? ??? ?VAR="hello"
?? ??? ??? ?echo $VAR // 输出 hello
?? ??? ??? ?unset VAR
?? ??? ??? ?echo $VAR // 输出 空值
?? ??? ??? ?
?? ?9.shell中的位置变量
?? ??? ?$0?? ?是脚本名
?? ??? ??? ?三种不同的执行方式,得到的结果不一样
?? ??? ??? ?./ ? ? 的方式执行 ? $0是 ./脚本名
?? ??? ??? ?bash ? 的方式执行 ? $0是 脚本名
?? ??? ??? ?source 的方式执行 ? $0是 bash
?? ??? ?
?? ??? ?$1?? ?执行脚本时 命令行传的第1个参数(不包括脚本名)
?? ??? ?$2?? ?执行脚本时 命令行传的第2个参数(不包括脚本名)
?? ??? ?...
?? ??? ?$n?? ?执行脚本时 命令行传的第n个参数(不包括脚本名)
?? ??? ?
?? ??? ?$@ $* 除去脚本外的所有参数 ?以空格分隔
?? ??? ?
?? ??? ?$#?? ?除去脚本外的所有参数的个数
?? ??? ?
?? ??? ?$??? ?返回上一条命令的结果,为0代表上一条命令执行成功了 ?为1代表失败了
?? ??? ??? ?例如: passwd 其他用户 ?//用普通用户给其他改密码肯定会失败
?? ??? ?

?? ?10.变量作用域的问题
?? ??? ?shell中如果什么都不写,变量默认都是全局的,
?? ??? ?即使函数内部定义的变量作用域也是全局
?? ?
?? ??? ?local ?限制变量的作用,只在最近的{}里生效
?? ??? ??? ??? ?
?? ??? ?readonly ?修饰的变量是只读的 ?类似C语言的const

?? ?11.命令置换符
?? ??? ?命令置换符可以将 命令 执行的结果赋值给变量
?? ??? ?
?? ??? ?$()
?? ??? ??? ?例如:
?? ??? ??? ??? ?VAR=$(ls)
?? ??? ??? ??? ?echo $VAR
?? ??? ?
?? ??? ?`` ?----注意,这不是单引号 ?这是 键盘1左边的按键(tab键上面的按键)
?? ??? ??? ?例如:
?? ??? ??? ??? ?VAR=`ls`
?? ??? ??? ??? ?echo $VAR


?? ?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 11:09:04  更:2021-09-08 11:11:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 13:32:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码