Shell的符号和基础命令

1. shell基础

  1. 1 别名

    输入alias可以显示系统别名
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias vi='vim'
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
    
    配置别名: alias word=clear
    可以使用指定的字符串代替命令
    
    

    1.2 通配符

    通配符用 * 表示匹配多个字符,用?表示匹配一个字符

    [test1]$ ls test?
     test1  test2
     
    [test1]$ ls test*
    test1  test123  test2
    
    

    1.3 输入输出重定向

     > 表示输入重定向,表示将信息输入文件
     >> 表示追加重定向
     <  输出重定向,一般在做while循环时候会用到
     
    

    1.4 管道命令

    |  表示将上一个命令的结果的输出作为下一个命令的输入 
    

    1.5 shell中的特殊符号

    如果不懂linux中的特殊符号,经常会被shell脚本搞晕,所以下面我做简单介绍

    ! 是与历史命令相关的符号,该字符常用的方法有下面3个
      !! 连续两个! 表示执行上一条命令
      !n 表示执行历史命令中的第n条命令,ps:历史命令都有编号
      !字符串  表示执行匹配字符串的历史命令 
      !$ 表示条命令的最后一个变量
      
      & 表示将命令后台执行  
        sleep 30 & 表示在后台休眠30秒 使用jobs 命令可以看见后正在台执行的程序 
        
      `` 表示在字符串中加入命令
      
      []中括号中为字符组合,表示字符数组中的任意一个
      
      command1; command2  
        表示两条命令无关,第一条命令执行成功否都会执行下条命令
      command1 && command2  
        表示两条命令的串行,在第一条命令执行成功,才会执行第二条命令
      command1 || command2  
        表示两条命令的互斥,在第一条命令执行成功,不执行第二条命令
        第一条命令执行失败,执行第二条命令
       
     ~ 表示家目录,当前用户的home目录,如果是root用户,就会切回到root目录下 
     | 管道字符
     \ 转义字符
     * 表示通配符,匹配零个或者多个任意字符
     ? 表示匹配一个任意字符
     # 表示注释
    

    1.6 命令cut

    cut 命令用来截取某个字段,有下三个参数
     -d 后面跟分隔符,分割符用单引号引起来
     -c 后面接的是第几个字符
     -f 后面接的是第几个区块
    
    例子:1. head -5 /etc/passwd | cut -d ':' -f 1  
            读取passwd文件,前5行,用:切割取每行第一部分内容,角标从1开始
         2. head -5 /etc/passwd | cut -c2
            读取passwd文件,前5行,取每行的第二个字符,角标从1开始
         3. head -5 /etc/passwd | cut -c1-10
            读取passwd文件,前5行,取每行的第1到第10个字符内容,范围读取
         4. head -5 /etc/passwd | cut -c1,3,5
            读取passwd文件,前5行,取每行的第1,3,5位的字符内容,部分读取
    

​ 1.7 命令wc

wc 命令比较简单,用来统计文档的行数,字符数,词数,参数如下
  -l  统计行数
  -m 统计字符数
  -w 统计词数
 例子:  wc  /etc/passwd  不加参数分别显示行数,次数,字符数  

​ 1.8 命令tr

命令tr 用来替换字符,和文本命令模式中:n2,n2 s/word1/word2/g 命令类似
  这个命令参数功能比较差,可以直接使用命令
  head -5 /etc/passwd | tr '[a-z]' '[A-Z]'  前5行大小写转换
  head -5 /etc/passwd | tr '[r]' '[s]'   将前5行的r替换为s 

1.9 命令sort

命令sort用来排序,有如下参数
 -t 跟分隔符,和cut的-d选项一样
 -n 表示用纯数字排序
 -r 表示反向排序
 -u 表示去除重复
 -kn1 表示切割符后的第n1个区间的内容进行排序
 -kn1,n2 表示切割符后的第n1-n2区间的内容进行排序
 
 1. head -5 /etc/passwd | sort 
     从首字符后依次按照ASCII码值进行比较,升序
 2. head -5 /etc/passwd | sort -t: -k3 -n
    用:切割,取切割后第三部分,按照数字排序
  2. head -5 /etc/passwd | sort -t: -k3,5 -r
    用:切割,取切割后取第三部分到第五部分,按照字符串降序排序

你可能感兴趣的:(Linux)