Linux入门篇(六)——Shell(二)
这一系列的Linux入门都是本人在《鸟哥的Linux私房菜》的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解
Linux Distribution是Ubuntu而不是书本上推荐的CentOS,建议装双系统,不要使用虚拟机。
代码在github上:Linuxpractice
其他内容:
Linux入门篇(一)——基本命令
Linux入门篇(二)——文件
Linux入门篇(三)——文件与目录
Linux入门篇(四)——Vim的使用与Bash
Linux入门篇(五)——Shell(一)
Shell
一、通配符与特殊符号
| 通配符 | |
| * | 0到无穷个任意的字符 |
| ? | 一定有一个任意字符 |
| [] | 一定由一个[]中的字符 |
| [-] | 编码顺序内所有的字符 |
| [^] | 一定有一个非[]中的字符 |
| 特殊符号 | |
| # | 批注符号,视为说明,并不执行 |
| \ | 转义字符,将后面的内容还原为原来的意思 |
| | | 管道,风格两个管道命令的界定 |
| ; | 连续命令的执行 |
| ~ | 用户的主文件夹 |
| $ | 使用变量的前导符 |
| & | 作业控制,命令变成背景下工作 |
| ! | 逻辑非 |
| / | 目录符号 |
| >,>> | 数据流重定向,输出 |
| <,<< | 数据流重定向,输入 |
| ' ' | 无变量置换的变量表示 |
| " " | 有变量置换的变量表示 |
| ` ` | 先执行的命令 |
| () | 子shell的起始与结束标志 |
| {} | 中间为块命令的组合 |
二、shell其它指令及功能
- 数据流重定向:某个命令执行后的内容会打印在屏幕上的数据需要传输到其它的地方,可以使用 > 和 >>命令输出到其它的地方(>会覆盖原有的内容,而>> 不会覆盖只会累加)。
- 命令质性判断依据:
cmd1 ; cmd2 执行完cmd1,执行cmd2
cmd1 && cmd2 cmd1正确执行则执行cmd2
cmd1 || cmd2 cmd1正确执行则不执行cmd2
- 管道命令:bash执行命令时会有输出数据出现,如果这样的数据需要经过几道手续才能得到结果,则使用管道命令"|"。后面的命令必须是可以接收STDIN数据的命令。
- 选取命令:
cut可以将一段信息的某一段切出来。
# cut -d ‘分隔字符’ -f field
# cut -c 字符范围
grep 分析一行的信息
# grep [-acinv] [--color=auto] '字符串' filename
- 排序:
# sort [-fbMnrtuk] [file or stdin]
- 双向重定向 tee 可以将stdin输出到屏幕的同时并输出到文件中 # tee [-a] file
- 字符转换命令:
# tr [-ds] SET1 ... 删除一段信息中的文字或者文字替换
# col [-xb] -x tab转为空格,-b 文字内有转义字符时直接保留\后的内容
# join [-ti12] file1 file2 两个文件中相同数据一行加在一起
# paste [-d] file1 file2 不进行对比直接将两个文件贴在一起
# expand [-t] file tab转空格
三、Shell Script 程序化脚本
命令行汇整执行,类似与程序的编写,但是不需要编译执行,
利用shell的功能所写的一个纯文本的程序,在一些shell语法与命令卸载里面配合正则表达式,管道和重定向达到处理的目的。
shell script执行的方法:
直接命令执行 shell.sh 文件必须具备rx的权限, 以bash进程来执行,通过./she.sh或shell she.sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
Linux入门篇(六)——Shell(二)的更多相关文章
- Linux入门篇(二)——文件
这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...
- Linux入门篇(五)——Shell(一)
这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...
- Linux入门篇(一)——文件
这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...
- Linux入门篇(四)——Vim的使用与Bash
这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...
- Linux入门篇(三)——文件与目录
这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...
- 【SSRS】入门篇(六) -- 分组和总计
原文:[SSRS]入门篇(六) -- 分组和总计 通过[SSRS]入门篇(五) -- 设置报表格式的设计,一份简单格式的报表已产生,如下图: 这节来说说分组和总计: 根据日期.订单对数据进行分组 添加 ...
- 【Android开发日记】之入门篇(十二)——Android组件间的数据传输
组件我们有了,那么我们缺少一个组件之间传递信息的渠道.利用Intent做载体,这是一个王道的做法.还有呢,可以利用文件系统来做数据共享.也可以使用Application设置全局数据,利用组件来进行控制 ...
- Linux入门篇(一)——基本命令
这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...
- linux入门教程(六) Linux文件与目录管理
在linux中什么是一个文件的路径呢,说白了就是这个文件存在的地方,例如在上一章提到的/root/.ssh/authorized_keys 这就是一个文件的路径.如果你告诉系统这个文件的路径,那么系统 ...
随机推荐
- JS URL解析
function urlParse(url) { try { var hostexp = /http\:\/\/([^\/]+)/; var hoststr = url.match(hostexp)[ ...
- springboot Aop配置,并使用自定义注解annotation,并且拦截service层
前言 用Spring Boot的AOP来简化处理自定义注解,并将通过实现一个简单的方法执行判断节点是否开始的状态示列源码. AOP概念 面向侧面的程序设计(aspect-oriented progra ...
- FTL(FreeMarker)基础
FreeMarker标签使用一.FreeMarker模板文件主要有4个部分组成1.文本,直接输出的部分2.注释,即<#--...-->格式不会输出3.插值(Interpolation):即 ...
- iOS重用宏定义
iOS 多快好省的宏(转) 原文地址:http://my.oschina.net/yongbin45/blog/150149 // 字符串: #ifndef nilToEmpty #define ni ...
- vue-router配置
首先在App.vue中 1.使用router-link组件来导航,通过‘to'属性指定链接,<router-link> 默认会被渲染成一个 `<a>` 标签 <route ...
- SVN中建立项目
下午建个svn的时候,出错,有个东西配置错了,晚上google看到一篇文章,觉得作者写的不错,而且很用心,转来共享. [转至]5分钟快速建立项目版本控制 – Face Code,Brain bloom ...
- css3照片墙
一张张照片散乱的撒在一起,鼠标悬浮时旋转放大并摆正,效果如下图(所有图片均来自网络),主要使用到的css3属性有:transition.transform(scale.rotateZ).box-sha ...
- Unity3d开发集成Google Admob广告增加收入
在Unity游戏中植入广告是Unity 游戏产品增加收入的一种重要方式,常用的广告有谷歌Admob,百度ssp,腾讯广点通,unity公司的unityads等等,而使用的最多的应该属于谷歌Admob, ...
- Mono For Android如何在VS2012 中打开设计界面
刚接触 Mono For Android 没几天,不知不觉把设计界面弄丢了.辛辛苦苦才把设计界面弄出来,如果你在 Layout 下打开 *.xaml 的文件打开的却是 xml 文档,那么你可以按照 ...
- Swift自适应布局(Adaptive Layout)教程(一)
通用的stroyboard文件是通向自适应布局光明大道的第一步.在一个storyboard文件中适配iPad和iPhone的布局在iOS8中已不再是梦想.我们不必再为不同尺寸的Apple移动设备创建不 ...