- linux脚本sed替换变量,sed 命令中替换值为shell变量
诺坎普之约
linux脚本sed替换变量
文章目录sed命令中替换值为shell变量替换基本语法sed中替换使用shell变量总结参考文档sed命令中替换值为shell变量替换基本语法大家都是sed有很多用法,最多就应该是替换一些值了。让我们先回忆sed的替换语法。在sed进行替换的时候sed-i's/old/new/g'1.txtecho"hellooldfrank"|sed's/old/new/g'结果如下:hellonewfrank
- bat+ffmpeg批处理图片,图片批量转码
张雨zy
音视频ffmpeg
直接在cmd中输入//批量转码文件for%ain("*.png")doffmpeg-i"%a"-fs1024k"%~na.webp"//删除所有pngdel*.png@echooff表示执行了这条命令后关闭所有命令(包括本身这条命令)的回显。而echooff命令则表示关闭其他所有命令(不包括本身这条命令)的回显,@的作用就是关闭紧跟其后的一条命令的回显脚本完整代码写入脚本中后,需要多加一个%,例如
- 建立系统
写写停停
Echo说要建立系统,把零碎化的东西成系统。这个真的很赞。自己最近涉猎的东西很多,可是好像当时收获很大,可是事后却总也记不清楚。2019年,沉下心来,去沉淀。现在认准猎头这条路,那就走下去,管TM的豁出去了。这一年任务很艰巨,2019年1月也过去了大半。这一年最主要的任务是1、猎头系统掌握;2、职业规划学习;3、专升本。一、猎头系统学习。8点哄睡时间可以听一下微分享9:00-9:30看小密圈,Ec
- 浅谈openresty
爱编码的钓鱼佬
nginxopenresty运维
熟悉了nginx后再来看openresty,不得不说openresty是比较优秀的。对nginx和openresty的历史等在这此就不介绍了。首先对标nginx,自然有优劣一、开发难度nginx:毫无疑问nginx的开发难度比较高,需要扎实的c/c++基础,而且还需要对nginx源码比较熟悉,开发效率慢,比如实现一个类似echo的功能,至少要上百行代码。而openresty只需要一句ngx.say
- first&second
tmax
first:#!/bin/bashfilm="thefirstfilm"echo"$film"./second#创建子进程运行second,在子进程地址空间运行secondecho"$film"second:#!/bin/bashecho"$film"film="thesecondfilm"echo"$film"对first、second添加可执行权限后执行./first结果thefirstfil
- 2020-11-12 写单片机内存的脚本 nc openocd 事务自动测试
linuxScripter
这是写单片机内存的脚本:z@z-ThinkPad-T400:~/zworkT400/EDA_heiche/zREPOgit/simple-gcc-stm32-project$catz.wholeRun.oneCase.cmdcattmp6.toWrite|awk'{system("echomwb"$1""$2"|nclocalhost4444");}'catUSER/DEBUG/debug.h|g
- shell 笔记_s1=abc,s2=def,[-z‘‘‘]&;&;echo‘$s1‘ echo‘$s2‘的输出是什么
2024云技术
运维linux面试
最全的Linux教程,Linux从入门到精通======================linux从入门到精通(第2版)Linux系统移植Linux驱动开发入门与实战LINUX系统移植第2版Linux开源网络全栈详解从DPDK到OpenFlow第一份《Linux从入门到精通》466页====================内容简介====本书是获得了很多读者好评的Linux经典畅销书**《Linu
- 查看 CPU架构类型
BYAPESS
windows
打开cmd窗口—>输入echo%PROCESSOR_ARCHITECTURE%接口显示,本人的是AMD64
- Linux三剑客与管道使用
许琳珊
一、管道1、什么是管道linux提供管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入2、例子echo"hello123"|grep"hello"二、正则1、什么是正则正则表达式就是记录文本规则的代码2、正则的用法常用元字符代码说明.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字
- Swift基本语法-简例
☆MOON
移动互联网-iOS笔记python正则表达式爬虫
Swift基本语法简例安全类型?与!区别变量与常量字符串拼接多行字符串数组操作字典操作数组遍历控制条件判断switch语句循环遍历函数闭包对象枚举结构体协议扩展泛型get,set属性属性观察懒加载,重写方法回调及保护安全类型?与!区别?表示:返回值是一个可选类型,需要解包处理,如果有值就是相应类型的,如果没有值,就是“nil”,适用于不确定值的情形!表示:不需要解包处理(第一次赋值时编译器已自动解
- PHP中的microtime(true)是干什么的?底层原理是什么?
快点好好学习吧
php开发语言
microtime(true)是PHP中用于获取当前Unix时间戳(包括微秒部分)的一个函数。它返回一个浮点数,表示自Unix纪元(1970年1月1日00:00:00UTC)以来的当前时间,精确到微秒。用法示例$time=microtime(true);echo$time;参数true:如果传递true作为参数,microtime()会返回一个浮点数。如果不传递参数或传递false,则返回一个字符
- TCP/IP端口大全
weixin_34326558
网络操作系统数据库
1tcpmuxTCP端口服务多路复用5rje远程作业入口7echoEcho服务9discard用于连接测试的空服务11systat用于列举连接了的端口的系统状态13daytime给请求主机发送日期和时间17qotd给连接了的主机发送每日格言18msp消息发送协议19chargen字符生成服务;发送无止境的字符流20ftp-dataFTP数据端口21ftp文件传输协议(FTP)端口;有时被文件服务协
- Flutter学习之九 ListView
MQ_Twist
极端很容易,平衡才是最难的。Flutter学习之八Container前言Flutter中的ListView的地位,就好比于iOS中的UITableView,算是最常用的可滚动组件之一,它可以沿一个方向线性排布所有子组件,并且它也支持列表项懒加载(在需要时才会创建)。默认构造函数我们看看ListView的默认构造函数定义:ListView({...//可滚动widget公共参数AxisscrollD
- makefile与cmake的基础使用
小辛学西嘎嘎
linux运维服务器
一、Makefile1.1、简单的Makefile下面是一个最简单的Makefile,其中第二行第四行,前面并不是空格,而是tab。all:@echo"helloall"test:@echo"hellotest"当创建好之后,进行make,当不加任何参数,默认就是第一个:>>make>>helloall在make后可以加参数,指定输出哪一个名称:>>makeall>>helloall>>maket
- Docker启动Elasticsearch(挂载数据、配置文件、插件)
程序员迪迦
项目实战Javaelasticsearchdocker
Docker启动Elasticsearch拉取镜像dockerpullelasticsearch:7.4.2修改配置文件mkdir-p/mydata/elasticsearch/configmkdir-p/mydata/elasticsearch/data/mkdir-p/mydata/elasticsearch/pluginsecho"http.host:0.0.0.0">>/mydata/el
- Linux 禁ping和开启ping操作
赶路人儿
linuxlinuxping
Linux禁ping和开启ping操作:#echo1>/proc/sys/net/ipv4/icmp_echo_ignore_all如果要恢复,只要:#echo0>/proc/sys/net/ipv4/icmp_echo_ignore_all即可,挺方便,不要去专门使用ipchains或者iptables了。或者用以下方法也可以,异曲同工。以root进入Linux系统,然后编辑文件icmp_ech
- ping操作
姜太公钓鲸233
服务器运维
Ping(发音为“拼”)是一种广泛使用的网络诊断工具,用于测试计算机或设备在IP网络上的可达性以及测量数据包往返所需的时间。它基于ICMP(InternetControlMessageProtocol,互联网控制消息协议)来发送和接收消息,从而帮助网络管理员和用户诊断网络连接问题。Ping操作的工作原理发送Echo请求:当你在命令行或终端中执行ping命令时,计算机会向目标主机发送一个ICMPEc
- vue动态引入组件
Gaochengxin
defineAsyncComponent()定义一个异步组件,它在运行时是懒加载的。参数可以是一个异步加载函数,或是对加载行为进行更具体定制的一个选项对象。在大型项目中,我们可能需要拆分应用为更小的块,并仅在需要时再从服务器加载相关组件。Vue提供了defineAsyncComponent方法来实现此功能:import{defineAsyncComponent}from'vue'computed:
- 东方心教练——为往圣继绝学 之上善若水
艾静东方心教练
今天我做教练,Echo是客户,我们俩天天在一起晨练,彼此很了解,越来越有觉知内在的状态,能够比较容易地觉察化解,所以在选择话题上还思考了一下。整个过程比较轻松、流畅、当下。就是感觉不难,我发现自己听的功夫有所提升。客户带来的问题比较容易的解决了,最后感觉没什么可再聊的了。但是在督导的环节,何芸有通过一个问题引发了客户深度的思考,也进行了一个比较大的整合。从这一点上我看到了如何从事——到人的一个进展
- php魔术方法及其意义
smallThree1
PHP提供了很多魔术方法,记录一下其中比较重要的几个1.__get和__set在对象调用不存在的属性时会去自动调用__get方法在对象赋值不存在的属性或者权限不够的属性时会自动调用__set方法2.__call和__callStatic在对象调用不存在的或者权限不够的方法时会调用此类方法3.__toString在将对象作为字符串输出时会调用(例如echo$obj)4.__invoke在将对象作为函
- 85、 探针
ly1435678619
kubernetes容器云原生
一、pod的进阶pod的进阶:1.1、pod的生命周期当中的状态:1、Running运行中,pod已经分配到节点上且pod内的容器正常运行。正常状态(ready1/1)。2、complete:完成之后退出,容器内的返回码是0,echo$?(表示容器正常运行结束)3、pending:挂起状态,pod已经创建好了,但是没有被分配到节点上。面试题:出现pending状态如何解决?1、节点上的资源不足ng
- BUUCTF 2021-10-4 Pwn
Ch1lkat
BUUCTFPwnlinuxpwn
文章目录保持手感echo分析EXPPwnme1分析EXPwdb_2018_1st_babyheap分析EXPFSOPhouseoforange_hitcon_2016分析前置知识House_of_orangeFSOPEXPzctf_2016_note3分析EXPgyctf_2020_document分析EXP动态调试复现护网杯_gettingstart分析EXPpicoctf_2018_buffe
- linux多个sh 同时执行命令,sh, 批量执行Linux命令
一颗橙子君
linux多个sh同时执行命令
step1:创建一个sh批处理命令文件#vim/etc/batch_ssh/install_redis.shstep2:给当前用户,能够执行sh脚本权限#chmodinstall_redis.sh777step3:编写要批量执行的命令,read表示等待前端用户输入,sleep表示等待时间单位为秒。echo'\nbegintoinstall01plugin\n';yuminstallcpp-y;ec
- 成功解决 -bash:***: command not found
方永
Linuxbashcentoslinux
1、获取系统环境路径[root@centos~]#echo$PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin2、修改~/.bash_profile,在最后添加环境变量[root@centos~]#cd~[root@centos~]#vim~/.bash_profile###在底部加上上面获取的路径e
- DNS主从服务架构(thirteen day)
沉迷于学习的网络狗
服务器网络运维
回顾编号主机名IP地址说明修改1web服务器192.168.1.11发布部署web服务发布了一个nginxweb服务2DNS服务器192.168.1.22用于解析域名和IP地址1、安装bind2、配置一个conf,zones,zone3、检查了3个文件4、启动3client主机192.168.1.33用于模拟客户机修改dns的访问主机临时修改echo“nameserver192.168.1.22”
- php做表单打印,用PHP做一个简单的表单
温哥华小文青
PHP最有用的特性之一是它能够自动将表单中的变量值赋予PHP变量。这使得表单处理变得非常快捷。因此,假如你送出一个内含输入栏位值的表单如下:当你用PHP处理此页面,$name变量的值就会是GlenMorris。因此,你可以用如下的方式把值打印出来:echo"Hi$name!";或者像这样测试其值:if($name=="GlenMorris"){echo"Pleasecheckyouremail."
- CentOS 7 上安装 NVIDIA Docker
ManchiBB
centosdockerlinux
在CentOS7上安装NVIDIADocker需要几个步骤。以下是安装NVIDIADocker的基本步骤:安装NVIDIA驱动:确保您的系统已经安装了NVIDIA驱动。如果没有,请先安装驱动。添加NVIDIADocker仓库:添加NVIDIADocker的官方仓库,以便安装最新版本的NVIDIADocker。distribution=$(./etc/os-release;echo$ID$VERSI
- linux autofs配置
crazysele
linux服务器运维
安装yuminstall-yautofs准备挂接目录mkdir/nfsdatamkdir/nfsdata/{tools,files}添加配置echo“/nfsdata/etc/auto.user”>>/etc/auto.masterecho“tools-fstype=nfs,rw,sync,no_root_squash172.23.0.187:/mnt/sdb1/tools”>>/etc/auto
- netty源码解读三(NioEventLoop)
orcharddd_real
nettyjavanetty
NioEventLoop初始化EventExecutor类型的数组数组大小默认为cpu数量的两倍,遍历数组,通过newNioEventLoop(xxx)往数组中添加元素,NioEventLoop继承了EventExecutor;每次需要线程时,执行chooser的next方法从数组中取出一个线程;关键代码打开netty源码,找到example包下的EchoService类,追溯创建boss线程组和
- MAC配置chromedriver
疯狂小代码
macos
最近被Mac系统快搞疯了,环境变量,文件路径的的问题,记录一下~进入命令行工具,确定当前的SHELL环境:echo$SHELL根据自己的SHELL环境选择执行命令:如果显示/bin/bash,则vim~/.bash_profile如果显示/bin/zsh,则vim~/.zshrc注意:现在大多数Mac都是zsh了,好像是升级版什么的,我的是zsh,但是我用bash_profile去配置了环境变量,
- ASM系列六 利用TreeApi 添加和移除类成员
lijingyao8206
jvm动态代理ASM字节码技术TreeAPI
同生成的做法一样,添加和移除类成员只要去修改fields和methods中的元素即可。这里我们拿一个简单的类做例子,下面这个Task类,我们来移除isNeedRemove方法,并且添加一个int 类型的addedField属性。
package asm.core;
/**
* Created by yunshen.ljy on 2015/6/
- Springmvc-权限设计
bee1314
springWebjsp
万丈高楼平地起。
权限管理对于管理系统而言已经是标配中的标配了吧,对于我等俗人更是不能免俗。同时就目前的项目状况而言,我们还不需要那么高大上的开源的解决方案,如Spring Security,Shiro。小伙伴一致决定我们还是从基本的功能迭代起来吧。
目标:
1.实现权限的管理(CRUD)
2.实现部门管理 (CRUD)
3.实现人员的管理 (CRUD)
4.实现部门和权限
- 算法竞赛入门经典(第二版)第2章习题
CrazyMizzz
c算法
2.4.1 输出技巧
#include <stdio.h>
int
main()
{
int i, n;
scanf("%d", &n);
for (i = 1; i <= n; i++)
printf("%d\n", i);
return 0;
}
习题2-2 水仙花数(daffodil
- struts2中jsp自动跳转到Action
麦田的设计者
jspwebxmlstruts2自动跳转
1、在struts2的开发中,经常需要用户点击网页后就直接跳转到一个Action,执行Action里面的方法,利用mvc分层思想执行相应操作在界面上得到动态数据。毕竟用户不可能在地址栏里输入一个Action(不是专业人士)
2、<jsp:forward page="xxx.action" /> ,这个标签可以实现跳转,page的路径是相对地址,不同与jsp和j
- php 操作webservice实例
IT独行者
PHPwebservice
首先大家要简单了解了何谓webservice,接下来就做两个非常简单的例子,webservice还是逃不开server端与client端。我测试的环境为:apache2.2.11 php5.2.10做这个测试之前,要确认你的php配置文件中已经将soap扩展打开,即extension=php_soap.dll;
OK 现在我们来体验webservice
//server端 serve
- Windows下使用Vagrant安装linux系统
_wy_
windowsvagrant
准备工作:
下载安装 VirtualBox :https://www.virtualbox.org/
下载安装 Vagrant :http://www.vagrantup.com/
下载需要使用的 box :
官方提供的范例:http://files.vagrantup.com/precise32.box
还可以在 http://www.vagrantbox.es/
- 更改linux的文件拥有者及用户组(chown和chgrp)
无量
clinuxchgrpchown
本文(转)
http://blog.163.com/yanenshun@126/blog/static/128388169201203011157308/
http://ydlmlh.iteye.com/blog/1435157
一、基本使用:
使用chown命令可以修改文件或目录所属的用户:
命令
- linux下抓包工具
矮蛋蛋
linux
原文地址:
http://blog.chinaunix.net/uid-23670869-id-2610683.html
tcpdump -nn -vv -X udp port 8888
上面命令是抓取udp包、端口为8888
netstat -tln 命令是用来查看linux的端口使用情况
13 . 列出所有的网络连接
lsof -i
14. 列出所有tcp 网络连接信息
l
- 我觉得mybatis是垃圾!:“每一个用mybatis的男纸,你伤不起”
alafqq
mybatis
最近看了
每一个用mybatis的男纸,你伤不起
原文地址 :http://www.iteye.com/topic/1073938
发表一下个人看法。欢迎大神拍砖;
个人一直使用的是Ibatis框架,公司对其进行过小小的改良;
最近换了公司,要使用新的框架。听说mybatis不错;就对其进行了部分的研究;
发现多了一个mapper层;个人感觉就是个dao;
- 解决java数据交换之谜
百合不是茶
数据交换
交换两个数字的方法有以下三种 ,其中第一种最常用
/*
输出最小的一个数
*/
public class jiaohuan1 {
public static void main(String[] args) {
int a =4;
int b = 3;
if(a<b){
// 第一种交换方式
int tmep =
- 渐变显示
bijian1013
JavaScript
<style type="text/css">
#wxf {
FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#97FF98);
height: 25px;
}
</style>
- 探索JUnit4扩展:断言语法assertThat
bijian1013
java单元测试assertThat
一.概述
JUnit 设计的目的就是有效地抓住编程人员写代码的意图,然后快速检查他们的代码是否与他们的意图相匹配。 JUnit 发展至今,版本不停的翻新,但是所有版本都一致致力于解决一个问题,那就是如何发现编程人员的代码意图,并且如何使得编程人员更加容易地表达他们的代码意图。JUnit 4.4 也是为了如何能够
- 【Gson三】Gson解析{"data":{"IM":["MSN","QQ","Gtalk"]}}
bit1129
gson
如何把如下简单的JSON字符串反序列化为Java的POJO对象?
{"data":{"IM":["MSN","QQ","Gtalk"]}}
下面的POJO类Model无法完成正确的解析:
import com.google.gson.Gson;
- 【Kafka九】Kafka High Level API vs. Low Level API
bit1129
kafka
1. Kafka提供了两种Consumer API
High Level Consumer API
Low Level Consumer API(Kafka诡异的称之为Simple Consumer API,实际上非常复杂)
在选用哪种Consumer API时,首先要弄清楚这两种API的工作原理,能做什么不能做什么,能做的话怎么做的以及用的时候,有哪些可能的问题
- 在nginx中集成lua脚本:添加自定义Http头,封IP等
ronin47
nginx lua
Lua是一个可以嵌入到Nginx配置文件中的动态脚本语言,从而可以在Nginx请求处理的任何阶段执行各种Lua代码。刚开始我们只是用Lua 把请求路由到后端服务器,但是它对我们架构的作用超出了我们的预期。下面就讲讲我们所做的工作。 强制搜索引擎只索引mixlr.com
Google把子域名当作完全独立的网站,我们不希望爬虫抓取子域名的页面,降低我们的Page rank。
location /{
- java-归并排序
bylijinnan
java
import java.util.Arrays;
public class MergeSort {
public static void main(String[] args) {
int[] a={20,1,3,8,5,9,4,25};
mergeSort(a,0,a.length-1);
System.out.println(Arrays.to
- Netty源码学习-CompositeChannelBuffer
bylijinnan
javanetty
CompositeChannelBuffer体现了Netty的“Transparent Zero Copy”
查看API(
http://docs.jboss.org/netty/3.2/api/org/jboss/netty/buffer/package-summary.html#package_description)
可以看到,所谓“Transparent Zero Copy”是通
- Android中给Activity添加返回键
hotsunshine
Activity
// this need android:minSdkVersion="11"
getActionBar().setDisplayHomeAsUpEnabled(true);
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- 静态页面传参
ctrain
静态
$(document).ready(function () {
var request = {
QueryString :
function (val) {
var uri = window.location.search;
var re = new RegExp("" + val + "=([^&?]*)", &
- Windows中查找某个目录下的所有文件中包含某个字符串的命令
daizj
windows查找某个目录下的所有文件包含某个字符串
findstr可以完成这个工作。
[html]
view plain
copy
>findstr /s /i "string" *.*
上面的命令表示,当前目录以及当前目录的所有子目录下的所有文件中查找"string&qu
- 改善程序代码质量的一些技巧
dcj3sjt126com
编程PHP重构
有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码 时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。让我们看一些基本的编程技巧: 尽量保持方法简短 尽管很多人都遵
- SharedPreferences对数据的存储
dcj3sjt126com
SharedPreferences简介: &nbs
- linux复习笔记之bash shell (2) bash基础
eksliang
bashbash shell
转载请出自出处:
http://eksliang.iteye.com/blog/2104329
1.影响显示结果的语系变量(locale)
1.1locale这个命令就是查看当前系统支持多少种语系,命令使用如下:
[root@localhost shell]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
- Android零碎知识总结
gqdy365
android
1、CopyOnWriteArrayList add(E) 和remove(int index)都是对新的数组进行修改和新增。所以在多线程操作时不会出现java.util.ConcurrentModificationException错误。
所以最后得出结论:CopyOnWriteArrayList适合使用在读操作远远大于写操作的场景里,比如缓存。发生修改时候做copy,新老版本分离,保证读的高
- HoverTree.Model.ArticleSelect类的作用
hvt
Web.netC#hovertreeasp.net
ArticleSelect类在命名空间HoverTree.Model中可以认为是文章查询条件类,用于存放查询文章时的条件,例如HvtId就是文章的id。HvtIsShow就是文章的显示属性,当为-1是,该条件不产生作用,当为0时,查询不公开显示的文章,当为1时查询公开显示的文章。HvtIsHome则为是否在首页显示。HoverTree系统源码完全开放,开发环境为Visual Studio 2013
- PHP 判断是否使用代理 PHP Proxy Detector
天梯梦
proxy
1. php 类
I found this class looking for something else actually but I remembered I needed some while ago something similar and I never found one. I'm sure it will help a lot of developers who try to
- apache的math库中的回归——regression(翻译)
lvdccyb
Mathapache
这个Math库,虽然不向weka那样专业的ML库,但是用户友好,易用。
多元线性回归,协方差和相关性(皮尔逊和斯皮尔曼),分布测试(假设检验,t,卡方,G),统计。
数学库中还包含,Cholesky,LU,SVD,QR,特征根分解,真不错。
基本覆盖了:线代,统计,矩阵,
最优化理论
曲线拟合
常微分方程
遗传算法(GA),
还有3维的运算。。。
- 基础数据结构和算法十三:Undirected Graphs (2)
sunwinner
Algorithm
Design pattern for graph processing.
Since we consider a large number of graph-processing algorithms, our initial design goal is to decouple our implementations from the graph representation
- 云计算平台最重要的五项技术
sumapp
云计算云平台智城云
云计算平台最重要的五项技术
1、云服务器
云服务器提供简单高效,处理能力可弹性伸缩的计算服务,支持国内领先的云计算技术和大规模分布存储技术,使您的系统更稳定、数据更安全、传输更快速、部署更灵活。
特性
机型丰富
通过高性能服务器虚拟化为云服务器,提供丰富配置类型虚拟机,极大简化数据存储、数据库搭建、web服务器搭建等工作;
仅需要几分钟,根据CP
- 《京东技术解密》有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的12月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
12月试读活动回顾:
http://webmaster.iteye.com/blog/2164754
本次技术图书试读活动获奖名单及相应作品如下:
一等奖(两名)
Microhardest:http://microhardest.ite