Normal view
亮见|我又被美团投诉了
相关阅读:亮见|骑手公敌,报应来了?
是的,就是那个你想到的美团。
没错,就是“又”被投诉了。
9月10日,美团刚投诉了我写的《祥子累死在了车上》,给我扣了一顶我说了都可能违规的帽子。
才刚过去一个多月,美团又投诉了我前天写的文章《骑手公敌,报应来了?》,说我侵犯了他们的“涉企业商誉”。
互联网大厂连续两个月投诉我,我真是受宠若惊。
第一次被互联网大厂投诉,又被扣了一顶巨大的帽子,为保账号,吓得我赶紧承认了侵权,文章被删,我以为就没啥事了。
谁知道这一次,美团大厂又来投诉我,欺人太甚!
我在文章《骑手公敌,报应来了?》中,确实两次提到了美团。
一次是说,帝哥毕业后,辗转在百度、美团和小米都工作过。
一次是说,“据他自己说,在美团做自控运营时,他牵头制定了骑手管理处罚制度。”
这篇文章,根本就不是写美团的,文章的目的也并非批评美团,我甚至还在文中为外卖平台辩护——
“虽然帝哥参与的处罚制度确实有很多不合理的地方,但它绝对是外卖系统的组成部分之一,是外卖系统得以运行的必要条件之一。”
之所以提到美团,不过是叙述需要。而且在评论区,甚至都没有一个人提到“美团”这两个字。
但是,我还是被美团投诉了。
给大家看看美团投诉的理由:
图文及视频中人物“帝哥"提及诸多内容存在主观加工与事实不符。经核实,当事人2015-2016年期间在美团外卖工作,职务为“高级销售运营专员”和“物流运营”,职级为P2-1属于基层员工,在其上有多个层级主管负责策划和牵头项目,根据同事反馈和其从事履历核对当事人并不负责"牵头制定处罚制度",详见律师函。
很明显,这个投诉针对的是文中的这句话:
“据他自己说,在美团做自控运营时,他牵头制定了骑手管理处罚制度。”
可,这个信息,并不像美团投诉我时说的,是“主观加工”,而是有媒体信源的——
这个说法来自搜狐财经的视频。
我已经不是记者了,没法自己去调查,在没有明显逻辑漏洞、没有其他可靠信源的情况下,我只能选择相信媒体的说法。
当然,我也考虑到帝哥可能是给自己脸上贴金,他的“说法”也可能只是一个“说法”,所以我才在他的说法前加了一句“据他自己说”。
我想,我已经尽自己最大的能力,对信息进行核实,文字上尽量客观、不带偏见了,而且对外卖平台也保持着理解的态度,对吧?
不去投诉信息源头,却抓着我一个转引的不放,美团还真是勇敢呢。
有人可能说,人家搜狐财经说的是“某团”,你说的是“美团”,可要知道,我在《祥子累死在了车上》上,甚至连“美团”这两个字都没提,可还是被他们投诉了,说我是“恶意影射外卖员事件”。
现在,美团说帝哥在美团外卖工作时,是基层员工,上头还有领导,并不负责“牵头制定处罚制度”。
说实话,我愿意相信美团的说法,可即使如此,这个投诉理由也让人百思不得其解。
第一、美团只是说,处罚制度不是帝哥牵头制定的,但并没有说,处罚制度不是美团制定的。
如果美团承认处罚制度是他们制定的,那么我引用说这个处罚制度是帝哥牵头的,怎么就侵犯美团的企业商誉了?
帝哥牵头就侵犯了你们的企业商誉,别的美团员工牵头就不侵犯,这是什么道理?帝哥牵头的侮辱性就这么强?
第二、如果美团认为处罚制度不是自己定制的,是我把别的公司制定的制度安到了美团头上,那同样让人觉得莫名其妙。
正如我在文章中说的,处罚制度,本来就是外卖系统的组成部分之一,是外卖系统得以运行的必要条件之一,它不过是一个中立的制度罢了。
就算我把一个中立的制度错安在了美团头上,怎么就侵犯你们的企业商誉了?难道你们美团也认为这种处罚制度是什么伤天害理、肮脏不堪、见不得人的东西吗?要急于撇清和它的关系?
如果你们这样认为,那你们为什么也在用这种处罚制度呢?如果你们不这样认为,为什么又要投诉我?
还是说,只准你们用,不许别人说?只许州官放火,不许百姓点灯?
我自己就是美团的忠实用户,点外卖、出去吃饭、买火车票、订酒店,我都是用的美团。
而在写作层面,对于大厂、民营经济、资本家,我向来是充满了理解和尊重,就在美团投诉的《骑手公敌,报应来了?》里,我也还在说,骂资本最容易最安全。
我知道,美团根本不care我是谁,可面对美团的一再投诉,我在情感上多少还是有点失落的。
而更多的是害怕,这种投诉,要么承认侵权删文,要么等待平台审核,可是如果平台审核侵权,我就可能被短期或永久关小黑屋。
你用它的产品,理解它的处境,但它却要你死!
说实话,做这个号,本来就举步维艰,大部分时间入不敷出,接点广告就被骂,写点啥啥就被嘎。万万没想到,想说两句真话,不但要面临那啥的限制,现在还要受到资本的威胁。
虽然我一个人弱小,但面对大厂,即使必输,我也是有两根硬骨头在的。
虽然我人微言轻,但是在大厂的逼迫下,我也有说不的权利和勇气。
没有人该被这样仗势欺人地威胁!
—The End—
亮见|骑手公敌,报应来了?
在关于外卖骑手的电影《逆行人生》开头,为公司打拼了十几年的高志垒,因年龄太大,惨遭公司辞退,
高志垒悲愤至极,抡起椅子就把窗户砸了。
但HR说了一番话,让高志垒瞬间愣住,没了脾气。
HR说:
这个裁员名单,是通过人力资源系统核算得出来的,我没记错的话,这个系统还是当年你带领人设计的吧?记得吗?你还说过,是你说的,要——
尊重算法。
自己设计的算法,把自己给“优化”了,这样戏剧性的故事,我以为只能出现在电影里,谁知道却照进了现实。
看新闻,人称“帝哥”的某互联网大厂产品经理,也是制定骑手处罚制度的人,如今失业后,也送起了外卖。
翻了翻新闻和帝哥的抖音,他09年从辽宁大学经济学专业毕业后,辗转在百度、美团和小米都工作过。
据他自己说,在美团做自控运营时,他牵头制定了骑手管理处罚制度。
当然,帝哥的收入也是不错的,最高时月薪4万多。他以为自己在北京站稳了脚跟,就在2019年在北京买了一套170平的房子,背负了300万的房贷。
而就在今年,39岁的帝哥,和妻子一起双双失业。他投了近2000份简历,大部分都石沉大海。
每个月要还1.5万房贷的他,重压之下,选择了边做自媒体边送外卖。
据说,有次送蛋糕出了问题,本不是他的责任,但蛋糕店的老板非要他赔一千块钱。由于他之前是做这个的,准备充分免除了处罚。
当年自己制定的处罚制度,如今也要用到自己身上。
当时他打出的那颗子弹,不偏不倚射中现在的自己。
回旋镖打到自己身上,分外疼痛。
看到帝哥失业送外卖,网上叫好声不断。
有人说,希望他的困境是永久的,不是暂时的。
有人说,出来混,迟早要还的。早知今日,何必当初?
有人说,天道好轮回,苍天饶过谁?这就是因果报应。
网友们纷纷跑到他的抖音,留言嘲讽,举报视频。
仿佛他是骑手公敌,十恶不赦。
怎么说呢,虽然帝哥参与的处罚制度确实有很多不合理的地方,但它绝对是外卖系统的组成部分之一,是外卖系统得以运行的必要条件之一。
也就是说,无论如何,平台都会制定这个骑手处罚制度,有没有帝哥的参与,都不影响最后的结果。
骂资本最容易最安全,骂资本家的走狗更是过瘾。
但别忘了,狡兔死,走狗烹,在同一口锅里,狡兔和走狗,不过都是主人的美味。
帝哥说,当初制定处罚制度时,应该自己“下来”送送外卖的,很多政策都是落地后才让使用者痛苦的。如今自己送起了外卖,当初自己亲手制定的规则处罚自己时,才发现它有多不合理。
我想,可能他当时从来没想过有朝一日自己也会送外卖吧。
帝哥出生于东北农村,高考576分考到了211重点大学,闯北京,进大厂,月薪4万。这一路走来,虽然不能算是大富大贵,但说是读书改变命运也不为过。
也许在帝哥的心里,这样一路攀升的好日子,还会继续。用他自己的话说就是,“本来我以为我已经在北京站稳了脚跟”。
帝哥肯定是自信的,就连他的绰号“帝哥”都彰显着这种自信。
可仅仅是一次裁员,帝哥的美梦就破碎了。那样花团锦簇的日子,原来是那么脆弱。
要不是曾经参与过骑手处罚制度的制定,帝哥的故事,跟《逆行人生》里的高志垒和《凡人歌》里的那伟,没什么本质区别。其实,参与了,也没有本质区别,不过是多了一个骂他的理由。
在我看来,帝哥的故事,不是一个因果报应的故事,而是一个中产坠落的故事。
这样的故事,可能发生在我们每一个人身上,只要一场大病,一次裁员,那堵你以为坚不可摧的高墙,就可能轰然坍塌。
“帝哥们”制定的制度把外卖骑手困住,现在这个制度又把制造者帝哥也给困住了,说是天道轮回,可这种轮回不就恰恰说明,制度和系统本身,才是独步天下的主导者吗?
我又想起《逆行人生》里,整部电影,每个人都很急,每个人都很慌,送外卖的骑手急,大厂的员工也急,大厂中层会被裁员,外卖单王也累到哭泣。每个人都匆匆忙忙,但似乎每个人都不快乐。
电影里,“你要超时啦” “即将超时啦” “完蛋啦”,那一声声机器的声音,催命符一般不断响起,似乎不止是系统在催促着外卖员,更像时代在催促着我们每一个人。
而帝哥和我们,不过是系统这个机器运行的耗材。
同为耗材,人家都从乡长变成三胖子了,咱就不要兜头再给一棒子了。
对吧?
—The End—
华为正式发布「纯血鸿蒙」!首个国产移动操作系统来了,融入系统级 AI
鸿蒙版微信,你用上了吗?
这两周,不少朋友和我们一样,早早就体验上了鸿蒙 NEXT 上的微信。极简化的功能让大部分用上的人连声叫好,还没能更新的伙伴都扎堆去了官方评论区求一个内测链接。
10 月 8 号纯血鸿蒙正式公测,越来越多的常用软件入驻新生态,四天内,新系统公测的报名人数直接超过百万,其中数十万的用户率先用上了「别人家的系统」——HarmonyOS NEXT。
从今天起,满怀期待和焦急等待的朋友终于有了新盼头:纯血鸿蒙正式版正式推出,七个华为系列产品将会率先收到更新推送,当然越来越多的华为手机、平板和穿戴设备,也会逐步加入新系统的更新队列。
今晚的「原生鸿蒙之夜」,除了原生系统,华为还发布了几款新产品:
- 华为 nova 13 & nova 13 Pro
- 华为 WATCH Ultimate 绿野传奇
华为几乎在近一年的每场发布会里都有提及纯血鸿蒙,那刚刚推出的正式版鸿蒙和原先的 Beta 版有哪些区别?这次又加入了什么新功能和新应用?它到底好用在哪里?我们一起来看看。
把真实世界,搬进原生系统
HarmonyOS NEXT 的正式命名为 HarmonyOS 5,这也是鸿蒙系统史上最大的升级。
HarmonyOS 5 和上一代系统相比,在设计和 UI 上有了很大的变化。特别是在系统的流畅度和各层级界面、各种不同 App 之间的切换动画和动效,都有了更加细节和真实的考量。一句话总结就是:
HarmonyOS 5 通过算法,用「光·形·色·力·时空」模拟出了真实世界的物理规律和光影效果。
现在点击控制中心中的按钮,不仅按钮本身会提高亮度强化选中感,而且还能通过新系统的实时算法渲染出接近真实的光照效果,旁边的按钮边缘也会被一同照亮。
光影特效不仅在菜单栏和控制中心里,华为还把它带到了每一个有可能产生光影的交互里,像是给手机插入充电线,把手写笔吸附在平板上,都会有完全不同但非常合理的光效出现。
前段时间我们已经上手体验了鸿蒙 NEXT 的首发,发现这些小改变就是会在整体上对一个系统产生很大的影响,而这些点滴也是「鸿蒙变丝滑」的重要原因之一。
HarmonyOS 5 的光影特效除了在这些难以发现的细节角落里,还有非常显眼且鲜艳的主题色彩——炫彩透光。
系统算法的优化,把来自大自然的颜色和系统主题色彩完美融合,保持真实也不显突兀。
一镜到底的动效,也是系统流畅的原因之一,「息屏-锁屏-桌面」整个过程都有一整套全新的动画设计,中间没有断层。
另外,原生鸿蒙的锁屏界面也有了很多玩儿法,实况窗就是其中之一。
现在实况窗有多种形态可选,收起折叠在底部,全部展开在屏幕正中间,不遮挡重要信息,也不错过应用消息。从音乐播放到导航指示,现在都有相应的三方软件做了实况窗的适配。
锁屏界面的另一大更新是智能锁屏,系统算法根据照片本身的构图和主题,自动地匹配时钟的位置、样式以及字体的风格。
此外天气应用和主题,也因为原生鸿蒙「活了起来」。阳光照射到天气卡片的边缘,会有慢慢流动的特效;雪花碰到数字会囤积、雨滴碰到字体会反弹…… 这些都是通过新系统的物理渲染引擎而实现的,感觉很真实,看起来也如此。
好的互联体验,叫无缝流转
HarmonyOS 5 还在设备互联上,有了全新体验。
首先是跨设备互通,在华为平板上做笔记时,若是需要扫描一张图稿,那随手拿起手机拍张照片,便立即嵌入到了平板的相应位置。
升级后的互通功能可以让不同的设备各自发挥所长,也能带来更加无缝的操作,比如在手机上用 AI 抠图复制后,可以直接在平板上粘贴。
以前的设备各自为王,现在华为的各个终端在原生鸿蒙的能力下,结合到了一起,你可以理解成它们的内核与系统完全打通,设备只是不同的显示器。
像是跨设备的应用接续,在手机上没看完的文章、没刷完的视频,可以直接用平板、电视接着看。并且手机还能作为遥控器,随时控制投播设备的音量、内容以及设备切换。
其次,华为分享也有了很多新玩儿法。
现在通过华为分享,不用加好友也不用建群,就能把选中的文件、图片和视频等同时发送给多个设备,相当于没有任何附加条件的隔空群发。
在此基础上,华为分享还支持「碰一碰」的全新交互方式。
两个设备碰碰头,就能秒速分享图片、淘宝看中的好物商品、B 站刷到好笑视频,甚至连小红书博主的主页和个人在 Keep 上的运动计划,都能「碰」给他人。
看得见的丝滑应用,和看不见的底层重构
手机变得丝滑是多种因素共同作用的结果,那藏在最底层、最深处的那个功臣就叫「方舟引擎」。
方舟引擎让原生鸿蒙实现了软硬云和应用生态的深度整合,突破算力的边界,实现了从系统到应用的全面流畅。
通过方舟引擎的优化,有更多的内存空间可以留给消费者使用,发布会上介绍系统可用的运行内存比上一代就节省了 1.5GB,全新引擎对系统的高效管理,也让系统有了更多的冗余空间,流畅度也因此能大幅提升。
手机设备升级到原生鸿蒙之后,整机的流畅度可以提升 30%,平均续航甚至能增加近 1 个小时。
方舟多媒体引擎还能在网络不好的时候,让视频会议的画面依然流畅。华为称对比 iOS18,流畅度提升了 97%。
很多朋友在使用社交软件时都会遇到一个头疼的问题:App 本身的相机拍照不清楚,用系统相机拍照太麻烦。而这个烦恼在原生鸿蒙上将不复存在,现在小红书等三方应用能直接打开系统相机,拍出的照片细节更真实、也更细腻。
另外,通过方舟引擎,在三方软件导入导出视频也会更流畅,特别是到导出速度相比 iOS18 提升了 39%。在分屏多窗等重载的用机场景,方舟调度引擎,让系统资源的分配也更加聪明,即使同屏刷淘宝,小红书也非常流畅。
原生鸿蒙不仅能满足大众需求,小众爱好也一点不落下,鸿蒙原生游戏,在新系统上也有了更流畅的游戏性能和游戏体验。特别是游戏显示的分辨率有了大幅提升,游戏中的人物、景物细节,也有了更精细的表现。
方舟引擎重构了系统底座,让众多的应用在原生鸿蒙上有了更流畅的体验。
一是华为自带的精品应用翻新,华为视频引入了 AIMAX 影院频道以 4K 的高清画质;华为音乐收录了顶尖的音乐厂牌、国家级的机构和艺术家的作品;华为阅读融入了许多微动效,字体还原出了纸书的质感。
二是三方的应用生态有了许多创新,最主要的变化是和系统本身的功能连接地更加紧密,如钉钉、WPS、支付宝、京东、飞书等,在原生鸿蒙上不仅保留了本身的好用功能,还能调动小艺、应用接连等手机原生功能,来实现软件内和系统间的相互协作。
真正的智能,是把生活变得简单
手机在覆盖我们生活全场景的同时,AI 大模型似乎正让所有事情变得更加简单。
而搭载了大模型的小艺,把高深的技术原理变成了「动动嘴就能用」系统级的简单交互,给了我们一次和 AI 技术零距离接触的机会。
可以说,当下最了解你需要哪些信息的,可能就是你手机里的小艺了。
发布会现场也给我们演示了不少案例。
小艺可以结合屏幕内容「看懂」你的意图,用何刚的话来说,小艺如同你身边的 AI 助理,和它互动就像跟身边朋友聊天一样。
比如通过截屏照片中的鸟类,你可以直接向小艺询问鸟的品种?真·秒变鸟类专家。
什么是卡皮巴拉?
如果你也不懂,将问题甩给小艺,它会给出详尽的专业介绍,并且还会像 AI 搜索引擎一样,附上权威的参考来源,尽可能减少 AI 幻觉带来的影响。
假期出行旅游缺「导游」,小艺也能派上用场。
小艺熟悉全国 4A、5A 级别等各大景点,去哪个景点问小艺、规划行程路线问小艺、真人导游能干的时小艺几乎都能干,甚至小艺还能帮忙购买门票,一次对话就可以解决所有游玩需求。
在职场/学习的过程中,小艺也能成为强大的文档助手。
在设计交互上,小艺也有一个亮点,把内容拖到导航条,小艺就能自动唤醒,随时响应。
看到专业的学术论文,小艺能帮你分析生成摘要,还能概括内容,生成思维导图,帮助用户更好地学习。笔记消除功能则可以将做过的试卷拖给小艺,它将自动地转化为全新的试卷。
华为指关节双击截屏功能带到了小艺身上。
以往手机先唤醒再圈选,小艺圈选功能不需要唤醒小艺,任何时候都可以直接圈选,看到好看的穿搭,用指关节截图,小艺会给你关于这件衣服的穿搭建议,以及跳转到京东、淘宝这些购物商城上推荐同款商品。
这个圈选功能目前已经开放给更多的应用,比如当我们需要转账的时候,圈一圈转账的信息,小艺会自动拉起银行 APP 帮你填写账号,省去麻烦的复制粘贴,相当实用。
此外,小艺帮写功能则可以帮你实现润色、多种风格供你选择。并且,小艺还能识别证件信息,等到下次订票时,自动调取记忆的信息,帮你填好相关的证件号码。
另外,此前推出的小艺声音 AI 语音修复的准确率提升 80% 以上,能够帮助言语障碍人群进行交流沟通。
当然,在 AI 手机时代,如何理清系统级 AI 的安全边界至关重要。
鸿蒙原生智能,懂消费者也只属于消费者,数据保留在端侧,敏感数据不上云,用户也可以随时删掉这些敏感数据,彻底将数据隐私的控制权还给用户。
天下苦不合理的应用权限久矣。
主打隐私安全,由用户掌控的 HarmonyOS 5 ,将重新定义应用获取隐私数据的规则,禁止开放 9 类不合理权限,从源头上降低隐私泄露风险。
简单来说,普通的权限访问需要用户允许访问「所有」的数据,但安全访问则只需要给定「选定」的数据。
比如说,你只想换社交个头像,却要给出所有照片的权限,拍个照,却要给出整个相机权限,给家人充值话费,图谋不轨的人却盯上了你的通讯录,而 HarmonyOS 5 将统统拒绝这些无理的要求,让应用行为更加透明。
一句话概括,你需要什么,系统便只给什么。
分享加密文件,只有授权的用户才能看到;不满足应用商店安全要求的应用将无法上架、安装和运行,助力用户实现数据透明,安心下载。
这些全新升级的安全功能都源自于星盾安全架构。
早在今年的华为开发者大会(HDC)上,华为便带来了全新自研的 HarmonyOS NEXT 星盾安全架构,重新构建了操作系统的安全体系与秩序,并能从源头确保应用的纯净可靠。
在软件系统当主角的情况下,硬件配角的光彩也没有被掩盖,还有一大波硬件新品发布。
全新发布的华为 nova 13 系列采用「空间格纹变奏」ID 设计,发送北斗卫星图文消息,搭载拥塞信号增强技术,能够有效降低时延。
AI 与手机的双向奔赴,也让 nova 13 系列诞生了更多的故事。
例如,nova 13 系列上的 AI 修图、AI 扩图、AI 消除和 AI 智慧抠图等功能,能够帮助用户玩转修图这件事。
当然,更智慧的小艺不仅可以快速理解文档并归纳整理摘要,根据文档多轮问答,还能智能帮写,生成创作文案,行程规划和美肤建议更是一把好手。
nova 13 售价 2699 元起,nova 13 Pro 则售价 3699 元起。
除了手机以时尚为元素的新品手机,华为还正式发布了 WATCH Ultimate 手表——绿野传奇,其中自带的高尔夫模式,内置 15000 个球场地图,桌面直达,果岭信息一目了然。
最后公布价格,华为 WATCH Ultimate 售价 7999 元。
全新鸿蒙生态,开始燎原
东方之野,日出之处。
在那个被神话传说笼罩的远古时代,盘古尚未在昆仑山劈开混沌,世界仍被一团未开的元气所笼罩,这股原始之气,便是鸿蒙,
华为,以开创者的姿态,将这一精神融入了鸿蒙系统的诞生。
体验上,鸿蒙系统「润」物细无声,丝滑流畅,是一场审美与体验天花板的双向奔赴。
今天,余承东表示,鸿蒙原生应用已经有超过 15000 款的应用和元服务上架。
当然,做操作系统的挑战不在于技术,而在于生态。而鸿蒙操作系统从来就不是华为的独角戏,而是一场多方参与的盛大合唱。
从老牌巨头到新兴的互联网企业,国内互联网大厂都用实际行动表示了支持,也让鸿蒙生态的朋友圈也迎来了一个急速扩张期。
在过往的历史中,我们鲜少见到这些企业的代表会为了一个操作系统而坐在一起,共同探讨和推动其发展。
此外,鸿蒙用十年时间走完欧美操作系统行业三十年的历程,中国开发者生态带来的巨大势能不容忽视。
华为每年投资高达 60 亿人民币用于激励开发者进行创新。目前华为开发者联盟的注册开发者数量更是迅速增长至 675 万。包括在今年,仓颉编程语言以及 OpenHarmony 统一互联标准也陆续发布。
OpenHarmony 成了发展最快的开源操作系统,Gitee 指数为 NO.1,社区贡献者达到 7800+,代码数超过 1.1 亿行。
并且,硬件销量的强劲复苏,也给开发者和用户接纳鸿蒙操作系统吃了一颗定心丸。
一方面,华为通过扩大市场份额来巩固其地位,根据 TechInsights 的数据显示,今年第二季度华为全球智能手机出货量同比增长了 49%,达到了 1160 万台。
另一方面,华为则通过硬件新物种来提高软件系统的吸引力,比如 9 月份亮相的华为三折叠屏手机既自成一派,同时也是自成生态的底气。
至此,「鸿蒙速度」的星火已有燎原之势——
市场研究机构 Counterpoint Research 数据显示,在 2024 年第一季度,鸿蒙的操作系统首次以 17% 的份额超越 iOS 的 16%,成为市场第二大操作系统,显示出强劲的增长势头。
余承东在发布会上宣布,搭载鸿蒙生态的设备已经超过 10 亿+。从根本上,鸿蒙操作系统全面突破操作系统核心技术,已成为最具生命力的数字底座。如余承东曾说——
万物互联时代,没有人会是一座孤岛,每个人、每个设备都是万物互联大陆的一部分。
鸿蒙生态朋友圈只会越开越大,一枝独秀不是春,百花齐放春满园。
作者:肖凡博、莫崇宇
#欢迎关注爱范儿官方微信公众号:爱范儿(微信号:ifanr),更多精彩内容第一时间为您奉上。
AI 会促使设计师成为更完整的人
最近关于 AIGC 的关注度太高了,自己也时不时会抽空去了解一些情况,或者尝试去用一些工具。很多关于 AI 要替代人的观点大行其道,也一直有不少 AI 要让设计师失业的看法在坊间流传。但我自己的感受和看法是:
在 Midjourney、Stable Diffusion、ChatGPT 这些 AI 工具出现后,「手头功夫」并没有因此丧失意义,它们只是不再具备作为门槛的价值,但依旧是重要的前提。因为「手头功夫」是培养我们发掘问题、判断优劣和快速取舍的重要训练,缺少这部分锻炼,会让人在这一系列 AI 工具面前感到无力。准确地识别问题并提出诉求,这是未来教育的重中之重,也会反过来强调人的价值。
正好,前段时间后浪送了我一本书,是前微软包容性设计的首席总监 Kat Holmes 写的《误配》。一边看这本书,我就一边在结合自己的工作和最近关于 AIGC 的思考,我觉得这本书里提倡的理念,正好回应了当下的舆论思潮。
大部分谈论设计的书,都在试图通过图形和案例来构建一类理论和范式。但在这个 AIGC 日进八万步的新时代里,设计师要以什么身份来参与?我认为所有的既定范式,都会在三到五年之内被全部击碎。串联、融汇、杂交才是新世界的主流,创作者的身份将愈加模糊,甲乙方的界限也会逐渐消失或扭转。怎么回应这样的快速变化?我觉得《误配》这本首版于五年前的「旧书」,提出了很适合当下思考的母题:
设计行为、设计师、设计对象以及新技术之间,如何在智能化浪潮里,互相包容和一起进化?
这本书没有给出直接的答案,但对于有三年以上工作经验的设计师而言,带着经验、问题和困难去阅读,会有启发和收获。「物」的旧体系正在溃散,「系统」和「生态」将是历史的新主角。旧时代的残党,可以下船了。
昨天在各个社交媒体上发了一下自己的读书感受,因为被后浪的微博官号转发了,于是被这本书的译者何盈女士注意到。正巧我的朋友宋喆在刷朋友圈时看到她的这条寻人启事,就这么阴差阳错地跟她直接联系上了。
这种「地球村」的感觉很妙!
这更坚定了我今年一定要 重新启动设计纪录片 的决心了!
为什么 Linux 和 macOS 不需要碎片整理
为什么早期的 Windows 需要整理碎片
Linux Command Line Reference for Common Operations (2)
with over 3.5 million hits in nearly 5 years. So I've decided to start compiling
another list of somewhat more involved/esoteric commands.
Examples marked with • are valid/safe to paste without modification into a terminal, so
you may want to keep a terminal window open while reading this so you can cut & paste.
Command | Description | |
• | grep . /proc/sys/net/ipv4/* | List the contents of flag files |
• | set | grep $USER | Search current environment |
• | tr '\0' '\n' < /proc/$$/environ | Display the startup environment for any process |
• | echo $PATH | tr : '\n' | Display the $PATH one per line |
• | kill -0 $$ && echo process exists and can accept signals | Check for the existence of a process (pid) |
• | find /etc -readable | xargs less -K -p'*ntp' -j $((${LINES:-25}/2)) | Search paths and data with full context. Use n to iterate |
Low impact admin | ||
# | apt-get install "package" -o Acquire::http::Dl-Limit=42 \ -o Acquire::Queue-mode=access | Rate limit apt-get to 42KB/s |
echo 'wget url' | at 01:00 | Download url at 1AM to current dir | |
# | apache2ctl configtest && apache2ctl graceful | Restart apache if config is OK |
• | nice openssl speed sha1 | Run a low priority command (openssl benchmark) |
• | chrt -i 0 openssl speed sha1 | Run a low priority command (more effective than nice) |
• | renice 19 -p $$; ionice -c3 -p $$ | Make shell (script) low priority. Use for non interactive tasks |
Interactive monitoring | ||
• | watch -t -n1 uptime | Clock with system load |
• | htop -d 5 | Better top (scrollable, tree view, lsof/strace integration, ...) |
• | iotop | What's doing I/O |
# | watch -d -n30 "nice ps_mem.py | tail -n $((${LINES:-12}-2))" | What's using RAM |
# | iftop | What's using the network. See also iptraf |
# | mtr www.pixelbeat.org | ping and traceroute combined |
Useful utilities | ||
• | pv < /dev/zero > /dev/null | Progress Viewer for data copying from files and pipes |
• | wkhtml2pdf http://.../linux_commands.html linux_commands.pdf | Make a pdf of a web page |
• | timeout 1 sleep 3 | run a command with bounded time. See also timeout |
Networking | ||
• | python -m SimpleHTTPServer | Serve current directory tree at http://$HOSTNAME:8000/ |
• | openssl s_client -connect www.google.com:443 </dev/null 2>&0 | openssl x509 -dates -noout | Display the date range for a site's certs |
• | curl -I www.pixelbeat.org | Display the server headers for a web site |
# | lsof -i tcp:80 | What's using port 80 |
# | httpd -S | Display a list of apache virtual hosts |
• | vim scp://user@remote//path/to/file | Edit remote file using local vim. Good for high latency links |
• | curl -s http://www.pixelbeat.org/pixelbeat.asc | gpg --import | Import a gpg key from the web |
• | tc qdisc add dev lo root handle 1:0 netem delay 20msec | Add 20ms latency to loopback device (for testing) |
• | tc qdisc del dev lo root | Remove latency added above |
Notification | ||
• | echo "DISPLAY=$DISPLAY xmessage cooker" | at "NOW +30min" | Popup reminder |
• | notify-send "subject" "message" | Display a gnome popup notification |
echo "mail -s 'go home' P@draigBrady.com < /dev/null" | at 17:30 | Email reminder | |
uuencode file name | mail -s subject P@draigBrady.com | Send a file via email | |
ansi2html.sh | mail -a "Content-Type: text/html" P@draigBrady.com | Send/Generate HTML email | |
Better default settings (useful in your .bashrc) | ||
# | tail -s.1 -f /var/log/messages | Display file additions more responsively |
• | seq 100 | tail -n $((${LINES:-12}-2)) | Display as many lines as possible without scrolling |
# | tcpdump -s0 | Capture full network packets |
Useful functions/aliases (useful in your .bashrc) | ||
• | md () { mkdir -p "$1" && cd "$1"; } | Change to a new directory |
• | strerror() { python -c "import os; print os.strerror($1)"; } | Display the meaning of an errno |
• | plot() { { echo 'plot "-"' "$@"; cat; } | gnuplot -persist; } | Plot stdin. (e.g: • seq 1000 | sed 's/.*/s(&)/' | bc -l | plot) |
• | hili() { e="$1"; shift; grep --col=always -Eih "$e|$" "$@"; } | highlight occurences of expr. (e.g: • env | hili $USER) |
• | alias hd='od -Ax -tx1z -v' | Hexdump. (usage e.g.: • hd /proc/self/cmdline | less) |
• | alias realpath='readlink -f' | Canonicalize path. (usage e.g.: • realpath ~/../$USER) |
• | ord() { printf "0x%x\n" "'$1"; } | shell version of the ord() function |
• | chr() { printf $(printf '\\%03o\\n' "$1"); } | shell version of the chr() function |
Multimedia | ||
• | DISPLAY=:0.0 import -window root orig.png | Take a (remote) screenshot |
• | convert -filter catrom -resize '600x>' orig.png 600px_wide.png | Shrink to width, computer gen images or screenshots |
mplayer -ao pcm -vo null -vc dummy /tmp/Flash* | Extract audio from flash video to audiodump.wav | |
ffmpeg -i filename.avi | Display info about multimedia file | |
• | ffmpeg -f x11grab -s xga -r 25 -i :0 -sameq demo.mpg | Capture video of an X display |
DVD | ||
for i in $(seq 9); do ffmpeg -i $i.avi -target pal-dvd $i.mpg; done | Convert video to the correct encoding and aspect for DVD | |
dvdauthor -odvd -t -v "pal,4:3,720xfull" *.mpg;dvdauthor -odvd -T | Build DVD file system. Use 16:9 for widescreen input | |
growisofs -dvd-compat -Z /dev/dvd -dvd-video dvd | Burn DVD file system to disc | |
Unicode | ||
• | python -c "import unicodedata as u; print u.name(unichr(0x2028))" | Lookup a unicode character |
• | uconv -f utf8 -t utf8 -x nfc | Normalize combining characters |
• | printf '\300\200' | iconv -futf8 -tutf8 >/dev/null | Validate UTF-8 |
• | printf 'ŨTF8\n' | LANG=C grep --color=always '[^ -~]\+' | Highlight non printable ASCII chars in UTF-8 |
• | fc-match -s "sans:lang=zh" | List font match order for language and style |
Development | ||
• | gcc -march=native -E -v -</dev/null 2>&1|sed -n 's/.*-mar/-mar/p' | Show autodetected gcc tuning params. See also gcccpuopt |
• | for i in $(seq 4); do { [ $i = 1 ] && wget http://url.ie/6lko -qO-|| ./a.out; } | tee /dev/tty | gcc -xc - 2>/dev/null; done | Compile and execute C code from stdin |
• | cpp -dM /dev/null | Show all predefined macros |
• | echo "#include <features.h>" | cpp -dN | grep "#define __USE_" | Show all glibc feature macros |
gdb -tui | Debug showing source code context in separate windows | |
udev | ||
• | udevadm info -a -p $(udevadm info -q path -n /dev/input/mouse0) | List udev attributes of a device, for matching rules etc. |
• | udevadm test /sys/class/input/mouse0 | See how udev rules are applied for a device |
# | udevadm control --reload-rules | Reload udev rules after modification |
Extended Attributes (Note you may need to (re)mount with "acl" or "user_xattr" options) | ||
• | getfacl . | Show ACLs for file |
• | setfacl -m u:nobody:r . | Allow a specific user to read file |
• | setfacl -x u:nobody . | Delete a specific user's rights to file |
setfacl --default -m group:users:rw- dir/ | Set umask for a for a specific dir | |
getcap file | Show capabilities for a program | |
setcap cap_net_raw+ep your_gtk_prog | Allow gtk program raw access to network | |
• | stat -c%C . | Show SELinux context for file |
chcon ... file | Set SELinux context for file (see also restorecon) | |
• | getfattr -m- -d . | Show all extended attributes (includes selinux,acls,...) |
• | setfattr -n "user.foo" -v "bar" . | Set arbitrary user attributes |
BASH specific | ||
• | echo 123 | tee >(tr 1 a) | tr 1 b | Split data to 2 commands (using process substitution) |
meld local_file <(ssh host cat remote_file) | Compare a local and remote file (using process substitution) | |
Multicore | ||
• | taskset -c 0 nproc | Restrict a command to certain processors |
• | find -type f -print0 | xargs -r0 -P$(nproc) -n10 md5sum | Process files in parallel over available processors |
sort -m <(sort data1) <(sort data2) >data.sorted | Sort separate data files over 2 processors |
Linux Command Line Reference for Common Operations
This is a linux command line reference for common operations. Examples marked with • are valid/safe to paste without modification into a terminal, so you may want to keep a terminal window open while reading this so you can cut & paste. All these commands have been tested both on Fedora and Ubuntu. See also more linux commands. |
Command | Description | |
• | apropos whatis | Show commands pertinent to string. See also threadsafe |
• | man -t ascii | ps2pdf - > ascii.pdf | make a pdf of a manual page |
which command | Show full path name of command | |
time command | See how long a command takes | |
• | time cat | Start stopwatch. Ctrl-d to stop. See also sw |
dir navigation | ||
• | cd - | Go to previous directory |
• | cd | Go to $HOME directory |
(cd dir && command) | Go to dir, execute command and return to current dir | |
• | pushd . | Put current dir on stack so you can popd back to it |
file searching | ||
• | alias l='ls -l --color=auto' | quick dir listing |
• | ls -lrt | List files by date. See also newest and find_mm_yyyy |
• | ls /usr/bin | pr -T9 -W$COLUMNS | Print in 9 columns to width of terminal |
find -name '*.[ch]' | xargs grep -E 'expr' | Search 'expr' in this dir and below. See also findrepo | |
find -type f -print0 | xargs -r0 grep -F 'example' | Search all regular files for 'example' in this dir and below | |
find -maxdepth 1 -type f | xargs grep -F 'example' | Search all regular files for 'example' in this dir | |
find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done | Process each item with multiple commands (in while loop) | |
• | find -type f ! -perm -444 | Find files not readable by all (useful for web site) |
• | find -type d ! -perm -111 | Find dirs not accessible by all (useful for web site) |
• | locate -r 'file[^/]*\.txt' | Search cached index for names. This re is like glob *file*.txt |
• | look reference | Quickly search (sorted) dictionary for prefix |
• | grep --color reference /usr/share/dict/words | Highlight occurances of regular expression in dictionary |
archives and compression | ||
gpg -c file | Encrypt file | |
gpg file.gpg | Decrypt file | |
tar -c dir/ | bzip2 > dir.tar.bz2 | Make compressed archive of dir/ | |
bzip2 -dc dir.tar.bz2 | tar -x | Extract archive (use gzip instead of bzip2 for tar.gz files) | |
tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg' | Make encrypted archive of dir/ on remote machine | |
find dir/ -name '*.txt' | tar -c --files-from=- | bzip2 > dir_txt.tar.bz2 | Make archive of subset of dir/ and below | |
find dir/ -name '*.txt' | xargs cp -a --target-directory=dir_txt/ --parents | Make copy of subset of dir/ and below | |
(tar -c /dir/to/copy) | ( cd /where/to/ && tar -x -p ) | Copy (with permissions) copy/ dir to /where/to/ dir | |
(cd /dir/to/copy && tar -c .) | ( cd /where/to/ && tar -x -p ) | Copy (with permissions) contents of copy/ dir to /where/to/ | |
(tar -c /dir/to/copy ) | ssh -C user@remote 'cd /where/to/ && tar -x -p' | Copy (with permissions) copy/ dir to remote:/where/to/ dir | |
dd bs=1M if=/dev/sda | gzip | ssh user@remote 'dd of=sda.gz' | Backup harddisk to remote machine | |
rsync (Network efficient file copier: Use the --dry-run option for testing) | ||
rsync -P rsync://rsync.server.com/path/to/file file | Only get diffs. Do multiple times for troublesome downloads | |
rsync --bwlimit=1000 fromfile tofile | Locally copy with rate limit. It's like nice for I/O | |
rsync -az -e ssh --delete ~/public_html/ remote.com:'~/public_html' | Mirror web site (using compression and encryption) | |
rsync -auz -e ssh remote:/dir/ . && rsync -auz -e ssh . remote:/dir/ | Synchronize current directory with remote one | |
ssh (Secure SHell) | ||
ssh $USER@$HOST command | Run command on $HOST as $USER (default command=shell) | |
• | ssh -f -Y $USER@$HOSTNAME xeyes | Run GUI command on $HOSTNAME as $USER |
scp -p -r $USER@$HOST: file dir/ | Copy with permissions to $USER's home directory on $HOST | |
scp -c arcfour $USER@$LANHOST: bigfile | Use faster crypto for local LAN. This might saturate GigE | |
ssh -g -L 8080:localhost:80 root@$HOST | Forward connections to $HOSTNAME:8080 out to $HOST:80 | |
ssh -R 1434:imap:143 root@$HOST | Forward connections from $HOST:1434 in to imap:143 | |
ssh-copy-id $USER@$HOST | Install public key for $USER@$HOST for password-less log in | |
wget (multi purpose download tool) | ||
• | (cd dir/ && wget -nd -pHEKk http://www.pixelbeat.org/cmdline.html) | Store local browsable version of a page to the current dir |
wget -c http://www.example.com/large.file | Continue downloading a partially downloaded file | |
wget -r -nd -np -l1 -A '*.jpg' http://www.example.com/dir/ | Download a set of files to the current directory | |
wget ftp://remote/file[1-9].iso/ | FTP supports globbing directly | |
• | wget -q -O- http://www.pixelbeat.org/timeline.html | grep 'a href' | head | Process output directly |
echo 'wget url' | at 01:00 | Download url at 1AM to current dir | |
wget --limit-rate=20k url | Do a low priority download (limit to 20KB/s in this case) | |
wget -nv --spider --force-html -i bookmarks.html | Check links in a file | |
wget --mirror http://www.example.com/ | Efficiently update a local copy of a site (handy from cron) | |
networking (Note ifconfig, route, mii-tool, nslookup commands are obsolete) | ||
ethtool eth0 | Show status of ethernet interface eth0 | |
ethtool --change eth0 autoneg off speed 100 duplex full | Manually set ethernet interface speed | |
iwconfig eth1 | Show status of wireless interface eth1 | |
iwconfig eth1 rate 1Mb/s fixed | Manually set wireless interface speed | |
• | iwlist scan | List wireless networks in range |
• | ip link show | List network interfaces |
ip link set dev eth0 name wan | Rename interface eth0 to wan | |
ip link set dev eth0 up | Bring interface eth0 up (or down) | |
• | ip addr show | List addresses for interfaces |
ip addr add 1.2.3.4/24 brd + dev eth0 | Add (or del) ip and mask (255.255.255.0) | |
• | ip route show | List routing table |
ip route add default via 1.2.3.254 | Set default gateway to 1.2.3.254 | |
• | host pixelbeat.org | ookup DNS ip address for name or vice versaL |
• | hostname -i | Lookup local ip address (equivalent to host `hostname`) |
• | whois pixelbeat.org | Lookup whois info for hostname or ip address |
• | netstat -tupl | List internet services on a system |
• | netstat -tup | List active connections to/from system |
windows networking (Note samba is the package that provides all this windows specific networking support) | ||
• | smbtree | Find windows machines. See also findsmb |
nmblookup -A 1.2.3.4 | Find the windows (netbios) name associated with ip address | |
smbclient -L windows_box | List shares on windows machine or samba server | |
mount -t smbfs -o fmask=666,guest //windows_box/share /mnt/share | Mount a windows share | |
echo 'message' | smbclient -M windows_box | Send popup to windows machine (off by default in XP sp2) | |
text manipulation (Note sed uses stdin and stdout. Newer versions support inplace editing with the -i option) | ||
sed 's/string1/string2/g' | Replace string1 with string2 | |
sed 's/\(.*\)1/\12/g' | Modify anystring1 to anystring2 | |
sed '/ *#/d; /^ *$/d' | Remove comments and blank lines | |
sed ':a; /\\$/N; s/\\\n//; ta' | Concatenate lines with trailing \ | |
sed 's/[ \t]*$//' | Remove trailing spaces from lines | |
sed 's/\([`"$\]\)/\\\1/g' | Escape shell metacharacters active within double quotes | |
• | seq 10 | sed "s/^/ /; s/ *\(.\{7,\}\)/\1/" | Right align numbers |
sed -n '1000{p;q}' | Print 1000th line | |
sed -n '10,20p;20q' | Print lines 10 to 20 | |
sed -n 's/.*<title>\(.*\)<\/title>.*/\1/ip;T;q' | Extract title from HTML web page | |
sed -i 42d ~/.ssh/known_hosts | Delete a particular line | |
sort -t. -k1,1n -k2,2n -k3,3n -k4,4n | Sort IPV4 ip addresses | |
• | echo 'Test' | tr '[:lower:]' '[:upper:]' | Case conversion |
• | tr -dc '[:print:]' < /dev/urandom | Filter non printable characters |
• | tr -s '[:blank:]' '\t' </proc/diskstats | cut -f4 | cut fields separated by blanks |
• | history | wc -l | Count lines |
set operations (Note you can export LANG=C for speed. Also these assume no duplicate lines within a file) | ||
sort file1 file2 | uniq | Union of unsorted files | |
sort file1 file2 | uniq -d | Intersection of unsorted files | |
sort file1 file1 file2 | uniq -u | Difference of unsorted files | |
sort file1 file2 | uniq -u | Symmetric Difference of unsorted files | |
join -t'\0' -a1 -a2 file1 file2 | Union of sorted files | |
join -t'\0' file1 file2 | Intersection of sorted files | |
join -t'\0' -v2 file1 file2 | Difference of sorted files | |
join -t'\0' -v1 -v2 file1 file2 | Symmetric Difference of sorted files | |
math | ||
• | echo '(1 + sqrt(5))/2' | bc -l | Quick math (Calculate φ). See also bc |
• | seq -f '4/%g' 1 2 99999 | paste -sd-+ | bc -l | Calculate π the unix way |
• | echo 'pad=20; min=64; (100*10^6)/((pad+min)*8)' | bc | More complex (int) e.g. This shows max FastE packet rate |
• | echo 'pad=20; min=64; print (100E6)/((pad+min)*8)' | python | Python handles scientific notation |
• | echo 'pad=20; plot [64:1518] (100*10**6)/((pad+x)*8)' | gnuplot -persist | Plot FastE packet rate vs packet size |
• | echo 'obase=16; ibase=10; 64206' | bc | Base conversion (decimal to hexadecimal) |
• | echo $((0x2dec)) | Base conversion (hex to dec) ((shell arithmetic expansion)) |
• | units -t '100m/9.58s' 'miles/hour' | Unit conversion (metric to imperial) |
• | units -t '500GB' 'GiB' | Unit conversion (SI to IEC prefixes) |
• | units -t '1 googol' | Definition lookup |
• | seq 100 | (tr '\n' +; echo 0) | bc | Add a column of numbers. See also add and funcpy |
calendar | ||
• | cal -3 | Display a calendar |
• | cal 9 1752 | Display a calendar for a particular month year |
• | date -d fri | What date is it this friday. See also day |
• | [ $(date -d '12:00 +1 day' +%d) = '01' ] || exit | exit a script unless it's the last day of the month |
• | date --date='25 Dec' +%A | What day does xmas fall on, this year |
• | date --date='@2147483647' | Convert seconds since the epoch (1970-01-01 UTC) to date |
• | TZ='America/Los_Angeles' date | What time is it on west coast of US (use tzselect to find TZ) |
• | date --date='TZ="America/Los_Angeles" 09:00 next Fri' | What's the local time for 9AM next Friday on west coast US |
locales | ||
• | printf "%'d\n" 1234 | Print number with thousands grouping appropriate to locale |
• | BLOCK_SIZE=\'1 ls -l | Use locale thousands grouping in ls. See also l |
• | echo "I live in `locale territory`" | Extract info from locale database |
• | LANG=en_IE.utf8 locale int_prefix | Lookup locale info for specific country. See also ccodes |
• | locale -kc $(locale | sed -n 's/\(LC_.\{4,\}\)=.*/\1/p') | less | List fields available in locale database |
recode (Obsoletes iconv, dos2unix, unix2dos) | ||
• | recode -l | less | Show available conversions (aliases on each line) |
recode windows-1252.. file_to_change.txt | Windows "ansi" to local charset (auto does CRLF conversion) | |
recode utf-8/CRLF.. file_to_change.txt | Windows utf8 to local charset | |
recode iso-8859-15..utf8 file_to_change.txt | Latin9 (western europe) to utf8 | |
recode ../b64 < file.txt > file.b64 | Base64 encode | |
recode /qp.. < file.qp > file.txt | Quoted printable decode | |
recode ..HTML < file.txt > file.html | Text to HTML | |
• | recode -lf windows-1252 | grep euro | Lookup table of characters |
• | echo -n 0x80 | recode latin-9/x1..dump | Show what a code represents in latin-9 charmap |
• | echo -n 0x20AC | recode ucs-2/x2..latin-9/x | Show latin-9 encoding |
• | echo -n 0x20AC | recode ucs-2/x2..utf-8/x | Show utf-8 encoding |
CDs | ||
gzip < /dev/cdrom > cdrom.iso.gz | Save copy of data cdrom | |
mkisofs -V LABEL -r dir | gzip > cdrom.iso.gz | Create cdrom image from contents of dir | |
mount -o loop cdrom.iso /mnt/dir | Mount the cdrom image at /mnt/dir (read only) | |
cdrecord -v dev=/dev/cdrom blank=fast | Clear a CDRW | |
gzip -dc cdrom.iso.gz | cdrecord -v dev=/dev/cdrom - | Burn cdrom image (use dev=ATAPI -scanbus to confirm dev) | |
cdparanoia -B | Rip audio tracks from CD to wav files in current dir | |
cdrecord -v dev=/dev/cdrom -audio -pad *.wav | Make audio CD from all wavs in current dir (see also cdrdao) | |
oggenc --tracknum='track' track.cdda.wav -o 'track.ogg' | Make ogg file from wav file | |
disk space (See also FSlint) | ||
• | ls -lSr | Show files by size, biggest last |
• | du -s * | sort -k1,1rn | head | Show top disk users in current dir. See also dutop |
• | du -hs /home/* | sort -k1,1h | Sort paths by easy to interpret disk usage |
• | df -h | Show free space on mounted filesystems |
• | df -i | Show free inodes on mounted filesystems |
• | fdisk -l | Show disks partitions sizes and types (run as root) |
• | rpm -q -a --qf '%10{SIZE}\t%{NAME}\n' | sort -k1,1n | List all packages by installed size (Bytes) on rpm distros |
• | dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n | List all packages by installed size (KBytes) on deb distros |
• | dd bs=1 seek=2TB if=/dev/null of=ext3.test | Create a large test file (taking no space). See also truncate |
• | > file | truncate data of file or create an empty file |
monitoring/debugging | ||
• | tail -f /var/log/messages | Monitor messages in a log file |
• | strace -c ls >/dev/null | Summarise/profile system calls made by command |
• | strace -f -e open ls >/dev/null | List system calls made by command |
• | strace -f -e trace=write -e write=1,2 ls >/dev/null | Monitor what's written to stdout and stderr |
• | ltrace -f -e getenv ls >/dev/null | List library calls made by command |
• | lsof -p $$ | List paths that process id has open |
• | lsof ~ | List processes that have specified path open |
• | tcpdump not port 22 | Show network traffic except ssh. See also tcpdump_not_me |
• | ps -e -o pid,args --forest | List processes in a hierarchy |
• | ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d' | List processes by % cpu usage |
• | ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS | List processes by mem (KB) usage. See also ps_mem.py |
• | ps -C firefox-bin -L -o pid,tid,pcpu,state | List all threads for a particular process |
• | ps -p 1,$$ -o etime= | List elapsed wall time for particular process IDs |
• | last reboot | Show system reboot history |
• | free -m | Show amount of (remaining) RAM (-m displays in MB) |
• | watch -n.1 'cat /proc/interrupts' | Watch changeable data continuously |
• | udevadm monitor | Monitor udev events to help configure rules |
system information (see also sysinfo) ('#' means root access is required) | ||
• | uname -a | Show kernel version and system architecture |
• | head -n1 /etc/issue | Show name and version of distribution |
• | cat /proc/partitions | Show all partitions registered on the system |
• | grep MemTotal /proc/meminfo | Show RAM total seen by the system |
• | grep "model name" /proc/cpuinfo | Show CPU(s) info |
• | lspci -tv | Show PCI info |
• | lsusb -tv | Show USB info |
• | mount | column -t | List mounted filesystems on the system (and align output) |
• | grep -F capacity: /proc/acpi/battery/BAT0/info | Show state of cells in laptop battery |
# | dmidecode -q | less | Display SMBIOS/DMI information |
# | smartctl -A /dev/sda | grep Power_On_Hours | How long has this disk (system) been powered on in total |
# | hdparm -i /dev/sda | Show info about disk sda |
# | hdparm -tT /dev/sda | Do a read speed test on disk sda |
# | badblocks -s /dev/sda | Test for unreadable blocks on disk sda |
interactive (see also linux keyboard shortcuts) | ||
• | readline | Line editor used by bash, python, bc, gnuplot, ... |
• | screen | Virtual terminals with detach capability, ... |
• | mc | Powerful file manager that can browse rpm, tar, ftp, ssh, ... |
• | gnuplot | Interactive/scriptable graphing |
• | links | Web browser |
• | xdg-open . | open a file or url with the registered desktop application |
Linux系统信息查看命令大全
另外这里还有非常多的命令, 可以作为参考。
# uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量
# free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 # du -sh <目录名> # 查看指定目录的大小 # grep MemTotal /proc/meminfo # 查看内存总量 # grep MemFree /proc/meminfo # 查看空闲内存量 # uptime # 查看系统运行时间、用户数、负载 # cat /proc/loadavg # 查看系统负载
# mount | column -t # 查看挂接的分区状态 # fdisk -l # 查看所有分区 # swapon -s # 查看所有交换分区 # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) # dmesg | grep IDE # 查看启动时IDE设备检测状况
# ifconfig # 查看所有网络接口的属性 # iptables -L # 查看防火墙设置 # route -n # 查看路由表 # netstat -lntp # 查看所有监听端口 # netstat -antp # 查看所有已经建立的连接 # netstat -s # 查看网络统计信息
# ps -ef # 查看所有进程 # top # 实时显示进程状态
# w # 查看活动用户 # id <用户名> # 查看指定用户信息 # last # 查看用户登录日志 # cut -d: -f1 /etc/passwd # 查看系统所有用户 # cut -d: -f1 /etc/group # 查看系统所有组 # crontab -l # 查看当前用户的计划任务
# chkconfig --list # 列出所有系统服务 # chkconfig --list | grep on # 列出所有启动的系统服务
# rpm -qa # 查看所有安装的软件包
附加一张总结的很好Linux常用命定的图片:
Linux 文件结构大全 |