pip换源

  1. 临时使用:

在使用pip的时候加参数-i

例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gevent

常用的pip源如下:

pypi 清华大学源:https://pypi.tuna.tsinghua.edu.cn/simple
pypi 豆瓣源 :http://pypi.douban.com/simple/
pypi 腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
pypi 阿里源:https://mirrors.aliyun.com/pypi/

  1. 永久修改:

linux下 :

mkdir ~/.pip
vi ~/.pip/pip.conf

添加内容如下:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

windows下,直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,新建文件pip.ini,内容如下

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

工具网站整理

  1. GPT合集网站:CHATGPT合集
  2. 随机邮箱:生成一个随机邮箱,当你要使用临时邮箱接收验证码的时候可以使用。
  3. 二维码生成器
  4. 句子(单词)翻译
    1. 免费:有道谷歌
    2. 限量免费:腾讯
    3. audio translate free:有道
  5. 单词解释
    1. 免费:有道非官方的有道详细见文章
  6. 电子书
    1. 免费英文电子书:https://www.gutenberg.org/
  7. 自媒体
    1. 视频下载:youtube等视频下载1
  8. 反编译神器:顺藤摸瓜
  9. 生成像素头像:网站1
  10. 接口大全:该网站列举了几百个可以使用的api接口,包含了生活工作中的各个方面,如查询天气、车辆、单词等等。
  11. 多空间浏览器: iOS版下载地址 Android版下载地址

有道翻译有官方接口-非官方

有道官方接口

官方接口:https://openapi.youdao.com/openapi

可查询英语单词注释、单词发音、网络释义(不一定存在),可获取在线发音地址。

具体使用,可参考 C# 有道API翻译 查询单词详细信息

有道非官方接口

何谓非官方接口,即不对外发布、小范围使用的接口。这种一般人都不知道的接口,官方不能保证数据的准确性

API接口:http://dict.youdao.com/jsonapi

拼接参数:

  • jsonversion:json 版本,目前已知取值12,返回结果大同小异。本文档采用2
  • client:客户端类型,取值mobile
  • q:查询的单词
  • dicts:需要查询哪些字典。目前已知 {"count":99,"dicts":[["ec","ce","newcj","newjc","kc","ck","fc","cf","multle","jtj","pic_dict","tc","ct","typos","special","tcb","baike","lang","simple","wordform","exam_dict","ctc","web_search","auth_sents_part","ec21","phrs","input","wikipedia_digest","ee","collins","ugc","media_sents_part","syno","rel_word","longman","ce_new","le","newcj_sents","blng_sents_part","hh"],["ugc"],["longman"],["newjc"],["newcj"],["web_trans"],["fanyi"]]}。可为空,为空则返回全部字段
  • keyfrom:mdict. + 版本号 + .手机平台。可为空
  • model:手机型号。可为空
  • mid:平台版本。可为空
  • imei:未知。可为空
  • vendor:应用下载平台。可为空
  • screen:屏幕宽高。可为空
  • ssid:用户名。可为空
  • network:网络状态,取值 wifi4G5G 等
  • abtest:ab测试。可为空
  • xmlVersion:默认使用5.1

案例:查询account单词

http://dict.youdao.com/jsonapi?jsonversion=2&client=mobile&q=account&dicts=%7B%22count%22%3A99%2C%22dicts%22%3A%5B%5B%22ec%22%2C%22ce%22%2C%22newcj%22%2C%22newjc%22%2C%22kc%22%2C%22ck%22%2C%22fc%22%2C%22cf%22%2C%22multle%22%2C%22jtj%22%2C%22pic_dict%22%2C%22tc%22%2C%22ct%22%2C%22typos%22%2C%22special%22%2C%22tcb%22%2C%22baike%22%2C%22lang%22%2C%22simple%22%2C%22wordform%22%2C%22exam_dict%22%2C%22ctc%22%2C%22web_search%22%2C%22auth_sents_part%22%2C%22ec21%22%2C%22phrs%22%2C%22input%22%2C%22wikipedia_digest%22%2C%22ee%22%2C%22collins%22%2C%22ugc%22%2C%22media_sents_part%22%2C%22syno%22%2C%22rel_word%22%2C%22longman%22%2C%22ce_new%22%2C%22le%22%2C%22newcj_sents%22%2C%22blng_sents_part%22%2C%22hh%22%5D%2C%5B%22ugc%22%5D%2C%5B%22longman%22%5D%2C%5B%22newjc%22%5D%2C%5B%22newcj%22%5D%2C%5B%22web_trans%22%5D%2C%5B%22fanyi%22%5D%5D%7D&keyfrom=mdict.7.2.0.android&model=honor&mid=5.6.1&imei=659135764921685&vendor=wandoujia&screen=1080x1800&ssid=superman&network=wifi&abtest=2&xmlVersion=5.1 

