0x15.jpg

每当高考了的暑假就于跟杰哥讨论哪边兑现的校内p2p文件共享,就以今,我们没法之揭示几乎垮台。上图是测试图。那时候的思绪已到,就是:“学生上传共享文件及我们工作室的服务器,服务器生成种子链接。用户采取软件进行下载,下载的时刻先找学校局域网外之处理器,检索对许文件”,我还详细写了Project分析。但是因只有我同样人形容这软件,网络编程接触又未十分,所以不能下定狠心开干。直到清明前,趁着有只软件设计大赛,我们少单就是一举报名到并做p2p。之后与承天聊的时刻,他吧到位到我们来。然后,我们3个就是雄心勃勃的打算于20天外搞出来。我以为咱们是格外好之通力合作组织,杰哥整php后台,我及承天写软件。途中遇的组成部分艺问题,经过讨论与剖析,都想到比较好之缓解智,除了穿透另一样重合wifi内网那个尚眷恋不顶好办法(我勾勒过的篇章:两个独立局域网的交流问题http:
//http://blog.csdn.net/christopherwu/article/details/23714247\*)上传文书只是上传文件目录信息还有MD5,判断文件是否还同一利用MD5.大文件利用中10m来算有MD5.还有,举出特别之例子:1、A要下载Z文件,B,C,D多地处来这文件,将立刻文件固定分块,然后B负责发送1,C负责2,D负责3,保留max_number,当某人发送完,比如C,max_number+1返回给他,然后他继承max_number+1block_size发送。2、当只有A有文件(如流行性的影片),一下子来100上述之人头至外那下载,需要,A把1给B,把2受C,B再将1转化给C,D,这样1传2,2传41咱们且早已勾勒了代码实现了。
。 。
。我们还考虑到了,当有时段,比如深夜,没有peer开着的时候,或者冷门资源,肯定要备份资源。一开始打算开达到传不仅上传目录信息到服务器,还有文件于后台上传服务器备份,再在某段时间去超热门资源(冷门资源才要备份)。后来改成成为用网盘Api,上传到网盘里,用php做成注册认证开网盘。防止网盘像115那样倒,我们还打算将两只不同之网盘来备份。还有用户积分制,鼓励上传,下载加速;宿舍楼展示图,鼓励交友;迫使我们倒的原故是:1、没道成功真p2p,不是技术及的问题,而是用户。首先学的用户少;其次,在资源达到,除了玩这些是长时保留的,其他的几乎用完就去(比如电影)。这则几乎做不交p2p。什么是P2P精神?人人为我,我为人人!在P2P下载方式下,每个用户既是生充斥者,也是上传者。这个才是无比困顿的地方。2、上传文件夹。可以好这,但是文件大小,备份资源,文件夹重复性这3地方几乎是解决不了的。但是,做成只能上传文件,用户把文件减少上传后尽管会删除源文件,这样以力不从心p2p了。
。这规范,几乎同时成为了单纯生一个源于提供资源,丧失p2p底优势了。这是深刻项目后才发觉的题材,好无奈。目前还眷恋不交好方式。好无奈啊!好不甘心。我们还是依照自己之想法来规划实现p2p的,最后却如此了。之前我们工作室产生像样之资源共享(是因此ftp下载形式),但是服务器硬盘坏了几许只,负责上传的那么几独具有特别帐号的人无论不了,最重大是服务器完全好掉了。我们才做p2p的。

摘要:Linux以那强硬的指令行称霸江湖,Shell命令是数码极客的必修兵器。探索性数据解析,在需求跟数码还不顶明白的条件下,使用各种吩咐进行相同破探索及挖。从基础之公文查看到简的统计,再届有的常用的革命性分析命令,其目的都只是为着还好的开多少解析以及发掘而已。

6.基于24节,换桌面壁纸。开机自动运行,判断该时空属于哪种节气,到时间虽自行转换节气壁纸XD

02 探索性分析

准当日记分析面临,有时连不曾生强烈的对象,或者即使发生众所周知的目标,通常各种数码为并没有明显的概念。比如,别人丢给你一个压缩文件,说想分析一下里面来什么是非常的拜会请求。任务描述就是是这般,没有再明白的了。

用到日志文件与这么的剖析任务,就用展开各种可能的批判性分析。先看一下文件的格式,是否压缩了,使用gzip压缩或tar压缩。解压后,需要先盖了解一下,文件是怎的格式。对于网要的日志文件,是单排一个呼吁与应,还是多行一个伸手和响应。查看文件来小行,查看文件占用空间尺寸。如果解压后含有多单目录或者文件,同样的一个指令,更能达强有力作用。此时,通常用如下命令:

gzip/tar:压缩/解压
cat/zcat:文件查看
less/more:文件查看,支持gz压缩格式直接翻
head/tail:查看文件前/后10尽
wc:统计行数、单词数、字符数
du -h -c -s:查看空间占据

点来一个比较有趣之命令组,less和more,这片独还好分页查看文件。最初步有more命令,好像是立即more不支持为后翻页。于是一拉扯人虽当这个基础及进行了改进,直接为less,和more同样的效能只是重强有力些。因此,也更上一层楼出了“less
is
more”的哲学,“少就是凡是差不多”,而且少比多重复好。这种思维,在产品设计与代码优化中还发出反映。

打听文件的大约信息后,可能要取一行中之一只字段的情,或者用寻找某些行出来,或者需要针对一些字符或执行进行一定之改操作,或者用以群的目录和文件被找来有之天之日记(甚至找到后用针对这些天之日记进行统一处理),此时底这些命令可以辅助你:

awk:命令行下的数据库操作工具
join/cut/paste:关联文件/切分字段/合并文件
fgrep/grep/egrep:全局正则表达式查找
find:查找文件,并且对找结果批量化执行任务
sed:流编辑器,批量改动、替换文件
split:对生文件进行切分处理,按多少行一个文本,或者稍微字节一个文本
rename:批量还命名(Ubuntu上带的perl脚本,其它系统要装),使用-n命令进行测试

如:

# 解压缩日志
$ gzip -d a.gz
$ tar zcvf/jcvf one.tar.bz2 one
# 直接查看压缩日志
$ less a.gz  # 无需先解压

另外,以z开头的几乎独令可以大概处理gzip压缩文件,
如zcat:直接打印压缩文件,还有zgrep/zfgrep/zegrep,在压缩文件中直接找。

# 查询字符串,并显示匹配行的前3行和后3行内容
fgrep 'yunjie-talk' -A 3 -B 3 log.txt
# 在当前目前(及子目录)下,所有的log文件中搜索字符串hacked by:
$ find . -name "*.log" | xargs fgrep "hacked by"

fgrep, grep, egrep的有些界别:

fgrep按字符串的自意思了配合,里面的正则元字符当成普通字符解析, 如:
fgrep “1.2.3.4” 则单独相当配ip地址: 1.2.3.4,
其中的.不见面配合配任意字符。fgrep当然会比较grep快多矣。写起以简便,不用转义。
grep只以普通的部分正则,egrep或者grep -E使用扩展的正则,如

egrep "one|two", 匹配one或者two
grep -E -v "\.jpg|\.png|\.gif|\.css|.js" log.txt |wc -l

招来所有自日本之ip的呼吁,先把富有来源ip取出来,去再,找来日本的ip,放入文件japan.ip,再下命令:

$ cat log.gz | gzip -d | fgrep -f japan.ip > japan.log

本着hive中导出的公文,替换\001

cat 0000* | sed 's/\x1/ /g' > log.txt

5. 恰好发生女性对象之时段,她生日,
我勾勒了一个答复问题之界面程序让它们。
提问底问题且是我们经历了之作业还是本身送她的物,就算回答3次等未成事便跨了;回答完几单问题后,最终界面就告诉她现飞往了(那天我们计划早下打,然后我知道它们那么时候早上凡会因此生电脑的)。等其发宿舍时,打开门,发现我拿在生日礼物就以外头。:)虽然计划出硌难以实行,不过自己那时候或把好时间,非常顺畅到家的实行了.

