苹果的转机与未来 | 蒂姆·库克传阅后记

不知道大家对于 蒂姆 · 库克 是否好奇,究竟是什么样的人才能够接过乔帮主的接力棒,成为世界上最有创造力公司的掌舵人,顶着外界带来的巨大压力,带领苹果走向新的巅峰呢?

https://imagehost-cdn.frytea.com/20200829161643.png

今天就随着《蒂姆 · 库克传》这本书的脚步,一起走进蒂姆 · 库克的世界。

老轨迹,不讲全文,只摘录令我印象深刻的词句。想要全面了解请前往书中寻找,这里奉上全书目录导图。

https://imagehost-cdn.frytea.com/20200829130737.png

壹 · 渴望苹果的上帝

上帝想要换手机了,于是带走了乔帮主。乔帮主走了,他却深深的改变了人们的生活方式。

2011年10月5日,史蒂夫·乔布斯逝世,举世哀悼。在库克担任CEO一个多月后,乔布斯就离开了,享年56岁。

人们时常疑惑,为什么这样的事发生在他的身上。乔帮主的离开,举世哀悼,从未有一位企业家的离去,会引发如此大规模的悼念。

https://imagehost-cdn.frytea.com/20200829161843.png

人们用自己的方式,纪念这位改变了人们生活方式的伟大的企业家。

乔布斯去世的前一天,苹果在旧金山芳草地艺术中心(Yerba Buena Center for the Arts)发布了iPhone 4S。4S的一个重要的新功能就是人工智能语音助理Siri,这是乔布斯在苹果参与的最后一个项目。

这是一种纪念,iPhone4s创造了苹果的巅峰,但在库克的带领下,iPhone5的销量,超越了4s。当然这都是后话了。人们对于乔帮主的赞美,很难用言语去表达。

贝拉克·奥巴马(Barack Obama)总统称乔布斯为“美国最伟大的创新者之一,勇敢到用不同的方式思考,大胆到敢去改变世界,聪明到能够做到这一点”。

奥巴马总统的这一概括,说出了人们的心里话。

一切和乔帮主的一切,似乎都是爆款。就连传记也是如此。

乔布斯授权沃尔特·艾萨克森写的个人传记,[插图]销量一直都很好。乔布斯去世后,这本书在亚马逊上的预订量增加了42000%。

乔帮主走了,没有了乔帮主的苹果,究竟能否再创辉煌?这一切,就看库克的了。事实证明,库克做的很棒。库克与乔布斯的风格迥乎不同。

库克身边最亲密的同事乔斯维亚克说:“整个世界都很紧张。但如果库克紧张,他一定不会表现出来。”

库克稳若泰山,没有丝毫乔帮主带给人的兴奋感。但也许就是因为这种细致、稳定,他在能够稳住苹果,让乔帮主的伟大设想,平稳的落地,并大放异彩。

贰 · 稳若泰山

库克并不是在苹果形势一片大好之时接管苹果的,事实上正好相反。

当时,有人问戴尔,如果接管苹果会怎么做,戴尔回答说:“我会关闭公司,把钱还给股东。”虽然乔布斯公开驳斥了戴尔这段“粗鲁”的言论,[插图]但是他对戴尔在建立准时生产工厂和供应链方面的能力十分钦佩。

这是我能找到的,最具有代表性的一段话。苹果当时大概就是这样。人人都想着谁会“成为”下一个乔布斯。

https://imagehost-cdn.frytea.com/20200829161658.png

库克是智慧的,他从未想过“成为”乔布斯,他要做最好的库克!

于是他在接管苹果后处理一切事务时,都是一样的“稳若泰山”。也许正因如此,他的加入,稳住了苹果。使得苹果没了乔布斯,也没有散。

库克之所以能够做到这一点,与他的信仰是有关的。

库克家庭的宗教信仰对库克影响至深。他在自己的职业生涯中一直提到基督教信仰。

除了信仰,库克还是一个“聪明人”。这一点除了从他从未想过“成为”乔布斯“外,还可以从他做事情的态度上可以看出来。

https://imagehost-cdn.frytea.com/20200829161736.png

库克从不耍小聪明,他做任何事都给人一种踏实的感觉。

库克曾在一个场合,对一群学生说:

“那些想要不费吹灰之力就取得成功的人,终究是在欺骗自己,甚至欺骗别人。”

库克的踏实稳重,不代表他示“弱”。反而在他平静的外表下,隐藏着一颗相当强势的内心。

