• bash学习


    #!/bin/bash --bash路径 shebang-sharp # bang !
    echo 1.'' 2."" 3.什么都不加 1不会计算例如$var 2,3会计算
    printf "-5s" 负号表示向左对齐
    echo -e
    pgrep {name}
    env -- 显示环境变量
    var=1 赋值 var = 1 相等
    export PATH="$PATH:/XXX/xxx"
    echo ${#var} -- 显示字符串长度

    显示bash
    echo $0
    echo $SHELL

    bash_profile: uwh 用户名/路径/主机名

    计算:echo "4*5" | bc --bc是一个unix内置计算库

    echo "1" > 1.txt --清空1.txt内容

    echo "1">>1.txt --在1.txt中追加

    0 标准输入

    1 正常输出

    2 错误输出

    系统默认 重定向符 >,>> 等效于  1> ,1>>

    tee命令 标准输入

    exec 3<等可追加文件操作符

    脚本名称叫test.sh 入参三个: 1 2 3
    运行test.sh 1 2 3后
    $*为"1 2 3"(一起被引号包住)
    $@为"1" "2" "3"(分别被包住)
    $#为3(参数数量)

    tput 命令设置终端表示 setb setf等 后面的值固定0-7

    stty -echo 

    stty echo --连用,隐藏输入,显示输入

    时间

    date 普通时间

    date +%s 打印时间戳。所有时间格式如下图

     

    设置时间 date -s 20160429

    tput sc rc rd命令

    sleep命令 

    bash -x 调试命令

    存储命令输出:

    $() 或者反括号``

    子shell用法

    ()中执行命令。不影响当前shell

    read用法

    read -n 2 var

    不显示

    read -s var

    显示

    read -p "Enter word:" var

    限时输入

    read -t 2 var

    定界符

    read -d ":" var

    IFS内部分界符号。默认是空格。无法用echo输出

    循环:

    for var in ..配合IFS。do done

     test命令类似中括号的比较。可以减少中括号的数量

    拼接字符串:

    echo "hello" | cat - out.txt --注意此处的-。

    find命令

    -name

    -path = -regex类似。-iregex忽略大小写

    !非符号

    linux文件有三种时间

    访问时间:-atime 单位天 -amin 单位分钟

    修改时间:-mtime

    变化时间:-ctime

    打印出七天被修改过的文件

    find / -type f -ctime -7

    find / -type f -newer file_name

    基于文件大小

    find / -type f -size +2k

    尾巴加上-delete可删除找到的结果

    列出权限 -perm 

    -exec 后面可接任何命令。{}表示前面的结果

    find 找出的文件配合-exec基本可以完成一切文件操作。-exec {} ;-exec的标准写法。

    将找到的文件内容全部写入一个文件

    find . -name "*.c" -exec cat {} ;>1.txt

    显示所有文件权限:

    find . -name "*.c" -exec ls -la {} ;

    跳过某些文件搜索

    find . -name "*" ( -name "*.c" -prune ) -o ( -type f -print )

    -xargs参数

    读取文件参数执行

    cat 1.txt | xargs -n 2 ./xxx.sh

    du -h命令

    可以查看各目录大小

    排序 去重

    sort file1.txt file2.txt | uniq

    sort -rk 2 file_name -r逆序 -k 2排序第2列 可以是tab和空格

    统计每一行出现的次数:

    sort file.txt | uniq -c

    显示重复的行:

    sort file.txt | uniq -d

    扩展成当前运行脚本的进程id

    tmp="/tmp/var.$$"

    生成100k的测试文件

    dd if=/dev/zero bs=100k count=1 of=data.file

    分割文件命令 split csplit-》功能更加强大

    提取文件前缀及扩展名

    file_jpg="xxx.jpg"

    prefix_name=${file%.*} %原理 删除右侧最小匹配字符,%%为贪婪版本。

    suffix_name=${file#*.} #原理 删除左侧最小匹配字符,##为贪婪版本

    字典命令:

    look words

    删除文件中的字符:

    cat 1 | sed 's/ruby/bird/'

    设置无法修改属性

    chattr 命令

    chattr  +i file

    恢复

    chattr -i file

    创建iso文件

    cat /data/1 > image.iso

    dd if=/data/1 of=image.iso

    将一个目录内容写入iso

    mkisofs -V "Label" -o image.iso source_dir/

    查找目录:

    ls -d */

    统计:

    wc -l (行数)-d(单词)-c (字符)

    删除带空格的文件

    grep "test" file* -lZ | xargs -0 rm

    rev逆序

    rev filename 或者stdin。

    wget复制整个网站镜像:包含网站中的网站

    wget --mirror url 或者wget -l -r url指定深度

    查看centos版本

    uname -a

    cat /etc/redhat-release

    tar命令

    tar xvf filename.tar -C dir解压缩到dir

    tar rvf filename.tar 增加一个文件

    tar tf filename.tar 查看文件里面有什么。加vv查看详细。

    备份系统快照rsync

    rsync -av sourceDir targetDir 支持远程 例如rsync -av dir1 user@url:dir2

    查看曾经登录用户

    last

    lastb 查看哪些用户被拒绝登录过

    持续监视某个命令

    watch cmd

    显示平均负载

    uptime :1分钟 5分钟 15分钟平均负载值

  • 相关阅读:
    性能分析
    thymeleaf和spring的整合
    Java中二叉树的建立
    面试题
    (转)structs2的相关配置问题
    ==与equal()的区别
    java的基本类型和其包装类
    Ajax调用返回json数组,对象 (JSONArray.fromObject)
    (转)在JSP中调用JAVA类和使用JavaBean有什么区别?
    用log4j查看详细错误信息
  • 原文地址:https://www.cnblogs.com/guochunyi/p/5785163.html
Copyright © 2020-2023  润新知