shell脚本1了解

1:了解liunx命令
2:若干个命令写到一个文件
3:离不开逻辑判断和循环遍历
4:正则三剑客grep sed awk

1:基本功
2:一天两个脚本
3:找毛画虎
4:边写边调试
5:乔勇命令行
6:需求无处不在
7:记录每一个脚本

基础命令

  • history 或者 !! ------------查看命令历史 * 就和!有关系 *
    [可以上下箭头控制]

    • 命令+ !$ ---------上一条命令加的参数最后一个参数

    • !+编号 -------------执行历史的是当前编号的那条命令

    • !+命令 -------------- 最近的一条命令执行的结果

      !if ----------最近的一个历史命令比如ifconfig
      
  • tab 自动补全

  • alias --------------------简化操作

    • 设置 alias myssh +"长命令" -------------myssh==命令

    • 取消 unalias myssh

      alias myssh="ssh root128.0.0.1"
      myssh 执行
      

      unalias myssh取消

  • *

         当前目录下的所有txt文件 0多个
          ls *txt 
         中括号中的1或者2个 任选其一
         ls  [12].txt
       
         ls ?.txt  必须有一个点任意的
    

符号重定向 > >> < 2> 2>>

> >>

    #  清空文件  重定向
       > filename  
    # 把下面的数字重定向到文件里面 就是写到里面并清空
      echo "213213" > filename          
    >>
    # 追加 不清空

<

    <
    # 反向重定向
      1.tex   内容为 123
      cat < 1.tex
      123
   例子发邮件
    mail -s "zhuti"   [email protected] < 1.txt

2> 错误的重定向

    不存在的文件
    # 错误添加写到到了erre.log
       ls    文件名 > sucess.log  2> error.log
    # 错误成功都输出到一个里面
       ls    文件名 > sucess.log  2> &suceess.log

l 管道符

    把前面的输出最为后面一个的参数
      #输入一行
       ls | xargs
     # 把前面的输出最为后面一个的参数
       cat 文件| cat

sleep 等待

   #等待100秒
     sleep 100
    ctrl+z 暂停
  # 查看
   jobs  
# fg 恢复
  fg +id
  fg 不加id 获取优先级高的  最后停止的

sh 文件.sh 直接运行
ctrl+c终止
ctrl+z 没有杀死可以恢复
apt-get -qf "which nodejs" 查看安装的包名字

变量

env

显示用户的所有变量 全局变量

export 设置全局

export a=100
b=2 只在当前bash生效 不能加空格

set

列出更多自定义声明不声明的
unset 取消变量

``反引号

a = echo $b
a输出结果

etc/ profile bashrc ~/.bashrc .bash profile

etc全局任何用户
家目录 本用户

wc查看行
bashrc_history

你可能感兴趣的:(shell脚本1了解)