首页
关于
Search
1
网站回归
20 阅读
2
以色列施行了种族灭绝吗?——数字来说明
15 阅读
3
当我指出 ChatGPT 的错误,它竟然改过来了
14 阅读
4
为什么要给日本单方面免签?
13 阅读
5
人类文明的瑰宝:苏联笑话
12 阅读
默认分类
科技
财经
军事
社会
历史
编程
随笔
登录
Search
标签搜索
苏联
以色列
巴勒斯坦
ChatGPT
JavaScript
AI
笑话
银行
华侨银行
终端
Mac Os
Linux
外国人
俄罗斯
女孩
滴滴
就业
手机
华为
广告
Bread
累计撰写
13
篇文章
累计收到
0
条评论
首页
栏目
默认分类
科技
财经
军事
社会
历史
编程
随笔
页面
关于
搜索到
13
篇与
的结果
2024-12-15
Linux 用户和用户组管理
创建和删除用户组groupadd 和 groupdel 命令可以创建和删除用户组groupadd test groupdel testuseradd 可以创建用户 -g 指定用户组,不指定则创建同名组 -d 指定 home 目录,不指定则为 /home/usernamegroupadd testg mkdir /home/testu useradd testu -g testg -d /home/testuuserdel 可以删除用户-r 同时删除 home 目录userdel testu -rid 命令可以查看用户所属的组id caddy uid=999(caddy) gid=997(caddy) groups=997(caddy)将用户添加到组可以用 usermod -aGgroupadd g1 groupadd g2 useradd u1 -g g1 usermod -aG u1 g2 usermod: group 'u1' does not exist usermod -aG g2 u1 id u1 uid=1000(u1) gid=1001(g1) groups=1001(g1),1002(g2)getent passwd 查看有哪些用户显示:用户名:密码(x代替):用户id:组id:描述信息:home目录:执行终端getent passwd sshd:x:101:65534::/run/sshd:/usr/sbin/nologin caddy:x:999:997:Caddy web server:/var/lib/caddy:/usr/sbin/nologin u1:x:1000:1001::/home/u1:/bin/shgetent group 可以查看组getent group _ssh:x:108: caddy:x:997: g1:x:1001: g2:x:1002:u1添加用户到 sudoerusermod -aG sudo username
2024年12月15日
10 阅读
0 评论
0 点赞
2024-12-14
Mac Os 在终端下复制粘贴字符串的时候,偶然多了一对 00~ 01~ 字符
Mac Os 的终端有一个鲜为人知很少使用的功:是括号粘贴模式(bracketed paste mode)。当您处于括号粘贴模式并粘贴到终端时,内容将由序列 \e[200~ 和 \e[201~ 包裹。例如,假设我从网站复制了字符串 echo 'hello'\n。当我粘贴到终端时,它会向正在运行的任何程序发送 \e[200~echo 'hello'\n\e[201~。这个功能可以让程序可以区分您手动输入的内容和您粘贴的内容。为什么需要这个功能呢?例如,许多终端应用程序专门处理某些字符:特别是当您按下回车键时,它会发送一个换行符。大多数 shell 会在此时执行输入缓冲区的内容。这通常是您想要的,但也可能不是。同时,这意味着如果您粘贴到终端中的任何内容中有换行符,它们也会运行输入缓冲区的内容。有时发现突然终端打开了括号粘贴模式,为什么终端会打开括号粘贴模式呢?其实大部分情况都不是我们主动开启的,是由个别软件在无意中将括号粘贴模式开启的。当开启了括号粘贴模式粘贴的字符串收尾会多了一对字符:00~ xxx 01~,一般情况下我们把括号粘贴模式关闭就可以了。解决方案只需在终端关闭括号粘贴模式即可:printf "\e[?2004l"那如果想主动开启括号粘贴模式该如何操作呢?也只需在终端开启括号粘贴模式即可:printf "\e[?2004h"
2024年12月14日
12 阅读
0 评论
0 点赞
2024-12-11
动真格?新加坡华侨「正式清退」大陆存量用户!已下户的也会被关户!账户里的钱怎么办?
新加坡华侨银行 OCBC Bank 关闭了非新加坡居民申请通道!这是今年最容易申请的境外银行账户!!今天给大家分享另外一个“惊悚”消息:新加坡华侨银行开始正式清退中国用户!具体是怎么清退的?账户里的钱怎么办?还可以开哪些银行?别着急,为大家一一解答~01 华侨银行彻底清退存量用户新加坡华侨银行要求客户提供地址/住址证明或者发薪证明!然而,生活在大陆的我们怎么会有新加坡地址呢?更别提发薪证明了!很明显,这就是新加坡华侨银行拒绝内地人开立华侨电子账户的手段。提供不了?那我们就关你账户!不过预估有些用户还没收到这个邮件,银行邮件肯定是一批一批的发送,用户较多的情况下,不可能一下子全发出去,系统都扛不住,预估最近大家都会陆续收到的,没有所谓的“存量用户”,也不要抱有侥幸心理。不过大家不要过于慌张,此次清退只针对于用户自主申请的【360电子账户】!就是APP直接线上开户的那种普通户。宏富理财账户不受此次清退消息的任何影响!您正常使用即可!02 账户被关,里面的钱怎么办?账户被关目前看来是不可避免的了!那我账户里面的钱怎么办?账户都要被关了!当然是“弃车保帅”,把钱尽快转移啊!如果账户资金很少,OCBC 支持支付宝扫码消费,直接在逛个超市啥的,扫支付宝、银联二维码消费,通过这种方式,直接把钱花掉~如果卡里钱不多,懒得折腾的话,那也可以消费掉,否则不推荐用这个方式。因为这可能会产生接近 2% 的手续费,不太划算。那如果资金比较多该怎么办?这里为大家支几个招,目前有五种方式来处理你们的资金,大家选择适合自己的方式即可:转移到其他海外银行卡里新办一个其他海外银行账户,把钱转进去。比如新加坡渣打、新加坡汇丰、新加坡花旗、香港华侨等,内地远程就可以办理,视频开户,简单便捷。一般会需要手续费,一两百每笔,2~3个工作日到账,具体看哪个银行了。转回内地银行卡里也会有人想要直接把钱转回内地,一个可以用熊猫速汇,另一个可以用跨境汇款。不过跨境汇款也有被拒的风险,万一国内银行拒收给退回去也很麻烦。用熊猫速汇首笔免手续费的,跨境汇款一笔大概是200左右的手续费。不过要注意,切换了汇出地,相当于换了平台,需要重新注册和认证账号。如果你之前注册过熊猫速汇,并且从国内汇出过。现在想要汇回,需要重新注册新加坡的「熊猫速汇」。进入熊猫速汇 APP,在个人汇款那里,汇款金额处切换为「SGD 新加坡」,收款金额处切换为「CNY 中国」。点击汇款,这时候,会弹出需要重新提交开户资料的提示,点击「确定」,进入资料提交步骤。之后选择「新加坡证件」开户,选择「护照」,然后提交你的内地护照就可以了。等开户审核通过,便可进行汇款操作了。微信和支付宝收款目前,OCBC 转账至微信或者支付宝的钱包,是不需要手续费的,操作也简单。先登录 OCBC 手机银行,点击下方中间的「转账与付款」,然后进入「海外转账」。进去之后选择「添加新收款人」,然后选择微信(WeChat Pay)或者支付宝(Alipay)。之后需要输入一下手机号和姓名拼音,注意仔细核对。提交之后需要过 12 小时才能去转账。好了,在这个 12 小时的等待期内,还有其他事要干,否则到不了账。如果你用支付宝收款,需要进入支付宝的「跨境汇款」栏目,提交一下「闪速收款」的收款信息。如果你想用微信,需要到微信官方的「微汇款」小程序,点击「我要收款」,去创建一个收款名片。过程都很简单,就是认证身份、填写信息、签署协议什么的,就不细说了。上面这一切弄好后,OCBC 那边等待期一过,就可以把钱打回来了。入金到券商里入金到券商账户做投资,比如说盈立、老虎、新加坡长桥等。建议开长桥新加坡,盈立新加坡和老虎这三家券商之一。长桥新加坡和长桥香港,盈立新加坡和香港新加坡之间是可以资金互转的,完全无损。目前港美股券商开户也有很优厚的新人福利,新人的话开户转钱进去刚好可以领取,属于顺带手的羊毛了。长桥新加坡:换成港币或者美元,资金划转到长桥香港,港币无损出金到香港银行,美元出金到部分银行可以无损。盈立新加坡:换成港币,无损出金到香港银行;换成美元,可资金划转到盈立香港,也是部分银行无损。老虎:换成港币,直接可以无损出金香港银行。需要注意的是,你入金之后如果没有别的海外银行账户,你是没有办法办理出金的。而且是需要同名的银行卡才能出金。所以说等你资金到了港美股券商后,可以找时间开几家香港银行账户,然后根据你用的券商把钱提出来。港卡的办理相对也是比较简单的,钱暂时放在券商里面也可以买货币基金吃利息。也就是说,如果你要新办一张新加坡渣打或者香港汇丰,先将360账户里的钱入金到券商账户,等到新卡办好之后,再提取到新账户就可以了!入金到wise里wise适合资金量比较小的用户,它主要是一个资金中转工具,而非存储工具。如果你资金比较多的话,可能会要求你提供资产证明。那么多少算多多少算少呢?这个没有明确规定,个人觉得十几万几十万的话就不太适合wise了。支票寄回内地支票寄回就是OCBC直接给你寄一张支票。OCBC预计将在强制关户后,通过支票形式进行退还用户存款。也就是说,在明年4月30日之后,如果你的账户里面还有资金,银行会往你当时开户时填写的地址,把你的余额用支票的方式寄回来。但如果你改地址了什么的也挺麻烦的。不是很推荐。建议大家尽快操作,到12月底账户就只出不进了!明年2025年4月30日之后将彻底关闭账户!也就是说不进不出!所以说,预留给大家处理资金的时间还有!想另外办一张海外账户用来存储资金的朋友,尽快办理就是了!03 华侨银行关户相关疑难问答Q:华侨银行为什么突然关闭360账户?A:360电子账户之所以受欢迎,是因为开户简单,足不出户凭借一部手机就可以,跟开A股账户一样简单。华侨银行的初衷,是为了方便中国人来新加坡旅游时的支付。但被很多不法人士钻了空子,很多人用这个账户来洗钱,现在新加坡华侨电子账户已经被新加坡金管局管控。Q:香港的华侨会受到此次清退的影响吗?A:不影响。香港华侨目前办理门槛很低,无需存款理财,还可以内地远程办理,想拿它当个备胎也是很不错的选择~Q:华侨360电子账户被关闭,想再开宏富理财账户可以吗?A:可以,但要等你的账户结清了,过一段时间才可以开,具体多久不好说。可以持续关注,有新消息会及时告知大家。Q:什么叫“合规居住证明”?A:工作、留学签证、居留身份,旅游签证不可以。Q:什么时候“清退”?A:按照说法到 25 年 4 月会完成清退动作。Q:如何知道自己被清退了?A:按照客服说法,会有邮件通知。04 大陆居民还能开哪些海外银行做“备胎”?大陆居民还能开哪些海外银行卡?选择还是比较多的:新加坡银行账户:新加坡渣打银行新加坡大华银行新加坡华侨银行(宏富理财)新加坡汇丰银行新加坡花旗银行香港银行账户香港华侨银行香港汇丰银行香港渣打银行香港恒生银行香港花旗银行中国银行(香港)
2024年12月11日
11 阅读
0 评论
0 点赞
2024-12-01
人类文明的瑰宝:苏联笑话
最近有粉丝私信抱怨说:“关注你太亏了,你都不能做到日更。”还有粉丝上周日留言:“终于又写长文了。”言外之意我之前那种动辄数千字的长文写的不多了。没错,这点我承认,但我也有无奈和苦衷。就拿昨天来说,我辛辛苦苦码了6000多字,结果一发——直接被拦,怎么改都不行;周一那篇写三百多年前“自挂煤山东南枝”人物的文章,洋洋洒洒5000多字,也发不出去。搞得我写东西都像在拆盲盒,写完了还得祈祷能过参茶,这种把自己辛苦的结晶交给别人决定命运的玩法,一度让我想放弃,后来还是在那位指导我这张又红又专首图的前辈点拨下,让我把打赏开了,用他原话说:“我就没见过谁和钱过不去的。“所以,朋友们,别怪我不写(其实周末我一般会喝大酒,确实懒得写),实在是我有时候就算写了也不一定发得出来啊。不过这种无奈并不是今天才有的事,翻翻历史就会发现,参茶与创作之间的博弈早已存在。而在某些特殊的年代,这种博弈甚至催生了一种独特的艺术形式——笑话。说到这儿,不得不说说大家耳熟能详的苏联笑话了,那是强拳下民众智慧的结晶,既是无声的抗议,也是无奈的自嘲。苏联笑话有两个巅峰期,分别出现在20世纪初和20世纪七八十年代。比如20世纪初流传的一个经典笑话:一个小男孩问父亲什么是政治。父亲解释说:“就拿我们家来说吧,我负责赚钱养家,所以我是资本家;你妈妈掌管家里的钱,所以她是衙门;我完全掌控你们,所以你们是人民;保姆负责干活,所以她是工人阶级,而你穿着尿布的弟弟,就是未来。”小男孩似懂非懂。半夜,他被弟弟的哭声吵醒,想去找父母帮忙,但父母房门紧闭,他怎么敲也敲不开。他走到保姆的房间,却看到父亲和保姆正在床上光着身体相互撞击。无奈之下,他只能回到自己的床上继续睡觉。第二天早上,父亲问他是否明白了政治的含义。男孩回答:“明白了!资本家正在压迫工人,衙门在呼呼大睡,人民被忽视,而未来一塌糊涂。”这个笑话出自苏布之手,讽刺的是二月革命之后成立的俄罗斯共和国。然而到了1918年,苏布对待笑话的态度来了个彻底转变,苏俄专门针对笑话的“笑话犯”由此诞生。很多人以为苏联笑话的灵感来自西方,其实不然。俄国的幽默讽刺文学有着悠久的历史,18世纪时就已经形成了完整的体系,而这种幽默的流传甚至直接推动了盐轮参茶制度的出现。1790年,俄国启蒙运动的重要作家拉吉舍夫出版了《从彼得堡到莫斯科旅行记》,通过对农奴生活的记录,尖锐地抨击了沙皇制度。这本书激怒了叶卡捷琳娜女皇,她下令处死拉吉舍夫,并制定了严苛的参茶制度。俄国文学的底色本是现实主义,其基调深沉而悲怆,颇有唐代诗人杜甫的风格。但在参茶制度推出后,俄国文学不得不转向另一条道路,那便是幽默与讽刺。19世纪,俄国幽默讽刺文学在果戈里的笔下达到了巅峰。他的《钦差大臣》成为经典之作,据说《李卫当官》的灵感便来源于此。书中讲述了一个纨绔子弟在外省被误认为钦差大臣,引发了一系列荒诞的笑料。果戈里曾感慨:“我原本想忠实地描绘现实,但现实一次次让我惊讶。于是,我不可避免地滑向了讽刺。”进入苏联时期,这种讽刺性的幽默被称为“厨房政治”。人们常常在厨房这种私密的环境中,与亲密的朋友吐槽特权阶级的不堪,借此释放积压已久的情绪。苏联式笑话以短小、辛辣、直接见长,尤其在一定程度上反映了民众对政治的认知、情感和评价。这些笑话或讽刺物资匮乏,或嘲弄官僚主义,或揭露其腐败无能。比如,有人问:“怎样才能赶走克里姆林宫里的老鼠?”答:“只要挂一块牌子,上面写着‘集体农场’,过不了多久,大多数老鼠会饿死,剩下的也会逃之夭夭。”比如,问:“同志,你对这个问题有意见吗?”答:“我当然有意见,但我不同意我自己的意见。”再比如,有人问伊万诺维奇:“你经常读《真理报》吗?”答:“当然读。不然我怎么知道自己生活得多么幸福呢?”还比如,斯氏、赫鲁晓夫和勃列日涅夫乘坐火车出门。开着开着,火车突然停了。斯氏把头伸出车窗外,怒吼道:“枪毙火车司机!”可是车还是没有动;接着赫鲁晓夫说:“给火车司机恢复名誉!”车仍然没有动;勃列日涅夫说:“同志们,不如拉上窗帘,坐在座位上自己摇动身体,做出列车还在前进的样子。”又比如,亚历山大、凯撤、拿破仑做为贵宾,参加红场阅兵。——我要是有苏联的坦克,我将是战无不胜的!亚历山大说;——我要是有苏联的飞机,我将征服全世界!凯撤说;——我要是有《真理报》,世界现在也不会知道滑铁卢!拿破仑说。最后比如,戈尔巴乔夫时期。一男子来到酒馆……男子:“来瓶儿伏特加!”侍者:“10卢布。”男子:“上次来还是5卢布,怎么……?”侍者:“伏特加5卢布,另外5卢布是裆的哥命基金。”男人不情愿地掏出10卢布递给侍者。奇怪,侍者又找了他5卢布。男子:“怎么又找了5卢布?”侍者:“酒都卖光了。”不得不说,笑话往往具有鲜明的警示作用。人民的喜恶倾向,在笑话中总能找到直观的体现。如果苏联当局能够从这些笑话中汲取教训并及时改革,或许不至于在短短几十年后轰然倒塌。遗憾的是,他们对待笑话的态度,与沙皇时期并无二致。列氏曾经表示:“笑话对我们的工农国家是有害的。”苏布监察委员什基里亚托夫也在报告中强调:“不要低估笑话对我们的威胁。过去,我们用笑话削弱了旧证券的威信,而现在它被用来针对我们。”因此,苏联建国初期便制定了反哥命罪,并于1926年写入刑法典,第58条的第一款至第十款明确规定,任何传播、制作或收藏此类作品的人,均将接受判刑或流放。这种罪名被民间称为“笑话犯”。据苏安委1990年3月13日公布的数据,1931年至1940年间,共有560675人因该罪名被判刑。而到1953年,因该罪被定罪的人数累计达到370万人,其中79万人被处决。因此,俄罗斯学者将这一时期称为“黑色的年代”,充满“黑色的法庭、黑色的法律、黑色的良心和黑色的天理”。斯氏去世后,赫鲁晓夫释放了部分“笑话犯”。然而到了勃列日涅夫时代,苏联社会氛围再次走向严肃,反而让笑话的数量急剧增长,其中以勃列日涅夫时期的笑话居多,占总数的25%左右。1966年KGB成立了第五局,专门负责监控老百姓的盐轮。对于那些散布“诋毁”苏联光明伟大正确的笑话,轻则劳改一年,重则人间蒸发。直到戈尔巴乔夫上台,社会氛围逐渐宽松,笑话才逐渐失去了原有的市场。苏联笑话的流行恰恰说明,高压和强制或许能禁锢人的身体,却无法束缚人的思想。反而越是压迫性的环境,越会激发笑话的产生和传播。在这种环境下,苏联民众的智慧被迫得到锻炼,他们学会了用隐喻、暗示、留白等方式,在字里行间表达自己的思想。因此,苏联笑话成了弱势群体为数不多的精神武器。可以说,苏联笑话就是在“高压锅”里蒸出来的,它是民众在强制环境下的无奈反击,也是生活中苦中作乐的智慧结晶。它不光是让人捧腹的段子,更是一种对现实的深刻认知和讽刺艺术。毕竟,连苏联的高层们自己都承认笑话的威力。只可惜他们只会忙着抓“笑话犯”,却没空发现自己才是最大的笑话制造者。正如果戈里《钦差大臣》里那句台词:“你们笑的,其实是你们自己。”不过,话说回来,笑着笑着,苏联可就没了。作者:一颗躺平的韭菜
2024年12月01日
12 阅读
0 评论
0 点赞
2024-11-30
当我指出 ChatGPT 的错误,它竟然改过来了
ChatGPT 的回答一般挺不错的,比搜索引擎好很多。经常问它一些问题,大部分时候有满意的答案。当然不是 100% 满意,有时答案是错的,甚至明显是错的,然后我就会忽略错误答案,或者它的回答不完全对,但我也能补充出正确答案,然后就结束对话了。但今天我尝试指出它的错误,它竟然修复了。起因:我想写一段 JavaScript 使用 sftp 传文件夹的代码,首先安装依赖npm install ssh2-sftp-clientChatGPT 给的答案是:const Client = require('ssh2-sftp-client'); const path = require('path'); const fs = require('fs'); const sftp = new Client(); const config = { host: 'your.server.com', port: 22, username: 'your-username', password: 'your-password', // Alternatively, use SSH keys // privateKey: require('fs').readFileSync('/path/to/your/private-key') }; const localDir = '/path/to/local/folder'; // Local directory to upload const remoteDir = '/path/to/remote/folder'; // Remote destination directory // Function to recursively upload files and directories async function uploadDir(localPath, remotePath) { try { // Connect to the SFTP server await sftp.connect(config); // Ensure the remote directory exists await sftp.mkdir(remotePath, true); // 'true' means recursive mkdir // Read the contents of the local directory const files = await fs.promises.readdir(localPath); // Iterate through each file/subdirectory in the local directory for (let file of files) { const localFile = path.join(localPath, file); const remoteFile = path.join(remotePath, file); // Check if it's a file or directory const stats = await fs.promises.stat(localFile); if (stats.isDirectory()) { // If it's a directory, recursively upload it await uploadDir(localFile, remoteFile); } else { // If it's a file, upload it await sftp.put(localFile, remoteFile); console.log(`Uploaded file: ${localFile} -> ${remoteFile}`); } } console.log('Directory upload complete!'); } catch (err) { console.error('Error uploading directory:', err); } finally { // Close the SFTP connection sftp.end(); } } // Start uploading the directory uploadDir(localDir, remoteDir);这里有个问题,文件夹可能会有子文件夹,会递归调用 uploadDir 方法,在递归调用时会重复连接 sftp ,会报错:Error: connect: An existing SFTP connection is already defined at SftpClient.fmtError (/Users/wjf/wjf/repo/js-scp/node_modules/ssh2-sftp-client/src/index.js:94:22) at SftpClient.connect (/Users/wjf/wjf/repo/js-scp/node_modules/ssh2-sftp-client/src/index.js:188:20) at uploadDir (/Users/wjf/wjf/repo/js-scp/test2.js:32:20) at uploadDir (/Users/wjf/wjf/repo/js-scp/test2.js:50:23) { code: 'ERR_NOT_CONNECTED', custom: true }于是向 ChatGPT 指出错误:This code do not work. Because in the recursion, you connect sftp multiple times于是 ChatGPT 重新写了代码,把连接 sftp 放在递归函数的外面,给出了可运行的代码。const Client = require('ssh2-sftp-client'); const path = require('path'); const fs = require('fs'); const sftp = new Client(); const config = { host: 'your.server.com', port: 22, username: 'your-username', password: 'your-password', // Alternatively, use SSH keys // privateKey: require('fs').readFileSync('/path/to/your/private-key') }; const localDir = '/path/to/local/folder'; // Local directory to upload const remoteDir = '/path/to/remote/folder'; // Remote destination directory // Function to recursively upload files and directories async function uploadDir(localPath, remotePath) { try { // Read the contents of the local directory const files = await fs.promises.readdir(localPath); // Iterate through each file/subdirectory in the local directory for (let file of files) { const localFile = path.join(localPath, file); const remoteFile = path.join(remotePath, file); // Check if it's a file or directory const stats = await fs.promises.stat(localFile); if (stats.isDirectory()) { // If it's a directory, create it on the remote server await sftp.mkdir(remoteFile, true); // 'true' means recursive mkdir console.log(`Created directory: ${remoteFile}`); // Recursively upload the directory's contents await uploadDir(localFile, remoteFile); } else { // If it's a file, upload it await sftp.put(localFile, remoteFile); console.log(`Uploaded file: ${localFile} -> ${remoteFile}`); } } console.log('Directory upload complete!'); } catch (err) { console.error('Error uploading directory:', err); } } // Start the upload process async function startUpload() { try { // Connect to the SFTP server once await sftp.connect(config); // Upload the entire directory await uploadDir(localDir, remoteDir); } catch (err) { console.error('Error during connection or upload:', err); } finally { // Always end the SFTP connection when done sftp.end(); } } // Start the process startUpload();没想到人工智能还可以这样操作!
2024年11月30日
14 阅读
0 评论
0 点赞
1
2
3