一:Shell基础
1.shell概述
shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动,挂起,停止甚至是编写一些程序;
shell还是一个功能强大的编程语言,易编写,易调试,灵活性较强。
shell是解释执行的脚本语言,在shell中可以直接调用Linux系统命令;
用户输入命令,shell讲命令通过ascii码表翻译成二进制给内核,内核调用计算机硬件来处理;同时计算机硬件可以将信息传给内核,然后内核讲信息传递个shell,shell讲 字符显示出来,相当于逆过程;
Windows有shell吗?其实Windows中不叫shell,图形化界面操作也可以叫做“shell”,只不过不这么叫而已;
2.shell分类
1.bourne shell基本淘汰,bourne家族主要包括sh,ksh,bash,psh;
2.c shell,主要包括:csh,tcsh;
Linux下所有支持的shell都可以在/etc/shells 里面查询;
3.脚本执行方式
1、echo输出命令和脚本执行格式:echo [选项] [输出内容]
选项: -e:支持反斜线控制的字符转换
echo "bols he cangls ni xihuan nayige"
\a - 输出警告音
\b - 退格符
\n - 换行符
\r - 回车键
\t - 制表符,也就是tab键
\v - 垂直制表符
\0nnn - 按照八进制ASCII码输出字符
\xhh - 按照十六进制ASCII表输出字符
echo -e "bols he cangls ni\b xihuan nayige"
echo -e "hell\bo"
echo -e "h\te\tl\nl\to\t"
echo -e "\x68\t\x65\t\x6c\n\x6c\t\x6f"
echo -e "\e[1;31m嫁人就要嫁凤姐\e[0m"
#输出颜色 \e[1;##m - 开启颜色显示; \e[0m - 关闭颜色显示
#30m=黑色,31m=红色,32m=绿色,33m=黄色
#34m=蓝色,35m=洋红,36m=青色,37m=白色
2、脚本执行:
方法1:赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh(或者绝对路径执行 /root/hello.sh)
方法2:通过Bash调用执行脚本
bash hello.sh
3、
#!/bin/Bash
不是注释,它标称下面的内容是linux的标准脚本程序
如果该脚本使用纯shell语句完成,不加#!/bin/Bash,运行没问题
但脚本调用了其他语言,就会报错
4.别名和快捷
1、可以通过alias ls='ls --color=never'设置新的别名
alias查看别名,前面为别名,后面为全名
一般是重启,重登录之后,就失效!
如果要长久有效,需要配置文件,配置好
vim比vi功能更强大,可以通过设置 alias vi='vim'的别名来调用,但是重启重登录之后失效
2、将别名写入配置文件:
vi ~/.bashrc #写入配置文件 永久生效
~是指每个用户的目录,每个用户的目录不一样,配置文件不一样,生成的效果也不一样
写完之后,source .bashrc
unalias 别名 #删除别名
3、命令生效的顺序
第一顺位:执行命令用绝对路径或者相对路径执行的命令
第二顺位:执行别名命令
第三顺位:执行Bash内部命令
第四顺位:按照$PATH环境变量定义的目录查找的顺序第一的命令
4、快捷键
Ctrl c 强制终止
Ctrl l 清屏
Ctrl u 删除到行首
Ctrl a 光标移动到行首
Ctrl e 移动到行尾
Ctrl z 把命令放到后台 (没有终止,仅仅是放入后台执行)
Ctrl r 在历史记录中搜索
5.历史命令
history 历史命令
history [选项] [历史命令保存文件]
-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
#默认保存1000条
HISTSIZE=1000
#vi /etc/profile 环境变量配置文件修改HISTSIZE
基本调用
上下箭头来重复调用
!n 来执行第n条历史命令
!! 重复执行上一条命令
!字符串 重复执行后一个该串开头的命令
Tab键
进行命令(环境变量)和目录补全(操作路径)
6.输出重定向



命令 &> /dev/null 将命令执行信息放到黑洞了或可以理解为垃圾回收站
7.管道符

