zoukankan      html  css  js  c++  java
  • 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分钟平均负载值

  • 相关阅读:
    hdu 5007 水题 (2014西安网赛A题)
    hdu 1698 线段树(成段替换 区间求和)
    poj 3468 线段树 成段增减 区间求和
    hdu 2795 公告板 (单点最值)
    UVaLive 6833 Miscalculation (表达式计算)
    UVaLive 6832 Bit String Reordering (模拟)
    CodeForces 124C Prime Permutation (数论+贪心)
    SPOJ BALNUM (数位DP)
    CodeForces 628D Magic Numbers (数位DP)
    POJ 3252 Round Numbers (数位DP)
  • 原文地址:https://www.cnblogs.com/guochunyi/p/5785163.html
Copyright © 2011-2022 走看看