zoukankan      html  css  js  c++  java
  • 在 cygwin 的环境下使用 linux 命令

    由于本人对 linux 命令不是很熟悉。但是平时工作中有需要用到一些 linux 命令相关的东西,因此在这里备份自己平时经常使用的命令。

    1. rm 命令: 

    rm -rf * :强制删除当前目录下的所有文件,包括文件夹在内的所有文件。

    2. mmv 命令:

    2.1. 举例:将一下文件夹的内容批量转换为 “common_image_[index].png” 格式。

    文件夹文件内容:

    |-test

      |- image_test_01.png

      |- image_test_02.png

      |- image_test_03.png

    使用 mmv 命令:mmv "*_test_*.png" "common_#1_#2.png"

    注:意思是将第一个表达式的第一个 “*” 号对应的内容(image)将会替换第二个表达式的 “#1” 处的内容,第二个 “*” 号对应的内容(序号)将替换 “#2” 处的内容。

    结果:

    |-test

      |- common_image_01.png

      |- common_image_02.png

      |- common_image_03.png

    3. 在 shell 脚本中,数组的使用

      定义数组:CONTENT_ARRAY=(element1 element2 element3)

      循环调用:

      LEN=${#CONTENT_ARRAY[*]}

      for(( i=0; i<$LEN; i++))

      do

        CURRENT_ELEMENT="${CONTENT_ARRAY[$i]}"

        echo $CURRENT_ELEMENT

      done

    4. grep 命令使用 

      1. 常用的选项说明:

        1.1. -c 仅输出匹配行的计数。

        1.2. -i 不区分大小写(仅适用于单字符)。

        1.3. -h 查询多文件的时候,不显示文件名。

        1.4. -l 查询多文件的时候,只输出包含匹配字符的文件名。

        1.5. -n 显示匹配行及行号。

        1.6. -s 不显示不存在或无匹配文本的错误信息。

        1.7. -v 显示不包含匹配文本的所有行。

        1.8. -E 使用 “或” 模式。

      2. ls 命令与 grep 组合使用的例子:

        2.1. ls |grep -v “*.txt”

          说明:显示当前目录下除了以 "*.txt" 为结尾的所有文件的名称。

        2.2. ls |grep -vE “*.txt|*.xlsx”

          说明:显示当前目录下除了以 “*.txt” 或者 “*.xlsx” 为结尾的所有文件的名称。grep 命令在使用 “或” 模式的时候必须要加上 -E 选项。

     5. chmod 命令使用

      1. 常用选项说明:

        1.1. -R 递归式地改变指定目录及其下的所有子目录和文件的访问权限。

        1.2. -v 显示 chmod 命令的工作。

      2. 举例:

        chmod -Rv 777 *

        说明:将当前目录下所有的子目录和文件添加所有的可用的访问权限。

     6. shell 脚本嵌套 expect 脚本自动执行登陆校验

      说明:当需要使用 rsync 将本地的文件同步至远端服务器的时候,一般需要先登陆校验,每次都登陆检验有点麻烦,可以用 expect 来自动输入密码,简化操作。

      实现方式:

        1. 直接在shell 脚本中嵌套 expect 脚本内容,这样所有的命令可以在一个sh 脚本文件中就可以了。     

    expect -c "
        spawn rsync -az release/release.zip admin@192.168.1.200:/mnt/d/shared/release/release.zip --progress
        expect "password:"
        send "haojidemima
    "
        interact
    "

        2. 将 expect 脚本的内容单独写在一个.sh 文件中,然后再 shell 脚本调用。

    #!/usr/bin/expect
    
    # 取传过来的参数,从 0 开始
    set DIST [lindex $argv 0]
    set RELEASE_NAME [lindex $argv 1]
    
    spawn rsync -az ${DIST}/${RELEASE_NAME} admin@192.168.1.200:/mnt/d/shared/release/${RELEASE_NAME} --progress
    expect "password:"
    send "haojidemima
    "
    interact

        上面的脚本命名为 expect_rel.sh,因此在 shell 脚本中加入以下一行代码:

    # expect 脚本中需要用到两个参数,因此在后面带上即可,每个参数之间使用空格隔开即可
    expect ./expect_rel.sh "release/" "release.zip"
    编程之美。
  • 相关阅读:
    Golang 学习入坑(三)Go语言变量及常量及运算符
    Golang 学习入坑(二)Go语言结构及基本语法及基本类型
    docker 理解和一些应用
    golang学习入坑(一)Go介绍及环境搭建
    VMware安装Centos7超详细程
    2020-05-28 postgresql sequence
    2020-05-18 缓存穿透、缓存击穿、缓存雪崩
    2020-05-15 rocketmq-spring-starter支持多集群
    2020-05-15 rocketmq-spring-starter结合disconf使用
    2020-05-14 RSA加解密
  • 原文地址:https://www.cnblogs.com/LuQingshang/p/3930750.html
Copyright © 2011-2022 走看看