有一次开会,发生了一件事情。

当时,一位下属提出一个数字,库克认为那是错的。“那个数字错了,” 库克说,“你出去。”

结语

库克的风格,怎么看都不像是苹果的风格,但仔细观察会发现,他所经历的一切,就像是为了今天掌管苹果,即使他做过一件在苹果前所未有的事情。

让苹果发布会变得毫无兴奋感可言。

但不得不说,现在的苹果,更加令人信赖。正是库克那么精益求精的态度,稳若泰山的风格,使得苹果的业绩稳定提升。

https://imagehost-cdn.frytea.com/20200829162219.png

或许再过几年,人们又会开始议论:谁会成为下一个库克。

人到绝境是重生 | 创业就是解决问题 | 刘强东(传)阅后记

创业究竟是为了什么?

如何才能成功呢?

前些阵子我在这本《刘强东:人到绝境是重生》中找到了答案。

https://imagehost-cdn.frytea.com/20200822083919.png

壹 · 创业就是解决问题

刘强东初期经营过饭馆,最终惨淡收场。后来去中关村开公司,他发现当时的中关村,有许多柜台,但是货源无法保证。常常出现现场“炒货”的情况。顾客等待的时间也是很随缘,柜台因此损失了不少钱。刘强东发现这点,于是进了一批刻录机,挨家柜台推销,虽价格高一些,但保证两分钟内送到,超市赔钱。就这样,他解决了当时柜台货源得不到保障的问题,生意越做越大。后来成了中关村刻录机最大的代理商。

https://imagehost-cdn.frytea.com/20200824221832.png

后来的京东也是如此。

创业的核心是什么?就在于解决问题,如果你想做一个项目,那么你首先要考虑的就是这个项目能解决什么问题,什么问题都解决不了,那这个项目必然会失败。 刘强东通过了解,他发现了网上销售中存在很多问题。他想如果京东能把这些问题解决了,就一定能成功。

在那时,通过调查,刘强东发现当时的网上商城问题很多,物流、仓储。没有很好的物流,配送时间长,当时的国美、苏宁仓库周转需要90天。

刘强东发现了问题,于是就通过优化仓库管理策略等手段,打造了仅有当时巨头三分之一周转时间的京东仓储。

京东这样的零售公司最核心的就是库存周转天数。国美、苏宁大概的运营规模是一万到两三万个商品品种,他们的库存周转天数是60~70天。京东旗下仓库里的产品有两百多万个品种,品种数量是国美、苏宁的100倍,但库存周转天数只有30天。

在物流方面也是如此,刘强东发现物流产业是当时中国一大机遇。

京东准备建立物流的时候看到了当时中国有一个巨大的机会:中国没有UPS,没有Fedex,中国的物流成本奇高无比;中国的快递行业虽然发展迅速,但服务质量比较低,快递加盟商和物流集团的利益相悖的,二者的利益不一致,加盟者希望多收单,因为快递公司对快递员结算时送件是义务,收件才赚钱。所以中国的快递发展成加盟模式,给快递业造成巨大的服务隐患。

就这样,解决了仓储+物流的问题,京东打造成了至今仍无人超越的强大电商系统。才有了今天人们争相推荐的京东商城。京东的“隔日达”成了许多人首选京东的重要原因。

https://imagehost-cdn.frytea.com/20200824221911.png

而这一切,都源于当初那种“创业就是解决问题”的信念。问题解决了,自然就有价值。

贰 · 执行力是关系生死存亡的重要因素

最近进行转正答辩,导师评价都很不错,但直接上级很直接指出一个问题“看不到成果”。

如果是开发,就开发出产品。如果是做产品,就去关注产品如何能够达标。

这是很现实也很简单的事情。如果一心在此,方向正确,就能够有所收获。如果用心去做,成果良好,就会为自己赢得更好的机会。

但如果大大咧咧,不思进取。就真的浑浑噩噩的混日子了。

学习如此,工作更是如此。

若是学习,就说学会了什么,做出了什么成果。若是工作,就是贡献了多少利润,增长率如何。如果没有执行力,很难向上进。

刘强东就很看中员工的执行力。

刘强东在管理层例会上提出的问题非常尖锐,他要求非常严厉,若是接下来的两三个季度依然表现得不行,就直接换岗。一次,他提出了200%的增速,该业务部门的负责人表示有难度,并陈述了理由,刘强东打断他说:“对不起,你没听懂我的问题,我问的是如何增长,不是问为什么不能增长。”后来,此人在京东管理层例会上再也没有出现。