";"连接命令 顺序执行
"&&"连接命令 逻辑与执行 第一条执行 第二条执行 第一条错误 第二条不执行
"||"连接命令 逻辑或执行 第一条执行 第二条不执行 第一条错误 第二条执行
脚本中的应用:命令 && echo yes || echo no 命令正确yes 错误no
注意&& echo yes || echo no 顺序不能颠倒,不然命令出错的时候会同时输出no yes
"|" 管道符 命令1|命令2 命令1正确的结果 作为命令2的操作对象
例如 ls -l > /etc/ | more “用于分页显示命令执行结果”
netstat -an | grep ESTABLISHED | wc -l "用于查看当前连接本机的客户端 并 统计客户端数量"
8.通配符


一:Shell基础的更多相关文章
- Shell基础学习小结
0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本 ...
- Shell基础-环境变量配置文件
Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...
- shell基础二十篇 一些笔记
shell基础二十篇 转自 http://bbs.chinaunix.net/thread-452942-1-1.html 研讨:Bash 内建命令 read (read命令更具体的说明见博客收藏的一 ...
- shell基础(转)
shell基础1:文件安全与权限 http://bbs.chinaunix.net/forum/viewtopic.php?t=434579&highlight=wingger 附:Linux ...
- Linux实战教学笔记17:精简shell基础
第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...
- shell基础及变量
一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...
- Shell 基础教程
一个比较好的shell基础教程: http://www.runoob.com/linux/linux-shell.html
- Linux基础学习(10)--Shell基础
第十章——Shell基础 一.Shell概述 1.Shell是什么: (1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来 ...
- Linux Shell基础(下)
Linux Shell基础(下) 目录 一.shell特殊符号cut命令 二.cut.sort.wc.uniq命令 三.tee.tr.split命令 四.简易审计系统 五.fork, exec, so ...
- Linux shell基础知识(上)
Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...
随机推荐
- struts2输入验证
1.方法 ① 基于Annotations的验证 ②基于XML配置的验证 http://blog.csdn.net/furongkang/article/details/692204 ...
- Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc
Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...
- 在 Windows 上遇到非常多 TIME_WAIT 連線時應如何處理
我們公司所代管的網站裡,有幾個流量是非常大的,在尖峰的時刻同時上線人數可能高達數千到數萬人,而在這個時候如果使用 netstat 或 TCPView 查看所有 TCP 連線時就會看到非常多處於 ...
- 以【猫叫、老鼠跑、主人醒】为例子,使用 javascript 来实现 观察者模式 (有在线演示)
“猫叫.老鼠跑.主人醒”是一个很古老的话题了,大家也都有各自的想法和解决方案.我也是看了很多,一开始的时候是相当的迷糊,这个怎么就是面试题了?考的是啥呀,和编程有关系吗?又是猫又是老鼠的,晕死了.后来 ...
- Quartz.NET开源作业调度框架系列
Quartz.NET是一个被广泛使用的开源作业调度框架 , 由于是用C#语言创建,可方便的用于winform和asp.net应用程序中.Quartz.NET提供了巨大的灵活性但又兼具简单性.开发人员可 ...
- knockout源码分析之执行过程
一.执行流程 二.主要类分析 2.1. 在applyBindings中,创建bindingContext,然后执行applyBindingsToNodeAndDescendantsInternal方法 ...
- 使用虚拟按钮(Ghost Buttons)的25个网站
2014年已经过去大半年了,我们看到网页设计领域出现新的设计趋势. 虚拟按钮(Ghost Buttons)是指具备基本的按钮形状的透明按钮,但有细实线的边框.有些虚拟钮是互动的,点击之后按钮可能会成为 ...
- Win10中安装ArcObject帮助
问题 环境:Win10+VS2010+ArcGIS10.0,未能成功安装其AO帮助文档:使用help library manager手动安装也报错. 选择msha文件: 解决 查看系统事件,发现组件注 ...
- Android HTTP实例 发送请求和接收响应
Android HTTP实例 发送请求和接收响应 Android Http连接 实例:发送请求和接收响应 添加权限 首先要在manifest中加上访问网络的权限: <manifest ... & ...
- react native 的js 文件从哪里获取
/** * Loading JavaScript code - uncomment the one you want. * * OPTION 1 * Load from development ser ...