详细数据:

 以上节点中,代表的是字典关键字。我们来分析下其中关键的字典数据:

  • collins — 柯林斯英汉双解大辞典
  • ec — 英汉翻译字典(英汉释义)
  • ee — 英英翻译字典(英英释义
  • exam_dict — 考试专用字典(词汇词根+联想记忆法)
  • longman — 朗文当代高级英语辞典
  • phrs — 词组短语,如account单词对应的“current account”
  • rel_word — 同根词,如account单词对应的形容词“accountable”
  • syno — 近义词,单词每种释义对应的近义词列表
  • web_trans — 网络释义

 英语单词查询Demo

源代码请见Github: https://github.com/Kybs0/SearchWordByYoudao

Demo效果如下截图:

关键字:英语单词详细信息查询、有道API详细接口

vim查找与替换

 VIM中常用的替换模式总结。

1,简单替换表达式

替换命令可以在全文中用一个单词替换另一个单词:

:%s/four/4/g

“%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可

  如果你有一个象 “thirtyfour” 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成”thirty4″。要解决这个问题,用 “\<” 来指定匹配单词开头:

       :%s/\<four/4/g

显然,这样在处理 “fourty” 的时候还是会出错。用 “\>” 来解决这个问题:

       :%s/\<four\>/4/g

如果你在编码,你可能只想替换注释中的 “four”,而保留代码中的。由于这很难指定,可以在替换命令中加一个 “c” 标记,这样,Vim 会在每次替换前提示你:

       :%s/\<four\>/4/gc

2,删除多余的空格

要删除这些每行后面多余的空格,可以执行如下命令:

       :%s/\s\+$//

命令前面指明范围是 “%”,所以这会作用于整个文件。”substitute” 命令的匹配模式是

“\s\+$”。这表示行末($)前的一个或者多个(\+)空格(\s)。替换命令的 “to” 部分是空的:”//”。这样就会删除那些匹配的空白字符。

3,匹配重复性模式

星号项 “*” 规定在它前面的项可以重复任意次。因此:

       /a*

匹 配 “a”,”aa”,”aaa”,等等。但也匹配 “” (空字串),因为零次也包含在内。星号 “*” 仅仅应用于那个紧邻在它前面的项。因此 “ab*” 匹配 “a”,”ab”,”abb”,”abbb”,等等。如要多次重复整个字符串,那么该字符串必须被组成一个项。组成一项的方法就是在它前面加 “\(“,后面加 “\)”。因此这个命令:

       /\(ab\)*

匹配: “ab”,”abab”,”ababab”,等等。而且也匹配 “”。

要避免匹配空字串,使用 “\+”。这表示前面一项可以被匹配一次或多次。

       /ab\+

匹配 “ab”,”abb”,”abbb”,等等。它不匹配 后面没有跟随 “b” 的 “a”。

要匹配一个可选项,用 “\=”。 例如:

       /folders\=

匹配 “folder” 和 “folders”。

4,指定重复次数

要匹配某一项的特定次数重复,使用 “\{n,m}” 这样的形式。其中 “n” 和 “m” 都是数字。在它前面的那个项将被重复 “n” 到 “m” 次 (|inclusive| 包含 “n” 和 “m”)。例如:

       /ab\{3,5}

匹配 “abbb”,”abbbb” 以及 “abbbbb”。

  当 “n” 省略时,被默认为零。当 “m” 省略时,被默认为无限大。当 “,m” 省略时,就表示重复正好 “n” 次。例如:

       模式 匹配次数

       \{,4} 0,1,2,3 或 4

       \{3,} 3,4,5,等等

       \{0,1} 0 或 1,同 \=

       \{0,} 0 或 更多,同 *

       \{1,} 1 或 更多,同 \+

       \{3} 3

5,多选一匹配

在一个查找模式中,”或” 运算符是 “\|”。例如:

       /foo\|bar

这个命令匹配了 “foo” 或 “bar”。更多的抉择可以连在后面:

       /one\|two\|three

匹配 “one”,”two” 或 “three”。

  如要匹配其多次重复,那么整个抉择结构须置于 “\(” 和 “\)” 之间:

       /\(foo\|bar\)\+

这个命令匹配 “foo”,”foobar”,”foofoo”,”barfoobar”,等等。

  再举个例子:

       /end\(if\|while\|for\)

这个命令匹配 “endif”,”endwhile” 和 “endfor”。

Centos 配置eth0 提示Device does not seem to be present

一.故障现象:[root@c1node01 ~]# service network restartShutting down loopback insterface:                                                       [   OK  ]Bringing up loopback insterface:                                                            [   OK  ]Bringing up interface eth0:  Device eth0 does not seem to be present,delaying initialization.                    [FAILED]解决办法:[root@c1node01 ~]# rm -rf /etc/udev/rules.d/70-persistent-net.rules[root@c1node01 ~]# reboot ………………[root@c1node01 ~]# service network restartShutting down loopback insterface:                                                         [   OK   ]Bringing up loopback insterface:                                                              [   OK   ]Bringing up interface eth0:                                                                     [   OK   ][root@c1node01 ~]# 二.另一种方法造成这样的原因,是因为在虚拟机(Vmware)中移动了Centos系统对应的文件,导致重新配置时,网卡的MAC地址变了,输入ifconfig -a,找不到eth0······· 安装完一个centos虚拟机,又拷贝一份,开机后网卡无法正常启动,报错:Device eth0 does not seem to be present, 
delaying initialization

解决:# mv /etc/sysconfig/network-scripts/ifcfg-eth0 
sysconfig/network-scripts/ifcfg-eth1

vim 
sysconfig/network-scripts/ifcfg-eth1

修改DEVICE=”eth0″ 
为DEVICE=”eth1″

然后重启启动网卡尝试下 三.比第一种更深入一点

故障前的操作:

DELL刀片装的是CentOS6.3的操作系统,网卡识别的是em1和em2,由于工作需要做了槽位调整,并启动了刀片

故障现象:

启动后网络不通,通过iDRAC登录后route查看缺省路由正常;

重启网络服务:

[root@nodeA ~]# service network restart Shutting down loopback insterface: [ OK ] Bringing up loopback insterface: [ OK ] Bringing up interface em1: Device em1 does not seem to be present,delaying initialization. [FAILED]

分析问题和解决:

之前在别的文章中我们提过70-persistent-net.rules文件,所以看了一下:

[root@nodeA ~]# vi /etc/udev/rules.d/70-persistent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key.

# PCI device 0x14e4:0x163a (bnx2) SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”24:b6:fd:ab:76:1e”, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth1″

# PCI device 0x14e4:0x163a (bnx2) SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”24:b6:fd:ab:76:1c”, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″

发现NAME的名称不正确,依次将上述红色字体中的eth0改为em1,eth1改为em2;

*切记:网卡编号由MAC地址大小决定,MAC越小网卡编号越小;

如下:

…………

# PCI device 0x14e4:0x163a (bnx2)

SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”24:b6:fd:ab:76:1e”, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”em2″

# PCI device 0x14e4:0x163a (bnx2) SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”24:b6:fd:ab:76:1c”, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”em1″

保存退出~!

[root@nodeA ~]#reboot

mac显示隐藏文件

1,显示方法:在“终端”输入命令defaults write com.apple.finder AppleShowAllFiles TRUEkillall Finder重启Finder,系统隐藏的文件都显示出来了。2,隐藏方法:在“终端”输入命令defaults write com.apple.finder AppleShowAllFiles FALSEkillall Finder即可。3,通过finder菜单中的“前往文件夹”输入路径,也可以直接访问隐藏的文件。4,如何隐藏自己的个人文件夹。同样:终端隐藏个人文件夹,输入 chflags hidden 文件路径取消隐藏:输入 chflags nohidden 文件路径

恢复excel内容

1.复制一份该文件,并将扩展名“xlsx”改成“zip”;2.打开此压缩文件,找到“xl”下的“sharedStrings.xml”并解压出来,保留此窗口;3. 用“记事本”将解压出来的文件“sharedStrings.xml”打开,使用查找替换功能将所有的“</r><si>”替换成“</r></si><si>”,并保存关闭;(不知道是否存在“</t><si>”等其它情况)4.将改好的文件拖回步骤2中的窗口,并确定关闭;5.将文件扩展名从“zip”改回“xlsx”即可。

从Git仓库中恢复已删除的分支、文件或丢失的commit

在使用Git的过程中,有时可能会有一些误操作比如:执行checkout -f 或 reset -hard 或 branch -d删除一个分支结果造成本地(远程)的分支或某些commit丢失可以通过reflog来进行恢复,前提是丢失的分支或commit信息没有被git gc清除
一般情况下,gc对那些无用的object会保留很长时间后才清除的reflog是git提供的一个内部工具,用于记录对git仓库进行的各种操作可以使用git reflog show或git log -g命令来看到所有的操作日志
恢复的过程很简单:
1. 通过git log -g命令来找到我们需要恢复的信息对应的commit_id,可以通过提交的时间和日期来辨别。一个好的办法是运行:1、git log –since=”2 weeks ago” — myfile 可以2个星期期间的myfile历史;2、git log –branches=”develop” 可以查看develop的commit
2. 通过git branch recover_branch[新分支] commit_id 来建立一个新的分支这样,我们就把丢失的东西给恢复到了recover_branch分支上了。
Q:如果是不小心执行了git reset,还有办法取消吗?A:git reflog 查看操作历史,找到之前 HEAD 的 hash 值,然后 git reset –hard 到那个 hash 即可。
Q:怎样找回历史版本中删除的文件?A:先确定需要恢复的文件要恢复成哪一个历史版本(commit),假设那个版本号是: commit_id,那么git checkout [commit_id] — <path_to_file>就可以恢复。

git常用命令

删除分支     本地:git branch -d branch_name     远程:git push origin —delete branch_name 

https方式每次都要输入密码,按照如下设置即可输入一次就不用再手输入密码的困扰而且又享受https带来的极速

设置记住密码(默认15分钟):

git config --global credential.helper cache

如果想自己设置时间,可以这样做:

git config credential.helper 'cache --timeout=3600'

这样就设置一个小时之后失效

长期存储密码:

git config --global credential.helper store

增加远程地址的时候带上密码也是可以的。(推荐)

http://yourname:password@git.oschina.net/name/project.git

补充:使用客户端也可以存储密码的。

如果你正在使用ssh而且想体验https带来的高速,那么你可以这样做: 切换到项目目录下 :

cd projectfile/

移除远程ssh方式的仓库地址

git remote rm origin

增加https远程仓库地址

git remote add origin http://yourname:password@git.oschina.net/name/project.git

启动nginx

不能启动的表现:     /usr/local/app/nginx/sbin/nginx -s reload nginx: [error] open() “/usr/local/app/nginx/logs/nginx.pid” failed (2: No such file or directory)解决:     

sudo mkdir /usr/local/var/runthis error can occurs when nginx try to initialise pid file in localisation that doesn’t exist.

/usr/local/app/nginx/sbin/nginx -c /usr/local/app/nginx/conf/nginx.conf
使用service nginx start:      需要添加一个脚本:    /etc/init.d/nginx        然后nginx配置中启用nginx的daemon on      再chkconfig nginx on,开机自动启动; 或者 echo “service nginx start ”>>/etc/rc.local (这是使用者自订开机启动程序)