04 批量操作

本着点的文本进行了一番探索分析后,可能都有得的端倪要么相了,需要再进一步的拍卖大量的文本或者字段了。此时之手续也许是一个消耗时间的过程,也许是一个急需看缘分的进程。总之,可能用综合上面的组成部分限令,并且对大气底日记进行拍卖。

即也是反映Shell更强的另一方面——批量化的机能了。命令于图形界面的顶深优势就,只待熟悉了,就老大爱实现批量化操作,将这些批量化的通令成成一个文本,于是就起了剧本。

批量化命令或者脚本,熟悉几独常因此底流程控制,就能够表达出强劲的性质:

if条件判断:

if [ -d ${base_d} ];
    then mkdir -p ${base_d};
fi

while循环:

while
do
    do_something;
done < file.list

for循环(用得很多):

for x in *.log.gz;
do
    gzip -d ${x};
done

当时几乎单原则判断与循环,也可一直以指令行下使用,区别是大抵加几独分公司隔开即可。

另外,执行长时间的任务,最好直接用nohup来操作。

别过去8龙的日期序列:

$for num in `seq 8 -1 1`;do dd=`date --date="${num} day ago" +%Y%m%d`;echo ${dd};done
20160312
20160313
20160314
20160315
20160316
20160317
20160318
20160319

