变量

  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. 【设计模式】Singleton模式C++实现

    Singleton是设计模式中比较简单的一个.园中的朋友们应该都很熟悉了.前段时间参加xxx外企的面试,和面试官讨论C++的时候正好写了一个.当时由于在有些地方考虑不太周全,代码出现了一些疏漏.不过最 ...

  2. PHP从数据库获取的下拉树

    <?php include "config.php"; include "mysql.php"; $db = new Mysql('test'); //几 ...

  3. NetBSD是个开源到源码的系统

    How to get NetBSD NetBSD is an Open Source operating system, and as such it is freely available for ...

  4. UVA 10622 - Perfect P-th Powers(数论)

    UVA 10622 - Perfect P-th Powers 题目链接 题意:求n转化为b^p最大的p值 思路:对n分解质因子,然后取全部质因子个数的gcd就是答案,可是这题有个坑啊.就是输入的能够 ...

  5. 怎样用Java编写一段代码引发内存泄露

    通过下面步骤能够非常easy产生内存泄露(程序代码不能訪问到某些对象,可是它们仍然保存在内存中): 应用程序创建一个长时间执行的线程(或者使用线程池,会更快地发生内存泄露). 线程通过某个类载入器(能 ...

  6. Mybatis在oracle、mysql、db2、sql server的like模糊查询

    <!-- oracle --> <select id="searchUserBySearchName" parameterType="java.lang ...

  7. codeforces 597B Restaurant

    题目链接:http://codeforces.com/contest/597/problem/B 题目分类:贪心 题目分析:经典的看节目问题(挑战程序设计page 40) 代码: #include&l ...

  8. 使用Python在2M内存中排序一百万个32位整数

    译言网 | 使用Python在2M内存中排序一百万个32位整数 使用Python在2M内存中排序一百万个32位整数 译者:小鼠 发表时间:2008-11-13浏览量:6757评论数:2挑错数:0 作者 ...

  9. schedule()函数的调用时机(周期性调度)

    今天纠正了一个由来已久的认识错误:一个进程的时间片用完之后,当再次发生时钟中断时内核会调用schedule()来进行调度,把当前的进程上下文切出CPU,并把选定的下一个进程切换进来运行.我一直以为sc ...

  10. 算法起步之Kruskal算法

    原文:算法起步之Kruskal算法 说完并查集我们接着再来看这个算法,趁热打铁嘛.什么是最小生成树呢,很形象的一个形容就是铺自来水管道,一个村庄有很多的农舍,其实这个村庄我们可以看成一个图,而农舍就是 ...