人们因为未知而恐惧,因为不够自信而没把握。于是在面对挑战(机遇)时下意识开始陈述无法达成的理由。但人类进步的脚步永远不会停止。

https://imagehost-cdn.frytea.com/20200824222025.png

现在不主动进步,未来就被动追赶。

提升自己的执行力,遇事想办法,总能做到。

叁 · 团结就是力量

良好的团队协作常常可以达成 1+1> 2 的神奇效果。

如果一直孤军奋战,总有一天会发现一个人的力量远远不够。

就连刘强东这样好强的人,也只在这件事情上有过恐惧。

刘强东创业这么多年,唯一有过短暂恐惧的地方,就是担心内部团队管理不好。比如企业文化断层,企业文化崩溃,没有价值观和信仰,整个团队的内部管理失控,这些都是他比较担心的问题。 不管是在古代还是在现代,不论在东方还是在西方,大量的事例证明,无论是一个国家还是一个团体,甚至是一个部门、组织,如果只依靠领导单打独斗而没有员工的积极参与和跟随,这个团队就不可能是一个高效的团队;只是依靠某一个或某几个所谓的精英人士孤军奋战,而没有大部队进行协作和执行,这个团队肯定会失败。

记得大学时做小组做课设。每次如果是我有幸当选组长,一定让所有人都动起来。这样的做法使得每一次展示都能达到意想不到的效果。

组队讲课,我们一人一节,课间时间就练习互相配合。一个人可能很容易疲惫,许多人一起就很有力量。互相找到不足,就会发现许多自己一个人难以察觉的细节。最终展示时,我们的评分最高。

课题展示,常常是组长上去一个人唱独角戏。我就将汇报内容分成小节,一人一段。一个人站在台上可能紧张,但一组人一起面对就感觉到无穷的力量。最终收获了意想不到的好效果。

https://imagehost-cdn.frytea.com/20200824222134.png

团队的力量无可比拟。技能的掌握可能很简单,但是价值观的培养一定是一个长期的过程。这也是许多企业喜欢“应届生”的原因。因为好培养企业文化。

作为社会的一员,也要注意这一点,注意融入集体,这样更利于个人发展,也更利于团队发展。人类就是群居动物,要找到合适的那一群人。

如果现在还没有遇见这样一群人,就先努力成为那样的人,然后主动去寻找吧。

结语

人到绝境是重生。刘强东正是在生意亏本后,绝境之中创立京东,成就了一番事业。越是困难越是机遇。风险与机遇并存。但不可追求风险,永远牢记,“只要做的事情有价值,盈利一定不是问题”。

https://imagehost-cdn.frytea.com/20200824222332.png

做人也是如此,只要走的是正道,就坚持地走下去。

创业,就是解决问题。做好自己的事情,走正确的路。

https://imagehost-cdn.frytea.com/20200820211034.png

OpsnSSH抓包分析 | SSH协议分析

SSH 协议是建立在不安全的网络之上的进行远程安全登陆的协议。它是一个协议族,其中有三个子协议,分别是:

  • 1、传输层协议[SSH-TRANS]:提供服务器验证、完整性和保密性功能,建立在传统的 TCP/IP 协议之上。
  • 2、验证协议[SSH-USERAUTH]:向服务器验证客户端用户,有基于用户名密码和公钥两种验证方式,建立在传输层协议[SSH-TRANS]之上。
  • 3、连接协议[SSH-CONNECT]:将加密隧道复用为若干逻辑信道。它建立在验证协议之上。

https://imagehost-cdn.frytea.com/20200820115639.png

继续之前,补充一下两个概念:

  • 1、会话密钥 key:key 是通过客户端和服务器之间通过诸如 D-H 算法协商出来的。
  • 2、公钥 pub key:pub key 成为服务器主机密钥server_host_key,用于SSH-TRANS传输协议进行服务器验证,说白了就是客户端去验证服务器用的

SSH 协议握手过程大致流程如下图所示:

https://imagehost-cdn.frytea.com/20200820115811.png

下面使用 Wirdshark 进行抓包分析,开启 wireshark 抓包,进行一次正常的 SSH 登录,停止抓包,通过 IP 过滤出相关的报文如下:

https://imagehost-cdn.frytea.com/20200824191459.png

如果将上述报文根据 SSH 协议运行的流程分析,流程和报文的对应关系如下:

  • TCP 三次握手