有目录及文书如下:

20160320 目录
    10.1.0.1_20160320*.log.gz   目录
        201603200000.log.gz          文件
        201603200010.log.gz          文件
    10.1.0.2_20160320*.log.gz   目录
        201603200000.log.gz         文件
        201603200010.log.gz         文件

需要:去丢目录中之*.log.gz,这样好爱为人口误解为文件。 rename
-n也测试,rename使用和sed相同的语法。

$ for d in 201603??;do echo ${d}; cd ${d}; rename -n 's/\*\.log\.gz//' *.log.gz ; cd ..;done

测试成功后,使用rename不加以-n为真实施还命名操作。

  1. 自动关机。有因此C做的,不输入“我是SB”就关机的次序;学了MFC后,写了发生界面的。

    这些都是高中刚学的时刻召开的了;

  2. 搜索坐标程序。当鼠标的坐标跟自家设定的坐标相同便透过游戏,当然发彩蛋,一摆恐怖之图片弹有与好听的乐随即成鬼叫声。好像吓得几乎独妹妹把鼠标都摔开了?xD

03 其它常用命令

若果文件编码是由windows上污染过来的gb2312编码,需要处理成utf8的编码,或者有日志被黑客后来窜过了,需要跟本的备份数据开展自查自纠,这些工作且是用数工程师自己能熟悉的左右。

假定日志文件是近些年一样年的乞求日志,那么可能是按天或者本小时进行单独存放,此时若就待领取某些天(比如周末)的数额,很可能需要处理时。

因而,下面的部分命或者工具就异常有因此了:

date:命令行时间操作函数
sort/uniq:排序、去重、统计
comm:对有限独排序文件进行按行比较(共同实践、只现出于左侧文件、只出现在右文件)
diff:逐字符比较文件的异议,配合cdiff,类似于github的展示效果
curl/w3m/httpie:命令行下进行网络要
iconv:文件编码转换,如:iconv -f GB2312 -t UTF8 1.csv > 2.csv
seq:产生连续的班,配合for循环使用

输出今天/昨天的日子字符串

$ date -d today +%Y%m%d
20160320
$ date -d yesterday +%Y%m%d
20160319

对unix秒的拍卖

# 当前的时间
$ date +%s
1458484275
$date -d @1458484275
Sun Mar 20 22:31:15 CST 2016

鲜个公文a.txt, b.txt求只现出在a.txt中的数量:

# 排序两个文件
$ sort a.txt > a.txt.sort
$ sort b.txt > b.txt.sort
# 求只出现在c.sh中的内容
$ comm -2 -3 a.txt.sort b.txt.sort

**先期管图片隐藏,然后打刷刷过之地方图片就会见来得出。就这么慢慢刷者图片出来。一般我还是用美(luo)女做图片的xD

