九.Shell基础
来源:互联网 发布:淘宝返利微信 编辑:程序博客网 时间:2024/06/05 02:38
Shell基础:
1-1Shell概述
*Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序
*Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令
*Shell的分类
*Bourne Shell:主文件名为sh
*C Shell:主要是在Unix系统中使用,语法与C语言类似
**Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh
**Bash:Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell
**Linux支持的Shell
*/etc/shells
1-2脚本执行方式
1.echo输出命令
*echo [选项] [输出内容]
*选项:
-e:支持反斜线控制的字符转换
2.第一个脚本
*vi hello.sh
#!/bin/bash 表示为此脚本的解释程序
# 表示的是注释符号;如果#位于行首,则整行均为注释,如果#不位于行首,那么#的后面为注释3.脚本执行
*赋予执行权限,直接运行
eg:chmod 755 hello.sh
./hello.sh
*通过Bash调用执行脚本
eg:bash hello.sh
1-3Bash的基本功能
*命令别名与快捷键
*历史命令
*输出重定向
*多命令顺序执行
*Shell中特殊符号
1-3-1别名与快捷键
什么是别名?
*命令别名==人的小名
查看与设定别名
*alias #查看系统中所有的命令别名
*alias 别名='原命令'#设定命令别名
*unalias 别名 #删除别名
命令生效顺序 ???????
*第一顺位执行用绝对路径或相对路径执行的命令
*第二顺位执行别名
*第三顺位执行Bash的内部命令
*第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
常用快捷键
*ctrl+c 强制终止当前命令
*ctrl+l 清屏
*ctrl+a 光标移动到命令行首
*ctrl+e 光标移动到命令行尾
*ctrl+u 从光标所在位置删除到行首
*ctrl+z 把命令放入后台
*ctrl+r 在历史命令中搜索
1-3-2输出重定向
1.标准输入输出
设备 设备文件名文件描述符类型
键盘 /dev/stdin0标准输入
显示器 /dev/sdtout1标准输出
显示器 /dev/sdterr2标准错误输出
2.输出重定向
类型 符号 作用
标准输出重定向 命令>文件 以覆盖的方式,把命令的正确输出到指定的文件或设备当中
命令>>文件 以追加的方式,把命令的正确输出到指定的文件或设备当中
标准错误输出重定向 错误命令 2>文件 以覆盖的方式,把命令的错误输出到指定的文件或设备当中
错误命令 2>>文件 以追加的方式,把命令的错误输出到指定的文件或设备当中
输出重定向:就是本来正常输出,是输出到显示器上,但是现在用了输出重定向将其输出到文件中,因此叫重定向
3.输入重定向
*$ wc [选项] [文件名]
*选项:
-c统计字节数
-w统计单词数
-l统计行数
*命令<文件把文件作为命令的输入
*命令<<标识符
*...
*标识符把标识符之间内容作为命令的输入
1-4管道符
1.多命令顺序执行
多命令执行符 格式 作用
; 命令1 ;命令2 多个命令顺序执行,命令之间没有任何逻辑联系
&& 命令1 && 命令2 逻辑与
当命令1正确执行,则命令2才会执行;
当命令1执行不正确,则命令2不会执行;
|| 命令1 || 命令2 逻辑或
当命令1执行不正确,则命令2才会执行;
当命令1正确执行,则命令2不会执行;
2.管道符
*命令格式:
*$命令1 | 命令2
#命令1的正确输出作为命令2的操作对象
1-5通配符
1.通配符
通配符 作用
? 匹配一个任意字符
* 匹配0个或任意多个任意字符,也就是可以匹配任何内容
[] 匹配中括号中任意一个字符。eg:[abc]代表一定匹配一个字符,或者是a,又或者是b,或者是c
[-] 匹配中括号中任意一个字符,-代表一个范围。eg:[a-z]代表匹配一个小写字母
[^] 逻辑非,表示匹配不是中括号中任意一个字符。eg:[^0-9]表示匹配一个不是数字的字符
2.Bash中其它特殊符号
符号 作用
'' 单引号。在单引号中所有的特殊符号,如"$"和"'"(反引号)都没有特殊含义。
"" 双引号。在双引号中特殊符号都没有特殊含义,但是"$"、"'"和"\"是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义。
$() 和反引号作用一样,用来引用系统命令。
# 在shell脚本中,#开头的行代表注释。
$ 用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。
\ 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当做是变量引用。
1-1Shell概述
*Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序
*Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令
*Shell的分类
*Bourne Shell:主文件名为sh
*C Shell:主要是在Unix系统中使用,语法与C语言类似
**Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh
**Bash:Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell
**Linux支持的Shell
*/etc/shells
1-2脚本执行方式
1.echo输出命令
*echo [选项] [输出内容]
*选项:
-e:支持反斜线控制的字符转换
2.第一个脚本
*vi hello.sh
#!/bin/bash 表示为此脚本的解释程序
# 表示的是注释符号;如果#位于行首,则整行均为注释,如果#不位于行首,那么#的后面为注释3.脚本执行
*赋予执行权限,直接运行
eg:chmod 755 hello.sh
./hello.sh
*通过Bash调用执行脚本
eg:bash hello.sh
1-3Bash的基本功能
*命令别名与快捷键
*历史命令
*输出重定向
*多命令顺序执行
*Shell中特殊符号
1-3-1别名与快捷键
什么是别名?
*命令别名==人的小名
查看与设定别名
*alias #查看系统中所有的命令别名
*alias 别名='原命令'#设定命令别名
别名永久生效与删除别名
设置别名永久生效:
在.bashrc中设置:alias 别名='原命令',设置永久别名后,其会自动保存到alias中,可以在alias中看到该命令别名,为什么我的设置永久生效别名不成功?????
*vi ~/.bashrc #写入环境变量配置文件*unalias 别名 #删除别名
命令生效顺序 ???????
*第一顺位执行用绝对路径或相对路径执行的命令
*第二顺位执行别名
*第三顺位执行Bash的内部命令
*第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
常用快捷键
*ctrl+c 强制终止当前命令
*ctrl+l 清屏
*ctrl+a 光标移动到命令行首
*ctrl+e 光标移动到命令行尾
*ctrl+u 从光标所在位置删除到行首
*ctrl+z 把命令放入后台
*ctrl+r 在历史命令中搜索
1-3-2输出重定向
1.标准输入输出
设备 设备文件名文件描述符类型
键盘 /dev/stdin0标准输入
显示器 /dev/sdtout1标准输出
显示器 /dev/sdterr2标准错误输出
2.输出重定向
类型 符号 作用
标准输出重定向 命令>文件 以覆盖的方式,把命令的正确输出到指定的文件或设备当中
命令>>文件 以追加的方式,把命令的正确输出到指定的文件或设备当中
标准错误输出重定向 错误命令 2>文件 以覆盖的方式,把命令的错误输出到指定的文件或设备当中
错误命令 2>>文件 以追加的方式,把命令的错误输出到指定的文件或设备当中
输出重定向:就是本来正常输出,是输出到显示器上,但是现在用了输出重定向将其输出到文件中,因此叫重定向
3.输入重定向
*$ wc [选项] [文件名]
*选项:
-c统计字节数
-w统计单词数
-l统计行数
*命令<文件把文件作为命令的输入
*命令<<标识符
*...
*标识符把标识符之间内容作为命令的输入
1-4管道符
1.多命令顺序执行
多命令执行符 格式 作用
; 命令1 ;命令2 多个命令顺序执行,命令之间没有任何逻辑联系
&& 命令1 && 命令2 逻辑与
当命令1正确执行,则命令2才会执行;
当命令1执行不正确,则命令2不会执行;
|| 命令1 || 命令2 逻辑或
当命令1执行不正确,则命令2才会执行;
当命令1正确执行,则命令2不会执行;
2.管道符
*命令格式:
*$命令1 | 命令2
#命令1的正确输出作为命令2的操作对象
1-5通配符
1.通配符
通配符 作用
? 匹配一个任意字符
* 匹配0个或任意多个任意字符,也就是可以匹配任何内容
[] 匹配中括号中任意一个字符。eg:[abc]代表一定匹配一个字符,或者是a,又或者是b,或者是c
[-] 匹配中括号中任意一个字符,-代表一个范围。eg:[a-z]代表匹配一个小写字母
[^] 逻辑非,表示匹配不是中括号中任意一个字符。eg:[^0-9]表示匹配一个不是数字的字符
2.Bash中其它特殊符号
符号 作用
'' 单引号。在单引号中所有的特殊符号,如"$"和"'"(反引号)都没有特殊含义。
"" 双引号。在双引号中特殊符号都没有特殊含义,但是"$"、"'"和"\"是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义。
$() 和反引号作用一样,用来引用系统命令。
# 在shell脚本中,#开头的行代表注释。
$ 用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。
\ 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当做是变量引用。
0 0
- shell基础九:awk
- shell基础九:awk
- 九.Shell基础
- Shell脚本基础学习(九)----输入
- linux shell 基础九之函数
- shell实例(九) ---随机数
- 《Linux 九》 Shell 讲解
- 《Linux 九》Shell 讲解
- shell详解九
- shell学习九--let
- 九、Shell echo命令
- Shell基础
- Shell 基础
- Shell 基础
- shell基础
- shell 基础
- shell基础
- shell基础
- 实现tableView上headerView图片下拉变大效果
- C# GUID的使用
- ADB server didn't ACK 解决方法
- java实现冒泡排序,选择排序,插入排序算法详解
- 也许,DOM 不是答案(手机APP页面开发的思考)
- 九.Shell基础
- Android app如何正确读写系统sys设备节点
- Mysql常用命令详解
- CentOS7安装MYSQL5.7.12
- DG BROKER 之 REINSTATE DATABASE (把旧主库恢复到备用库)
- UVA 10341 Solve It (二分)
- linux bash shell之declare
- 【图像处理】空间域上的图像增强(sobel,LOG,DOG算子等)
- svn ignore 的用法(忽略文件及目录)