https://imagehost-cdn.frytea.com/20200824191531.png

  • 版本协议交换

https://imagehost-cdn.frytea.com/20200824191628.png

  • 密钥协商

https://imagehost-cdn.frytea.com/20200824193145.png

在协商阶段客户端和客户端互相告知自己支持的加密方法:

https://imagehost-cdn.frytea.com/20200824192240.png

确定加密方法后,交换公钥:

https://imagehost-cdn.frytea.com/20200824192518.png

  • 加密通信

如果是通过密码登录,SSH 就会采用这种自动协商密钥进行 对称加密通信。可以看到此后的报文全部为加密报文。

SSH 使用对称密钥对整个连接进行加密。与某些用户的假设相反,可以创建的公共/私有非对称密钥对只用于身份验证,而不用于对连接进行加密。对称加密甚至可以保护密码身份验证不被窥探。(2021 年 10 月 20 日修改)

https://imagehost-cdn.frytea.com/20200824191835.png

大概可以看出是以 New Keys 为界,区分密钥协商和加密通信。

内部加密的原理究竟是什么?这一点还需后期继续探索。

参考文献

Linux下文件系统技巧 | 统计个数 | 只见文件或目录

统计个数

查看某目录下文件的个数

$ ls -l | grep "^-" | wc -l

# example
$ ls -l /etc | grep "^-" | wc -l
134

$ find ./company -type f | wc -l

# Example 
$ sudo find /etc -type f | wc -l
3829

查看某目录下文件的个数,包括子目录里的。

$ ls -lR | grep "^-" | wc -l

# example
$ sudo ls -lR /etc | grep "^-" | wc -l
3822

查看某文件夹下目录的个数,包括子目录里的。

$ ls -lR | grep "^d" | wc -l

# Example
$ sudo ls -lR /etc | grep "^d" | wc -l
1175

说明:

ls -l

长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)

grep "^-"

这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d

wc -l

统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。

其他技巧

只显示目录名, grep^ 之间有空格

ls -l | grep ^

只显示文件

ls -l | grep ^-

统计当能目录下的文件数

ls -l | grep ^- | wc -l

参考文献

Putty个性化配置

终端工具用一圈,还是Putty简单好用。就是Putty难看的外观、不清晰的字体劝退了许多人,今天就简单介绍一种快速美化putty的方法。

Putty的配置文件通过注册表来记录,因此通过修改注册表来修改其配置。

