• makefile中ifeq与ifneq dev/null和dev/zero简介 dd命令


    ifeq语法是ifeq "<arg1>;" "<arg2>;"  ,功能是比较参数“arg1”和“arg2”的值是否相同,相同时为1

    ifneq: ifneq "<arg1>;" "<arg2>;"  其比较参数“arg1”和“arg2”的值是否相同,如果不同,则为真。

    /dev/null:或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。(可以理解为黑洞或者位桶)。。。空设备通常被用于丢弃不需要的输出流,或作为用于输入流的空文件。这些操作通常由重定向完成。

     cat $filename >/dev/null

    使用  cat $filename 1>/dev/null 也会得到同样的效果,因为默认重定向的 1 就是标准输出。  如果你对 shell 脚本或者重定向比较熟悉的话,应该会联想到 2 ,也即标准错误输出。

    有时候需要删除一些文件的内容而不删除文件本身:

    cat /dev/null > /var/log/messages

    /dev/zero:当你读它的时候,它会提供无限的空字符(NULL, ASCII NUL, 0x00)。一个典型用法是用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件.

    dd if=/dev/zero of=/dev/sdb bs=4M
    dd if=/dev/zero of=$FILE bs=$BLOCKSIZE count=$blocks # 把零写入文件. 

    dd命令详解:

    dd 的主要选项:

    指定数字的地方若以下列字符结尾乘以相应的数字:

    b=512, c=1, k=1024, w=2, xm=number m

    if=file #输入文件名,缺省为标准输入。 
    of=file #输出文件名,缺省为标准输出。 
    ibs=bytes #一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。 
    obs=bytes #一次写 bytes 个字节(即一个块大小为 bytes 个字节)。 
    bs=bytes #同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。 
    cbs=bytes #一次转换 bytes 个字节,即转换缓冲区大小。 
    skip=blocks #从输入文件开头跳过 blocks 个块后再开始复制。 
    seek=blocks #从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)。 
    count=blocks #仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。 
    conv=conversion[,conversion...] #用指定的参数转换文件。

    eg:

    备份:
    dd if=/dev/hdx of=/dev/hdy #将本地的/dev/hdx整盘备份到/dev/hdy 
    
    恢复:
    dd if=/path/to/image of=/dev/hdx #将备份文件恢复到指定盘 

    备份: dd if=/dev/hdx of=/path/to/image count=1 bs=512 
    备份磁盘开始的512Byte大小的MBR信息到指定文件
  • 相关阅读:
    windows下用cmd命令netstat查看系统端口使用情况
    linux 运维知识体系
    Oracle中MD5+Base64加密实现
    MySql学习—— 查询性能优化 深入理解MySql如何执行查询
    Mysql集群和主从
    Docker搭建 oracle
    docker容器以ROOT账号登录(获取ROOT权限/ROOT密码)
    一文看懂javaGC
    Docker 国内仓库和镜像
    排序算法___堆排序
  • 原文地址:https://www.cnblogs.com/Caden-liu8888/p/8310509.html
Copyright © 2020-2023  润新知