这一系列的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(二)的更多相关文章

  1. Linux入门篇(二)——文件

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  2. Linux入门篇(五)——Shell(一)

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  3. Linux入门篇(一)——文件

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  4. Linux入门篇(四)——Vim的使用与Bash

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  5. Linux入门篇(三)——文件与目录

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  6. 【SSRS】入门篇(六) -- 分组和总计

    原文:[SSRS]入门篇(六) -- 分组和总计 通过[SSRS]入门篇(五) -- 设置报表格式的设计,一份简单格式的报表已产生,如下图: 这节来说说分组和总计: 根据日期.订单对数据进行分组 添加 ...

  7. 【Android开发日记】之入门篇(十二)——Android组件间的数据传输

    组件我们有了,那么我们缺少一个组件之间传递信息的渠道.利用Intent做载体,这是一个王道的做法.还有呢,可以利用文件系统来做数据共享.也可以使用Application设置全局数据,利用组件来进行控制 ...

  8. Linux入门篇(一)——基本命令

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  9. linux入门教程(六) Linux文件与目录管理

    在linux中什么是一个文件的路径呢,说白了就是这个文件存在的地方,例如在上一章提到的/root/.ssh/authorized_keys 这就是一个文件的路径.如果你告诉系统这个文件的路径,那么系统 ...

随机推荐

  1. 配置Slf4j依赖,桥接各种多个日志组件(排除commons-logging依赖的影响)

    由于各个jar组件使用的日志框架不一样,实际项目中可能会引入多个jar,通常使用的日志框架有 commons-logging log4j 若同一个项目引入多个日志组件,那么Slf4j组件会有不能捕捉到 ...

  2. maven课程 项目管理利器-maven 3-10 maven聚合和继承 4星

    本节主要讲了以下内容: 1 maven聚合 2 maven继承 1 maven聚合 <!-- 聚合特有标签 --> <groupId>com.hongxing</grou ...

  3. Redis整理第三波(生存时间、事务管理)

    expire  设置生存时间 Redis在实际使用过程中更多的用作缓存,然而缓存的数据一般都是需要设置生存时间的,即到期后数据销毁. TTL查看key的剩余时间,当返回值为-2时,表示键被删除. 当 ...

  4. ASP.NET MVC 音乐商店 - 2.控制器

    在典型的 Web 应用中,用户请求的 URL 地址通常映射到保存在网站中的文件上,例如,当用户请求 /Products.aspx 的时候,或者 /Products.php 的时候,很可能是在通过处理 ...

  5. Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid b

    Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid b ...

  6. mongdb增加字段和删除字段

    增加字段 db.xxx.update({},{"$set":{"column1":1,"column2":0}},false,true); ...

  7. 两台windows内网之间快速复制大量(上百万个)小文件(可用于两台服务器之间)

    用各种FTP工具(各种主动被动)都不好使.经测试,用以下的(协议.工具等),在双千兆网卡下,传输大量1M的文件可以达到每秒60多M: windows文件共享(SMB协议)(若是08 r2 数据中心版, ...

  8. hdu-3584 Cube---三维树状数组+区域更新单点查询

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3584 题目大意: 给定一个N*N*N多维数据集A,其元素是0或是1.A[i,j,k]表示集合中第 i ...

  9. 搭建ssm中遇到的问题

    1.多模块pom.xml文件无效 原因是没有指定模块

  10. RabbitMQ(一 初识)

    背景 在web开发过程中有遇到这样的情况:有一部分业务处理速度很慢,但它的结果对最终的返回没有影响,即使报错了,也不需要返回错误信息,只需要在另一个地方可以查询这部分业务的信息即可.例如:用户下单并成 ...