shell编程之SHELL基础(1)
shell脚本基础
shell是一个命令行解释器,她为互用提供了一个想linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动。挂起。停止甚至编写一些程序。
shell还是一个功能相当强大的编程语言,易编写,易调试,灵活醒较强。shell是解释执行的脚本语言,在shell中可以直接调用linux系统命令
脚本的执行
1 echo输出命令
echo [选项][输出内容]
选项:
-e : 支持反斜线控制的字符串转换
| 控制字符 | 作用 |
|---|---|
| \a | 输出警告音 |
| \b | 退格键,也就是像左删除健 |
| \n | 换行符 |
| \r | 回车健 |
| \t | 制表符,也就是tab |
| \v | 垂直制表符 |
| \0nnn | 按照八进制acsii表输出字符,其中0未数字零,nnn是三位八进制 |
| \xhh | 安卓十六进制输出输出字符 |
在echo中输出颜色 echo -e "\e[1;31m aaaa \e[0m"
30m = 黑色, 31m = 红色, 32m = 绿色,33m = 黄色
34m = 蓝色 , 35m = 洋红, 36买= 青色, 37m = 白色
2 第一个脚本
#i/bin/bash
#i/bin/bash
#the first program
echo -e "\e[1;34m hello \e[0m"
3 脚本执行
赋予执行权限,直接运行
- chmod 755 hello.sh
- ./hello.sh
通过bash调用执行脚本
- bash hello.sh
4 常用快捷键
- ctrl+c 强制终止当前命令
- ctrl+l 清屏
- ctrl+a 光标移动到命令行首
- ctrl+e 光标移动到命令行尾
- ctrl+u 从光标所在位置删除到行首
- ctrl+z 把命令放入后台
- ctrl+r 在历史命令中搜索
bash的基础命令
1 命令别名和快捷键
alias
#查看系统中所有的命令别名
alias
别名 = ‘原命令’临时生效
vi ~/.bashrc
#写入环境变量配置文件
unalias 别名
#删除别名
2 命令生效的顺序
- 第一顺位执行绝对路径或相对路径执行的命令
- 第二顺位执行别名
- 第三顺位执行bash的内部命令
- 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
echo $PATH
/usr/local/server/node/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/chenjinxin/bin
2 历史命令
history 查看历史命令
-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
历史命令的调用
- 使用上下箭头调用以前的历史命令
- 使用'!n'重复执行第n条历史命令
- 使用'!!'重复执行上一条命令
- 使用'!字串'重复执行最后一条以该字符串开头的命令
3 输出重定向
1 标准输入输出
| 设备 | 设备文件名 | 文件描述符 | 类型 |
|---|---|---|---|
| 键盘 | /dev/stdin | 0 | 标准输入 |
| 显示器 | /dev/sdtout | 1 | 标准输出 |
| 显示器 | /dev/sdterr | 2 | 标准错误输出 |
2 输出重定向
| 类型 | 符号 | 作用 |
|---|---|---|
| 标准输出重定向 | 命令 > 文件 | 以覆盖的方式,把命令的正确输出输出到指定的文件或者设备当中 |
| 标准输出重定向 | 命令 >> 文件 | 以追加的方式,把命令的正确输出输出到指定的文件或者设备当中 |
| 标准错误输出重定向 | 错误命令 2> 文件 | 以覆盖的方式,把命令的错误输出输出到指定的文件或者设备当中 |
| 标准错误输出重定向 | 错误命令 2>> 文件 | 以追加的方式,把命令的错误输出输出到指定的文件或者设备当中 |
| 正确输出和错误输出同时保存 | 命令 > 文件 2&1 | 覆盖 |
| 正确输出和错误输出同时保存 | 命令 >> 文件 2&1 | 追加 |
| 正确输出和错误输出同时保存 | 命令 &> 文件 | 覆盖 |
| 正确输出和错误输出同时保存 | 命令 &>> 文件 2&1 | 追加 |
| 正确输出和错误输出同时保存 | 命令 >> 文件1 2>>文件2 | 正确追加到1,错误追加到2 |
3 输入重定向
wc [选项][文件名]
选项:
-c 统计字节数
-w 统计单词数
-l统计行数
然后ctrl + d 显示统计
<< access.log
4 多命令顺序执行
1 多命令顺序执行
| 多命令执行符 | 格式 | 作用 |
|---|---|---|
| ; | 命令1; 命令2 | 多个命令顺序执行,命令之间没有任何逻辑联系 |
| && | 命令1 && 命令2 | 逻辑与 当前命令1正确执行,则命令2才能执行当命令1执行不正确,测命令2不会执行 |
| || | 命令1 || 命令2 | 逻辑或 当命令1执行不正确,测命令2才会执行 当命令1正确执行,测命令2不会执行 |
2 管道符
命令1 | 命名2 命令1的输出结果作为命令2的输入内容
比如 ps aux | grep node
5 shell中特殊字符
1 通配符
| 通配符 | 作用 |
|---|---|
| ? | 匹配一个任意字符 |
| * | 匹配0个或任意多个任意字符,也就是可以匹配任何内容 |
| [] | 匹配括号中任意一个字符 |
| [-] | [0-9] |
| [^] | [^0-9]在括号内的字符 |
2 bash中的其他特殊符号
| 符号 | 作用 |
|---|---|
| '' | 没有特殊的意义 |
| "" | 一般没什么意义 |
| `` | 内容系统命令 |
| $() | 和反引号一样,用来引用系统命令 |
| # | 在shell脚本中,#开始的行代表注释 |
| $ | 用于调用变量的值,入需要调用变量name的值是,需要用$name的值时,需要用$name的方式得到变量的值 |
| \ | 转义符,回到本来的意思 |
shell编程之SHELL基础(1)的更多相关文章
- shell编程之awk命令详解
shell编程之awk命令详解 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; out ...
- 03 shell编程之case语句与函数
本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正 Shell编程之case语句与函数 学习目标: 掌握case语句编程 掌握shell函数的使用 目录结构: Case语句 Case语句的作用 ...
- shell编程之case分支语句
shell编程之case分支语句 case分支语句和if的多分支语句很相似. if多分支语句一般用在有(区间范围)的地方 :例如:0-100之间. if需要判断多个不同的条件. case的分支语句用在 ...
- shell编程之if语句
shell编程之if判断 目录 shell编程之if判断 1.整数比较 2.字符串比较 3.举例 1.数字比较 2.字符串比较 4.Other 1.整数比较 -eq 等于,如:if [ "$ ...
- shell编程之export
shell 与 export命令用户登录到Linux系统后,系统将启动一个用户shell.在这个shell中,可以使用shell命令 或声明变量,也可以创建并运行shell脚本程序.运行shell脚本 ...
- shell编程之sed编辑器&gawk程序
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/560372 s ...
- Shell编程之Shift的用法
位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常 ...
- shell 编程之 for while until 循环
shell 的for循环 的格式如下: for 变量 in 列表 do ... done 列表是一组值的序列 每个值通过空格隔开 每循环一次,列表中的下一个值赋给变量 in 列表是可选的,如果不用他 ...
- shell 编程之 if...else case...esac
shell的条件判断语句有三种 if...fi 语句 if...else...fi 语句 if...elif...fi 语句 例子: a=10; b=20; if [ $a -gt %b ] t ...
随机推荐
- {style}/index_article.htm {style}表示什么意思啊
LS有点安全意识好不好.... 在你的后台系统设置有个"模板默认风格:________ cfg_df_style " 默认是default也就是 {style}=模板路径+模板默 ...
- 织梦CMS搭建网站必做的服务器相关安全设置
http://help.dedecms.com/install-use/server/2011/1109/2124.html#printSource http://www.aliweihu.com/9 ...
- telnet配置和telnet用法
搭建或配置网络环境时,经常会使用ping命令检查网络是否可达.有些时候Ping命令也不好使,比如因防火墙禁止或访问策略限制等.则可使用telnet测试映射端口或远程访问主机. Telnet协议是TCP ...
- 邓_PPT
如何拯救一份丑到爆的PPT? "小邓,这是我做的PPT,你优化优化,明天早上给我,上午客户来要用." 领导,你这是PPT嘛,明明就是word嘛. "小张啊,你看看我这个P ...
- 7系列高速收发器总结 GTP IP核使用篇
上一篇7系列收发器博文讲解了GTP IP核的基本配置,本文继续分析如何将它使用起来.生成IP核后打开example design,先看看工程中包含的文件结构. 顶层文件下包含了gtp ip核系统顶层文 ...
- CUDA共享内存的使用示例
CUDA共享内存使用示例如下:参考教材<GPU高性能编程CUDA实战>.P54-P65 教材下载地址:http://download.csdn.net/download/yizhaoyan ...
- 遇到安装app不识别的情况
一般->blokfile->证书设定设置
- hive导出查询文件到本地文件的2种办法
通过HQL语句 可以将hive 中表的数据生成到指定的目录. 有时候 我们可以利用hive来生成统计的中间文件(比源文件小的多的) 方法有如下2种: 1.INSERT OVERWRITE LOCAL ...
- myeclipse 10怎么安装与激活
http://jingyan.baidu.com/article/5553fa82eae0ce65a2393406.html
- MySQL的char和varchar针对空格的处理
MySQL的char和varchar存储和查询中包含空格的实验 MySQL版本 一.测试char包含空格的存储和查询 测试发现,存储的数据,char数据类型的右侧空格存储的时候被删除了,但是左侧空格还 ...