变量

  variableName=value
  1. 等号左右不能有空格
  2. 变量内容有空格须要用"或者'括起来,可是 v="hello $name" $保持原有功能,单引號则不行,v="hello '$name'"纯文本
  3. 可用转义符\将特殊字符转成普通文本 `命令`,$(命令) ,在文本中提供命令运行信息
  4. 变量累加, name=xiaoyi ; name=$name:'welcome to hz'
  5. 子进程可以继承父进程的环境变量可是不可以继承父进程的自己定义变量,export 变量名;将自己定义变量变成环境变量

从键盘读入数据:
    read -p '提示语' -t num v # num 时间,v 变量名
数组的申明和使用:
    v[1]='hello';v[2]='xiao'
    echo ${v[1]}



路径与命令的查找顺序

  1. 以相对/绝对路径运行命令,如/bin/ls
  2. 由alias找到该命令来运行
  3. 由bash内置的命令运行
  4. 通过$PATH这个变量的顺序找到第一个命令来运行


读取shell配置文件的命令
source 或者就是一个点 . ,    因为.bashrc仅仅能在登陆的时候才会被读,假设中途改动了想马上生效的话,我们就须要调用source命令读取当前改动的对应配置文件
eg: source ~/.bashrc equals . ~/.bashrc 


管道命令

场景: 当数据须要经过几次处理之后才干到我们想要的格式的时候
管道之后第一个数据一定是能够接受standard input的命令

选取命令:cut,grep 
  • cut
         cut 按行为单位切出来 cut -d '切割字符' -f fields ,主要是用于行数据的切割显示

         cut -c 字符范围

         eg:

            echo $PATH | cut -d ':' -f 5 //选取path中以:切割的第五个路径
  • grep
grep 将一行信息中我们想要的数据分析出来
grep [-acinv] [--color=auto] '查找字符串' filename

-a 将binary文件以 text的方式查找数据

-c 统计匹配到的数据个数

-i 忽略大写和小写

-n 输出行号

-v 输出没有匹配内容的那一行
         grep能够结合正则表达使用

排序与统计命令 sort ,wc ,uniq
  • sort 

    sort [-fbMnrtuk] [file or stdin]

    -f 忽略大写和小写

    -b 忽略最前面的空格

    -M 以月份的名字排序

    -n 使用纯数字排序

    -r 反向排序

    -u 同样的数据项仅出现一项

    -t 分隔符

    -k 以以那个区间进行排序

    eg:

         cat /etc/passwd | sort -t ':' -k 1 //对以: 切割的第一列排序
  • wc  统计字, 行或者字符数

    wc [-lwm]

    -l 行数

    -w 字数

    -m 字符数 

    eg:

         cat /etc/profile | wc -lwm
  • uniq 反复的数据竟出现一次就可以

    uniq [-ic]

    -i 忽略大写和小写

    -c 进行计数

    eg:

         last | cut -d ' ' -f1  | grep '^xiaoyi'  | uniq -c

字符转换指令 tr, col, join, paste, expand 
  • tr : tr [-ds] set1

    -d 删除信息其中的set1字段

    -s  替换掉反复的字符

    eg : 小写换大写 last | tr 'a-z' 'A-Z'


find ./ -name "*.java" | xargs wc -l
find grep 讲的比較好的链接: http://www.cnblogs.com/skynet/archive/2010/12/25/1916873.html

特殊符号:




