shell基础及变量2018.03.20
2018-03-20 20:52
295 查看
一、Shell概述
Shell的作用——命令解释器,shell作为一个人机接口用于解释用户输入的命令,将命令解释为Linux内核可执行的二进制代码,并将执行的结果返回在标准终端上。
二、查看支持的shell种类
cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
三、shell的分类
BourneShell:从1979起Unix就开始使用,BourneShell的主文件名为sh。
CShell:C Shell主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名。
shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容
四、shell基础
1.history:查看最近的命令行
n:数字,意思是要列出最近的n笔命令行
-c:将目前的shell中所有的history内容全部消除
-a:将目前新增的history命令新增入histfiles中,若没有加histfikes,则默认写入~/.bash_history、 -r :将histfiles的内容读到目前这个shell 的history 记忆中;
-w :将目前的history 记忆内容写入histfiles中
注:历史命令会默认1000条,可以在环境变量配置文件/etc/profile中进行修改
历史命令的调用:
使用上下箭头调用以前的历史命令
使用“!n”重复执行第n条历史命令
使用“!!”重复执行上一条命令
使用“!字串”重复执行最后一条一该字串开头的命令
2.alias:命令别名
alias的作用仅在该次登入的操作,即输入一次alias后,这个修改只在当前的Shell生效。如果重新开启一个Shell,或者重新登录,则这些alias将无法使用。好在linux中提供alias永久化的方法: <1>.若要每次登入就自动生效别名,则把别名加在/etc/profile或~/.bashrc中。然后# source ~/.bashrc
<2>.若要让每一位用户都生效别名,则把别名加在/etc/bashrc最后面,然后# source /etc/bashrc
删除别名:unalias 别名
3.多名令顺序执行
;:多名令顺序执行,无逻辑关系
&&:逻辑与,命令1正确才执行命令2,命令1不正确则不执行命令2
||:逻辑或,命令1正确则不执行命令2,命令1不正确才执行命令2
4.管道符 |
命令1 | 命令2
命令1的正确输出作为命令2的操作对象
5.cut:信息剪切
-d :后面接分隔字符。与-f 一起使用; -f :依据-d 的分隔字符将一段信息分割成为数段,用-f 取出第几段的意思;
-c :以字符(characters) 的单位取出固定字符区间;
6.tee:用于将数据流处理过程中某段信息存下来
7.echo:输出命令
\a 发出警告声; \b 删除前一个字符; \c 最后不加上换行符号; \f 换行但光标仍旧停留在原来的位置; \n 换行且光标移至行首; \r 光标移至行首,但不换行; \t 插入tab; \v 与\f相同; \\插入\字符;
\nnn插入nnn(八进制)所代表的ASCII字符;
五、为什么要使用shell脚本 使用脚本编程语言的好处是,它们多半运行在比编译型语言还高 的层级,能够轻易处理文件与目录之类的对象。缺点是:它们的 效率通常不如编译型语言。不过权衡之下,通常使用脚本编程还 是值得的:花一个小时写成的简单脚本,同样的功能用c或C++来 编写实现,可能需要两天,而且一般来说,脚本执行的速度已经够
快了,快到足以让人忽略它性能上的问题。
六、shell脚本的基本元素
1)#! /bin/bash 这个是必须的,指出shell的类型
2)# 注释
七、常用的运行脚本的方法
1. sh ./文件名.sh
2. chmod+x 文件名.sh
./文件名.sh
八、shell中的变量和符号 shell 变量可以保存如路径名、文件名或者一个数字 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。如果变量名是“2name”则是错误的。 在Bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必修指定变量类型为数值型。
1.变量分类
本地变量(用户变量)局部变量只在创建它们的Shell中使用,可以在shell程序内 任意使用和修改它们。
环境变量可以在创建它们的Shell及其派生出来的任意子程序中使用。有些变量是用户创建的,其他的则是专用的(比如PATH、HOME)。是系统环境的一部分,不必去定义它们,可以在shell程序中使用它们。还能在shell中加以修改。
内部变量由系统提供的。与环境变量不同,但用户不能修改它们。
2.本地变量
用户现在的shell生命期的脚本中使用
变量名=值
注意:
(1) 等号两边不可以有空格
(2) 取值包含空格,必须用双引号括起来
(3) Shell变量可以用大小写字母,区分大小写
3.变量的声明和使用
(1)变量是弱类
4000
型的(不用声明类型)
(2)变量声明及赋值格式:变量=值
(3)变量的引用:$变量名 或者 ${变量名}
当变量名为1个字符时建议使用方式一,多于1个时,建议使用方式二。
4.echo:显示输出 -n不要在最后自动换行 -e打开反斜杠ESC转义。若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:\t 插入tab;\\插入\字符;
5.清除变量名
unset name(注意,name前没有$)
6.内部变量
部分内部变量是: $# ——传送给shell程序的位置参数的数量 $?——最后命令的完成码或者在shell程序内部执行的shell程序(返回值)。0表示没有错误,其他任何值表明有错误。 $0——shell程序的名称 $*——调用shell程序时所传送的全部参数的单字符串,“参数1”“参数2”…形式保存的参数 $@“参数1参数2”…形式保存的参数 $n第n个参数 $$本程序的PID 7.shell中的特殊符号 (1)注释符# (2)美元符 $:变量符使其后的普通字符作为变量名 (3)单引号:被引起来的字符全部做普通字符,即全部原样 (4)双引号:引号内的内容,除$、转义字符\、倒引号`这三个保留特殊功能,其他字符均做普通字符
(5)倒引号:引号内的字符串当做shell命令行解释执行,得到的结果取代整个倒引号括起来的部分。
(6)反斜线:转义字符,他能把特殊字符变成普通字符,注意:在单引号括起来的字符串中,反斜线也成为普通字符,而失去转义字符功能
(7)获取字符串长度:string=”abcd”
echo ${#string}
()提取子字符串:string="runoobis a greatsite"
echo${string:1:4} # 输出unoo
Shell的作用——命令解释器,shell作为一个人机接口用于解释用户输入的命令,将命令解释为Linux内核可执行的二进制代码,并将执行的结果返回在标准终端上。
二、查看支持的shell种类
cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
三、shell的分类
BourneShell:从1979起Unix就开始使用,BourneShell的主文件名为sh。
CShell:C Shell主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名。
shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容
四、shell基础
1.history:查看最近的命令行
n:数字,意思是要列出最近的n笔命令行
-c:将目前的shell中所有的history内容全部消除
-a:将目前新增的history命令新增入histfiles中,若没有加histfikes,则默认写入~/.bash_history、 -r :将histfiles的内容读到目前这个shell 的history 记忆中;
-w :将目前的history 记忆内容写入histfiles中
注:历史命令会默认1000条,可以在环境变量配置文件/etc/profile中进行修改
历史命令的调用:
使用上下箭头调用以前的历史命令
使用“!n”重复执行第n条历史命令
使用“!!”重复执行上一条命令
使用“!字串”重复执行最后一条一该字串开头的命令
2.alias:命令别名
alias的作用仅在该次登入的操作,即输入一次alias后,这个修改只在当前的Shell生效。如果重新开启一个Shell,或者重新登录,则这些alias将无法使用。好在linux中提供alias永久化的方法: <1>.若要每次登入就自动生效别名,则把别名加在/etc/profile或~/.bashrc中。然后# source ~/.bashrc
<2>.若要让每一位用户都生效别名,则把别名加在/etc/bashrc最后面,然后# source /etc/bashrc
删除别名:unalias 别名
3.多名令顺序执行
;:多名令顺序执行,无逻辑关系
&&:逻辑与,命令1正确才执行命令2,命令1不正确则不执行命令2
||:逻辑或,命令1正确则不执行命令2,命令1不正确才执行命令2
4.管道符 |
命令1 | 命令2
命令1的正确输出作为命令2的操作对象
5.cut:信息剪切
-d :后面接分隔字符。与-f 一起使用; -f :依据-d 的分隔字符将一段信息分割成为数段,用-f 取出第几段的意思;
-c :以字符(characters) 的单位取出固定字符区间;
6.tee:用于将数据流处理过程中某段信息存下来
7.echo:输出命令
\a 发出警告声; \b 删除前一个字符; \c 最后不加上换行符号; \f 换行但光标仍旧停留在原来的位置; \n 换行且光标移至行首; \r 光标移至行首,但不换行; \t 插入tab; \v 与\f相同; \\插入\字符;
\nnn插入nnn(八进制)所代表的ASCII字符;
五、为什么要使用shell脚本 使用脚本编程语言的好处是,它们多半运行在比编译型语言还高 的层级,能够轻易处理文件与目录之类的对象。缺点是:它们的 效率通常不如编译型语言。不过权衡之下,通常使用脚本编程还 是值得的:花一个小时写成的简单脚本,同样的功能用c或C++来 编写实现,可能需要两天,而且一般来说,脚本执行的速度已经够
快了,快到足以让人忽略它性能上的问题。
六、shell脚本的基本元素
1)#! /bin/bash 这个是必须的,指出shell的类型
2)# 注释
七、常用的运行脚本的方法
1. sh ./文件名.sh
2. chmod+x 文件名.sh
./文件名.sh
八、shell中的变量和符号 shell 变量可以保存如路径名、文件名或者一个数字 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。如果变量名是“2name”则是错误的。 在Bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必修指定变量类型为数值型。
1.变量分类
本地变量(用户变量)局部变量只在创建它们的Shell中使用,可以在shell程序内 任意使用和修改它们。
环境变量可以在创建它们的Shell及其派生出来的任意子程序中使用。有些变量是用户创建的,其他的则是专用的(比如PATH、HOME)。是系统环境的一部分,不必去定义它们,可以在shell程序中使用它们。还能在shell中加以修改。
内部变量由系统提供的。与环境变量不同,但用户不能修改它们。
2.本地变量
用户现在的shell生命期的脚本中使用
变量名=值
注意:
(1) 等号两边不可以有空格
(2) 取值包含空格,必须用双引号括起来
(3) Shell变量可以用大小写字母,区分大小写
3.变量的声明和使用
(1)变量是弱类
4000
型的(不用声明类型)
(2)变量声明及赋值格式:变量=值
(3)变量的引用:$变量名 或者 ${变量名}
当变量名为1个字符时建议使用方式一,多于1个时,建议使用方式二。
4.echo:显示输出 -n不要在最后自动换行 -e打开反斜杠ESC转义。若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:\t 插入tab;\\插入\字符;
5.清除变量名
unset name(注意,name前没有$)
6.内部变量
部分内部变量是: $# ——传送给shell程序的位置参数的数量 $?——最后命令的完成码或者在shell程序内部执行的shell程序(返回值)。0表示没有错误,其他任何值表明有错误。 $0——shell程序的名称 $*——调用shell程序时所传送的全部参数的单字符串,“参数1”“参数2”…形式保存的参数 $@“参数1参数2”…形式保存的参数 $n第n个参数 $$本程序的PID 7.shell中的特殊符号 (1)注释符# (2)美元符 $:变量符使其后的普通字符作为变量名 (3)单引号:被引起来的字符全部做普通字符,即全部原样 (4)双引号:引号内的内容,除$、转义字符\、倒引号`这三个保留特殊功能,其他字符均做普通字符
(5)倒引号:引号内的字符串当做shell命令行解释执行,得到的结果取代整个倒引号括起来的部分。
(6)反斜线:转义字符,他能把特殊字符变成普通字符,注意:在单引号括起来的字符串中,反斜线也成为普通字符,而失去转义字符功能
(7)获取字符串长度:string=”abcd”
echo ${#string}
()提取子字符串:string="runoobis a greatsite"
echo${string:1:4} # 输出unoo
相关文章推荐
- shell基础-bash变量-位置参数变量
- Shell基础学习(二) Shell变量
- shell变量基础
- linux脚本编写基础(环境变量、shell流程控制)
- Shell基础:变量类型 & 运算符
- Linux新手生存笔记[8]——shell脚本基础1-变量
- 尚观学习-shell-基础 & 环境变量 & 自定义变量
- Shell基础-环境变量配置文件
- Shell脚本应用(shell脚本基础与shell变量)
- shell基础--字符串和变量的操作
- RHCE课程-RH033Linux基础笔记四之shell以及环境变量 推荐
- Shell基础:shell变量、环境变量配置文件、shell特殊符_cut、sort、wc、uniq
- Linux基础06_Shell变量与vim
- Shell基础之-变量、比较、测试
- Linux CentOS 7 Shell基础(命令历史,管道,作业控制,变量及环境变量)
- Linux学习日记 —— 10.4.1 Shell基础-Bash变量-用户自定义变量
- Shell基础-Bash变量-环境变量(上)
- linux基础学习笔记-3-shell变量
- [笔记]shell变量基础
- Shell基础-环境变量配置文件-简介