0%

连接

1
redis-cli -h host -p port -a password

显示所有

1
keys *

设置一个

1
set key value

获取一个

1
get key

删除一个

1
del key

清空当前数据库

1
flushdb

clear all database

1
flushall

获取类型

1
type key

获取哈希表中的所有域(field)

1
HKEYS key 

获取 hash 值

1
HGET KEY_NAME FIELD_NAME 

获取 hash 值

1
HGET KEY_NAME FIELD_NAME 

参考:
https://www.runoob.com/redis/redis-tutorial.html

最近偶尔又翻到bobo老师的慕课专栏里的第一篇文章

编程语言的发展趋势:从没有分号,到DSL

看到里面讲到三目运算符,又想起bobo老师在慕课网swift课(课程好像下线了)里也提到过。
大致意思是说swift和python中的三目运算符在逻辑表意上(以下简称语义化)更好。
但是我感觉swift和python中的三目运算符形式,理解的时候还要拐一下弯。
return true if(条件成立)else false
而java和js中的三目运算符,当你熟练掌握之后,不仅从形式上更美观,而且也很容易理解。
return if(条件成立)ture else false
(当我写下这两个return语句的时候,我发现的确上面那个更好理解,但是我发现这主要是前面return的问题,如果没有return的话,下面那个就是一个最简单的if else语句,而上面那个很好的和return结合了,语义化更好)

下文中
把python和swift中的形式叫新的三目运算符(可能它不叫三目运算符)
把java和js中的形式叫旧的三目运算符或原先的三目运算符

当然对于新人或者不会编程语言的人来说,python和swift中的应该更容易看明白。

我还记得还是编程小白的时候,也是用了很长时间才能一遇到三目运算符就像加减乘除一样瞬间理解,也就是说原先的三目运算符需要一个学习成本,而新的三目运算符学习成本比较低,就像是自然语言一样。

从代码的优雅上来说,我还是更喜欢原先的三目运算符

另外三目运算符的一个主要功能就是简化代码,新的只是把两个符号换成了两个英文字母,在没有过多增加复杂度的情况下达到了语义化的目的

再者,这种return放前面,if放后面的倒装结构本来就更符合英语的语法结构
如果想要更语义化一些,肯定就变成了下面这种
if(条件成立) return true else return false
而这又回到了if else语句,缺失了简洁性。(可能未来的编程语言不需要简洁性,直接自然语言。比如:
未来的你让你的机器人助理给你买张机票,你会说:如果有靠窗的给我买靠窗的,没有的话,就随便买吧。)

所以新的三目运算符可能是在简洁性和语义化之间做了一个最好的取舍。

解决方式:

1
git clean -d -fx

删除 一些 没有 git add 的 文件;

git clean 参数

-n 显示将要删除的文件和目录;

-x -----删除忽略文件已经对git来说不识别的文件

-d -----删除未被添加到git的路径中的文件

-f -----强制运行

转载自:https://blog.csdn.net/u013452337/article/details/81360210

一、备份

1.命令行下备份为纯文本格式
切换为postgres用户(linux 命令)

su - postgres

备份到backupfile.bak

pg_dump dbname > backupfile.bak

windows下使用-U参数切换用户

pg_dump -h localhost -U postgres -p 5555 dbname > backupfile.bak

2.pgAdmin 4客户端备份为归档文件格式

二、还原

纯文本格式的脚本
使用psql

1.cd到postgresql安装目录,如:d:\program files\postgresql\10\bin>

2.执行 psql -U postgres -d dbname -p 5555 < backupfile.bak

另:使用CMD,不要使用powershell

不加-U(大写),windows下默认是administrator用户,-p是端口

归档文件格式(.sql文件,.backup文件)
使用pg_restore

参数:-d 数据库 -j 线程数(可以多线程提高速度) -v 详细模式(显示还原过程)-U(用户名,windows下需要加这项)

pg_restore –dbname=mydb –jobs=4 –verbose mydb.backup

简写:pg_restore -d mydb -j 4 -v mydb.backup

备注

命令行启动postgresql

pg_ctl start -D ../data

../data为你的数据存放路径

Bash(Bourne Again Shell)

查看文件夹大小

du -sh

新建文件