05 结尾

这时候只是略列举了有的数目解析或数处理相关的指令,只能算Linux的Shell那博大精深的通令中之冰山一角。

唯独如若能将这些相关的吩咐融会贯通,并且会实际应用以来,也终究在多少极客的路上多倒了一致步。

于基础之文书查看到简的统计,再至片常用的开拓性分析命令,其目的都止是为更好的举行多少解析与发掘而已。能综合这些命令,并构成起来以,将下令存放到文件,即来了Shell脚本。Shell脚本本身为是相同家强大的学问了,其中各个命令还有每个命令支持的参数,值得慢慢研究。

**当您的软件在后台运行的时刻,你体贴之动漫在网络直达生更新的讲话,马上发消息与音乐让您,提醒您看时的动漫。提示音乐及图片都是得替换的。

01 Shell命令行

对常与数量打交道的人口的话,数据工程师应该为是不时同Linux打交道。Linux以那个精的授命行称霸江湖,因此,Shell命令也是数额极客的必修兵器。

行使Linux命令行的几个指令,就足以做到部分简单的统计分析工作,比如
用wc命令统计文件实行,单词数,字符数,利用sort排序和去重,再结合uniq可以进行词频统计。比如:

$ cat file.txt
yunjie
yunjie-talk
yunjie-yun
yunjie
yunjie-shuo
$ sort file.txt | uniq -c | sort -nr | head -5
   2 yunjie
   1 yunjie-shuo
   1 yunjie-talk
   1 yunjie-yun

先用cat命令,了解一下文本的大概格式和内容,发现各行为一个单词。现在内需统计这些单词出现的频率,以及显出现次数最多之5单单词。

先行对文本进行排序,这样平等的一味词在紧临的执行,再后uniq -c
命令,统计不同的单词和顺序单词出现的次数。这样得到的结果就是次数后面随着单词,然后用sort
-nr对次数进行排序,并逆序显示,最后head命令显示结果的前5行。

非常简单的同样种植方法,读取文件,排序,统计,再对统计结果进行逆序,最后仅显示前几个结实。

类似于sql语句:

select word,count(1) cnt
from file
group by word
order by cnt desc
limit 5;

假如对sql语句熟悉的话,上面的形式应重便于掌握。虽然实现之合计和章程非常简单,但以实际上的探索性数据解析中采取却挺频繁。

**7. 据此画刷做的“游戏”。

**3. 动漫更新提醒。

开头是C++写的从未有过界面程序,高中时独自是辅助同学写来记录他下载的720p动漫看到哪集了,我观察到,很多人还是记录在记事本上面的。。后来就干脆练php,做了一个公众号及网站,再加是软件,可谓是如出一辙仿了xD分享:进化版动漫更新提醒(微信和软件)

4.
C语言开发微信公众平台(计划遭遇)
貌似开发微信公众平台还是用php,java等,几乎没有是为此C语言的。最近自己对开发微信公众平台的思维意识,用C语言理论及是可的,也堪当作是C语言教学,虽然不够php等不便利。

The 24 Solar System is a small program to change your Desktop Wallpaper
according to the 24 Solar System Inspired by

linux下的脚本跟windows的C语言程序我都做了新生祥和还冲击了大学都专属的24节风景图,
下面是着力湖春分的桃花:)

11.p2p文件共享。(夭折了)

以下顺序用 MFC做,都是可以据此c语言+win
api
开,不过是本身先学C++就因故C++做而已。

其实是刚学MFC的下做的物而已。

**10.统计英文书里的多次单词。
**凡高级中学时起《大话数据结构》看到的想法,然后据此STL实现了。

**9.用c语言做“嵌入式”程序
**假如当母校食堂打一华触屏电脑,然后便像银行ATM机一样可以充值,看信;但是以以防万一用户跳出程序玩电脑,用浏览器+网页的办法是很的。于是我想到用程序+浏览器壳做,嵌入一个网页在次中,程序总以尽前,屏蔽掉退出的事物。开始我还觉得自己之做法有些意想不到,后来本人意识,好像一漫画充值的机器都是这么做的。