Shell入门基础

来源:互联网 发布:51电子单片机原理图 编辑:程序博客网 时间:2024/05/22 15:56
Shell基础
一、Shell概述
    Shell是命令行解释器
    Shell是依赖Ascii码表翻译成二进制
    用户--->Shell--->计算机内核
    计算机内核---> Shell ---> 用户
    Shell还是功能强大的编程语言


    分类
      Bourne Shell 
      C Shell
     这两种语法彼此不兼容。
     Bourne家族主要包括sh、ksh、Bash、psh、zsh
     C家族主要包括:csh、tcsh


      linux 执行的是Bash
      echo $SHELL 命令 #当前计算机执行的shell    
      vi /etc/shells  #查看计算机兼容的shell






二、脚本执行方式
  1、echo输出命令
     echo "hello world"


     echo "hello\b world"


     echo "hello\b\t\n world"


     echo "\x68\t\x65\t\x6c\n\x6c\t\x6f"


     echo -e "南海是中国的"


     echo -e "\e[1;31m 南海是中国的\e[0m"


    2.第一个脚本
     vi hello.sh
      #!/bin/bash
      #The first program
      echo -e "\e[1;31m 天上掉下来一个林妹妹\e[0m"
    3. chmod 755 hello.sh  #赋予权限
       ./hello.sh     #执行脚本


       bash hello.sh


       
三、Bash的基本功能
1、命令别名与快捷键
alias 查看系统的中所有的命令别名
alias ls='ls --color=never' 
alias ls='ls --color=auto'   


alias vi='vim'   #重启后无效


vi ~/.bashrc     #环境变量配置文件中写入 别名设置命令


unalias vi




常用的快捷键
Ctrl + c  强制退出命令
Ctrl + l  清屏
Ctrl + u 删除到行首
Ctrl + a 光标移到命令行首
Ctrl + e 光标移到命令行尾
Ctrl + z 把命令放入后台
Ctrl + r 在历史命令中搜索








2、历史命令
  history [选项] [历史命令保存文件]
  选项 
    -c:清空历史命令
    -w:把缓存中的历史命令写入历史命令保存文件 ~/.bash_history


    history


    cat /home/.bash_history


    history -w


    history -c


  历史命令默认保存的是1000条
  vi /etc/profile 修改默认保存的条数


  history 
  !n 执行第n条命令 
  !! 执行上一次命令
  !字串 调用最后一个字串开头的命令


  命令补全 
    tab键
    
3、输出重定向
    标准输入输出
    设备名  设备文件名   文件描述符  类型
    键盘     /dev/stdin   0          标准输入
    显示器   /dev/sdtout  1          标准输出
    显示器   /dev/sdterr  2          标准错误输出




    标准输出重定向  
      命令 > 文件    覆盖到文件
      命令 >> 文件   追加都文件


    标准错误输出重定向
      错误命令 2>文件    覆盖到文件
      错误命令 2>>文件   追加到文件
    


    ifconfig > test.log
    ls >> test.log


    lschang 2>>test.log


   正确或错误信息都写到文件的命令:
    命令 > 文件 2>&1
    命令 >> 文件 2>&1
    命令 &>文件 
    命令 &>>文件 
   
    ifconfig >> test.log 2>&1
    ifconfig laoshi >> test.log 2>&1


    ls &>test.log
    ls dhhf &>test.log


    cat xdy >> access.log 2>>error.log  #正确命令日志保存到前者,错误日志保存到后者




    输入重定向


    wc [选项][文件]
    选项
    -c :统计多少行
    -w :统计多少单词
    -l :统计多少字符


    wc access.log




4、多命令顺序执行
   ;  命令1;命令2    #顺序执行
   &&  命令1&&命令2  #按逻辑且执行
   ||  命令1||命令2  #按逻辑或执行


   date;ls;cd/etc/;pwd
   date;tar -zcvf test.tar.gz;date
   
   ls && echo yes || echo no   #检测命令是否正确




   管道符 
     格式:命令1 | 命令2 
     ps -ef | grep java
     ls -l /etc | more 
     netstat -an  | grep ESTABLISHED | wc -l


   
5、Shell中特殊符号
  通配符
  ?匹配一个字符
  * 匹配多个字符
  [] 匹配中括号中任意一个字符
  [-] 匹配中括号中任意的字符串
  [0-9] 匹配中0到9中的一个数字
  [^] 逻辑非


  也就是正则表达式


  其他特殊字符了解下
  ''
  ""
  `` 反引号
  $()
  #
  $
  \ 转义符




  ls c*

0 0
原创粉丝点击