将下列内容复制到一个 name.reg 文件中。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\InsideUbuntuServer]
"Present"=dword:00000001
"HostName"="192.168.6.236"
"LogFileName"="putty.log"
"LogType"=dword:00000000
"LogFileClash"=dword:ffffffff
"LogFlush"=dword:00000001
"SSHLogOmitPasswords"=dword:00000001
"SSHLogOmitData"=dword:00000000
"Protocol"="ssh"
"PortNumber"=dword:00000016
"CloseOnExit"=dword:00000001
"WarnOnClose"=dword:00000001
"PingInterval"=dword:00000000
"PingIntervalSecs"=dword:00000000
"TCPNoDelay"=dword:00000001
"TCPKeepalives"=dword:00000000
"TerminalType"="xterm"
"TerminalSpeed"="38400,38400"
"TerminalModes"="CS7=A,CS8=A,DISCARD=A,DSUSP=A,ECHO=A,ECHOCTL=A,ECHOE=A,ECHOK=A,ECHOKE=A,ECHONL=A,EOF=A,EOL=A,EOL2=A,ERASE=A,FLUSH=A,ICANON=A,ICRNL=A,IEXTEN=A,IGNCR=A,IGNPAR=A,IMAXBEL=A,INLCR=A,INPCK=A,INTR=A,ISIG=A,ISTRIP=A,IUCLC=A,IUTF8=A,IXANY=A,IXOFF=A,IXON=A,KILL=A,LNEXT=A,NOFLSH=A,OCRNL=A,OLCUC=A,ONLCR=A,ONLRET=A,ONOCR=A,OPOST=A,PARENB=A,PARMRK=A,PARODD=A,PENDIN=A,QUIT=A,REPRINT=A,START=A,STATUS=A,STOP=A,SUSP=A,SWTCH=A,TOSTOP=A,WERASE=A,XCASE=A"
"AddressFamily"=dword:00000000
"ProxyExcludeList"=""
"ProxyDNS"=dword:00000001
"ProxyLocalhost"=dword:00000000
"ProxyMethod"=dword:00000000
"ProxyHost"="proxy"
"ProxyPort"=dword:00000050
"ProxyUsername"=""
"ProxyPassword"=""
"ProxyTelnetCommand"="connect %host %port\\n"
"Environment"=""
"UserName"=""
"UserNameFromEnvironment"=dword:00000000
"LocalUserName"=""
"NoPTY"=dword:00000000
"Compression"=dword:00000000
"TryAgent"=dword:00000001
"AgentFwd"=dword:00000000
"GssapiFwd"=dword:00000000
"ChangeUsername"=dword:00000000
"Cipher"="aes,chacha20,blowfish,3des,WARN,arcfour,des"
"KEX"="ecdh,dh-gex-sha1,dh-group14-sha1,rsa,WARN,dh-group1-sha1"
"RekeyTime"=dword:0000003c
"RekeyBytes"="1G"
"SshNoAuth"=dword:00000000
"SshBanner"=dword:00000001
"AuthTIS"=dword:00000000
"AuthKI"=dword:00000001
"AuthGSSAPI"=dword:00000001
"GSSLibs"="gssapi32,sspi,custom"
"GSSCustom"=""
"SshNoShell"=dword:00000000
"SshProt"=dword:00000003
"LogHost"=""
"SSH2DES"=dword:00000000
"PublicKeyFile"=""
"RemoteCommand"=""
"RFCEnviron"=dword:00000000
"PassiveTelnet"=dword:00000000
"BackspaceIsDelete"=dword:00000001
"RXVTHomeEnd"=dword:00000000
"LinuxFunctionKeys"=dword:00000000
"NoApplicationKeys"=dword:00000000
"NoApplicationCursors"=dword:00000000
"NoMouseReporting"=dword:00000000
"NoRemoteResize"=dword:00000000
"NoAltScreen"=dword:00000000
"NoRemoteWinTitle"=dword:00000000
"RemoteQTitleAction"=dword:00000001
"NoDBackspace"=dword:00000000
"NoRemoteCharset"=dword:00000000
"ApplicationCursorKeys"=dword:00000000
"ApplicationKeypad"=dword:00000000
"NetHackKeypad"=dword:00000000
"AltF4"=dword:00000001
"AltSpace"=dword:00000000
"AltOnly"=dword:00000000
"ComposeKey"=dword:00000000
"CtrlAltKeys"=dword:00000001
"TelnetKey"=dword:00000000
"TelnetRet"=dword:00000001
"LocalEcho"=dword:00000002
"LocalEdit"=dword:00000002
"Answerback"="PuTTY"
"AlwaysOnTop"=dword:00000000
"FullScreenOnAltEnter"=dword:00000001
"HideMousePtr"=dword:00000000
"SunkenEdge"=dword:00000000
"WindowBorder"=dword:00000001
"CurType"=dword:00000000
"BlinkCur"=dword:00000000
"Beep"=dword:00000001
"BeepInd"=dword:00000000
"BellWaveFile"=""
"BellOverload"=dword:00000001
"BellOverloadN"=dword:00000005
"BellOverloadT"=dword:000007d0
"BellOverloadS"=dword:00001388
"ScrollbackLines"=dword:000007d0
"DECOriginMode"=dword:00000000
"AutoWrapMode"=dword:00000001
"LFImpliesCR"=dword:00000000
"CRImpliesLF"=dword:00000000
"DisableArabicShaping"=dword:00000000
"DisableBidi"=dword:00000000
"WinNameAlways"=dword:00000001
"WinTitle"=""
"TermWidth"=dword:00000050
"TermHeight"=dword:00000018
"Font"="Courier New"
"FontIsBold"=dword:00000000
"FontCharSet"=dword:00000000
"FontHeight"=dword:0000000c
"FontQuality"=dword:00000003
"FontVTMode"=dword:00000004
"UseSystemColours"=dword:00000000
"TryPalette"=dword:00000000
"ANSIColour"=dword:00000001
"Xterm256Colour"=dword:00000001
"BoldAsColour"=dword:00000000
"Colour0"="0,255,0"
"Colour1"="255,255,255"
"Colour2"="0,0,0"
"Colour3"="85,85,85"
"Colour4"="0,0,0"
"Colour5"="0,255,0"
"Colour6"="0,0,0"
"Colour7"="85,85,85"
"Colour8"="187,0,0"
"Colour9"="255,85,85"
"Colour10"="0,187,0"
"Colour11"="85,255,85"
"Colour12"="187,187,0"
"Colour13"="255,255,85"
"Colour14"="138,43,226"
"Colour15"="85,85,255"
"Colour16"="187,0,187"
"Colour17"="255,85,255"
"Colour18"="0,187,187"
"Colour19"="85,255,255"
"Colour20"="187,187,187"
"Colour21"="255,255,255"
"RawCNP"=dword:00000000
"PasteRTF"=dword:00000000
"MouseIsXterm"=dword:00000000
"RectSelect"=dword:00000000
"MouseOverride"=dword:00000001
"Wordness0"="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
"Wordness32"="0,1,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1"
"Wordness64"="1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2"
"Wordness96"="1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1"
"Wordness128"="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"
"Wordness160"="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"
"Wordness192"="2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2"
"Wordness224"="2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2"
"LineCodePage"=""
"CJKAmbigWide"=dword:00000000
"UTF8Override"=dword:00000001
"Printer"=""
"CapsLockCyr"=dword:00000000
"ScrollBar"=dword:00000001
"ScrollBarFullScreen"=dword:00000000
"ScrollOnKey"=dword:00000000
"ScrollOnDisp"=dword:00000001
"EraseToScrollback"=dword:00000001
"LockSize"=dword:00000000
"BCE"=dword:00000001
"BlinkText"=dword:00000000
"X11Forward"=dword:00000000
"X11Display"=""
"X11AuthType"=dword:00000001
"X11AuthFile"=""
"LocalPortAcceptAll"=dword:00000000
"RemotePortAcceptAll"=dword:00000000
"PortForwardings"=""
"BugIgnore1"=dword:00000000
"BugPlainPW1"=dword:00000000
"BugRSA1"=dword:00000000
"BugIgnore2"=dword:00000000
"BugHMAC2"=dword:00000000
"BugDeriveKey2"=dword:00000000
"BugRSAPad2"=dword:00000000
"BugPKSessID2"=dword:00000000
"BugRekey2"=dword:00000000
"BugMaxPkt2"=dword:00000000
"BugWinadj"=dword:00000000
"StampUtmp"=dword:00000001
"LoginShell"=dword:00000001
"ScrollbarOnLeft"=dword:00000000
"BoldFont"=""
"BoldFontIsBold"=dword:00000000
"BoldFontCharSet"=dword:00000000
"BoldFontHeight"=dword:00000000
"WideFont"=""
"WideFontIsBold"=dword:00000000
"WideFontCharSet"=dword:00000000
"WideFontHeight"=dword:00000000
"WideBoldFont"=""
"WideBoldFontIsBold"=dword:00000000
"WideBoldFontCharSet"=dword:00000000
"WideBoldFontHeight"=dword:00000000
"ShadowBold"=dword:00000000
"ShadowBoldOffset"=dword:00000001
"SerialLine"="COM1"
"SerialSpeed"=dword:00002580
"SerialDataBits"=dword:00000008
"SerialStopHalfbits"=dword:00000002
"SerialParity"=dword:00000000
"SerialFlowControl"=dword:00000001
"WindowClass"=""
"ConnectionSharing"=dword:00000000
"ConnectionSharingUpstream"=dword:00000001
"ConnectionSharingDownstream"=dword:00000001
"SSHManualHostKeys"=""
"LogHeader"=dword:00000001
"ProxyLogToTerm"=dword:00000001
"HostKey"="ed25519,ecdsa,rsa,dsa,WARN"
"PreferKnownHostKeys"=dword:00000001
"GssapiRekey"=dword:00000002
"AuthGSSAPIKEX"=dword:00000001
"NoRemoteClearScroll"=dword:00000000
"TrueColour"=dword:00000001
"UTF8linedraw"=dword:00000000
"PasteControls"=dword:00000000
"MouseAutocopy"=dword:00000001
"MousePaste"="explicit"
"CtrlShiftIns"="explicit"
"CtrlShiftCV"="none"
"BugOldGex2"=dword:00000000
"BugChanReq"=dword:00000000