touch xxx

cp -f 不起作用

默认cp命令是有别名(alias cp=’cp -i’)的,无法强制覆盖,即使你用 -f 参数也无法强制覆盖文件。

加个反斜杠,可以使用 \cp 执行 cp 命令时不走 alias
1
\cp -rf 

-r 文件夹
-f 强制覆盖,不提示

临时取消 cp 的alias
1
2
unalias cp
cp a /test/a

scp

scp 是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
scp [可选参数] file_source file_target

1
scp -r ./dist/* root@ip:/www/wwwroot/jd.dreamlist.cn/

ssh

1
ssh root@ip

ssh-copy-id

此功能是把当前主机的 id_rsa.pub copy 到目标主机的 authrized_keys 里,从而实现无密码登录目标主机

1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@dreamlist.cn

tail & head

1
2
3
-n<行数> 显示文件的尾部 n 行内容
tail test.log -n 30

chown

chmod

给 sh 文件可执行权限

1
chmod ugo+x deploy.sh

查看文件属性

1
lsattr .user.ini

修改文件属性

1
chattr -i .user.ini

查找文件内容

grep ‘test’ package.json

ln

创建链接

Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

ln f1 f2

ln -s f1 f3

list

ls -li # -i参数显示文件的inode节点信息

which

显示行号

set nu

查看端口占用

sudo lsof -i :8080

杀死进程

sudo kill -9 进程pid

nohup

英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

1
nohup Command [ Arg … ] [ & ]

Command:要执行的命令。

Arg:一些参数,可以指定输出文件。

&:让命令在后台执行,终端退出后命令仍旧执行。

查看ip

ifconfig | grep “inet “ | grep -v 127.0.0.1

进程相关

ps

ps -ef & ps aux
-ef是System V展示风格,而aux是BSD风格。

top

按P – 以 CPU 占用率大小的顺序排列进程列表

按M – 以内存占用率大小的顺序排列进程列表
参考:
https://www.runoob.com/linux/linux-command-manual.html

top & ps

https://www.cnblogs.com/tudachui/p/9516009.html

初始化

1
2
$ pm2 init
$ pm2 ecosystem

启动

1
2
# start命令启动对应的node server文件
$ pm2 start ./build/server.js --name alisaname

参数
--name
--watch
启动npm命令

1
$ pm2 start npm --name "xxx" -- run start/dev

查看所有启动的进程列表

1
$ pm2 list

查看详细状态信息

1
$ pm2 show  <appname>/<id>

监控进程的 cpu 和内存使用情况

1
$ pm2 monit

显示某个进程的信息

1
$ pm2 info <appname>/<id>

显示某个进程的日志

1
$ pm2 log <appname>/<id>

显示所有进程的日志信息

1
$ pm2 logs

运行健壮的 computer API endpoint

1
$ pm2 web

停止 指定/所有 进程

1
2
3
$ pm2 stop <appname>/<id>
$ pm2 stop all

重启 指定/所有 进程

1
2
$ pm2 restart <appname>/<id>
$ pm2 restart all

杀死 指定/所有 进程

1
2
$ pm2 delete <appname>/<id>
$ pm2 delete all

清空日志

1
$ pm2 flush

其他命令

1
2
3
$ pm2 update # Save processes, kill PM2 and restore processes
$ pm2 save # 保存当前应用列表
$ pm2 startup # 产生 init 脚本 保持进程活着

配置文件

js 格式

请注意,使用 js 配置文件要求文件名结尾为 .config.js

例如:ecosystem.config.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
module.exports = {
apps : [{
name: 'API',
script: 'app.js',
args: 'one two',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '1G',
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production'
}
}],

deploy : {
production : { // 任务名
user : 'node', // 服务器登录用户名
host : '212.83.163.1', // 可为数组
port : '22',
ref : 'origin/master',
repo : 'git@github.com:repo.git',
path : '/var/www/production', // 服务器网站存放地址
'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env production'
}
}
};
部署时注意

path 给予权限

1
2
3
4
# setup
pm2 deploy ecosystem.config.js production(任务名) setup
# deploy
pm2 deploy ecosystem.config.js production(任务名)

json 格式

例如:process.prod.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"name": "egg",
"script": "server.js",
"cwd": "./",
"exec_mode": "cluster",
"watch": false,
"ignore_watch": [
"node_modules",
"logs"
],
"instances": 4,
"error_file": "logs/err.log",
"out_file": "logs/out.log",
"log_date_format": "YYYY-MM-DD HH:mm:ss",
"env": {
"NODE_ENV": "production"
},
"engines": {
"node": ">=7.6"
}
}

可以根据需要设置任意多个JSON应用程序声明。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"apps": [
{
"name": "testOne",
"script": " testOne/server.js",
"instances": 1,
"log_date_format": "YYYY-MM-DD HH:mm Z",
"max_memory_restart": "500M"
},
{
"name": "testTwo",
"script": " testTwo/server.js",
"instances": 1,
"log_date_format": "YYYY-MM-DD HH:mm Z",
"max_memory_restart": "500M"
}
]
}

启动

1
$ pm2 start process.prod.json

YAML 格式

常用配置项说明

apps: json结构,apps是一个数组,每一个数组成员就是对应一个pm2中运行的应用;

name:应用程序名称;

cwd:应用程序所在的目录;

script:应用程序的脚本路径;

log_date_format: 指定日志日期格式,如YYYY-MM-DD HH:mm:ss;

error_file:自定义应用程序的错误日志文件,代码错误可在此文件查找;

out_file:自定义应用程序日志文件,如应用打印大量的标准输出,会导致pm2日志过大;

pid_file:自定义应用程序的pid文件;

interpreter:指定的脚本解释器;

interpreter_args:传递给解释器的参数;

exec_mode:应用程序启动模式,支持 fork 和 cluster 模式,默认是 fork;

instances: 应用启动实例个数,仅在 cluster 模式有效;

min_uptime:最小运行时间,这里设置的是60s即如果应用程序在60s内退出,pm2会认为程序异常退出,此时触发重启max_restarts设置数量;

max_restarts:设置应用程序异常退出重启的次数,默认15次(从0开始计数);

autorestart :默认为true, 发生异常的情况下自动重启;

cron_restart:定时启动,解决重启能解决的问题;

max_memory_restart:最大内存限制数,超出自动重启;

watch:是否启用监控模式,默认是false。如果设置成true,当应用程序变动时,pm2会自动重载。这里也可以设置你要监控的文件。

ignore_watch:忽略监听的文件夹,支持正则表达式;

merge_logs: 设置追加日志而不是新建日志;

exec_interpreter:应用程序的脚本类型,默认是nodejs;

autorestart:启用/禁用应用程序崩溃或退出时自动重启;

vizion:启用/禁用vizion特性(版本控制);

env:环境变量,object类型;

force:默认false,如果true,可以重复启动一个脚本。pm2不建议这么做;

restart_delay:异常重启情况下,延时重启时间;

参考:
https://pm2.keymetrics.io/

https://www.cnblogs.com/huiguo/p/12694542.html

https://juejin.im/post/5be406705188256dbb5176f94

https://www.douban.com/note/314200231/

乔布斯配音无字幕版

【英语原文】

Here’s to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the square holes. The ones who see things differently. They’re not fond of rules. And they have no respect for the status quo. You can quote them, disagree with them, glorify or vilify them. About the only thing you can’t do is ignore them. Because they change things. They push the human race forward. And while some may see them as the crazy ones, we see genius. Because the people who are crazy enough to think they can change the world are the ones who do.

【中文译文】

致疯狂的家伙们。他们不合时宜,我行我素。他们桀敖不驯,反叛忤逆。他们麻烦不断,惹是生非。他们像方孔中的圆桩。他们用与众不同的角度看待事情。他们既不墨守成规,也不安于现状。你尽可以认同他们,反对他们,赞美或者鄙视他们。不过你唯独不能漠视他们,因为他们改变着寻常事情。他们推动人类向前。也许有些人认为他们是疯子,在我们眼中他们却是天才。因为只有那些疯狂到认为自己可以改变世界的人,才能真正改变世界。

【翻译笔记】

1.misfit

n.不称职的人;不适应环境的人;

2.rebel

n.反叛者;造反者;叛乱分子

反抗者;反对任何权威和控制的人

3.troublemaker

n.捣乱者,闹事者;惹麻烦的人

这几个词本身都是偏贬义,但是在这个文案中,是赋予了它们褒义的。

4.peg

n.钉;栓;短桩;桶塞;挂钉;挂钩;测标;桩钉

有关peg的短语:

off the peg 现成的,标准的

I bought the dress off the peg.

这连衣裙我是买现成的。

peg down 用木桩钉住,约束,谈妥

The government is attempting to peg down the price of food.

政府正试图限制食品的价格。

5.status quo n. 现状,维持现状

“I’m not interested in preserving the status quo; I want to overthrow it.” —-Niccolo Machiavelli

我无意保留现状,我想要推翻它。– 尼科洛-马基雅维里

“非同凡响”广告中出现的人物介绍(部分)

Einstein

爱因斯坦:美籍德国犹太裔,理论物理学家,相对论的创立者,现代物理学奠基人。1921年获诺贝尔物理学奖,1999年被美国《时代周刊》评选为“世纪伟人”。

Bob Dylan

鲍勃·迪伦被认为是20世纪美国最重要、最有影响力的民谣、摇滚歌手,并被视为20世纪60年代美国民权运动的代言人。

Martin Luther King

马丁·路德·金:著名的美国民权运动领袖。1963年,马丁·路德·金晋见了肯尼迪总统,要求通过新的民权法,给黑人以平等的权利。1963年8月28日在林肯纪念堂前发表《我有一个梦想》的演说。1964年度诺贝尔和平奖获得者。1968年4月,马丁·路德·金前往孟菲斯市领导工人罢工被人刺杀,年仅39岁。1986年起美国政府将每年1月的第三个星期一定为马丁路德金全国纪念日。

Buckminster Fuller

巴克明斯特·福勒:美国建筑师,人称无害的怪物,半个世纪以前富勒就设计了一天能造好的“超轻大厦”、能潜水也能飞的汽车、拯救城市的“金刚罩”。他在1967年蒙特利尔世博会上把美国馆变成富勒球,使得轻质圆形穹顶今天风靡世界,他提倡的低碳概念启发了科学家并最终获得诺贝尔奖。

John Lennon and Yoko Ono

约翰·列侬:英国著名摇滚乐队“披头士”(The Beatles,也译做“甲壳虫”)成员,摇滚史上最伟大的音乐家之一 ,披头士乐队的灵魂人物,诗人,社会活动家,反战者。

小野洋子:日裔美籍音乐家、先锋艺术家,约翰·列侬(John Lennon)的第二位妻子。

全局操作

npm 加参数 -g/--global

yarn 加参数 global

查看已安装 npm 包

1
2
3
4
5
6
7
8
npm ls/list/la/ll
npm ls/list xxx
npm list --depth=0
npm list --depth=0 --global/-g

yarn list
yarn list xxx
yarn global list

查看 npm 包版本

1
2
3
npm view/info/show/v xxx 
npm view xxx version # 最新版本
npm view xxx versions # 所有已发布版本

安装npm包

1
2
3
4
5
6
npm install
npm i

yarn add

pnpm i

删除npm包

1
2
3
npm uninstall/remove/rm/r/un/unlink <package>

yarn remove <package>

查看可升级的包

1
2
npm outdated
yarn outdated

npm 颜色:

黄色表示不符合我们指定的语意化版本范围 - 不需要升级

红色表示符合指定的语意化版本范围 - 需要升级

更新npm包

1
2
3
4
5
npm install <package>@latest
npm update <package>

yarn add <package>
yarn upgrade <package> --latest

配置镜像

1
2
3
4
5
npm config set registry https://registry.npm.taobao.org

yarn config set registry https://registry.npm.taobao.org -g

yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g

查看安装过程

1
2
3
npm i --timing=true --loglevel=verbose

yarn --verbose

npm root

npm explain

npm why

npm dedupe

1
npm ddp #Reduce duplication

代理

1
2
3
4
5
6
7
yarn config set proxy http://127.0.0.1:15236
yarn config set https-proxy http://127.0.0.1:15236

npm config set https-proxy

yarn config delete proxy
yarn config delete https-proxy

npm 官方文档
https://docs.npmjs.com/cli/v7/commands