zoukankan      html  css  js  c++  java
  • bash入门

    五大命令行工具

    • 二进制可执行文件
    • shell内置命令
    • 解释性脚本
    • shell函数
    • 别名
    1. shell函数

      $ fac() { (echo 1; seq $1) | paste -s -d* | bc}
      
      $ fac 5
      120
      
      • shell函数就是由shell自己执行的函数,在我们这里就是由 Bash 执行的函数
      • 我们定义了一个 fac() 函数,使用 seq 生成一串数字,用 paste 函数将这些数字放到一行中并用 * 分隔开,然后将这个等式传给 bc,由它求值并显示结果
      • 文件 ~/.bashrc 是 Bash 的配置文件,所有的 shell 函数皆可在此定义,这样的好处是 shell 函数随时可用
    2. 别名

      $ alias l = 'ls -1 --group-directories-first'
      
      • 别名没有参数,所以 fac() 这样的函数不能用别名定义。
      • 别名能减少敲击键盘的次数;
      • 别名经常是在 '.bashrc' or '.bash_aliases' 配置文件中定义
      • 不带参数运行 alias 即可查看所有的参数的别名。一般 ubuntu 上的默认别名有以下几个,不得不说,不看一下还是真的不知道
      $alias
      alias egrep='egrep --color=auto'
      alias fgrep='fgrep --color=auto'
      alias grep='grep --color=auto'
      alias l='ls -CF'
      alias la='ls -A'
      alias ll='ls -alF'
      alias ls='ls --color=auto'
      
    3. type -a 用法

      $ type -a cd
      cd is a shell builtin
      
      $type -a fac
      fac is a function
      fac () 
      { 
          ( echo 1;
          seq $1 ) | paste -s -d* | bc
      }
      

    命令行工具的组合--管道组合

    • 将一个工具的输出传递给下一个工具,这样可以几乎没有限制的不断传递

      $ seq 30 | grep 3
      3
      13
      23
      30
      # 生成1-30的序列传给 grep,筛选出含有3的元素显示
      # grep: 筛选元素
      
      $ seq 30 | grep 3 | wc -l
      4
      
      # 在上一步的基础上统计行数
      # wc: 计数功能;参数 -l 只输出行数量
      

    输入和输出重定向

    • 管道中最后一个命令行工具是输出到终端,我们也可以将其保存到文件中;

      # 我们在当下目录下新建文件 test
      $ seq 1 > test
      $ cat test
      1
      # 用序列1 覆盖test文件
      
      $ seq 3 >> test
      $ cat test
      1
      1
      2
      3
      # 在test文件末尾加上序列3
      
      $ echo -n "hello" > test
      $ cat test
      hello$...
      # echo -n:就像上面的效果,hello 之后紧接着就是下一个 bash 语句
      
      $ echo "hello" > test
      $ cat test
      hello
      $ ...
      # 没有参数 -n,hello后面相当于有个 
      ;
      # 同样的,> 和 >> 的区别在于覆盖还是在末尾添加
      
      $ echo "hello, world" >> test
      $ cat test
      hello
      hello, world
      
      $ cat test | wc -w
      3
      # 使用管道组合,wc -w 这个参数表示只统计单词数量
      # 这条语句也有很多的等价写法:
      $ < test wc -w
      3
      $ wc -w test
      3 test
      # 这些等价写法的好处在于不进行额外的进程
      

    处理文件

    • mv

    • cp

    • mkdir

    • 以上所有命令都可以加参数 -v(verbose 详细),让工具输出正在进行的操作

    • 除了 mkdir 都可以加 -i(interactive 交互),能让工具向你确认请求

    寻求帮助

    • man (manual)
    • help
    • tool -h / --help
    $ man cat
    # 输出不止一页,所以我们可以控制页面宽度
    
    $ man cat | head -n 20
    # 只输出前20行,也可以用fold;将较长的行变为80字符长度
    $ man cat | fold
    
    # 使用 help 可以查看 shell内置命令
    $ help cat | head -n 20
    
    # 第三方工具可以使用 -h 查看自带的帮助信息
    $ java -h 
    
  • 相关阅读:
    SQL中的全局变量和局部变量(@@/@)
    C# 委托Delegate(一) 基础介绍&用法
    internal in C#
    用代码块在new对象时set属性
    MySql与对应的Java的时间类型
    快速获取当天0点0分0秒(00:00:00)
    IsNullOrWhiteSpace与IsNullOrEmpty
    svn服务器配置 for mac
    CornerStone配置SVN,HTTP及SVN简单使用说明
    svn配置
  • 原文地址:https://www.cnblogs.com/rongyupan/p/11520730.html
Copyright © 2011-2022 走看看