鸟书shell 学习笔记(一) shell专注于概念和命令的更多相关文章

  1. Shell学习笔记之shell脚本和python脚本实现批量ping IP测试

    0x00 将IP列表放到txt文件内 先建一个存放ip列表的txt文件: [root@yysslopenvpn01 ~]# cat hostip.txt 192.168.130.1 192.168.1 ...

  2. 鸟书shell 学习笔记(二) shell中正則表達式相关

    通配符与正則表達式的差别 通配符是bash原生支持的语法,正則表達式是处理字符串的一种表示方式, 正則表達式须要支持的工具支持才干够 语系设置 : export LANG=C grep alias 设 ...

  3. shell学习笔记2: shell中的四则运算符

    shell中的四则运算符 n1,n2 :常量数字 char:运算符号 加,减,乘,除,取余(+,-,*,/,%) $a,$b:变量a,变量b 方法1 数字与符号之间需要有空格 不支持小数 expr n ...

  4. shell学习笔记1: shell 中的变量与常见符号使用方法

    变量 声明即用 a=2 b="123" 调用 ${varName}或者 $varName echo $b echo ${a} 常见变量 $?:判断上一个语句是否成功 $0:执行脚本 ...

  5. shell学习笔记汇总

    1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...

  6. SHELL学习笔记三

    SHELL学习笔记一 SHELL学习笔记二 SHELL学习笔记三 for 命令 读取列表中的复杂值 从变量读取列表 从命令读取值 更改字段分隔符 用通配符读取目录 which 使用多个测试命令 unt ...

  7. SHELL学习笔记----IF条件判断,判断条件

    SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here   ...

  8. shell学习笔记

    shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...

  9. [转帖][Bash Shell] Shell学习笔记

    [Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html  阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...

随机推荐

  1. 【android】下载文件至本应用程序的file文件夹或者sdcard

     一.推断是否有sdcard卡 //推断是否有SD卡 //ture:有SD卡 //false:没有SD卡 public boolean avaiableMedia(){ String status ...

  2. jQuery为啥要提供一个load()方法?

    上午的时候,找个闲暇事件整理之前整理的一些关于jQuery的东西,看到了一个之前做的jQuery的$(document).ready()与window.onload()方法的比較. 上面两个方法最重要 ...

  3. java(样品集成框架spring、spring mvc、spring data jpa、hibernate)

    这是你自己的参考springside集成框架的开源项目.主要的整合spring.spring mvc.spring data jpa.hibernate几个框架,对于这些框架中仍然感觉更舒适sprin ...

  4. ASP.Net状态管理读书笔记--思维导图

    课前提问几个问题 使用Session 配置 model aspnet_regsql.exe 常见问答 问:为什么Session在有些机器上偶尔会丢失?答:可能和机器的环境有关系,比如:防火墙或者杀毒软 ...

  5. 与众不同 windows phone (26) - Contacts and Calendar(联系人和日历)

    原文:与众不同 windows phone (26) - Contacts and Calendar(联系人和日历) [索引页][源码下载] 与众不同 windows phone (26) - Con ...

  6. Mojo 分析日志接口

    #!/usr/bin/perl #取文件行数 ##循环开始清空文件 use POSIX; use DBI; my $dir = '/data01/applog_backup'; my $file = ...

  7. vlan 以及 Linux实现的IEEE 802.1Q VLAN

    vlan 以及 Linux实现的IEEE 802.1Q VLAN Vlan的概念 VLAN技术介绍 VLANVLAN概述 以太网是一种基于CSMA/CD(Carrier Sense Multiple ...

  8. C#反射Assembly 具体说明

    1.对C#反射机制的理解 2.概念理解后,必须找到方法去完毕,给出管理的主要语法 3.终于给出有用的样例,反射出来dll中的方法 反射是一个程序集发现及执行的过程,通过反射能够得到*.exe或*.dl ...

  9. LCA 最近公共祖先 tarjan离线 总结 结合3个例题

    在网上找了一些对tarjan算法解释较好的文章 并加入了自己的理解 LCA(Least Common Ancestor),顾名思义,是指在一棵树中,距离两个点最近的两者的公共节点.也就是说,在两个点通 ...

  10. Defender Game 游戏实践(1) 基本游戏场景实现

    在网上看到 郑州|boy 这个博客,里面有几篇文章,记录了其用cocos2d-x这个游戏引擎编写的一个游戏,十分不错,所以这段时间,依样画葫芦,依次学习一下. 由于博主开发的平台是在win32,而且屏 ...