一: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 ...
随机推荐
- 一个完整的类用来生成RSACryptoServiceProvider单例类(.NET)
internal class CcbRsaCryptProvider { private static RSACryptoServiceProvider _providerForSign; priva ...
- Linux更改主机名-适用于abuntu
今天复制了个ubuntu虚拟机,于是想更改下主机名以作区别.这是搜到的比较完整的资料,适用abuntu,不过其他linux系统还有待求证. 1.查看主机名 在Ubuntu系统中,快速查看主机名有多种方 ...
- SQL Server 的通用分页显示存储过程
建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页.但这种分页方法仅适 ...
- web前端命名规范
在做web项目的时候,命名的规范是很重要.初学者一般急于求成对命名规范没有概念,觉得花时间这些还不如多看几遍框架.其实在我看来,一个良好的命名习惯是很重要的.下面就来介绍一下我总结的命名规范: (1) ...
- ae_将面积小于1500的Feature同附近Feature进行合并
private void 合并1500图斑ToolStripMenuItem_Click(object sender, EventArgs e) { /* *将图层中面积小于1500的图斑与之相同BS ...
- SPC2014 :“FOSL”不是替代InfoPath,只是另外一种创建表单的方式
今天在SPC2014微软宣布他们技术路线图.其实,没有足够证据替代InfoPath,只是另外的一种尝试 - FOSL(对SharePoint列表表单). FOSL使用相同的引擎,用于创建表单的访问服务 ...
- Atitti.java android反编译解决方案-----虚拟机方案
Atitti.java android反编译解决方案-----虚拟机方案 哈哈,终极解决方案是虚拟机...c++也可以反编译为汇编代码,但无需担心,因为读懂汇编太麻烦..只要不能拿到c++源码就可.. ...
- Large-file-chunk-size 设置最大文件上传值
Large-file-chunk-size: Stsadm property (Office SharePoint Server) SharePoint 2007 0 out of 1 rated ...
- iOS runtime的理解和应用
项目中经常会有一些的功能模块用到runtime,最近也在学习它.对于要不要阅读runtime的源码,我觉得仅仅是处理正常的开发,那真的没有必要,只要把常用的一些函数看下和原理理解下就可以了. 但是如果 ...
- mac系统如何显示和隐藏文件
显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles YES隐藏Mac隐藏文件的命令:defaults write com.ap ...