双击运行,写入注册表。之后打开putty,是不是多了一个配置?

https://imagehost-cdn.frytea.com/20200821101535.png

Load它,之后修改host,open,就可以看到修改后的putty了。

https://imagehost-cdn.frytea.com/20200821101656.png

这个方法也可以用来保存putty配置,快速移植。

参考文献

时代终将遗忘无输出的人 | 写作是最好的自我投资 | 阅后记

今天工作结束的早,回到住处读完了这本《写作是最好的自我投资》,筹划着什么时候给自己配备一台汉王黄金屋。读完本书又一个小灵感——根据标题做完思维导图,基本就掌握了本书脉络。

https://imagehost-cdn.frytea.com/20200820203222.png

看完此书,颇有一番感悟,想写来跟大家分享。写作究竟对一个人来说有多重要呢?这让我想到遇到的许多人。

壹 · 输入输出使人充实

在公交、地铁还是高铁上,总是可以遇到几个喜欢开着外放刷抖音的乘客。相比各位读者也有过这样的经历,时不时还能听到一阵爆笑。乘坐公共交通时看到刷手机的人是日常,看到读书人是不寻常。但它们两者会有着本质的区别。

https://imagehost-cdn.frytea.com/20200820211304.png

喜欢刷抖音的乘客,除了带给其他乘客噪音上的困扰外,关掉手机的那一刻,他会感受到前所未有的空虚与疲惫。看书的乘客,也许刚开始时是平静甚至无聊,但时常有一两句金句挑起他会心的微笑。合上书的那一刻,内心满满的充盈。

