shell基础
shell作用:把用户输入命令编译成0101给机器,机器反馈回来的0101再编译成英文来显示
1.shell什么
1.命令行解释器
2.功能相当强大的编程语言,易编写,易调试,灵活性强。shell是解释执行的脚本语言,
在shell中可以直接调用Linux系统命令。
2.shell的分类
Bourne shell C shell Bash用的最多 Unix用的是csh
查看当前调用的shell echo $SHELL
脚本的执行方式
1.echo 输出命令 作用:把指定内容输出到屏幕上
echo [选项] [输出内容]
选项:
-e :支持反斜线控制的字符转换 \ 空格 \t换行
echo "hello world" #有空格就得加双引号
2.第一个脚本 要加注释
vi hello.sh
#!/bin/bash
#这是第一个脚本
echo -e "\e[1;32m 天上掉下个林妹妹 \e[0m "
3.脚本执行 一般用赋予权限 习惯用法
两种方法:1.赋予执行权限,直接运行 chmod 755 hello.sh ./hello.sh 输入准确路径
2.通过Bash调用执行脚本 bash hello.sh
Bash的基本功能
1.命令的别名与快捷键 长明令的缩写
2.历史命令
3.输出重定向
4.多命令顺序执行
5.shell中特殊符号
1.查看设定删除别名
查看: alias 查看系统中拥有的别名
设定: 设定自己的别名 alias格式类似就可 alias vi=‘vim’ 只可当次有效
别名永久生效与删除别名
vi ~/.bashrc #写入环境变量配置文件 unalias 别名 #删除别名
命令生效顺序
第一顺位执行用绝对路径或相对路径执行的命令。
第二顺位执行别名。
第三顺位执行Bash的内部命令。
第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。
常用快捷键
Ctrl + c 强制终止当前命令
ctrl + l 清屏
ctrl + a 光标移动到命令行首
ctrl + e 光标移动到命令行尾
ctrl + u 从光标所在位置删除到行首
ctrl + z 把命令放入后台
ctrl + r 在历史命令行中搜索
21:54 2016/10/22
2.历史命令
history [选项] [历史命令保存文件]
选项:
-c :清空历史命令
-w :把缓存中的历史命令写入历史命令保存文件~/.bash_history
输出重定向
输出输入重定向
1.标准输入输出
标准输入设备:键盘 设备文件名:/dev/stdin 文件描述符号:0
标准输出设备:显示器 设备文件名:/dev/sdtout 文件描述符号:1
标准错误输出:显示器 设备文件名:/dev/sdterr 文件描述符号:2
2.输出重定向
把输出到屏幕上的结果保存到文件中 相当与日志 (凌晨四五点时,人不在电脑跟前)
ifconfig > text.log 到时候查看文件 cat text.log text.log不存在会新建,存在会覆盖
到时候再定时执行脚本 (脚本就是命令的集合)
ifconfig >> text.log 双大于号是追加 不会覆盖 只会保存命令的正确输出
ifconfig 2>> text.log 可以把错误的命令保存到文件当中 2和》不加空格
命令 >> 文件名 2>&1 以追加方式把正确和错误的命令都写在文件当中
命令 &>> 文件名 用法同上
命令 &> /dev/null 把命令扔进空洞 都不会显示 不看过程
命令>>文件1 2>>文件2 把正确命令放进文件一中 把错误命令放进文件二中
输入重定向
wc [选项][文件名] 有空格就当另一个单词
选项:
-c统计字节数
-w统计单词数
-l统计行数
wc << words 基本不用
kluahlfd,vbfamshgdfasjgf
akjfdhakhf words
行 个数 字节 (在单词words 和words 之间的内容进行统计)任意两个相同的单词之间
grep 字符串 #查询文件中的字符串 那一行
管道符
1.多命令顺序执行
: 命令1:命令2 多个命令顺序执行,命令之间没有任何逻辑联系
&& 命令1&&命令2 逻辑与 当命令1正确执行,命令2才会执行;当命令1执行不正确,则命令2不会执行
|| 命令1||命令2 逻辑或 当命令1执行不正确,则命令2才会执行;当命令1正确执行,则命令2不会执行
用分号 当文件报错时 后面还会执行
检测命令正确还是错误 命令 && echo yes || echo no
2.管道符 |
命令1 | 命令2 #命令1的输出结果作为命令2的操作对象
命令1正确执行后,会把结果传给命令2,去操作
例如:ls home | more
netstat #查看系统中的所有端口连接
应用:
netstat -an | grep ESTABLISHED | WC -l #查看有多少个端口连接电脑/服务器有多少人登陆
通配符
1.通配符 常用前三个
? 匹配任一个字符
* 匹配0个或任意多个字符,也就是可以匹配任何内容
[] 匹配中括号中任意一个字符,例如:[abc]代表一定匹配一个字符,或者是a或者是b或者是c.
[-] 匹配中括号中任意一个字符,-代表一个范围。例如:[a-z]代表匹配一个小写字母
[^] 逻辑非,表示匹配不是中括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符
变量 赋值 abc=34 查看 在变量明前加$ echo $abc
2.Bash中其他特殊符号
'' 单引号,在单引号中所有的特殊符号都没有意义。如$
"" 双引号,在双引号中特殊字符号都没有特殊含义,但是$ ’\是例外
`` 反引号,反引号括起来的内容是系统命令,在Bash中会先执行它
$() 和反引号作用一样,用来引用系统命令 aaa=`ls` 先执行ls 再赋值
# 在shell脚本中,#开头代表注释
$ 用于调用变量的值,如需要调用变量name的值是,需要用$name的方式得到变量的值。
\ 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$ 将输出$符号,而不当做是变量引用。
shell作用:把用户输入命令编译成0101给机器,机器反馈回来的0101再编译成英文来显示
1.shell什么
1.命令行解释器
2.功能相当强大的编程语言,易编写,易调试,灵活性强。shell是解释执行的脚本语言,
在shell中可以直接调用Linux系统命令。
2.shell的分类
Bourne shell C shell Bash用的最多 Unix用的是csh
查看当前调用的shell echo $SHELL
脚本的执行方式
1.echo 输出命令 作用:把指定内容输出到屏幕上
echo [选项] [输出内容]
选项:
-e :支持反斜线控制的字符转换 \ 空格 \t换行
echo "hello world" #有空格就得加双引号
2.第一个脚本 要加注释
vi hello.sh
#!/bin/bash
#这是第一个脚本
echo -e "\e[1;32m 天上掉下个林妹妹 \e[0m "
3.脚本执行 一般用赋予权限 习惯用法
两种方法:1.赋予执行权限,直接运行 chmod 755 hello.sh ./hello.sh 输入准确路径
2.通过Bash调用执行脚本 bash hello.sh
Bash的基本功能
1.命令的别名与快捷键 长明令的缩写
2.历史命令
3.输出重定向
4.多命令顺序执行
5.shell中特殊符号
1.查看设定删除别名
查看: alias 查看系统中拥有的别名
设定: 设定自己的别名 alias格式类似就可 alias vi=‘vim’ 只可当次有效
别名永久生效与删除别名
vi ~/.bashrc #写入环境变量配置文件 unalias 别名 #删除别名
命令生效顺序
第一顺位执行用绝对路径或相对路径执行的命令。
第二顺位执行别名。
第三顺位执行Bash的内部命令。
第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。
常用快捷键
Ctrl + c 强制终止当前命令
ctrl + l 清屏
ctrl + a 光标移动到命令行首
ctrl + e 光标移动到命令行尾
ctrl + u 从光标所在位置删除到行首
ctrl + z 把命令放入后台
ctrl + r 在历史命令行中搜索
21:54 2016/10/22
2.历史命令
history [选项] [历史命令保存文件]
选项:
-c :清空历史命令
-w :把缓存中的历史命令写入历史命令保存文件~/.bash_history
输出重定向
输出输入重定向
1.标准输入输出
标准输入设备:键盘 设备文件名:/dev/stdin 文件描述符号:0
标准输出设备:显示器 设备文件名:/dev/sdtout 文件描述符号:1
标准错误输出:显示器 设备文件名:/dev/sdterr 文件描述符号:2
2.输出重定向
把输出到屏幕上的结果保存到文件中 相当与日志 (凌晨四五点时,人不在电脑跟前)
ifconfig > text.log 到时候查看文件 cat text.log text.log不存在会新建,存在会覆盖
到时候再定时执行脚本 (脚本就是命令的集合)
ifconfig >> text.log 双大于号是追加 不会覆盖 只会保存命令的正确输出
ifconfig 2>> text.log 可以把错误的命令保存到文件当中 2和》不加空格
命令 >> 文件名 2>&1 以追加方式把正确和错误的命令都写在文件当中
命令 &>> 文件名 用法同上
命令 &> /dev/null 把命令扔进空洞 都不会显示 不看过程
命令>>文件1 2>>文件2 把正确命令放进文件一中 把错误命令放进文件二中
输入重定向
wc [选项][文件名] 有空格就当另一个单词
选项:
-c统计字节数
-w统计单词数
-l统计行数
wc << words 基本不用
kluahlfd,vbfamshgdfasjgf
akjfdhakhf words
行 个数 字节 (在单词words 和words 之间的内容进行统计)任意两个相同的单词之间
grep 字符串 #查询文件中的字符串 那一行
管道符
1.多命令顺序执行
: 命令1:命令2 多个命令顺序执行,命令之间没有任何逻辑联系
&& 命令1&&命令2 逻辑与 当命令1正确执行,命令2才会执行;当命令1执行不正确,则命令2不会执行
|| 命令1||命令2 逻辑或 当命令1执行不正确,则命令2才会执行;当命令1正确执行,则命令2不会执行
用分号 当文件报错时 后面还会执行
检测命令正确还是错误 命令 && echo yes || echo no
2.管道符 |
命令1 | 命令2 #命令1的输出结果作为命令2的操作对象
命令1正确执行后,会把结果传给命令2,去操作
例如:ls home | more
netstat #查看系统中的所有端口连接
应用:
netstat -an | grep ESTABLISHED | WC -l #查看有多少个端口连接电脑/服务器有多少人登陆
通配符
1.通配符 常用前三个
? 匹配任一个字符
* 匹配0个或任意多个字符,也就是可以匹配任何内容
[] 匹配中括号中任意一个字符,例如:[abc]代表一定匹配一个字符,或者是a或者是b或者是c.
[-] 匹配中括号中任意一个字符,-代表一个范围。例如:[a-z]代表匹配一个小写字母
[^] 逻辑非,表示匹配不是中括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符
变量 赋值 abc=34 查看 在变量明前加$ echo $abc
2.Bash中其他特殊符号
'' 单引号,在单引号中所有的特殊符号都没有意义。如$
"" 双引号,在双引号中特殊字符号都没有特殊含义,但是$ ’\是例外
`` 反引号,反引号括起来的内容是系统命令,在Bash中会先执行它
$() 和反引号作用一样,用来引用系统命令 aaa=`ls` 先执行ls 再赋值
# 在shell脚本中,#开头代表注释
$ 用于调用变量的值,如需要调用变量name的值是,需要用$name的方式得到变量的值。
\ 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$ 将输出$符号,而不当做是变量引用。