diff --git a/Blog/一命二运三风水.md b/Blog/一命二运三风水.md index 7849b924..4f4243f8 100644 --- a/Blog/一命二运三风水.md +++ b/Blog/一命二运三风水.md @@ -184,4 +184,4 @@ date: 2024-01-12 那么现如今,如果我们想要影响「命」,关键在于充分理解自我的成长历程、性格特质,以及所处时代背景。并在当今这个快速变化的时代中,可以做到充分了解全球历史、经济动态、各国发展现状和未来趋势,并结合对自我的深刻认知,开阔眼界,透过现实的迷雾,摆脱命赋予的枷锁。并且始终尊重客观规律,顺应时代潮流,即可在命运的河流中找到属于自己的航道,乘风破浪! -这里我是借用这十条因素来具体地阐述人与自然、社会之间相互联系和相互作用体系中的一部分。不过,如果你能洞悉其蕴含着的深刻奥秘,定能取得非凡的成就,毕竟玄妙只在颠倒颠。 \ No newline at end of file +这里我是借用这十条因素来具体地阐述人与自然、社会之间相互联系和相互作用体系中的一部分。不过,如果你能洞悉其蕴含着的深刻奥秘,定能取得非凡的成就,毕竟玄妙只在颠倒颠。 diff --git a/Blog/习惯养成第一步.md b/Blog/习惯养成第一步.md index c4218c67..e2903ddb 100644 --- a/Blog/习惯养成第一步.md +++ b/Blog/习惯养成第一步.md @@ -36,7 +36,7 @@ date: 2022-10-08 产出效率较低一直是我比较头疼的地方,也许是没有找到正确的方法论,感觉也是**写的太少想得太多**。不想写流水账感觉有点敷衍,未来还是需要不断尝试,寻找适合自己的方法。 > 曾经完成过一次 500 日写作,如今又开始新一轮 500 日写作的人帮你总结道:写作开始的时间,并不是你准备、收集、思考、规划、大纲等等过程,写作开始的时间就是你开始写下第一个字的时间,然后继续下去。 -> +> > —— ONO 目前还是参考 [ONO](https://onojyun.com/) 的建议,但是先写在 wiki 上,然后每周甄选一篇博客发表,暂时就这样尝试。**下一阶段性目标:实现每周产出。** diff --git a/Blog/人在囧途——青海湖.md b/Blog/人在囧途——青海湖.md index bacab8c3..abfc9dba 100644 --- a/Blog/人在囧途——青海湖.md +++ b/Blog/人在囧途——青海湖.md @@ -18,7 +18,7 @@ date: 2022-10-10 一直以来对大西北都拥有莫名的向往,更是憧憬有朝一日漫步在青海湖。在十一假期的第二天晚上,去打球的路上莫名的想去青海湖。 > 叔、突然那么一瞬间,咱去青海湖吧? -> +> > 速度回电话,明天去! 就这样,第二天四个成年人加三个小孩出发了,来了一场自由与热爱的旅行…… @@ -52,11 +52,11 @@ date: 2022-10-10 ![风景照](https://static.7wate.com/img/2022/10/10/edd37d5113d39.jpg) > 我们这里暂时不让下高速,请你前往 XXX 高速口下高速! -> +> > 啊哈,疫情防控办发布的通告,符合规定允许下高速啊。 -> +> > 抱歉,我们这里禁止下高速,请你自行折返! -> +> > …… 我日哦,就是 TM 这么戏剧化;我们奔袭了 1700km,临近青海湖 15km,禁止下高速。 diff --git a/Blog/人格类型测试.md b/Blog/人格类型测试.md index 44c171be..48f8dd9d 100644 --- a/Blog/人格类型测试.md +++ b/Blog/人格类型测试.md @@ -23,7 +23,7 @@ date: 2022-04-06 ## “指挥官” 人格 > 你的时间是有限的,所以不要浪费它为别人而活。 不要陷入教条 — 活在其他人的思想成果之中。 不要让他人意见产生的噪音淹没你自己的心声。 最重要的是,要拥有追随你的内心和直觉的勇气。 他们已经知道你真正想成为什么。 其他所有都是次要的。 -> +> > STEVE JOBS 指挥官人格类型的人是天生的领导者。 这种人格类型的人天生具有魅力和信心,他们所散发的权威性能召集大家为着一个共同目标努力。 但与领导者人格类型有所不同的是,他们的性格中有着近乎残酷的理性,用强大的动力、坚定的决心和锋芒毕露的思想实现为自己制定的一切目标。 好在只有 3% 的人口具有这种人格类型,否则就会无情碾压那些剩下的大多数胆小又敏感的人格类型 — 但是对于许多我们习以为常的公司和机构,我们都要感谢他们的贡献。 diff --git a/Blog/关于感情的事情.md b/Blog/关于感情的事情.md index 29651478..eb2d6eab 100644 --- a/Blog/关于感情的事情.md +++ b/Blog/关于感情的事情.md @@ -19,57 +19,57 @@ date: 2022-06-23 抖音最近新东方甄选流量火爆,被动接收了这份热点。其中也真的被董宇辉聊到初恋时的这段话触动了…… > 当时我一直觉得肯定是因为我没有钱,才给两个人平添了那么多的痛苦。其实我后来觉得不一定、不一定,可能那刻我既没有钱,也没有其他的东西。 -> +> > 那时候我也没有丰富的思想,也没有深刻的智慧,也没有跟别人交流时候体现出一种让人舒服的态度,什么都没有。 -> +> > 现在我再看自己当时就像一个摆烂的青年一样,什么都没有。却要求这世界一如既往的包容我,却要求身边的人照单接受地去接纳我。 -> +> > 只要他们不愿意,我就说是他们不好。 -> +> > 指责多容易呀,我们都喜欢做容易地事情,就是职责别人,对吧? -> +> > 现在觉得其实可能当时并不是因为我没钱,因为好多年后你还是没钱,所以可能跟钱地关系不大。 -> +> > 你即给不了生活上的安全感,其实很多时候你也给不了精神上的陪伴。你不够有吸引力、你没有什么美丽;坦诚来说,因为你读了足够多的爱情故事,所以你就会发现其实幸福的爱情里头,金钱不是最重要的。它可以是因素之一,但它不是唯一。它是之一,它不是唯一。 -> +> > 我们都喜欢一个非常健全完美的人,不能把爱情等于金钱,所以后来我就懂了…… 还有最近我接触到身边朋友的两个故事,关于感情的,大致如下: > 朋友 A -> +> > 背景:A 年少辍学跟随父亲多年打拼,又恰逢家里拆迁,随后父母包办婚姻,孕育两子,A 的妻子主职家庭夫妇,其姐姐曾多次再婚。 -> +> > 离婚原因不清楚,婚姻期间家庭矛盾不断。听来 A 说来得知主要原因是妻子太过悠闲,加上其姐姐的影响。在一次争吵下,一气之下签了离婚合同。 -> +> > 合同内容大致如下:A 获得儿子抚养权,女方获得女儿抚养权。A 一次性赋予 18.8w 抚养费 + 108 平房产,并由女方承担所有抚养权,无探视无任何联系(合同暂未履行)。 -> +> > 当时 A 以为是开玩笑了,觉得还会复合再加上法盲,觉得无所谓……女方因为其姐姐“经验丰富”所以可以理解为有备而来。 -> +> > --- -> +> > A 离婚后一个月认识现任妻子(无婚姻历史)并怀孕,期间曾想过打掉,但是女方坚持留下。 -> +> > --- -> +> > A 被前妻起诉,期间没能藏住被现任妻子发现。现任妻随有想法打掉孩子,但是客观原因无法打掉。A 的离婚官司被法院要求一个月内履行,A 无可奈何。现任妻子家人也是拒绝接受 A …… -> +> > A 一直很苦闷,后来也未去了解更多。 分享这个故事不是背后讨论朋友的选择,只是坚定的认为,感情上的事情务必一定善始善终,处理好自己,干干净净的去迎接下一份感情。 > 朋友 B -> +> > 背景:酒局上认识朋友的朋友,无过多了解,单方面倾听得来的。 -> +> > B 和妻子从男女朋友开始就比较坎坷,双方出身都挺贫困,后努力努力再努力终于走进婚姻的殿堂。 -> +> > 由于物质基础并不好,B 极度的想要给妻子更好的生活,期间尝试创业和不断换工作。但是生活依旧不如所愿,将生活推向了更低谷。 -> +> > B 和妻子面对这生活的不如意,就如一句话:夫妻本是同林鸟、大难临头各自飞。随后 B 和妻子争夺孩子抚养权,打了 3 年官司,都已经麻木了…… -> +> > B 说:我努力为了这个家,是为了追求我想要的生活,她陪着我奋斗也是为了想要的生活。但是生活越过越不如意,人总不能在一颗树上吊死呀。 -> +> > 但是我生活已经破灭了,活着感受不到希望,只剩下眼前的这两个孩子。也许真是贫贱夫妻百事衰…… 当代大家都有追求幸福生活的方式,你不能祈求的另一半陪你一起奋斗,就如你不能否定女方要车子、要房子是不对的。没有物质基础的感情就是一盘散沙,柴米油盐酱醋茶更会抹去鲜花的浪漫。 diff --git a/Blog/再游嵩山.md b/Blog/再游嵩山.md index 92b376c7..e449a3a8 100644 --- a/Blog/再游嵩山.md +++ b/Blog/再游嵩山.md @@ -53,13 +53,13 @@ date: 2022-03-17 从 12 点爬到 4 点才接近登顶,马上登顶的时候支起了凳子让小女孩休息了一会。小女孩一路上都在激励(要是我理解,这就是吐槽哈哈哈)我朋友,给他累的呀。小女孩还时不时的帮忙提东西,边爬边说: > 叔叔,你快点呗 ~ -> +> > 叔叔,你不行呀 ~ -> +> > 走,咱俩不管他了 -> +> > 那个叔叔已经丢了 -> +> > 走走走,不要他了 哈哈哈,甚是欢乐 ~ @@ -67,7 +67,7 @@ date: 2022-03-17 只记得小女孩妈妈吐槽说: > 唉,迟早被拐走。 -> +> > 女儿,你怎么不帮妈妈拿东西呀 说起来也是,就刚认识,小女孩便对我们如此之放心与信任。**世界上最可爱的果然是人类幼崽** diff --git a/Blog/新奇的 HR 经历.md b/Blog/新奇的 HR 经历.md index 79875021..f90cf2fa 100644 --- a/Blog/新奇的 HR 经历.md +++ b/Blog/新奇的 HR 经历.md @@ -15,21 +15,21 @@ date: 2024-02-18 前段时间,好友让我在招聘软件上帮他找几个财务方面的人员,主要涉及财务助理和财务经理两个岗位。虽然从没有担任过面试官,但我恰巧阅读了一些与人力资源相关的书籍,遂想尝试尝试体验一下。 -一开始我借助 ChatGPT 快速学习了解面试的基本流程,并且一起制定了精简的招聘方案。主要是涉及岗位职责,面试题目,薪资待遇。然后我在网上下载了一些常见的招聘软件,就开始 GoGoGo了。 +一开始我借助 ChatGPT 快速学习了解面试的基本流程,并且一起制定了精简的招聘方案。主要是涉及岗位职责,面试题目,薪资待遇。然后我在网上下载了一些常见的招聘软件,就开始 GoGoGo 了。 开始前两天,我尝试有针对性地邀请一些面试者进行沟通交流,如院校背景、从业经验、薪资期望过滤。但整体效果不佳,没有获得任何面试机会。不禁感叹,大家都说找工作难,实际应聘一名合格的员工更是难上加难。后来我想着三个臭皮还顶一个诸葛亮呢,转而采取了海投的方式,除了设置一些基本的过滤选项,然后向所有符合要求的人发出招呼。 -然后求职者就哗哗哗,纷至沓来。前后我沟通了 500+ 求职者,深入沟通了解 50 个左右,确定面试的有10+。果然还是基数上来了,比例就不是问题。 +然后求职者就哗哗哗,纷至沓来。前后我沟通了 500+ 求职者,深入沟通了解 50 个左右,确定面试的有 10+。果然还是基数上来了,比例就不是问题。 ## 分享我遇到的一些问题 ### 关于招聘软件的筛选 -我只能说**比你上大学报考志愿筛选的都细致**,什么985,211,双一流都能筛,指定学校都可以;就不说工作年限,薪资待遇了。前两天我筛选得很细致,但是效果不佳。后来我就设置了基础的过滤,并且点进去看看然后打招呼。社会化招聘,敲门砖真的很重要。 +我只能说**比你上大学报考志愿筛选的都细致**,什么 985,211,双一流都能筛,指定学校都可以;就不说工作年限,薪资待遇了。前两天我筛选得很细致,但是效果不佳。后来我就设置了基础的过滤,并且点进去看看然后打招呼。社会化招聘,敲门砖真的很重要。 ### 关于求职者的学历 -因为我是在郑州招聘,所以遇到最好的就是省内的郑大,河大,财大等这些。但就我感觉来说,这些求职者无论是大专也好,本科也罢。特别是刚毕业的,一两年工作经验的求职者,并不存在天上地下的差距。这个观点也许有些片面,毕竟没有遇到清华北大,985的。 +因为我是在郑州招聘,所以遇到最好的就是省内的郑大,河大,财大等这些。但就我感觉来说,这些求职者无论是大专也好,本科也罢。特别是刚毕业的,一两年工作经验的求职者,并不存在天上地下的差距。这个观点也许有些片面,毕竟没有遇到清华北大,985 的。 我认为的是**大部分刚毕业的年轻人不存在质的差距,但是教育资源倾斜的体现尤其明显**。毕竟有时候顶着一个好的头衔,也有可能迎来一句:名校毕业的就这水平么? @@ -57,7 +57,7 @@ date: 2024-02-18 ### 关于求职者的沟通 -其中还有一个很蛋疼的问题就是,有些求职者可能是海投吧。但是开场白就是双休么?缴五险一金么?工作时间?我倒是觉得有点不认同,毕竟现在会有哪家企业会把刀架在脖子上逼着你每天工作16小时么?并且还不给你发工资? +其中还有一个很蛋疼的问题就是,有些求职者可能是海投吧。但是开场白就是双休么?缴五险一金么?工作时间?我倒是觉得有点不认同,毕竟现在会有哪家企业会把刀架在脖子上逼着你每天工作 16 小时么?并且还不给你发工资? 而且薪资待遇的博弈,需要的是双方平等的地位才有可能谈妥。一开始求职者甚至连乙方都不算,你需要做的是加大自身筹码,直至坐上谈判桌,甚至成为甲方再开始讨论薪资待遇。开始只需要简单的开场白,并且礼貌介绍一下自己,并发送个人详细简历就好了,其他的无须多言。 @@ -65,12 +65,8 @@ date: 2024-02-18 ## 面试流程 - - ![work](https://static.7wate.com/2024/02/21/47f77e6afafef55f9ccb223f756688b3-work.png) - - 我利用 ChatGPT 制定了针对财务经理、财务助理面试题目,旨在全面考察求职者的综合素质、理论知识、行业经验以及项目管理能力。 线上初试环节,我会重点核查简历中的从业经验和项目经历,并评估其职业发展规划的明确性。此外,我还会提出一些实际操作问题,例如对现代财务管理软件的熟悉程度,以此来考察应聘者的实际操作能力。并通过深入探讨其项目经验和处理特定场景的方法,进而评估求职者的逻辑思维和问题解决能力。 diff --git a/Blog/看 V2Ex 的 ChatGPT 老哥浅谈办公室政治.md b/Blog/看 V2Ex 的 ChatGPT 老哥浅谈办公室政治.md index 9559158d..3867e353 100644 --- a/Blog/看 V2Ex 的 ChatGPT 老哥浅谈办公室政治.md +++ b/Blog/看 V2Ex 的 ChatGPT 老哥浅谈办公室政治.md @@ -20,79 +20,79 @@ date: 2023-09-14 1. [我给公司部署了一套 ChatGPT, 老板说没有目的性, 给我这件事的绩效打了个 C, 如何评价这一现象?](https://www.v2ex.com/t/963224#reply246) > 我主动给公司部署了一套 ChatGPT, 也给公司所有员工展开 AI 及 ChatGPT 的入门使用培训, 希望大家能更好地利用 AI 工具 来提高工作效率, 现在每天不同岗位提问的数量有 200~400 条左右 (公司有 100 人左右), 老板自己也用它来翻译各种文档和写各种文档的大纲等等, 结果老板给我的月度绩效考核时说这件事没有目的性, 也没有对业务到底帮助多少的数据支撑, 就这件事本身给我打了个 C, 我心里是不服气的, 但不知道如何反驳, 如何评价我做的这件事以及老板对我的绩效考核? -> +> > 第 1 条附言 -> +> > 补充点信息: 公司有 2 个老板, 给我打 C 的是二老板, 面试时候 2 个老板都面过我, 面完本来他们觉得我管理能力不行 (我估计是 2 老板觉得的), 过了 1 个月后大老板加我微信, 又约我聊了下, 说他还是比较倾向于技术纯粹的人, 他说他是长沙人, 觉得 " 辣椒不管怎么样还是辣最重要 ", 于是我进这家公司了, 做技术经理, 进公司后归二老板管, 大老板比较闲云野鹤, 不怎么管公司内部具体事宜。 -> +> > 我部署 ChatGPT 这件事, 也是大老板微信我说他朋友的公司用 ChatGPT 做了很多好玩的事, 当时我正好在研究自己部署 ChatGPT, 就和老板说了我打算给公司部署一套, 大老板给我了肯定和支持, 说 AI 优先, 逐步推广起来。等到周一我也和二老板说了,他没什么态度,就说试试看,后来我开展培训的时候大老板也来听了, 二老板没来听。 1. [我就是上次给公司部署 ChatGPT 的, 今天被开了](https://www.v2ex.com/t/966243#reply585) > 除了这件事, 还有另外一件也是我主动发现, 然后开发进行优化的事 -> +> > **背景:** 我发现投放部门每天每个人都要花费 1 个多小时去做重复劳动力的事, 并且做出来的月报数据不准确。 -> +> > **目标:** 开发 RPA 帮助投放部门释放生产力。 -> +> > **行动:**用 1 周的时间完成 RPA 的开发上线, 交付给投放小组使用 -> +> > **效果:** 用户给出的评价: 使用频率: 每天满意度: 非常满意响应速度: 非常快数据准确性: 非常准确 -> +> > “在查询日报、周报、月报及回本数据时,大大减少了人工查询成本,并且增加了 7 日、14 日、30 日数据情况,因此便于每日查看当日回本进度,便于投放把控投产及回本情况。” -> +> > 第 1 条附言 -> +> > 这次来吐槽主要也是想快点找到工作, 就像我最后截图说的, 现在一个人养家, 压力大, 我想找架构师工作 (我老婆也说我性格幼稚不成熟, 不适合做管理, 我个人自我评价也是对技术对人都是 " 赤子之心 "), 开发经验 10 年, 坐标杭州, 各位 V 友如果有推荐的岗位, 不胜感激 [抱拳] -> +> > 第 2 条附言 -> +> > 回复各位网友我的岗位和职责: -> +> > 1. 我的岗位是技术经理 (技术负责人), 面试时候就说进来后所有技术都是我这边管理; 我想着既然是技术 leader, 就应该用技术服务于大家, 立好技术团队的旗帜; > 2. 进来试用期就定了 2 个目标: -> +> > 1). 制定技术团队人效框架 (背景是二老板需要有一个相对客观的产出评估工具给所有员工打绩效), 我花了 2 周左右时间也做出了, 现在也在按这个框架管理所有的开发同学, 但是二老板后来说我没有继续跟进改进框架; > 2). 研发 AI 智能客服机器人, 我们是 2c 的电商互联网公司, 所以客服团队人员也是较多的, 老板希望用 AI 来解决客服团队的效率问题, 当时定的计划是 8 月底 AI 回答采用率达到 90%, 其实这件事我就用了 v 友推荐的 dify 这个开源产品 +gpt 的能力, 就做好了, 本身不需要写什么代码, 结果采用率已经到 95% 以上了; 二老板说如果没有 gpt 怎么办, 那我说就是要自研模型, 需要算法工程师岗位来做公司内部模型这件事, 但是公司没有算法工程师, 招聘又迟迟没有结果, 于是这件事在二老板看来我就没有继续做下去了; -> +> > 其实大家可以看出来, 如果只是这两件事, 我其实事情并不多 (特别是技术上面), 所以想主动做点事, 想充分发挥自己的价值, 结果现在就这样了 -> +> > 第 3 条附言 -> +> > 二老板喜欢否定和踩人, 这是公司员工基本都感受过的感觉, 很多人都怕和他开会, " 我一开始真的以为自己没做好, 后来发现好像不是这样的, 而且就算下次我改进了, 他也不会说好的地方, 继续挑刺说我其他不好的地方 ", 这是其他同学的原话, 还有同学说我 " 直脾气, 只做事不做人,在这里吃亏的, 老板只喜欢听话的 ", 我脾气是真的直, 如果否定, 指责我时完全子虚乌有, 指鹿为马, 我会会上当场怼回去 -> +> > 第 4 条附言 -> +> > 很多同学让我下掉我主动做的两个服务, 二老板昨天让 2 个开发来交接我这两个服务, 我没有拆, 不过..., 我也下掉了自己的 api-key -> +> > 第 5 条附言 -> +> > 希望大家不要抓些敏感信息, 甚至去 " 定位 " 到公司或人, 这样可能对我不利, 我希望所有吐槽就在 V2 这个小圈子里消化掉, 拜托各位 V 友啦🙏🏻 -> +> > 第 6 条附言 -> +> > 我想过了, 其实我被老板开, 和我主动多少事没有一点儿关系, 我主动做的对其他部门, 对公司有价值的事也不会在他心里留下什么不开的理由。本质上来说, 就是我面对一个喜欢 PUA 的又不实事求是的领导, 选择了怼回去, 这才有这样的结局, 不管以后在哪家公司, 我如果有技术上能帮大家的还会继续去做;如果我面对一个喜欢 PUA 的又不实事求是的领导, 我可能还会怼回去, 也可能会更成熟地去面对; 1. [我是 GPT 老哥, 现在公司因为我下了自己的 API-KEY 威胁我, 我可以怎么办](https://www.v2ex.com/t/966984#reply549) > 关于我的情况详情见: 交接时已经和技术同学说了我要下掉自己的 key, 因为用的是我的钱, 只是之前找公司报销, 以后不可能再用我的钱, 也告诉他应该怎么申请 OPENAI 的账号和 key, 结果我收到这样一份邮件, 请问各位 V 友我可以怎么保护自己 -> +> > ![法律函](https://static.7wate.com/img/2023/09/14/dc5d902f246aa.png) -> +> > 第 1 条附言 -> +> > 大家讨论怎么解决, 不要网暴, 否则那公司会更恶心, 谢谢 -> +> > 第 2 条附言 -> +> > HR 经理说提前三天通知, 没有赔偿, 我想仲裁就去好了 -> +> > 第 3 条附言 -> +> > 刚才我联系了以前同事, 原来是他们 VPN 到期了, 然后碰巧遇到我的事, 那些老板和高层不明所以就怪到我的头上, 所以发了这封邮件, 现在 vpn 恢复了, 他们用新申请的账号可以继续用了 -> +> > 第 4 条附言 -> +> > 刚打电话给律师了, 他说因为我签的是主动离职, 所以现在也无能为力了, 这个亏我吃过记住了 --- diff --git a/Blog/破万卷书,行万里路!.md b/Blog/破万卷书,行万里路!.md index 21882f0b..e476602f 100644 --- a/Blog/破万卷书,行万里路!.md +++ b/Blog/破万卷书,行万里路!.md @@ -131,9 +131,9 @@ date: 2023-02-08 下山之后,我们在纳西族村民家里听胖金妹(少数民族姑娘的称呼)讲解倒是挺有趣: > 我们纳西族崇尚圆润美,在这里男人是不用干活的,和你们内地是不一样的;我们结婚也不需要房子、车子、彩礼,倒是要送给男家几十头牦牛。就像这个小伙(朋友 200+ 斤),也只有村长家的姑娘才配得上咯。 -> +> > 我们这里男方虽然只会抽烟喝酒打打牌,看看孩子不用干活;但是男人是不上桌的,任何事男人都是没有话语权的。我们这里结婚有点类似于你们哪里的上门女婿,要不要考虑留在这里当上门女婿呀? -> +> > ······ 胖金妹后来宣传起了茶叶和牦牛干,试尝牦牛肉干的时候。我们硬生生给胖金妹上了一课,足足一斤多的牛肉直接干完哈哈哈 ~ 结果大家真的不好意思了,还是买了点牛肉干。胖金妹表示你们真的是太好意思了! diff --git a/Blog/谈谈我的「数字文具盒」 - 心得体会.md b/Blog/谈谈我的「数字文具盒」 - 心得体会.md index bd5de4bc..bfd9b760 100644 --- a/Blog/谈谈我的「数字文具盒」 - 心得体会.md +++ b/Blog/谈谈我的「数字文具盒」 - 心得体会.md @@ -34,4 +34,3 @@ date: 2022-11-30 不忘初心,方得始终;初心易得,始终难守。我也见过很多很多很多博友在折腾工具的路上一去不复返了,似乎忘了最初的本意,完全沉浸在折腾的乐趣里了。并不是要论个谁对谁错,我其实也非常喜欢折腾,真的嘎嘎快乐 ~ 因为我对于「数字文具盒」的定义就是为了提高学习、工作效率,并以结果为导向,以实现需求为目标的。所以如果你打造「数字文具盒」是为了提高效率,那么就切勿折腾;如果是为了快乐,那就好好折腾 ~ - diff --git a/Blog/长安三万里.md b/Blog/长安三万里.md index be6d806a..8635f6f2 100644 --- a/Blog/长安三万里.md +++ b/Blog/长安三万里.md @@ -25,7 +25,7 @@ date: 2023-07-17 《长安三万里》的剧情中,李白因为商人出身,无法考取功名,生性洒脱,虚掷光阴。高适虽满腔热血,追求功名,一心报国,但却处处事与愿违,整部剧中他俩形成了鲜明的对比。李白后来因为皇帝赏识被召进宫,但因性格洒脱,不甘心成为笼子中的金丝雀,便弃官寻求得道成仙。高适依旧坐冷板凳。杜甫科举不中,在长安待了数十年,最后落得一个屈辱般的芝麻官,但为了生活还是不得不接受。剧中最后李白颠沛流离,杜甫一生凄苦,剧中甚至连画面都不见了……后高适虽然大器晚成,但终究还是取得了功名。 > 片子很长,长到将近三个小时,长到身边有小朋友已经坐不住了,片子很短,短到王维张旭李龟年也只能匆匆一瞥,短到装不下李白高适以及盛唐灿烂的几十年,前半场鲜衣怒马少年郎与烈火烹油极尽繁华的盛唐,后半场前途困窘的中年人和高楼倾覆满目疮痍的河山,将进酒把片子推上的貌似是高潮,更是无限悲凉,好在悲凉后是两岸猿声啼不住,轻舟已过万重山。 -> +> > ——豆瓣书评 momo ![长安三万里](https://static.7wate.com/img/2023/07/25/c6c4c4aad5b0e.png) diff --git a/Tech/computer-network/网络协议/IP 网际协议.md b/Tech/computer-network/网络协议/IP 网际协议.md index 38fc9ef6..6ca81fe7 100644 --- a/Tech/computer-network/网络协议/IP 网际协议.md +++ b/Tech/computer-network/网络协议/IP 网际协议.md @@ -88,25 +88,25 @@ OSI 模型是一个参考模型,用于描述和理解复杂的网络通信过 #### 地址池管理 -- **子网划分**:根据网络规模和需求,合理划分子网。小型网络可能只需要一个子网,而大型或分布广泛的网络可能需要多个子网。通过子网划分,可以更有效地管理IP地址。 +- **子网划分**:根据网络规模和需求,合理划分子网。小型网络可能只需要一个子网,而大型或分布广泛的网络可能需要多个子网。通过子网划分,可以更有效地管理 IP 地址。 - **地址池规模**:评估网络内部设备的数量,包括不仅限于工作站、服务器、打印机和无线设备等,预测未来扩展需要,确保地址池有足够的地址可以分配。 -- **留白地址**:在地址池中预留一定数量的IP地址,用于未来扩展或临时需要。 +- **留白地址**:在地址池中预留一定数量的 IP 地址,用于未来扩展或临时需要。 #### 租期设置 -- **动态地址分配租期**:针对普通客户端设备,可以设置较短的租期(例如24小时),以保证IP地址能够有效循环利用。租期过短可能会增加网络流量,而过长则可能导致IP地址浪费。 +- **动态地址分配租期**:针对普通客户端设备,可以设置较短的租期(例如 24 小时),以保证 IP 地址能够有效循环利用。租期过短可能会增加网络流量,而过长则可能导致 IP 地址浪费。 - **租期续订策略**:设定合理的续订策略,例如当租期过半时尝试续订,以减少因租期到期而导致的网络中断。 #### 保留地址 -- **静态地址分配**:对于服务器、网络打印机、路由器等关键设备,分配静态IP地址。这样做可以确保这些设备的网络路径稳定可靠。 -- **DHCP保留**:在DHCP服务器上为特定的MAC地址保留IP地址。即使是在使用动态地址分配的环境中,也可以确保某些特定设备总是获得相同的IP地址。 +- **静态地址分配**:对于服务器、网络打印机、路由器等关键设备,分配静态 IP 地址。这样做可以确保这些设备的网络路径稳定可靠。 +- **DHCP 保留**:在 DHCP 服务器上为特定的 MAC 地址保留 IP 地址。即使是在使用动态地址分配的环境中,也可以确保某些特定设备总是获得相同的 IP 地址。 ## 子网划分和超网 子网划分目的在于将大型网络划分成更小、更易管理的网络段。可以通过更改子网掩码将一个大型网络的 IP 地址空间划分成多个小网络。每个子网有自己的网络地址和广播地址,以及一系列可用于分配给设备的 IP 地址。 -#### CIDR(无类别域间路由选择) +### CIDR(无类别域间路由选择) CIDR 是一种用于创建更灵活的网络地址分配方法的 IP 地址分配和路由选择方法。它允许更细粒度的子网划分,优化 IP 地址的使用。 @@ -182,7 +182,7 @@ CIDR 是一种用于创建更灵活的网络地址分配方法的 IP 地址分 tracert google.com ``` -- **IPConfig** 用于查看和刷新IP配置,如获取当前的 IP 地址、子网掩码、默认网关等。 +- **IPConfig** 用于查看和刷新 IP 配置,如获取当前的 IP 地址、子网掩码、默认网关等。 ```cmd ipconfig /all @@ -235,9 +235,9 @@ CIDR 是一种用于创建更灵活的网络地址分配方法的 IP 地址分 IPv6 的推出主要是为了解决 IPv4 地址耗尽的问题,但它带来的好处远不止于此。 -- **更大的地址空间**: IPv6 使用128位地址,理论上可以提供21282128个独立的网络地址,远远超过IPv4的232232个地址。这对于物联网(IoT)设备快速增长的时代尤为重要,每个设备都需要独立的网络地址。 -- **改进的路由和自动配置特性**: IPv6 提高了路由的效率和灵活性。它支持直接自动配置,减少了网络设置的复杂性,使设备能够自动获得IP地址,简化了网络管理。 -- **安全性增强**: IPv6 在设计之初就考虑到了安全问题,它原生支持IPsec,为数据传输提供加密和身份验证,而在IPv4中,这是一个可选项。 +- **更大的地址空间**: IPv6 使用 128 位地址,理论上可以提供 21282128 个独立的网络地址,远远超过 IPv4 的 232232 个地址。这对于物联网 (IoT) 设备快速增长的时代尤为重要,每个设备都需要独立的网络地址。 +- **改进的路由和自动配置特性**: IPv6 提高了路由的效率和灵活性。它支持直接自动配置,减少了网络设置的复杂性,使设备能够自动获得 IP 地址,简化了网络管理。 +- **安全性增强**: IPv6 在设计之初就考虑到了安全问题,它原生支持 IPsec,为数据传输提供加密和身份验证,而在 IPv4 中,这是一个可选项。 ### SDN(软件定义网络) @@ -251,11 +251,5 @@ SDN 是近年来网络技术领域的一大创新,它改变了传统网络架 了解最新的行业动态对于网络工程师至关重要,以下是一些值得关注的领域: - **5G**: 作为下一代移动通信标准,5G 不仅提高了数据传输速度,还大大减少了延迟,这对于实时应用如在线游戏、自动驾驶汽车和远程手术等领域将产生深远影响。 -- **边缘计算**: 随着IoT设备的增多,数据产生的地点越来越靠近用户,边缘计算通过在数据产生地点附近进行数据处理,可以减少延迟,提高处理速度。 +- **边缘计算**: 随着 IoT 设备的增多,数据产生的地点越来越靠近用户,边缘计算通过在数据产生地点附近进行数据处理,可以减少延迟,提高处理速度。 - **网络安全趋势**: 网络安全是一个持续演进的领域。了解最新的安全趋势,如使用机器学习和人工智能来预测和防御网络攻击,对于保护网络安全至关重要。 - - - - - - diff --git a/Tech/computer-network/网络基础/网络基础.md b/Tech/computer-network/网络基础/网络基础.md index 28f6e51d..41d51469 100644 --- a/Tech/computer-network/网络基础/网络基础.md +++ b/Tech/computer-network/网络基础/网络基础.md @@ -58,7 +58,7 @@ graph TD; end ``` -OSI(开放式系统互联)模型是一个概念性的框架,用于理解和设计网络协议的架构。这个模型由国际标准化组织(ISO)在1984年发布,将网络通信分为七个抽象层,每层负责不同的网络功能。下面是对OSI七层协议的系统性解释: +OSI(开放式系统互联)模型是一个概念性的框架,用于理解和设计网络协议的架构。这个模型由国际标准化组织(ISO)在 1984 年发布,将网络通信分为七个抽象层,每层负责不同的网络功能。下面是对 OSI 七层协议的系统性解释: ### 1. 物理层(Physical Layer) @@ -73,27 +73,27 @@ OSI(开放式系统互联)模型是一个概念性的框架,用于理解 ### 3. 网络层(Network Layer) - **功能**:负责在多个网络之间建立、维护和终止连接。它处理数据包的路由选择和转发。 -- **协议**:例如IP(Internet Protocol)、ICMP(Internet Control Message Protocol)等。 +- **协议**:例如 IP(Internet Protocol)、ICMP(Internet Control Message Protocol)等。 ### 4. 传输层(Transport Layer) - **功能**:为端到端的通信提供服务。它负责数据的分割、传输、错误检测和恢复。 -- **协议**:例如TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)等。 +- **协议**:例如 TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)等。 ### 5. 会话层(Session Layer) - **功能**:管理和控制两个网络节点之间的会话连接,负责建立、管理和断开会话。 -- **应用**:例如API、Socket编程等。 +- **应用**:例如 API、Socket 编程等。 ### 6. 表示层(Presentation Layer) - **功能**:确保从一个节点发送的数据可以被另一个节点的应用层读取和理解。它负责数据格式转换、数据加密和解密、数据压缩等。 -- **例子**:ASCII、JPEG、MPEG等数据格式。 +- **例子**:ASCII、JPEG、MPEG 等数据格式。 ### 7. 应用层(Application Layer) - **功能**:提供网络服务给最终用户的应用程序。它定义了用于与网络服务交互的各种协议。 -- **协议和服务**:例如HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、电子邮件、远程登录等。 +- **协议和服务**:例如 HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、电子邮件、远程登录等。 ## 网络协议 diff --git a/Tech/computer-security/用户安全/用户鉴权/JWT(JSON Web Token)鉴权.md b/Tech/computer-security/用户安全/用户鉴权/JWT(JSON Web Token)鉴权.md index 63f93342..87f2e37f 100644 --- a/Tech/computer-security/用户安全/用户鉴权/JWT(JSON Web Token)鉴权.md +++ b/Tech/computer-security/用户安全/用户鉴权/JWT(JSON Web Token)鉴权.md @@ -11,11 +11,12 @@ tags: author: 7Wate date: 2022-08-31 --- + ## JWT(JSON Web Token)鉴权 通过第三节,我们知道了 Token 的使用方式以及组成,我们不难发现,服务端验证客户端发送过来的 Token 时,还需要查询数据库获取用户基本信息,然后验证 Token 是否有效;这样每次请求验证都要查询数据库,增加了查库带来的延迟等性能消耗。 -**那么这时候业界常用的 JWT 就应运而生了!!!** +**那么这时候业界常用的 JWT 就应运而生了!!!** ### JWT 的定义 @@ -47,7 +48,7 @@ eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4 #### Payload 负载 -它包含一些声明 Claim(实体的描述,通常是一个 User 信息,还包括一些其他的元数据),用来存放实际需要传递的数据,JWT 规定了7个官方字段: +它包含一些声明 Claim(实体的描述,通常是一个 User 信息,还包括一些其他的元数据),用来存放实际需要传递的数据,JWT 规定了 7 个官方字段: - iss(issuer):签发人 - exp(expiration time):过期时间 diff --git a/Tech/getting-started/Git/进阶/工作流.md b/Tech/getting-started/Git/进阶/工作流.md index 64ae7c92..5a7d705a 100644 --- a/Tech/getting-started/Git/进阶/工作流.md +++ b/Tech/getting-started/Git/进阶/工作流.md @@ -102,7 +102,7 @@ Git 允许多个远程仓库存在,使得这样一种工作流成为可能: 1. John 与 Jessica 在一个特性分支(featureA)上工作。 2. Jessica 同时与第三个开发者 Josie 在第二个特性分支(featureB)上工作。 -3. 公司使用了一种整合-管理者工作流程,独立小组的工作只能被特定的工程师整合, 主仓库的 master 分支只能被那些工程师更新。 +3. 公司使用了一种整合 - 管理者工作流程,独立小组的工作只能被特定的工程师整合, 主仓库的 master 分支只能被那些工程师更新。 4. 在这种情况下,所有的工作都是在基于团队的分支上完成的,并且稍后会被整合者拉到一起。 ………… @@ -198,7 +198,7 @@ git send-email .patch ### 应用来自邮件的补丁 -#### 使用 apply 命令应用补丁 +#### 使用 Apply 命令应用补丁 如果你收到了一个使用 git diff 或 Unix diff 命令的变体(不推荐使用这种方式,具体见下一小节) 创建的补丁,可以使用 git apply 命令来应用。 假设你将补丁保存在了 /tmp/patch-ruby-client.patch 中,可以这样应用补丁: @@ -206,7 +206,7 @@ git send-email .patch git apply /tmp/patch-ruby-client.patch ``` -#### 使用 am 命令应用补丁 +#### 使用 Am 命令应用补丁 如果补丁的贡献者也是一个 Git 用户,并且其能熟练使用 format-patch 命令来生成补丁,这样的话你的工作会变得更加轻松,因为这种补丁中包含了作者信息和提交信息供你参考。 @@ -224,7 +224,7 @@ git am .patch #### 合并工作流 -一种基本的工作流就是将所有的工作直接合并到 master 分支。 在这种情况下,master 分支包含的代码是基本稳定的。 当你完成某个主题分支的工作,或审核通过了其他人所贡献的工作时,你会将其合并进入 master分支,之后将主题分支删除,如此反复。 +一种基本的工作流就是将所有的工作直接合并到 master 分支。 在这种情况下,master 分支包含的代码是基本稳定的。 当你完成某个主题分支的工作,或审核通过了其他人所贡献的工作时,你会将其合并进入 master 分支,之后将主题分支删除,如此反复。 #### 大项目合并工作流 @@ -250,6 +250,7 @@ v1.6.2-rc1-20-g8c5b85c #### 准备一次发布 现在你可以发布一个构建了。 其中一件事情就是为那些不使用 Git 的可怜包们创建一个最新的快照归档。 使用 + git archive 命令完成此工作: ```shell diff --git a/Tech/getting-started/Git/进阶/钩子.md b/Tech/getting-started/Git/进阶/钩子.md index 1eb37e97..fa03ab9d 100644 --- a/Tech/getting-started/Git/进阶/钩子.md +++ b/Tech/getting-started/Git/进阶/钩子.md @@ -11,6 +11,7 @@ tags: author: 7Wate date: 2022-09-13 --- + ## 钩子定义 钩子是 Git 在特定的重要动作发生时触发自定义脚本,你可以随心所欲地运用这些钩子。主要分以下两种类型: @@ -41,7 +42,7 @@ $ tree .git/hooks 0 directories, 12 files ``` -这些脚本除了本身可以被调用外,它们还透露了被触发时所传入的参数。 所有的示例都是 shell 脚本,其中一些还混杂了 Perl 代码,任何正确命名的可执行脚本都可以正常使用 —— 你可以用 Ruby 或 Python,或任何你熟悉的语言编写它们。 +这些脚本除了本身可以被调用外,它们还透露了被触发时所传入的参数。 所有的示例都是 shell 脚本,其中一些还混杂了 Perl 代码,任何正确命名的可执行脚本都可以正常使用 —— 你可以用 Ruby 或 Python,或任何你熟悉的语言编写它们。 ### 生命周期 diff --git a/Tech/getting-started/Shell/Shell 必备锦囊.md b/Tech/getting-started/Shell/Shell 必备锦囊.md index 62b972a9..5b5b2d6b 100644 --- a/Tech/getting-started/Shell/Shell 必备锦囊.md +++ b/Tech/getting-started/Shell/Shell 必备锦囊.md @@ -11,9 +11,9 @@ author: 7Wate date: 2022-12-04 --- -## tab 补全 +## Tab 补全 -在 Shell 中可以使用 tab 键盘实现快速补全,双击 tab 可以显示补全列表。 +在 Shell 中可以使用 tab 键盘实现快速补全,双击 tab 可以显示补全列表。 ``` shell @:~$ cd @@ -24,9 +24,10 @@ date: 2022-12-04 .cache/ .sudo_as_admin_successful demo/ ``` -## history 历史 +## History 历史 history 命令可以显示执行过的命令历史。 + ``` shell @:~$ history 1 pwd @@ -51,7 +52,7 @@ helloworld! ## `!` 快捷符号 -`!` 符号拥有很多便捷的实用方法,例如 `!!` 快速执行上条命令,特别适用于 sudo 权限的情况下。`!foo` 快速执行历史命令中 foo 开头的命令。`!$` 命令引用上调命令中的最后一位参数。 +`!` 符号拥有很多便捷的实用方法,例如 `!!` 快速执行上条命令,特别适用于 sudo 权限的情况下。`!foo` 快速执行历史命令中 foo 开头的命令。`!$` 命令引用上调命令中的最后一位参数。 ``` shell @:~$ !! @@ -91,7 +92,7 @@ Linux 终端执行命令的很多情况下需要经常的更换目录,cd 命 @:~/demo/a$ ``` -## alias 别名 +## Alias 别名 一些常用的命令可以使用 alais 定义别名,方便快速操作。移除别名使用 unalias 命令。 diff --git a/Tech/getting-started/Shell/Shell 是什么.md b/Tech/getting-started/Shell/Shell 是什么.md index 7ab74087..f1bb56e6 100644 --- a/Tech/getting-started/Shell/Shell 是什么.md +++ b/Tech/getting-started/Shell/Shell 是什么.md @@ -28,31 +28,31 @@ Shell(壳层)在计算机科学中指**为用户提供用户界面**的软 - DOS Shell - Macintosh Finder - Microsoft Windows 环境:Aston shell、BB4Win、Emerge Desktop、Geoshell、Litestep、程序管理器、Secure Desktop、SharpE、Windows Explorer、UserShell。 -- X Window System 环境或 Wayland 环境(主要用于类Unix操作系统) - - 独立的X窗口管理器,例如 Blackbox 与Fluxbox。 - - 依靠窗口管理器的完整桌面环境,例如:CDE、GNOME、Unity(以GNOME作内核)、KDE、XFCE。 +- X Window System 环境或 Wayland 环境(主要用于类 Unix 操作系统) + - 独立的 X 窗口管理器,例如 Blackbox 与 Fluxbox。 + - 依靠窗口管理器的完整桌面环境,例如:CDE、GNOME、Unity(以 GNOME 作内核)、KDE、XFCE。 ## 命令行界面(CLI) ### Unix -#### Bourne shell 兼容 +#### Bourne Shell 兼容 - **Bourne shell(sh)**史蒂夫·伯恩在贝尔实验室时编写。1978 年随 Version 7 Unix 首次发布。 - Almquist shell(ash)由肯尼斯·艾昆斯特(Kenneth Almquist)在 SVR4 上建立了这个分支。 - - **Bourne-Again shell(bash)**由布莱恩·福克斯在 1987 年为了GNU计划而编写。 - - Debian Almquist shell(dash)由赫伯特·许(Herbert Xu)1997 年移植到Linux上后改名为 dash。 - - Korn shell(ksh)David Korn在贝尔实验室时编写。 - - Z shell(zsh)是 macOS(2019年起) 一款可用作交互式登录的shell及脚本编写的命令解释器。 + - **Bourne-Again shell(bash)**由布莱恩·福克斯在 1987 年为了 GNU 计划而编写。 + - Debian Almquist shell(dash)由赫伯特·许(Herbert Xu)1997 年移植到 Linux 上后改名为 dash。 + - Korn shell(ksh)David Korn 在贝尔实验室时编写。 + - Z shell(zsh)是 macOS(2019 年起) 一款可用作交互式登录的 shell 及脚本编写的命令解释器。 -#### C shell 兼容 +#### C Shell 兼容 -- C shell(csh)比尔·乔伊在加州大学伯克利分校时编写。1979年随BSD首次发布。 - - TENEX C shell(tcsh) 一个向下兼容c shell的Unix shell,目前作为FreeBSD和其延伸发行版的默认shell。 +- C shell(csh)比尔·乔伊在加州大学伯克利分校时编写。1979 年随 BSD 首次发布。 + - TENEX C shell(tcsh) 一个向下兼容 c shell 的 Unix shell,目前作为 FreeBSD 和其延伸发行版的默认 shell。 -### 非Unix +### 非 Unix -- 4DOS, 4OS2, 4NT – JP Software 公司可在在 DOS, OS/2,及 Windows NT 下使用的壳层。Take Command程序则是 GUI 方式的兼容程序。 +- 4DOS, 4OS2, 4NT – JP Software 公司可在在 DOS, OS/2,及 Windows NT 下使用的壳层。Take Command 程序则是 GUI 方式的兼容程序。 - Amiga CLI/Amiga 壳层是称为 Workbench 的 AmigaOS 图形界面的另一选择。 - BASIC-PLUS – RSTS/E - Beemos(BEEMos)–在 Windows XP 上执行的一个小型项目,提供设置、应用程序等功能,感觉起来像是在另一个操作系统下。 @@ -69,8 +69,8 @@ Shell(壳层)在计算机科学中指**为用户提供用户界面**的软 - iSeries QSHELL – IBM OS/400 上的 Unix 风格壳层 - Macintosh Programmer's Workshop –古典 Mac OS 软件开发用的老式指令行环境 - Microsoft BASIC –一些古老 8 位电脑上的主要作业环境 -- Rexx – IBM的脚本语言(scripting language) +- Rexx – IBM 的脚本语言(scripting language) - Singularity shell – Singularity 的标准壳层 - **Windows PowerShell** –命令提示字符的新一代面向对象后继者(旧称 Monad 或 Microsoft Shell (MSH)) - Windows 修复主控台– Windows 2000、Windows XP、Windows 2003 操作系统的一项功能 -- YouShell –用于YouOS,基于JavaScript的指令处理器 +- YouShell –用于 YouOS,基于 JavaScript 的指令处理器 diff --git a/Tech/getting-started/Vim/Vim 入门.md b/Tech/getting-started/Vim/Vim 入门.md index 1beac4ca..ead49ad3 100644 --- a/Tech/getting-started/Vim/Vim 入门.md +++ b/Tech/getting-started/Vim/Vim 入门.md @@ -64,7 +64,7 @@ G gg H M L k j ▶ print("to") | `` */* `` | 上/下半页 | | `` */* `` | 向上/向下翻页 | -#### 字(词) +#### 字 (词) | 快捷方式 | 说明 | | ------------ | ----------------- | @@ -82,9 +82,9 @@ G gg H M L k j ▶ print("to") | 快捷方式 | 说明 | | ------------- | ------------------------------- | -| `Fe` */* `fe` | 移动到上一个/下一个`e` | -| `To` */* `to` | 在上一个/下一个`o`之前/之后移动 | -| `|` */* `n|` | 转到第一个/`n`列 | +| `Fe` */* `fe` | 移动到上一个/下一个 `e` | +| `To` */* `to` | 在上一个/下一个 `o` 之前/之后移动 | +| `|` */* `n|` | 转到第一个/`n` 列 | #### 文档 @@ -124,8 +124,8 @@ G gg H M L k j ▶ print("to") | `:q!` | `ZQ` | 强制退出 | | `:qa` | 关闭所有文件 | | `:qa!` | 强制退出所有文件 | -| `:w` new.txt | 写入`new.txt` | -| `:sav` new.txt | 保存并编辑`new.txt` | +| `:w` new.txt | 写入 `new.txt` | +| `:sav` new.txt | 保存并编辑 `new.txt` | | `:w` !sudo tee % | 写入只读文件 | ### 正常模式 @@ -134,10 +134,10 @@ G gg H M L k j ▶ print("to") | --------------------- | ----------------- | | `r` | 替换一个字符 | | `R` | 进入替换模式 | -| `u` */* `3u` | 撤消更改`1`/`3`次 | +| `u` */* `3u` | 撤消更改 `1`/`3` 次 | | `U` | 在一行上撤消更改 | | `J` | 加入下一行 | -| `` */* 5 `` | 重做更改`1`/`5`次 | +| `` */* 5 `` | 重做更改 `1`/`5` 次 | ### 剪切和粘贴 @@ -168,8 +168,8 @@ G gg H M L k j ▶ print("to") | -------- | -------------------------------- | | `.` | 重复上一个命令 | | `;` | 重复最新的 `f`、`t`、`F` 或 `T` | -| `,` | 重复最新的`f`、`t`、`F`或`T`颠倒 | -| `&` | 重复最后一个`:s` | +| `,` | 重复最新的 `f`、`t`、`F` 或 `T` 颠倒 | +| `&` | 重复最后一个 `:s` | | `@:` | 重复命令行命令 | ### 可视化模式 @@ -188,7 +188,7 @@ G gg H M L k j ▶ print("to") | ----- | --------------- | | `qi` | 录制宏 `i` | | `q` | 停止录制宏 | -| `@i` | 运行宏`i` | +| `@i` | 运行宏 `i` | | `7@i` | 运行宏 `i` 7 次 | | `@@` | 重复上一个宏 | @@ -298,9 +298,9 @@ G gg H M L k j ▶ print("to") | 快捷方式 | 说明 | | -------- | ------------------------------ | | `v`i" | 选择内引号“`...`{.underline}” | -| `v`a" | 选择引号`"..."`{.underline} | +| `v`a" | 选择引号 `"..."`{.underline} | | `v`i[ | 选择内括号 [`...`{.underline}] | -| `v`a[ | 选择括号`[...]`{.underline} | +| `v`a[ | 选择括号 `[...]`{.underline} | | `v`iw | 选择内词 | | `v`ip | 选择内部段落 | | `v`ipip | 选择更多段落 | @@ -356,23 +356,23 @@ G gg H M L k j ▶ print("to") | 快捷方式 | 说明 | | -------------- | -------------------------- | -| `:tabe [file]` | E在新选项卡中编辑文件 | +| `:tabe [file]` | E 在新选项卡中编辑文件 | | `:tabf [file]` | 如果在新选项卡中存在则打开 | -| `:tabc` | C失去当前选项卡 | -| `:tabo` | 关闭o其他选项卡 | +| `:tabc` | C 失去当前选项卡 | +| `:tabo` | 关闭 o 其他选项卡 | | `:tabs` | 列出所有标签 | -| `:tabr` | 转到第一个r标签 | +| `:tabr` | 转到第一个 r 标签 | | `:tabl` | 转到 last 选项卡 | | `:tabm 0` | 我转到位置 `0` | | `:tabn` | 转到 next 选项卡 | -| `:tabp` | 转到p上一个标签 | +| `:tabp` | 转到 p 上一个标签 | #### 正常模式 | 快捷方式 | 说明 | | -------- | ---------------- | | `gt` | 转到 next 选项卡 | -| `gT` | 转到p上一个标签 | +| `gT` | 转到 p 上一个标签 | | `2gt` | 转到标签编号 `2` | ## Vim 搜索和替换 @@ -403,7 +403,7 @@ G gg H M L k j ▶ print("to") | `:s/old/new` | 先更换 | | `:s/old/new/g` | 全部替换 | | `:s/\vold/new/g` | 全部替换为 [regex](https://github.com/jaywcjlove/reference/blob/main/docs/regex.md) | -| `:s/old/new/gc` | 全部替换_(确认)_ | +| `:s/old/new/gc` | 全部替换 *(确认)* | | `:s/old/new/i` | 先忽略大小写替换 | | `:2,6s/old/new/g` | 在 `2`-`6` 行之间替换 | @@ -465,7 +465,7 @@ G gg H M L k j ▶ print("to") | :- | - | | ---------- | --------------------------------------- | -| `:v/foo/d` | 删除不包含`foo`的行 *(还有`:g!/foo/d`)* | +| `:v/foo/d` | 删除不包含 `foo` 的行 *(还有 `:g!/foo/d`)* | ### Flags(标志) @@ -586,7 +586,7 @@ vim -d file1 file2 [file3] | `` | 返回上一个 | | `` | 向前 | | `gf` | 转到光标中的文件 | -| `ga` | 显示十六进制、ASCII值 | +| `ga` | 显示十六进制、ASCII 值 | ### 其他命令行 @@ -606,9 +606,9 @@ vim -d file1 file2 [file3] | 快捷方式 | 说明 | | ------------- | ------------------- | -| `%` | 最近/匹配的`{[()]}` | +| `%` | 最近/匹配的 `{[()]}` | | `[(` *|* `[{` | 上一个 `(` 或 `{` | -| `])` *|* `]{` | 下一个`)`或`}` | +| `])` *|* `]{` | 下一个 `)` 或 `}` | | `[m` | 上一个方法开始 | | `[M` | 上一个方法结束 | @@ -656,16 +656,16 @@ vim -d file1 file2 [file3] | ``<` | 到最后一个可视化选择的开始 | | ``>` | 到最后一个可视化选择的结尾 | | `ma` | 将此光标位置标记为`a` | -| ``a` | 跳转到光标位置`a` | +| ``a` | 跳转到光标位置 `a` | | `'a` | 跳转到位置为 `a` 的行首 | | `d'a` | 从当前行删除到标记 `a` 的行 | | `d`a` | 从当前位置删除到标记 `a` 的位置 | | `c'a` | 将文本从当前行更改为 `a` 行 | | `y`a` | 将文本从当前位置拉到 `a` 的位置 | | `:marks` | 列出所有当前标记 | -| `:delm a` | 删除标记`a` | -| `:delm a-d` | 删除标记`a`、`b`、`c`、`d` | -| `:delm abc` | 删除标记`a`、`b`、`c` | +| `:delm a` | 删除标记 `a` | +| `:delm a-d` | 删除标记 `a`、`b`、`c`、`d` | +| `:delm abc` | 删除标记 `a`、`b`、`c` | ### 计算器 @@ -681,7 +681,7 @@ vim -d file1 file2 [file3] | :- | - | | ------------ | ---------------- | | `:!` | 解释 Shell 命令 | -| `:r!` | 读入shell的输出 | +| `:r!` | 读入 shell 的输出 | | `:r!date` | 插入日期 | | `:!!date` | 用日期替换当前行 | diff --git a/Tech/getting-started/Vim/Vim 参考手册.md b/Tech/getting-started/Vim/Vim 参考手册.md index f4b90d71..7f315fe4 100644 --- a/Tech/getting-started/Vim/Vim 参考手册.md +++ b/Tech/getting-started/Vim/Vim 参考手册.md @@ -153,7 +153,7 @@ U - 将选中文本转换为大写 ## 寄存器 -寄存器被存储在 ~/.viminfo 中, 在下次重启vim时仍会加载 +寄存器被存储在 ~/.viminfo 中, 在下次重启 vim 时仍会加载 ```vim :reg[isters] - 显示寄存器内容 @@ -200,7 +200,7 @@ g; - 跳转至修改历史中较早修改的位置 Ctrl + ] - 跳转到当前光标位置对应的 tag ``` -**Tip** 可以使用反引号(`)或单引号(')跳转至标记位置。使用单引号会跳转至该标记所在行行首(首个非空白字符)。 +**Tip** 可以使用反引号 (`) 或单引号 (') 跳转至标记位置。使用单引号会跳转至该标记所在行行首 (首个非空白字符)。 ## 宏 @@ -347,6 +347,6 @@ dp or :diffpu[t] - 将当前缓冲区中的差异推送至另一缓冲区 :diffo[ff] - 令当前窗口退出 diff 模式 ``` -折叠命令(e.g. za)只作用于当前级别。使用大写字母(e.g. zA)令命令作用于全部级别。 +折叠命令 (e.g. za) 只作用于当前级别。使用大写字母 (e.g. zA) 令命令作用于全部级别。 可以直接在终端运行 vimdiff 查看文件间的不同。也可以将该程序设为 git difftool 的选项之一。 diff --git a/Tech/operating-system/Linux/0.文化/GNU&Linux 历史与发展.md b/Tech/operating-system/Linux/0.文化/GNU&Linux 历史与发展.md index f0d28535..adfb61a1 100644 --- a/Tech/operating-system/Linux/0.文化/GNU&Linux 历史与发展.md +++ b/Tech/operating-system/Linux/0.文化/GNU&Linux 历史与发展.md @@ -31,13 +31,13 @@ GNU/Linux 也是自由软件和开放源代码软件发展中最著名的例子 1974 年,汤普逊和里奇合作在 ACM 通信上发表了一篇关于 UNIX 的文章,这是 UNIX 第一次出现在贝尔实验室以外。此后 UNIX 被政府机关,研究机构,企业和大学注意到,并逐渐流行开来。 -在此后的10年,Unix 在学术机构和大型企业中得到了广泛的应用,当时的 UNIX 拥有者 **AT&T 公司以低廉甚至免费的许可将 Unix 源码授权给学术机构做研究或教学之用**,许多机构在此源码基础上加以扩展和改进,形成了所谓的“Unix变种”,这些变种反过来也促进了 Unix 的发展,其中最著名的变种之一是由**加州大学柏克莱分校开发的伯克利软件套件(BSD)产品**。 +在此后的 10 年,Unix 在学术机构和大型企业中得到了广泛的应用,当时的 UNIX 拥有者 **AT&T 公司以低廉甚至免费的许可将 Unix 源码授权给学术机构做研究或教学之用**,许多机构在此源码基础上加以扩展和改进,形成了所谓的“Unix 变种”,这些变种反过来也促进了 Unix 的发展,其中最著名的变种之一是由**加州大学柏克莱分校开发的伯克利软件套件(BSD)产品**。 后来 AT&T 意识到了 **Unix 的商业价值**,于 1983 年发布 Unix 第一个商业版本 System V。便**不再将 Unix 源码授权给学术机构**,并对之前的 Unix 及其变种声明了著作权权利。故开始了一场持久的著作权官司,直至 AT&T 将自己的 Unix 系统实验室卖掉。 -新接手的 Novell 采取了一种比较开明的做法,允许柏克莱分校自由发布自己的 Unix 变种,但是前提是必须将来自于 AT&T 的代码完全删除,于是诞生了4.4 BSD Lite版,由于这个版本不存在法律问题,**4.4 BSD Lite成为了现代柏克莱软件包的基础版本。**所以从这个角度上,4.4 BSD 又是所有自由版本 Unix 的基础, +新接手的 Novell 采取了一种比较开明的做法,允许柏克莱分校自由发布自己的 Unix 变种,但是前提是必须将来自于 AT&T 的代码完全删除,于是诞生了 4.4 BSD Lite 版,由于这个版本不存在法律问题,**4.4 BSD Lite 成为了现代柏克莱软件包的基础版本。**所以从这个角度上,4.4 BSD 又是所有自由版本 Unix 的基础, -后续 BSD 在发展中也逐渐派生出 3 个主要的分支:[FreeBSD](https://zh.wikipedia.org/wiki/FreeBSD)、[OpenBSD](https://zh.wikipedia.org/wiki/OpenBSD)和[NetBSD](https://zh.wikipedia.org/wiki/NetBSD)。 +后续 BSD 在发展中也逐渐派生出 3 个主要的分支:[FreeBSD](https://zh.wikipedia.org/wiki/FreeBSD)、[OpenBSD](https://zh.wikipedia.org/wiki/OpenBSD) 和 [NetBSD](https://zh.wikipedia.org/wiki/NetBSD)。 外部链接:[UNIX的完整历史](http://www.levenez.com/unix/) @@ -47,9 +47,9 @@ GNU/Linux 也是自由软件和开放源代码软件发展中最著名的例子 1983 年,AT&T 发布了 Unix 最新版 system V,这是一个商业化版本,付费才能使用,并且不得传播源码。正是因为看到了 Unix 被商业化,所以 **1983 年 9 月 27 日由理查德·斯托曼在麻省理工学院公开发起 GNU 计划。** -[GNU 计划](https://www.gnu.org/)的基本目标和一贯目标是提供一个和 Unix 兼容的 100% 自由软件的操作系统。不是 95%、也不是 99.5%、而是 100% 自由。这个系统的名字叫 **GNU,是 GNU's Not Unix 的首字母递归缩写**——这是对 Unix 的技术思想致敬的一种方法,同时表达 GNU 有所不同。从技术上说,GNU 很像 Unix。但是它不同于 Unix,GNU 给予其用户自由。 +[GNU 计划](https://www.gnu.org/) 的基本目标和一贯目标是提供一个和 Unix 兼容的 100% 自由软件的操作系统。不是 95%、也不是 99.5%、而是 100% 自由。这个系统的名字叫 **GNU,是 GNU's Not Unix 的首字母递归缩写**——这是对 Unix 的技术思想致敬的一种方法,同时表达 GNU 有所不同。从技术上说,GNU 很像 Unix。但是它不同于 Unix,GNU 给予其用户自由。 -1985 年,理查德·斯托曼创立了自由软件基金会来为 GNU 计划提供技术、法律以及财政支持。到了 1990 年,GNU 计划已经开发出的软件包括了一个功能强大的文字编辑器 Emacs、C 语言编译器 GCC 以及大部分 UNIX 系统的程序库和工具。**唯一依然没有完成的重要组件,就是操作系统的内核(称为HURD)。** +1985 年,理查德·斯托曼创立了自由软件基金会来为 GNU 计划提供技术、法律以及财政支持。到了 1990 年,GNU 计划已经开发出的软件包括了一个功能强大的文字编辑器 Emacs、C 语言编译器 GCC 以及大部分 UNIX 系统的程序库和工具。**唯一依然没有完成的重要组件,就是操作系统的内核(称为 HURD)。** **1991 年,Linus Torvalds 编写出了与 UNIX 兼容的 Linux 操作系统内核并在 GPL 下发布。**GNU/Linux 之后在网上广泛流传。1992 年,Linux 与其他 GNU 软件结合,完全自由的操作系统正式诞生。许多程序员参与了 Linux 的开发与修改,也经常将 Linux 当成开发 GNU 计划软件的平台。该操作系统往往被称为“GNU/Linux”或简称 Linux。 @@ -65,7 +65,7 @@ GNU/Linux 也是自由软件和开放源代码软件发展中最著名的例子 1994 年 3 月,Linux1.0 版正式发布,Marc Ewing 成立 **Red Hat 软件公司**,成为最著名的 Linux 经销商之一。 -今天由 Linus Torvalds 带领下,众多开发人员共同参与开发和维护 Linux 内核。理查德·斯托曼领导的自由软件基金会,继续提供大量支持 Linux 内核的 GNU 组件。一些个人和企业开发的第三方的非 GNU 组件也提供对 Linux内核的支持,这些第三方组件包括大量的作品,有内核模块和用户应用程序和库等内容。 +今天由 Linus Torvalds 带领下,众多开发人员共同参与开发和维护 Linux 内核。理查德·斯托曼领导的自由软件基金会,继续提供大量支持 Linux 内核的 GNU 组件。一些个人和企业开发的第三方的非 GNU 组件也提供对 Linux 内核的支持,这些第三方组件包括大量的作品,有内核模块和用户应用程序和库等内容。 Linux 发行版指的就是通常所说的 **Linux 操作系统**,它一般是由一些组织、团体、公司或者个人制作并发行的。 diff --git a/Tech/operating-system/Linux/0.文化/开源软件的概念与重要性.md b/Tech/operating-system/Linux/0.文化/开源软件的概念与重要性.md index b770da57..5a08f803 100644 --- a/Tech/operating-system/Linux/0.文化/开源软件的概念与重要性.md +++ b/Tech/operating-system/Linux/0.文化/开源软件的概念与重要性.md @@ -12,7 +12,7 @@ author: 7Wate date: 2023-03-15 --- -开源软件的发展始于上世纪80年代,起初是由一些计算机爱好者和学术研究人员开发的。随着互联网的发展,越来越多的人开始加入到开源软件开发的行列中。 +开源软件的发展始于上世纪 80 年代,起初是由一些计算机爱好者和学术研究人员开发的。随着互联网的发展,越来越多的人开始加入到开源软件开发的行列中。 开源软件是指能够公开查看、使用、复制、修改和分发源代码的软件。**源代码开放的软件并不一定是开源软件,开源软件有着严格统一的的定义,封闭软件(Closed Software)、自由软件(Free software)和开源软件(Open source software)有着显著地区别。** @@ -87,7 +87,7 @@ date: 2023-03-15 ## 开源软件的风险 -开源软件主要风险在于`管理维护`和`技术支持`以及`许可证法律纠纷`,由于开源软件采用的协作方式,你可能无法追究某一处代码的作者(部分协议要求作者著名)。以及如果出现问题,你可能无法寻找官方的技术支持,更多的支持可能来自于社区,可这种支持不是每次都有好人跳出来帮忙。还有如果你不了解许可证可能会带来的法律风险(部分国家法律不同,如果源代码无许可证,默认著作权属于作者)。 +开源软件主要风险在于 `管理维护` 和 `技术支持` 以及 `许可证法律纠纷`,由于开源软件采用的协作方式,你可能无法追究某一处代码的作者(部分协议要求作者著名)。以及如果出现问题,你可能无法寻找官方的技术支持,更多的支持可能来自于社区,可这种支持不是每次都有好人跳出来帮忙。还有如果你不了解许可证可能会带来的法律风险(部分国家法律不同,如果源代码无许可证,默认著作权属于作者)。 ## 开源许可证简介 @@ -111,7 +111,7 @@ date: 2023-03-15 ## 许可证的兼容性 -目前经过 ISO 认证的许可证多达 70 多种,被自由软件基金会认可的自由软件许可证也有数十种,而它们的条款又各不相同,有些甚至互相矛盾。这种兼容性问题被称为`许可证增值问题(License proliferation)`。 +目前经过 ISO 认证的许可证多达 70 多种,被自由软件基金会认可的自由软件许可证也有数十种,而它们的条款又各不相同,有些甚至互相矛盾。这种兼容性问题被称为 `许可证增值问题(License proliferation)`。 怎么样才算兼容呢?如果使用许可证 A 的代码和使用许可证 B 的代码能在一个广域作品中结合在一起,那么 A 和 B 就是兼容的,否则就是不兼容的。更近一步,如果结合后的广义作品可以用许可证 A 发布,那么许可证 B 就是许可证 A 兼容的(A-compatible)。反之亦然,但需要注意的是兼容性并**不可逆**。 diff --git a/Tech/operating-system/Linux/2.基础操作/Shell 命令行操作.md b/Tech/operating-system/Linux/2.基础操作/Shell 命令行操作.md index 6aa83f1f..8f0cc21f 100644 --- a/Tech/operating-system/Linux/2.基础操作/Shell 命令行操作.md +++ b/Tech/operating-system/Linux/2.基础操作/Shell 命令行操作.md @@ -97,8 +97,8 @@ $ popd | **Ctrl+W** | 删除光标前的一个单词 | | **Ctrl+Y** | 粘贴由 Ctrl+U、Ctrl+K 或 Ctrl+W 删除的文本 | | **Ctrl+T** | 交换光标处字符与之前的字符 | -| **Alt+B** | 向后移动一个单词(或 Ctrl+左箭头) | -| **Alt+F** | 向前移动一个单词(或 Ctrl+右箭头) | +| **Alt+B** | 向后移动一个单词(或 Ctrl+ 左箭头) | +| **Alt+F** | 向前移动一个单词(或 Ctrl+ 右箭头) | | **Ctrl+Shift+C** | 复制(部分图形终端) | | **Ctrl+Shift+V** | 粘贴(部分图形终端) | diff --git a/Tech/operating-system/Linux/3.系统管理/Linux 基本配置.md b/Tech/operating-system/Linux/3.系统管理/Linux 基本配置.md index 5759ee87..7cd7054d 100644 --- a/Tech/operating-system/Linux/3.系统管理/Linux 基本配置.md +++ b/Tech/operating-system/Linux/3.系统管理/Linux 基本配置.md @@ -72,53 +72,53 @@ DNS 配置对于确保域名能够正确解析至关重要。以下是配置 DNS 为了确保系统的安全性和稳定性,定期更新操作系统和应用程序是非常重要的。这不仅可以修复已知的安全漏洞,还可以带来新功能和性能改进。 - **软件源管理**:首先,需要确保软件源(repositories)是最新和最可靠的 - - 对于基于Debian的系统,编辑`/etc/apt/sources.list`文件。 - - 对于基于RedHat的系统,编辑`/etc/yum.repos.d/`目录下的文件。 + - 对于基于 Debian 的系统,编辑 `/etc/apt/sources.list` 文件。 + - 对于基于 RedHat 的系统,编辑 `/etc/yum.repos.d/` 目录下的文件。 - **更新软件包列表**:使用包管理器更新本地软件包数据库。 - - 对于APT,可以使用`sudo apt-get update`命令; - - 对于YUM,可以使用`sudo yum makecache`或者`sudo dnf makecache`(如果你的系统使用DNF作为包管理器)。 + - 对于 APT,可以使用 `sudo apt-get update` 命令; + - 对于 YUM,可以使用 `sudo yum makecache` 或者 `sudo dnf makecache`(如果你的系统使用 DNF 作为包管理器)。 - **更新升级系统**:在更新了软件包列表之后,可以进行系统更新。 - - 对于APT,使用`sudo apt-get upgrade`命令; - - 对于YUM或DNF,使用`sudo yum update`或`sudo dnf upgrade`。这些命令会下载并安装所有可用的更新。 + - 对于 APT,使用 `sudo apt-get upgrade` 命令; + - 对于 YUM 或 DNF,使用 `sudo yum update` 或 `sudo dnf upgrade`。这些命令会下载并安装所有可用的更新。 ## 4. 安装基本软件和工具 -- **安装文本编辑器**:选择适合的文本编辑器(如vim、nano)以便于配置文件编辑。 -- **安装网络工具**:安装基础网络诊断工具(如curl、wget、net-tools、traceroute)。 +- **安装文本编辑器**:选择适合的文本编辑器(如 vim、nano)以便于配置文件编辑。 +- **安装网络工具**:安装基础网络诊断工具(如 curl、wget、net-tools、traceroute)。 ## 5. 安全设置 安全性是系统管理中的一个关键方面。以下是一些基本的安全设置步骤。 -- **设置防火墙**:`ufw`和`firewalld`是两个流行的防火墙管理工具。它们可以轻松配置入站和出站规则,限制未授权访问。例如,使用`sudo ufw allow 22`来允许SSH连接。 -- **安装和配置安全增强工具**:SELinux和AppArmor提供了强制访问控制,可以增强系统安全。安装后,需要根据需要配置相应的策略。 -- **定期扫描漏洞**:使用安全扫描工具定期检查系统漏洞。ClamAV是一个开源的杀毒工具,可以扫描恶意软件。Lynis是一个安全审计工具,可以帮助检查系统配置和潜在的安全风险。 +- **设置防火墙**:`ufw` 和 `firewalld` 是两个流行的防火墙管理工具。它们可以轻松配置入站和出站规则,限制未授权访问。例如,使用 `sudo ufw allow 22` 来允许 SSH 连接。 +- **安装和配置安全增强工具**:SELinux 和 AppArmor 提供了强制访问控制,可以增强系统安全。安装后,需要根据需要配置相应的策略。 +- **定期扫描漏洞**:使用安全扫描工具定期检查系统漏洞。ClamAV 是一个开源的杀毒工具,可以扫描恶意软件。Lynis 是一个安全审计工具,可以帮助检查系统配置和潜在的安全风险。 ## 6. OpenSSH 通讯 -OpenSSH是Linux系统中用于远程管理的标准工具。以下是一些重要的SSH配置和安全措施。 +OpenSSH 是 Linux 系统中用于远程管理的标准工具。以下是一些重要的 SSH 配置和安全措施。 -- **配置SSH**:安装OpenSSH服务后,编辑`/etc/ssh/sshd_config`文件进行配置。可以更改默认端口,配置密钥认证,禁用root登录等。 -- **定期更新密码**:定期更新用户和root账户的密码,遵循强密码策略,以增加账户安全性。 -- **配置SSH密钥认证**:密钥认证比密码认证更安全。生成密钥对,并将其添加到服务器的`~/.ssh/authorized_keys`文件中。 -- **禁用SSH空密码登录**:确保SSH配置文件中的`PermitEmptyPasswords`选项设置为`no`,以防止空密码账户通过SSH登录。 +- **配置 SSH**:安装 OpenSSH 服务后,编辑 `/etc/ssh/sshd_config` 文件进行配置。可以更改默认端口,配置密钥认证,禁用 root 登录等。 +- **定期更新密码**:定期更新用户和 root 账户的密码,遵循强密码策略,以增加账户安全性。 +- **配置 SSH 密钥认证**:密钥认证比密码认证更安全。生成密钥对,并将其添加到服务器的 `~/.ssh/authorized_keys` 文件中。 +- **禁用 SSH 空密码登录**:确保 SSH 配置文件中的 `PermitEmptyPasswords` 选项设置为 `no`,以防止空密码账户通过 SSH 登录。 ## 7. 用户账户角色管理 用户账户管理是系统安全的关键部分。合理的用户和权限管理可以防止未授权的访问和潜在的安全风险。 -- **添加用户**:使用`sudo adduser`或`sudo useradd`命令创建新用户。为每个任务创建专用的用户账户,避免使用root账户进行日常工作。 -- **用户组管理**:合理地使用用户组来分配权限和管理用户权限。使用`sudo groupadd`创建新组,使用`sudo usermod -aG`将用户添加到组中。 -- **root用户管理**:限制root账户的远程访问,只通过sudo提升权限。确保root账户有一个强密码,并定期更新。 -- **用户权限管理**:通过配置`/etc/sudoers`文件或使用`visudo`命令,为特定用户分配sudo权限。确保遵循最小权限原则,只授予必要的权限。 -- **重置root密码**:如果忘记root密码,可以使用系统救援模式或Live CD/USB来重置密码。这通常涉及到挂载系统分区并修改`/etc/shadow`文件。 +- **添加用户**:使用 `sudo adduser` 或 `sudo useradd` 命令创建新用户。为每个任务创建专用的用户账户,避免使用 root 账户进行日常工作。 +- **用户组管理**:合理地使用用户组来分配权限和管理用户权限。使用 `sudo groupadd` 创建新组,使用 `sudo usermod -aG` 将用户添加到组中。 +- **root 用户管理**:限制 root 账户的远程访问,只通过 sudo 提升权限。确保 root 账户有一个强密码,并定期更新。 +- **用户权限管理**:通过配置 `/etc/sudoers` 文件或使用 `visudo` 命令,为特定用户分配 sudo 权限。确保遵循最小权限原则,只授予必要的权限。 +- **重置 root 密码**:如果忘记 root 密码,可以使用系统救援模式或 Live CD/USB 来重置密码。这通常涉及到挂载系统分区并修改 `/etc/shadow` 文件。 ## 8. 配置服务和程序 服务和程序的配置对于系统的稳定运行和性能至关重要。 -- **管理systemd系统服务**:使用`systemctl`命令管理服务。了解不同`systemd`单元文件的存放位置和优先级,以便正确管理服务。 -- **服务自启动管理**:使用`systemctl enable`或`disable`命令来管理服务是否在系统启动时自动运行。这有助于控制系统启动时的资源消耗。 +- **管理 systemd 系统服务**:使用 `systemctl` 命令管理服务。了解不同 `systemd` 单元文件的存放位置和优先级,以便正确管理服务。 +- **服务自启动管理**:使用 `systemctl enable` 或 `disable` 命令来管理服务是否在系统启动时自动运行。这有助于控制系统启动时的资源消耗。 - **不必要服务的移除**:定期审查系统服务,卸载或禁用不必要的服务和程序,以减少系统的潜在攻击面和提高系统性能。 - **引导至救援模式**:了解如何使用系统引导菜单或添加启动参数进入救援模式。这对于系统修复和故障排除非常有用。 @@ -126,32 +126,32 @@ OpenSSH是Linux系统中用于远程管理的标准工具。以下是一些重 日志管理和监控对于维护系统安全和稳定运行至关重要。 -- **配置系统日志**:使用`rsyslog`或`syslog-ng`配置日志记录规则。确保重要信息,如安全警告和系统错误,被妥善记录。 -- **安装监控工具**:安装`htop`和`iftop`等工具来监控系统资源使用情况。还可以考虑安装`nmon`、`glances`等综合系统监控工具,以获得更全面的系统状态视图。 -- **日志分析工具**:安装日志分析工具如Logwatch或GoAccess,这些工具可以帮助更容易地分析和理解日志文件,及时发现潜在的安全威胁或系统问题。 +- **配置系统日志**:使用 `rsyslog` 或 `syslog-ng` 配置日志记录规则。确保重要信息,如安全警告和系统错误,被妥善记录。 +- **安装监控工具**:安装 `htop` 和 `iftop` 等工具来监控系统资源使用情况。还可以考虑安装 `nmon`、`glances` 等综合系统监控工具,以获得更全面的系统状态视图。 +- **日志分析工具**:安装日志分析工具如 Logwatch 或 GoAccess,这些工具可以帮助更容易地分析和理解日志文件,及时发现潜在的安全威胁或系统问题。 ## 10. 备份和恢复计划 备份和恢复计划是防止数据丢失和系统故障的关键。 -- **配置定期备份**:使用`rsync`、`tar`或定制脚本实现重要数据和配置的定期备份。考虑使用定时任务(cron jobs)来自动执行备份。 -- **远程备份**:使用远程备份解决方案,如`rsync`配合SSH将备份数据同步到远程服务器,提高数据安全性。 +- **配置定期备份**:使用 `rsync`、`tar` 或定制脚本实现重要数据和配置的定期备份。考虑使用定时任务(cron jobs)来自动执行备份。 +- **远程备份**:使用远程备份解决方案,如 `rsync` 配合 SSH 将备份数据同步到远程服务器,提高数据安全性。 - **灾难恢复计划**:制定并测试灾难恢复计划,确保在数据丢失或系统崩溃时能够迅速恢复。这可能包括系统镜像备份、关键数据的恢复流程等。 ## 11. 自定义用户环境 为了提高用户的工作效率和满意度,可以对用户环境进行一些自定义设置。 -- **磁盘配额**:使用`quota`工具为用户和用户组设置磁盘配额,防止单个用户占用过多磁盘空间。 -- **使用`ulimit`设置资源限制**:使用`ulimit`命令为用户和进程设置资源使用限制,如打开文件的数量,以避免单个进程耗尽系统资源。 -- **Shell环境定制**:根据个人偏好定制Shell环境,配置别名、环境变量和命令提示符。这可以通过编辑用户的`.bashrc`、`.bash_profile`或`.zshrc`文件来实现。 -- **安装和配置图形界面**(可选):如果系统需要图形界面,安装桌面环境(如GNOME、KDE)并进行相应配置。确保图形界面的安全性,例如通过配置`.xinitrc`文件来启动图形会话。 +- **磁盘配额**:使用 `quota` 工具为用户和用户组设置磁盘配额,防止单个用户占用过多磁盘空间。 +- **使用 `ulimit` 设置资源限制**:使用 `ulimit` 命令为用户和进程设置资源使用限制,如打开文件的数量,以避免单个进程耗尽系统资源。 +- **Shell 环境定制**:根据个人偏好定制 Shell 环境,配置别名、环境变量和命令提示符。这可以通过编辑用户的 `.bashrc`、`.bash_profile` 或 `.zshrc` 文件来实现。 +- **安装和配置图形界面**(可选):如果系统需要图形界面,安装桌面环境(如 GNOME、KDE)并进行相应配置。确保图形界面的安全性,例如通过配置 `.xinitrc` 文件来启动图形会话。 ## 12. 系统性能优化 系统性能优化可以提高系统响应速度和处理能力,特别是在资源受限的环境中。 -- **内核参数调整**:根据系统用途调整`/etc/sysctl.conf`中的内核参数。例如,可以增加`net.core.somaxconn`来提高网络性能,或者调整`fs.file-max`来增加文件系统的最大句柄数。 +- **内核参数调整**:根据系统用途调整 `/etc/sysctl.conf` 中的内核参数。例如,可以增加 `net.core.somaxconn` 来提高网络性能,或者调整 `fs.file-max` 来增加文件系统的最大句柄数。 ## 13. 故障转移 diff --git a/Tech/programming-language/Python/入门/面对对象.md b/Tech/programming-language/Python/入门/面对对象.md index d321df2c..0e74c698 100644 --- a/Tech/programming-language/Python/入门/面对对象.md +++ b/Tech/programming-language/Python/入门/面对对象.md @@ -343,4 +343,3 @@ class Dog(AbstractAnimal, AnimalBehaviour): def sleep(self): return "The dog is sleeping." ``` - diff --git a/Tech/programming-language/Python/进阶/并行和并发.md b/Tech/programming-language/Python/进阶/并行和并发.md index 62248356..fef31878 100644 --- a/Tech/programming-language/Python/进阶/并行和并发.md +++ b/Tech/programming-language/Python/进阶/并行和并发.md @@ -31,7 +31,7 @@ graph TD **并发(Concurrency)指的是多个任务在近似同一时间内启动和运行的能力。**不同于并行,这些任务不一定在同一时间点真正地执行,但它们可能看起来似乎是同时进行的。这经常是**通过任务切换或调度来实现的**,使得每个任务都可以得到处理器的时间片,并轮流执行。 > 例子:一个银行柜台,只有一位出纳员,但有多位客户在排队等待服务。出纳员可能会处理第一个客户的部分业务,然后转向第二个客户处理其业务,之后再返回第一个客户,以此类推。 -> +> > 尽管在任何特定时刻只有一个客户正在得到服务,但因为切换得足够快,所有的客户可能都觉得自己几乎是在同一时间得到服务的。这就是并发。 ```mermaid @@ -50,7 +50,7 @@ graph TD **并行(Parallelism)指的是多个任务或多个处理单元在同一时刻真正地同时执行。**与并发不同,它不仅仅是任务准备同时运行或看似同时运行,而是真正地在同一时刻执行。这通常在具有多个处理器或多个核心的计算机系统中发生。 > 例子:一个快餐店,里面有三个员工。当三位顾客同时走进店内并分别点餐时,如果每位员工分别为每位顾客制作餐点,而且三位员工都在同一时刻开始并同时完成任务,那么这就是并行。 -> +> > 每位员工和他们分别服务的顾客可以看作是一个处理单元和一个任务。 ### 同步与异步 @@ -67,7 +67,7 @@ graph TD **同步(Synchronous)描述的是一个操作或任务需要等待另一个操作或任务完成之后才能开始或继续执行。**它通常涉及一种线性或顺序的流程,其中一个操作完全依赖于另一个操作的完成。 > 例子:在超市结账时,如果只有一个收银员,那么顾客需要按照顺序来结账。第一个顾客必须完成结账并离开,第二个顾客才能开始结账,以此类推。 -> +> > 这里的每个结账过程都是同步的,因为每个顾客的结账必须在前一个顾客完成后才能开始。 ```mermaid @@ -85,7 +85,7 @@ graph LR **异步(Asynchronous)描述的是一个操作开始后并不需要等待其完成,可以继续执行其他操作。**一旦异步操作完成,通常通过回调、事件、通知或其他机制来获取结果或进一步处理。 > 例子:你在一家咖啡店点了一杯咖啡。而不是站在柜台等待咖啡制作完成,你可以找个座位坐下,甚至看书或工作。当咖啡制作好,店员会叫你的名字或号码,此时你前去取杯。 -> +> > 在这个期间,你并没有闲置,而是进行了其他活动。 ### 阻塞与非阻塞 @@ -101,7 +101,7 @@ graph TD 阻塞(Blocking)描述的是当一个操作或任务等待某个条件(通常是某种资源)满足时,它会进入一个暂停或等待状态。在该条件被满足之前,操作或任务不会继续执行。 > 例子:你在电话上等待客服代表。在你等待的时候,你不能使用电话进行其他通话,也不能结束当前的通话,直到客服代表接听你的电话。 -> +> > 在这段时间里,你的电话线路被阻塞。 ```mermaid @@ -117,7 +117,7 @@ graph LR **非阻塞(Non-blocking)描述的是当一个操作或任务遇到必须等待的条件(如等待某种资源)时,它不会进入暂停或等待状态,而是立即返回,让程序可以继续执行其他操作。**当原始操作可以继续进行时,它会在适当的时间继续。 > 例子:一个自助餐厅。即使前面的人在选择食物并花费很长时间,你也可以选择跳过他们,去取你想要的食物,而不必等待。 -> +> > 这种情况下,你的选择流程是非阻塞的 ### 特性对比 diff --git a/Tech/programming-language/home.md b/Tech/programming-language/home.md index 63354174..b9f1630d 100644 --- a/Tech/programming-language/home.md +++ b/Tech/programming-language/home.md @@ -146,7 +146,7 @@ date: 2023-02-15 ![lang](https://static.7wate.com/img/2022/10/19/db314c6f8221b.svg) > SVG 格式图片,新窗口打开可以无失真缩放查看。 -> +> > 来源:[Computer Languages History](https://www.levenez.com/lang/);非商业引用,著作权归作者所有。 ## 程序设计语言生命周期 diff --git a/Tech/software-engineering/技术文档/命名约定.md b/Tech/software-engineering/技术文档/命名约定.md index 190926e9..aacbf191 100644 --- a/Tech/software-engineering/技术文档/命名约定.md +++ b/Tech/software-engineering/技术文档/命名约定.md @@ -19,14 +19,14 @@ date: 2023-06-26 - 文件名应简明地概述文档内容。 - 文件名长度应适中,避免过长。 - 当文件名由多个英文单词组成时,用短划线「-」连接。 -- 在文件名中避免使用下划线「_」,它在URL中可能影响搜索引擎优化,并可能被某些 Markdown 实现当作修饰字符。 -- 多个单词组成的文件名,全小写或全大写均可,但**避免大小写混用**,如`faq.md`或`FAQ.md`。 +- 在文件名中避免使用下划线「_」,它在 URL 中可能影响搜索引擎优化,并可能被某些 Markdown 实现当作修饰字符。 +- 多个单词组成的文件名,全小写或全大写均可,但**避免大小写混用**,如 `faq.md` 或 `FAQ.md`。 - 文件扩展名应为小写。 -- Markdown文件应使用「.md」后缀,虽然「.markdown」也可以接受,但应保证整体文件风格的统一。 +- Markdown 文件应使用「.md」后缀,虽然「.markdown」也可以接受,但应保证整体文件风格的统一。 | 文件名 | 内容描述 | | ------------------------------ | -------------------------------------- | -| `introduction-to-python.md` | 此文件可能包含有关Python语言的基础知识 | +| `introduction-to-python.md` | 此文件可能包含有关 Python 语言的基础知识 | | `database-connection-guide.md` | 这是一个指南,说明如何连接到数据库 | | `faq.md` | 这是一个常见问题解答文件 | | `README.md` | 这是一个项目介绍文件 | diff --git a/Tech/software-engineering/技术文档/文档内容.md b/Tech/software-engineering/技术文档/文档内容.md index 3b0f07ab..46115b48 100644 --- a/Tech/software-engineering/技术文档/文档内容.md +++ b/Tech/software-engineering/技术文档/文档内容.md @@ -20,9 +20,9 @@ date: 2023-06-26 - 使用半角空格,不使用全角空格;英文字符和阿拉伯数字用半角空格包围 > 这是一段□□□文本。❌ -> +> > 这是一段文本。 -> +> > 这是一段文本,包含中文、English□words□和□12345。 - 除缩进、列表级别、代码块和 Markdown 表格外,禁止连续使用半角空格。 @@ -377,13 +377,13 @@ date: 2023-06-26 - 禁止简体中文和繁体中文的混用。 > 这款软件的颜色设计很独特,它的界面顏色是由用户自己选择的。❌ -> +> > 正确示例:这款软件的颜色设计很独特,它的界面颜色是由用户自己选择的。 - 禁止出现中英文错别字。错别字包括错字和别字。 > 这款软件使用 MySOL 数据库存储数据。❌ -> +> > 这款软件使用 MySQL 数据库存储数据。 ### 英文的大小写形式 @@ -391,19 +391,19 @@ date: 2023-06-26 - 英文大小写形式不能写错。 > 用户可以在 mysql 数据库中创建新的表。❌ -> +> > 用户可以在 MySQL 数据库中创建新的表。 - 当中文句子中夹有英文单词或词组时,无论该英文单词或词组位于中文句子的开头、中间还是末尾,普通单词、词组必须小写;专有名词等在英文中必须大写的单词或词组,保留其大写形式。 > 在 SQL 语句中,你可以使用 "SELECT" 语句获取数据。❌ -> +> > 在 SQL 语句中,你可以使用 "select" 语句获取数据。 - 当中文句子中夹有完整的英文句子时,无论该英文句子位于中文句子的开头、中间还是末尾,其首字母均保留大写形式。 > 如需更多信息,请参阅 "in this chapter, we will learn how to create tables."❌ -> +> > 如需更多信息,请参阅 "In this chapter, we will learn how to create tables." ## 语法 @@ -413,7 +413,7 @@ date: 2023-06-26 在编写技术文档时,务必确保语句的成分完整。每个句子都应该有一个明确的主语和谓语,以及必要的宾语和定语。 > 会话保持:在应用程序没有提供会话保持的功能下,HAProxy 可以提供该项功能。❌ -> +> > 会话保持:在应用程序没有提供会话保持功能的情况下,HAProxy 可以提供该项功能。 ### 搭配不当 @@ -421,7 +421,7 @@ date: 2023-06-26 确保你的句子中使用的词汇是搭配恰当的。不正确的词汇搭配可能会让读者混淆,影响他们对你的文档的理解。 > HAProxy 是由 Linux 内核的核心贡献者 Willy Tarreau 于 2000 年编写,并仍然负责该项目的维护,该在开源社区提供免费和版本迭代。❌ -> +> > HAProxy 是由 Linux 内核的核心贡献者 Willy Tarreau 于 2000 年编写,他现在仍然负责该项目的维护,并在开源社区免费提供版本迭代。 ### 倍数表达 @@ -446,7 +446,7 @@ date: 2023-06-26 避免在句子中使用不必要的词汇或短语,这可能会使句子变得冗长和复杂,影响其清晰度和可读性。 > 根据官方建议,目前稳定版本的 HAProxy 为稳定版 2.0 特性。❌ -> +> > 官方目前建议使用 HAProxy 稳定版本 2.0。 ### 句式杂糅 @@ -454,5 +454,5 @@ date: 2023-06-26 避免在一个句子中混合使用多种句式。尽量保持句子简洁明了,如果需要表达的信息较多,可以考虑分解为多个句子。 > 当部署多个 DM-master 节点时,所有 DM-master 节点将使用内部嵌入的 etcd 组成集群并用于存储集群节点信息、任务配置等元数据,同时通过 etcd 选举出 leader 节点用于提供集群管理、数据迁移任务管理相关的各类服务。因此,若 DM-master 可用节点数超过部署节点的半数,即可正常提供服务。❌ -> +> > 当部署多个 DM-master 节点时,所有 DM-master 节点将使用内部嵌入的 etcd 组成集群。该 DM-master 集群用于存储集群节点信息、任务配置等元数据,同时通过 etcd 选举出 leader 节点。该 leader 节点用于提供集群管理、数据迁移任务管理相关的各类服务。因此,若可用的 DM-master 节点数超过部署节点的半数,即可正常提供服务。 diff --git a/Tech/software-engineering/技术文档/标点符号.md b/Tech/software-engineering/技术文档/标点符号.md index 90c48d3f..e8602f0f 100644 --- a/Tech/software-engineering/技术文档/标点符号.md +++ b/Tech/software-engineering/技术文档/标点符号.md @@ -66,7 +66,7 @@ date: 2023-06-26 连接号用于连接两个有直接关联的词语。 -> 中美-贸易 +> 中美 - 贸易 ### 破折号「——」 @@ -90,7 +90,7 @@ date: 2023-06-26 在 Markdown 中,斜杠被用作转义字符,表示接下来的字符应被解析为文字,而非 Markdown 语法。 -> 我\*喜欢\*你。 +> 我\* 喜欢\* 你。 > > 输出为:我*喜欢*你。 @@ -133,7 +133,7 @@ date: 2023-06-26 > 她对我们说:“ > 这书太赞了。”❌ > -> Copy code她对我们说: +> Copy code 她对我们说: > “这书太赞了。” ## 中英文混用时的标点符号用法 @@ -175,7 +175,7 @@ date: 2023-06-26 - 括号里全为英文时建议使用半角括号,并在括号前后各空一个半角空格,括号和括号内的英文之间不需要空格。 > 数据定义语言(DDL)是一种……(使用了全角括号)❌ -> 数据定义语言(DDL)是一种……(半角括号前后未空格)❌ +> 数据定义语言 (DDL) 是一种……(半角括号前后未空格)❌ > 数据定义语言□(□DDL□)□是一种……(半角括号和半角括号内的英文之间空了一格)❌ > > 正确示例:数据定义语言□(DDL)□是一种…… diff --git a/Tech/software-engineering/技术文档/语言风格.md b/Tech/software-engineering/技术文档/语言风格.md index e413b26d..bc9ef375 100644 --- a/Tech/software-engineering/技术文档/语言风格.md +++ b/Tech/software-engineering/技术文档/语言风格.md @@ -19,7 +19,7 @@ date: 2023-06-26 技术文档的语言风格应该采用**平易近人、直截了当**的语气,比如使用「你可以…」这样的表达方式,避免过于正式或冗长的句子。 > 请使用下面的按钮来完成操作。❌ -> +> > 你可以使用下面的按钮来完成操作。 ## 客观礼貌的语气 @@ -27,7 +27,7 @@ date: 2023-06-26 技术文档的语气应客观并保持礼貌,不进行产品推销,**主要目的是传达技术信息**。应该使用友好而有礼貌的措辞,避免强硬或粗鲁的语气。在指导性文档中,尽量保持语气冷静、客观且简洁。 > 你一定要按照这样做,否则会失败。❌ -> +> > 按照以下步骤操作,可以成功完成。 ## 简洁清晰地表达 @@ -35,7 +35,7 @@ date: 2023-06-26 简洁明了是技术文档的重要原则。**建议作者在完成初稿后,通读整篇文档**,删去没有明显作用的字、词、句,将文档长度缩短,但同时确保信息传递效果不受影响。避免使用冗长的句子和逻辑混乱的段落,尽量使用主动语态,明确阐述主语和宾语。 > 如果在配置过程中出现问题,那么需要查看日志文件,然后分析日志文件中的错误信息,最后采取适当的措施来解决问题。❌ -> +> > 配置过程中出现问题时,查看日志文件,分析错误信息,并采取适当措施解决问题。 ## 通俗易懂的语词 @@ -43,7 +43,7 @@ date: 2023-06-26 **使用通俗易懂的词语是技术文档的基本要求。**避免使用行话、俚语或网络流行语,或故意使用谐音错别字。应使用标准的技术术语,避免过度使用缩略语或专业术语,尽量用简单明了的表达方式。 > 这个软件有魔改功能,能让你的计算机跑得飞快!❌ -> +> > 这个软件有优化功能,可以提升计算机的运行速度。 ## 以用户为导向 @@ -51,7 +51,7 @@ date: 2023-06-26 **技术文档应以用户为导向,从用户的角度思考问题,提供有用的信息。**在撰写文档时,考虑文档的目标读者可能的技术水平和实际操作中可能遇到的问题,尽可能全面且清晰地解释技术信息,并提供更多的详细信息和解决方案。建议进行文档可用性测试,让无技术背景的测试人员参照文档进行操作,以确保文档的易用性。 > 在设置菜单中,选择适当的选项以进行配置。❌ -> +> > 在设置菜单中,选择相关选项,以便进行配置。 ## 用词恰当和统一 @@ -59,15 +59,15 @@ date: 2023-06-26 **在技术文档中,使用正确和一致的词汇非常重要。**你应避免使用可能引发冲突的词汇,并在同一篇或同一系列的技术文档中,保持一致的用词,避免造成混淆或阅读困难。 > 我们强烈推荐使用最新版本的软件。❌ -> +> > 建议使用最新版本的软件。 ## 正确使用“的”、“地”、“得” > 调度系统会将数据迁移到其他的存储节点上。(形容词+的+名词) -> +> > 数据库可以显式地使用事务。(副词+地+动词) -> +> > 这个值不宜调得过大。(动词+得+副词) ## 明确代词指代 @@ -75,5 +75,5 @@ date: 2023-06-26 你应确保代词的指代对象明确,避免造成读者的困惑。 > 如果希望从本地已编译好的二进制文件构建 PD、TiKV 或 TiDB 的镜像,需要将其 `image` 字段留空。❌ -> +> > 如果希望从本地已编译好的二进制文件构建 PD、TiKV 或 TiDB 的镜像,需要将相应镜像的 `image` 字段留空。 diff --git a/Tech/structures-algorithms/数据结构.md b/Tech/structures-algorithms/数据结构.md index 184d21e4..d25a73b1 100644 --- a/Tech/structures-algorithms/数据结构.md +++ b/Tech/structures-algorithms/数据结构.md @@ -10,16 +10,23 @@ tags: author: 7Wate date: 2022-08-25 --- + ## 概述 + 数据结构是相互之间存在**一种或多种特定关系**的数据元素的集合。 + ## 数据 + 数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。 **数据项 > 数据元素 >> 数据对象:数据项构成了数据元素,数据元素组合成了数据对象。** ## 结构 + 结构是不同数据元素之间不是独立的,而是存在特定的关系。 + ### 逻辑结构 + 逻辑结构是指**数据对象 中 数据元素**之间的相互关系。 - 集合:集合结构中的数据元素除了属于一个集合外,它们之间**没有其他关系**。 @@ -71,4 +78,3 @@ Operation ………… endADT ``` - diff --git a/Work/roadmap/求职经验/写给软件工程师的建议.md b/Work/roadmap/求职经验/写给软件工程师的建议.md index 4ab3c0f9..024c4843 100644 --- a/Work/roadmap/求职经验/写给软件工程师的建议.md +++ b/Work/roadmap/求职经验/写给软件工程师的建议.md @@ -69,5 +69,5 @@ tags: 以上是我认为工程师成长路上很重要的几点。有些想法可能会随着年龄的增长、阅历的提升而改变,也希望最好会变化,毕竟如果一成不变,意味着也就没有成长了。 > 转载《写给软件工程师的几条成长建议》 -> +> > 作者:FrankXiong 地址:[点击打开](https://blog.skrskrskrskr.com/article/%E5%86%99%E7%BB%99%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E5%B8%88%E7%9A%84%E5%87%A0%E6%9D%A1%E6%88%90%E9%95%BF%E5%BB%BA%E8%AE%AE/) diff --git a/Work/roadmap/职场心得/如何平衡工作和生活.md b/Work/roadmap/职场心得/如何平衡工作和生活.md index e87cac8e..5ed244cd 100644 --- a/Work/roadmap/职场心得/如何平衡工作和生活.md +++ b/Work/roadmap/职场心得/如何平衡工作和生活.md @@ -117,7 +117,7 @@ tags: 所以日常生活中,在你察觉到负面情绪的时候,及时的反思背后导致的原因,当断不断,反受其乱,但也不用一直的断,加加减减,才是人生的常态。 > 原作者:冴羽答 - 读者问:怎么平衡工作与生活 -> +> > 文章地址:[https://github.com/mqyqingfeng/Blog/issues/298](https://github.com/mqyqingfeng/Blog/issues/298) -> +> > 文章采用 [知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议](http://creativecommons.org/licenses/by-nc-sa/3.0/cn/) 进行许可。 diff --git a/Work/roadmap/面试法则/反向面试.md b/Work/roadmap/面试法则/反向面试.md index fdaa95ae..01de4345 100644 --- a/Work/roadmap/面试法则/反向面试.md +++ b/Work/roadmap/面试法则/反向面试.md @@ -7,7 +7,7 @@ tags: --- > 大部分翻译自: ,亦有其他网友补充。 -> 译者总结的一份适合突击记忆的简洁版 LeetCode 题解和面试问题,也欢迎 Star。 +> 译者总结的一份适合突击记忆的简洁版 LeetCode 题解和面试问题,也欢迎 Star。 下面列表里的问题对于参加技术面试的人来说可能有些用。 列表里的问题并不一定适用于某个特定的职位或者工作类型,也没有排序 最开始的时候这只是我自己的问题列表,但是慢慢地添加了一些我觉得可能让我对这家公司亮红牌的问题。 diff --git a/Work/roadmap/面试法则/面试 10 大常见问题.md b/Work/roadmap/面试法则/面试 10 大常见问题.md index 3b8dbf6c..27947c54 100644 --- a/Work/roadmap/面试法则/面试 10 大常见问题.md +++ b/Work/roadmap/面试法则/面试 10 大常见问题.md @@ -30,7 +30,7 @@ date: 2023-03-08 加油! > 这份文档,配合鹅姐 B 站“面试常见问题系列”讲解,使用效果更好([戳> > > 鹅姐职场@B站](https://www.bilibili.com/video/BV1XL41147pL?spm_id_from=333.999.0.0&accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE2NzgyNTc3ODQsImZpbGVHVUlEIjoiemRreUIxbXZYSlM2dzBBNiIsImlhdCI6MTY3ODI1NzQ4NCwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjotNzc2MDYyNDgxMn0.bOhAsu0fKD8O8bpjW--wbF6tZQulcMP1m4RA4vU2qL8)) -> +> > 来源:[【鹅姐出品】10大面试常见问题解析&参考答案](https://shimo.im/docs/zdkyB1mvXJS6w0A6/read);仅学术引用,著作权归作者所有。 ## 面试 10 大常见问题