写文章也是如此。

你花两个小时看电影、看综艺、刷抖音,和花两个小时写一篇文章,结果是有本质区别的。前者是你在消费别人创造的产品,你是被接受、被喂养的姿态;而写作,是你在创造一个属于你自己的作品,你是创造者、供养者,写作是思想和灵魂的绽放,与前者完全不一样。

贰 · 充盈使人摆脱烦恼

我问一个喜欢刷抖音的朋友,“你为什么喜欢刷抖音呢?”

回答是:“上班/上学太累,回到家什么也不想做,刷刷小视频放松一下,刷小视频多快乐呀。”

可是,这样短期的快乐真的可以使人摆脱烦恼吗?

人们常常因为生活不如意而烦恼,常常因为求之不得而痛苦。每每此时,就去找一些途径快速刺激大脑分泌激素营造一种快乐的感觉。好像世界都充盈了,但这不是长久的充盈。那些烦恼终将由于认知的匮乏而越积越多。

大多数人在职场上的困惑,无非就这么几点:·钱赚得不够多:薪水太低,买房太贵,买车太贵,买包太贵,简单来说,理想很丰满,现实很骨感。·职场地位不稳:没有行业江湖地位,随时都有可能被炒掉、被调岗,跳槽也跳不出一个好身价。·才华无人赏识:能力很强,业务很牛,觉得上司或者老板很蠢,自己的价值一直被低估,自己是千里马,但是找不到伯乐。·社交圈子不高级:工作场合的圈子有限,没有机会扩展社交圈,或者没有途径进入更牛的圈子。这四个问题,基本可以涵盖90%以上的职场问题。

要想真正的摆脱烦恼,就去阅读,武装自己,找到认知变为核心竞争力的方法。而不要一味的逃避,不正视问题。

https://imagehost-cdn.frytea.com/20200820211200.png

偷懒是人的天性,逃避是人的武器。但正是太多的人这样做,“反人性”才显得尤为珍贵。如果在一个人人都恨勤奋的社会,偶然一两个懒汉反而成了稀罕品。但别忘了,我们生存的这个社会,常常是比我牛x的人比我更努力。而大多数人是在混日子,于是勤奋是这个时代的稀缺品。

叁 · 反人性使人强大

其实阅读、写作本身是一件有些“反人性”的事情。那么人性本来是怎样呢?

在人类的生存活动中,大脑思考其实比物理活动要更消耗能量,于是人类为了尽量减少消耗,就进化出了一套本能:拒绝或者减少思考。

当年的人类为了活下去,必须减少耗能。但是在这个时代,物质种类极大丰富。就拿吃东西为例,少吃点,对于绝大多数的人来说,只有好处。但看到美食还是忍不住多吃一点。

https://imagehost-cdn.frytea.com/20200820211242.png

这就是人性,人性指引我们不断汲取能力,减少耗能。但这个时代需要的,是适当汲取,增加好能。简言之就是需要人们不断的输出,才可能成为把握未来的舵手。

不要因为人性而牵绊自己前行的脚步,否则就改变它!

肆 · 抛弃病态的完美

常常听到有人说:

“既然做不到最好,干脆别做。”

“反正写了也没人看,随便敷衍一下。”

态度上的完美主义可以使人做事情力求完美,精益求精,取得更好的成绩,但病态的完美主义,因为追求完美而限制了自己输出的步伐,对于许多人来说是很可惜的。

思想上的完美主义是只关注自己脑海中不断变换的完美画面,幻想着最完美的结果;对事情抱有过高的期望,但实际和现状差距很大,结果当然就会产生挫败感,然后就越来越不想做,最后思想上的完美主义就只能让自己成为“行动上的矮子”。

种一棵树最好的时间是十年前,其次是现在。

现在如果有机会,就常常会跟最好的朋友讲“工作闲暇时,要记得积累未来自己的核心竞争力。”

https://imagehost-cdn.frytea.com/20200820211352.png

就以我自己为例,大学学了非计算机专业,但靠着自己的努力,四年里积累了超越同届计算机专业同学的知识,毕业找到一份说得过去的计算机相关的工作,认识了一群大佬。

希望未来的你,也会被人记住,写作恰好就是很好的方式。

https://imagehost-cdn.frytea.com/20200820211034.png

Ubuntu20.04修改网卡配置

近期常常用到Ubuntu20.04server镜像,在一次虚拟机配置时不小心配错了ip,修在网络配置时找了一大圈教程都是无效。最后发现

“ubuntu从17.10开始,已放弃在 /etc/network/interfaces 里固定IP的配置,即使配置也不会生效,而是改成netplan方式 ,配置写在 /etc/netplan/01-netcfg.yaml 或者类似名称的yaml文件里”

不明白为什么还是有许多博客文章是说配置 interfaces ,耽误事情,因此在这里简单记录。

步骤一,修改配置

# 具体文件可能有变化,但一定在 netplan 下
sudo vim **/etc/netplan/00-installer-config.yaml** 

步骤二,修改内容即可

https://imagehost-cdn.frytea.com/20200820095111.png

步骤三,生效配置

sudo netplan apply

参考文献

Aria2 + Rclone 实现离线下载 | 完美脚本配置 | 解决无法上传问题

首先声明,本文完美脚本来自于: P3TERX/aria2.conf,本文记录的是安装完美脚本 2020.08.08 版本时遇到的问题。

安装步骤

第一步,安装 Aria2

这里使用 Aria2 一键安装管理脚本 增强版,执行下面的代码下载并运行脚本,出现脚本操作菜单输入 1 开始安装。

wget -N git.io/aria2.sh && chmod +x aria2.sh && ./aria2.sh

第二步,安装和配置 Rclone

RCLONE 官方提供了一键安装脚本

curl https://rclone.org/install.sh | sudo bash

安装完后,输入 rclone config 命令进入交互式配置选项,按照提示一步一步来进行操作即可。

第三步,配置自动上传脚本

Aria2 一键安装管理脚本 增强版 整合了 Aria2 完美配置 ,安装后会附带一些附加功能脚本功能脚本,RCLONE 自动上传脚本就是其中之一。由于默认不启用,所以需要手动启用。

  • 输入vim /root/.aria2c/script.conf打开附加功能脚本配置文件进行修改,有中文注释,按照自己的实际情况进行修改,一般只需要修改网盘名称和下载路径。
# 网盘名称(RCLONE 配置时填写的 name)
drive-name=OneDrive
  • 输入nano /root/.aria2c/aria2.conf打开 Aria2 配置文件进行修改。或使用Aria2 一键安装管理脚本 增强版中的手动修改选项打开配置文件进行修改。找到“下载完成后执行的命令”,把clean.sh替换为upload.sh
# 下载完成后执行的命令
on-download-complete=/root/.aria2c/upload.sh
  • 重启 Aria2
service aria2 restart

问题记录

问题一、找不到jq命令

我在安装后测试下载无法上传网盘,通过命令查看日志:

tail -f /root/.aria2c/aria2.log

在下载结束后报了如下错误:

8/19 07:26:59 [^[[1;32mNOTICE^[[0m] Download complete: /root/downloads/aria2.conf
/root/.aria2c/core: line 109: jq: command not found
/root/.aria2c/core: line 111: jq: command not found
08/19 07:26:59 [^[[31mERROR^[[0m] Failed to get download directory!

发现是由于 jq 命令找不到到导致的,Centos下通过如下命令安装 jq

# 安装EPEL源:
yum install epel-release

# 安装完EPEL源后,可以查看下jq包是否存在:
yum list jq

# 安装jq:
yum install jq

重试问题解决。

参考文献