Normal view

There are new articles available, click to refresh the page.
Before yesterdayMain stream

金宏伟|“合法诉求渠道”里的人,也在网络喊冤

4 September 2024 at 15:52
CDT 档案卡
标题:“合法诉求渠道”里的人,也在网络喊冤
作者:金宏伟
发表日期:2024.9.4
来源:微信公众号“金宏伟”
主题归类:实名举报
CDS收藏:公民馆
版权说明:该作品版权归原作者所有。中国数字时代仅对原作进行存档,以对抗中国的网络审查。详细版权说明

前天写了篇《青岛“逆行路虎女”事件,突显法律的失灵与悲哀》,四五个小时,就被限流,文下的评论也全部被删除。

所以,别问我为什么不敢把你的留言发出来,或者不回复你的留言。

要说路上嚣张跋扈的人,见得多了,也早麻木了,所以青岛这事儿刚刚被曝光时,我并没有太多的表达欲。直到官方通报出来之后,发现通报内容完全没提损伤鉴定。被打的小伙儿也通过网络表达了自身对处理结果的不满,并表示自己已经“申请了损伤鉴定”。

我这才感觉此事有点怪。

但凡平时看过法治节目的,应该都有印象,一旦发生了身体接触,那怕手指破个小口子,办案人员也会拿标尺量量尺寸,或者脖子上有块红肿,就测一下面积。伤情的长度或面积,直接影响损伤等级,进而决定刑事与行政之间的定性区分。

这是公安部的标准处警程序,但我无法理解,何以在青岛这事儿上,被打者满脸是血,而且明确表达了不接受和解的意愿,办案机关为什么还要等被打者“申请鉴定”。我不知道这是小伙儿的表达错误,还是办案机关真没给小伙儿安排损伤鉴定。

我们学法律,大一的时候就会学到法律的作用是评价、是预测、是引导、是教育……

但如今,我们“预测”什么?公安部写得那么清楚的程序规定,如果还要被打者“申请鉴定”,未免有点讽刺。

我们能“评价”什么?逆行、伤人、肇事逃逸,还公然叫嚣“打你怎么了”,行政拘留十天,也无法理解。

至于“教育”作用,法律本该是约束每个人的行为,让每个人不至于胆敢肆意殴打他人,而如今的“教育”结果却是——被打者被教育得不敢还手,目击者也不断地提醒“还手就理亏”。多么荒诞。

当然,如今各大媒体都在追问青岛这件事儿,小伙儿的战友们也纷纷发声,大概率,在舆论的关注下,青岛这事儿还会有后续。

可假设一下,如果没有目击者热心地拍下了这事儿的视频,并且发布在了网上,普通人遇到这种人,会是什么结局?难以想象。

今天早上,看到有媒体的评论文章说,期待这件事能够成为正当防卫的典型案例,培养公众“法不向不法让步”的信念,不再受困于“还手就理亏”的担忧。

哈哈。

这几年,是没有正当防卫的典型案例吗?

有啊。陆陆续续推出两三批了。但在实践中,还手就互殴的案件依然还是很多。以这些典型案例作为检索关键词,去搜案例库,你会发现,运用这些典型案例来认定正当防卫的判决,没多少检索结果。倒是典型案例中有一个如何认定不是正当防卫的案例,特别是这个案例中的一句表述:“对方虽然怎么怎么样,但危险程度并不急迫,尚属于闹事行为,被告人完全有时间有条件与对方周旋、安抚”,这个表述,反而能查到相关应用案例。

你说讽刺不讽刺。

前段时间,我写过一篇小文,叫《合法诉求渠道,找你找得好辛苦》,说的是我自己代理过的一个案子,家属倾向于按程序举报,可是,举报来举报去,只是被各单位踢皮球。

这些年,我这个小公号下面总有一些留言者,说我不懂法律程序,没有掌握最新的司法政策和司法案例。

多挺奇怪。我这天天和法律程序打交道的人,总被人“教育”什么是法律程序,什么是司法案例。

开始,我还很认真地回复一下——您说的那些法律程序,我都尝试过,司法案例我也都援引过,但真是没啥用。

后来,我也懒得解释了。

曾经有个广东的郑川案,家属就是纪委的,按理说应该非常熟悉法律程序,可是,反应情况五六年,泥牛入海,以至于家属在接受媒体采访时说,有点后悔没有早点公开喊冤。(刚才检索了一下,2020年《西南商报》报道此案已向最高检申诉,但未检索到后续相关情况,只能祝好运吧)

每次我和别人讲郑川这个案子,就有人说这是小概率事件。其实,这哪是小概率事件,大量案件都是如此,只不过郑川案有媒体报道,所以比较适合作为讲解案例。而最近这半年,一个非常明显的现象,大量办案机关的工作人员身着制服在网络上公开曝光。

image

说老百姓不懂法律程序,说律师不懂法律程序,那么这些办案机关的工作人员也不懂法律程序吗?他们就在“合法诉求渠道”之内,遇到了事情也纷纷寻求网络发声。

怎么解释?

想想真的无力又悲哀。

今天这篇不算“行文”,只是微博平台限制留言字数,而且昨天的《青岛“逆行路虎女”事件,突显法律的失灵与悲哀》也无法留言,以此形式回复一下各位吧。

老萧杂说|青岛路虎女被制成车贴,这是城市的耻辱印记

3 September 2024 at 19:54

file

CDT 档案卡
标题:青岛路虎女被制成车贴,这是城市的耻辱印记
作者:秃笔的老萧
发表日期:2024.9.3
来源:微信公众号“老萧杂说”
主题归类:法律不是挡箭牌
CDS收藏:公民馆
版权说明:该作品版权归原作者所有。中国数字时代仅对原作进行存档,以对抗中国的网络审查。详细版权说明

青岛路虎女子开车逆行,还钻到车里打人,叫嚣“打你怎么了,逆行怎么了 ”,结果竟然只被行政拘留10天,罚款1000元。

如此轻拿轻放,招致舆论愤怒,各种版本的质疑、讽刺、调侃满天飞。

路虎女“打你怎么了”的漫画,被商家制成车贴,以每张12元的最低价格,在网上热卖,颇有供不应求之势。

“打你怎么了” ,并未在事件发生之初就一语走红,而是随着新闻事件的演进,“打你几乎等于白打” 不断得到印证,最终被固定意义。

鉴于事件的公共性质,公众对青岛公权力机关的漫不经心反弹很大,造成情绪淤积。

弗洛伊德在《精神分析引论》 中认为,大众会主动建立起心理上的自我防御机制,在把自身情绪和态度行为推向周围的人或事物中,改变情绪宣泄的方向,进而实现心理情绪的投射和转移。

于是,青岛路虎女迅速成一个标签、一个符号, 象征了某种模糊却坚硬的存在。

“打你怎么了”车贴,颇具攻击和挑衅性,却得到另类张扬,有相当的偶然性。但偶然性中的必然性,则是网络社会与现实社会的相互嵌入和互动。

它被贴到车尾大量传播,是因为公众不仅关心该案件是否能得到公正处理,更关心自己碰到类似遭遇时,是否也难以得到法律的公正对待。 

image

该车贴作为一种可以广泛进入大众视野的传播媒介,自然而然地成为传递权利焦虑的一个途径,投射出对公权力的不信任,也蕴涵着对更多事实真相的渴求。

正是这种共同的情绪体验和心理共鸣,让人们在线下找到了彼此连接的纽带,以一种娱乐化、狂欢化的姿态,将个体焦虑转化为集体性表达。

从青岛路虎女“打你怎么了”车贴热卖,感受到一种共同的集体情绪在涌动,这是一个城市的耻辱印记。

除非在被打者提出行政复议后,青岛警方顾及一点民意,顾及一下法律的颜面,重新作出具体行政行为,方能洗刷这个印记。

七使2022|路虎女与挨打男,背后的常识和法律

2 September 2024 at 19:44
CDT 档案卡
标题:路虎女与挨打男,背后的常识和法律
作者:七使2022
发表日期:2024.9.2
来源:微信公众号“七使2022”
主题归类:法律不是挡箭牌
CDS收藏:公民馆
版权说明:该作品版权归原作者所有。中国数字时代仅对原作进行存档,以对抗中国的网络审查。详细版权说明

青岛崂山路虎女究竟有没有背景?当然有。否则,崂山分局绝不会在舆情发酵后,仍坚持只给予拘留十日、罚款一千的行政处罚。

崂山青山社区一名干部向官媒记者“证实”,打人的女司机王慧“不是公职人员,是青山社区的村民,多年前嫁到市里,曾经营过服装店”。

img

在这里顺便教育一下官媒记者,在公开发布的社会新闻稿里,不要轻易使用属性词。“证实”的意思是证明、属实,使用这个词,就代表了否定其他一切可能性。但,区区一个社区干部能否定什么?他/她只应该是记者的其中一个信源。而对于公众关注的女司机具体身份,至少要有两三个不同信源,才能初步确定。只有一个社区干部,能“证实”什么?你怎么知道他/她不是信口胡柴?而且,从社区干部这番话里,明显可以看出大量漏洞:1、你作为青山社区的干部,只能证实路虎女不是青山社区的公职人员,她是不是崂山或者青岛或者山东的公职人员,你证实不了,也否定不了;2、你只能说路虎女以前是当地村民,她多年前嫁到市里,户口都迁出了,她在城里干什么,你知道个鬼;3、路虎女嫁给谁了?她夫家、娘家、亲戚家都是干什么的?是不是公职人员?啥都没说,社区干部“证实”了条毛。因此,官媒记者在新闻稿里,只应该使用“称”这种绝对中立的词。“青山社区一名干部向极目新闻记者称,女司机王某某不是公职人员,是青山社区的村民。”

别说青山社区干部的话只能定性为绝对中立的“称”,就连崂山分局的通报也只能定性为绝对中立的“称”,就算崂山分局局长亲自出来开发布会,也只能定性为绝对中立的“称”。这是新闻专业主义的最基本操作。因为,官媒记者稿件里说“称”,实际上是在表达中立,“他们是这样说的,究竟事实是什么,尚待进一步查证”。而说“证实”,是在表达记者已经完全偏信了一方的说辞,“他们说的就是真的,事实就是这样,已经确认了。”

因此,本案的新闻事实是,只有一名社区干部说打人的路虎女司机王慧并非公职人员。究竟社区干部说没说谎,我们不知道。女司机是否公职人员,我们也不知道。女司机的亲戚好友里有没有公职人员,如果有,他们是否在“行拘十日罚金一千”的处理结果中起到作用,我们更不知道。

我们不是官媒,没有采访权,所以既没办法“证实”也没办法“否认”女司机是否公职人员。我们只能凭常识推测,女司机多半是有后台背景的。道理很简单,在短短的视频片段里,女司机王慧至少两次开门进入“崂山小林”的车里,伸手打他,还伸手进车窗,殴击其脸部至少十余次,边打边骂,态度极其嚣张。这明显属于“随意殴打他人,情节恶劣”、“在公共场所起哄闹事,造成公共场所秩序严重混乱”,如果路虎女王慧没有后台撑腰,她大概率会被崂山分局以寻衅滋事罪刑拘起来。

如果有人一口咬定她就是没有后台,其实不妨去亲身测试一下,你们自己在一处交通堵塞的现场,拉开某辆车门,痛打司机十几巴掌,致其口鼻流血轻微伤,同时视频上传,造成千万点击计的舆情,看当地公安局是否只行拘你十天、罚款你一千。如果也是的话,那记得告诉我。我的仇人可不少,我不介意上热搜。

路虎女的后台究竟是谁,那就值得深究了。

img

img

img

有人说,站在路虎女身边的黑衣男,是某队长或某副局长。我比较了一下官们的照片,都不太像,似乎可以排除。这个黑衣男的发型是捯饬过的,一般公安系统的中高层人士不会这样。

img

img

有人爆料,企查查上面,青岛有个叫王慧的人“担任法定代表人等 82、对外投资 3、在外任职 82、全部关联企业 83、控制企业 3、所属集团 6 ”。青岛某集团则火速辟谣:“路虎打人女非我司员工王慧。”

img

不少网民怀疑,王慧是“居家拘留”。红星新闻记者就此致电青岛崂山区返岭派出所,“一名派出所工作人员向记者证实:‘王某正在执行处罚已经被拘留,并非像网友所说是在家拘留还能随意出门’。” “这名派出所工作人员透露,网传视频内容并不属实,王某确定已被正式拘留,但具体拘留地则不便对外透露。”

首先,红星新闻记者与上面的极目新闻记者一样,犯了滥用“证实”一词的错误。其次,“具体拘留地”就是所属区的拘留所。假如执行拘留路虎女的是崂山区返岭派出所,那么路虎女的具体拘留地,必然是崂山区管理教育大队(区拘留所)。记者真要查证,应该致电崂山区拘留所继续追问,而不是一个派出所工作人员就“证实”了王慧被拘留。

说过路虎打人女,回头来说说车里挨打男。这位“林先生”,据称,抖音账号是“崂山小林”,现在已经有三十多万粉了。

img

“崂山小林”在案中的表现也是耐人寻味。

视频可见,路虎女王慧一边大声叫骂,一边拉开车门进入车中殴打他两次,隔窗伸臂痛殴他,至少两次。而“崂山小林”不但没有还手,连举手抬臂格挡袭击或者侧头躲避的基本反应都没有,全程就是瘫坐挨打,任你怒打千万次,“我自岿然不动”。

他这种反应是不自然的,反人性的。因为任何人在遇袭的自然反应,就是格挡闪避,其次就是还击制止。

img

img

后来“崂山小林”对九派新闻的记者是这样解释的:“首先对方是女人,其次我车上坐着民宿客人,有孩子,而且我是一名退伍军人,不可能跟她计较。这事给游客的孩子也吓着了,客人关心我,我说没事,得先把客人安抚好。”

这能解释得通吗?当然不能。

img

img

“对方是女人”,能成为男人不还击,或者有限还击的理由,但不能成为男人不格挡闪避的理由。“凡是女人打你就得受着”,这只能称为受虐倾向。再说,女人揍你可以完全忍受到底,那女人若是拔出刀来杀你,是不是也要挺胸挨宰?

img

其次,车上坐着民宿客人,还有孩子,这更不能成为“崂山小林”全程瘫坐挨打的理由。你是民宿店家,负有保护车上客人及其孩子的义务。你自己甘心情愿挨打就算了,为什么不能提早锁车门、关车窗,防止气势汹汹的路虎女闯进车内?

路虎女怒气勃发之际,既然能痛殴司机,那凭什么断定她必然不会对后座乘客动手?万一她觉得打司机已经不足以泄愤,顺手把后座的女子和孩子也痛殴一顿咋办?“崂山小林”能预先知道这个可能性不存在?既然不能,为什么不提早锁车门关车窗,扼杀这个可能性?

从善意的角度进行合理的分析,那就是“崂山小林”被气势汹汹的路虎女及其可能的背景吓傻了,不但不敢还击、不敢格挡躲避,连锁门关窗都不敢,更谈不上顾及后座乘客的安全。一字记之曰:怂。且怂出相当境界了。

亏他还好意思跟记者强调自己“退伍军人”的身份。你连后座乘客和孩子的安全都无法保护,你连自己最基本的人身安全都无法保护,还谈何保家卫国?

遇到别人的暴力袭击,格挡、躲避,甚至还击,是民众的天然权利和法律权利。

两高一部于2020年印发《「关于依法适用正当防卫制度的指导意见」的通知》,里面明确指出:面对不法侵害,正当防卫是法律赋予公民的权利,必须坚决捍卫“法不能向不法让步”的法治精神。今年年初火遍全网的电影《第二十条》,讲的正是这件事。

而“崂山小林”瘫坐任打的怂字诀,正是代表着民众对正当防卫权的不了解、不信任。或者说,他们心里坚信,在某些权力面前,所谓的法律权利是无效的、名存实亡的。不幸的是,崂山分局“轻轻放过”的处罚通知,恰恰证实了他们的想法。

img

img

坏球的啃志哥刚新出了个视频,先把网友对路虎打人女的背景质疑斥为“谣言和阴谋论”,再强调:“面对不法侵害时能不能还击”“是一个立法层面的问题,需要有关法律部门去给出司法解释”。

话说,这啃志哥连两高一部“法不能向不法让步”的司法解释都不知道,还每天哔哔啥呢?

清雨影的Blog|推荐系统如何让我们变得极端

31 August 2024 at 17:52

这个题目我想写很久了,之前我写过一篇互联网政治圈观察日志,算是描述了一下现象,我今天想猜测一下起因——以一个推荐系统工程师的身份,猜测和讨论一下推荐系统引起的那些问题。

虽然讨论推荐系统,但是我保证,这是一篇技术无关的文章,不需要任何数学的基础也可以轻松阅读,如果能对你有用,那我就再高兴不过了。文中可能会出现一些政治观点,由于本文不讨论任何政治和立场相关的内容,所有的观点都是为了举例,请务必注意。

文章自认为写的不太好,有些观点可能没有表达清楚,其中一个原因是没找到合适的作图工具,一些图形化表达很简单的观点可能表达的不是那么清晰。

CDT 档案卡
标题:推荐系统如何让我们变得极端
作者:清雨影
发表日期:2024.8.31
来源:清雨影的Blog
主题归类:信息操纵
CDS收藏:公民馆
版权说明:该作品版权归原作者所有。中国数字时代仅对原作进行存档,以对抗中国的网络审查。详细版权说明

我们为什么要有推荐系统

推荐系统的诞生,是为了解决信息过载的问题,今天人类出版书报的速度已经远远超过了单人阅读的极限,更不要说互联网,一个稍微有点人气的论坛,要读完每天的所有新帖子也是一件非常费劲的事情,以至于大一些的论坛需要许多的版主来维护。再比如知乎,每天的新问题,新回答都不是我等能阅读过来的速度,知乎需要雇佣很多人来做内容检查,删掉冲塔的,发广告的,搞黄色的……当然机器学习的NLP技术大大减少了所需要投入的岗位数量,不过这是另一个话题了。

我们从信息匮乏的过载,只用了区区几十年,面对这样过载的信息,必须要有新的技术解决。

首先是分类,比如针对书籍,我们有中国图书馆分类法。雅虎早期的内容分类目录也是这一思想的体现。事实上,这一分类法并不少见,很早我们在分类书籍的时候,就分为四大类:经史子集。以及分类生物的时候提出了7个层级:界、门、纲、目、科、属、种。今天打开腾讯的首页,仍然可以看到这些类别:新闻,视频,图片,军事,体育,NBA,娱乐,财经,科技,时尚,汽车,房产,教育,文化,星座,游戏等等。还有一些网站分为了亚洲图片,欧美图片,……咳咳。

但是信息仍然在过载,过载到了给每一个物品赋予对应的类别都很麻烦,甚至单单展示分类用的索引或者目录都很困难,要知道,互联网时代不少人的阅读能力是不高于140个字的。这个时候就有搜索引擎了,百度,谷歌,淘宝理论上都是搜索引擎(淘宝早期也是目录式的,现在以推荐+搜索为主了)。但是搜索引擎的基础是,你知道有这个东西,但是不知道在哪里。而我们往往是不知道有这个东西,大家有的时候会发出感叹:淘宝还有这个东西卖啊!就是这样的情况。

所谓的未知有两种:已知的未知,和未知的未知。前者你只是不知道答案,后者,你甚至不知道问题的存在。

这个时候,参考社会化推荐,人类开始准备做推荐系统。推荐系统的一个基础原理是,物以类聚,人以群分,并且将这个原理用数学公式体现出来。 举个例子,我爱读《三体》,但是不知道《流浪地球》,《球形闪电》,这个时候,有一个饱读大刘的朋友给我推荐这些书,那我应该是会欣然接受的。再比如,推荐系统认定我是个科幻迷,于是给我推荐科幻类的书籍,肯定比给我推荐《羊皮卷》这种洗脑书要靠谱的多。

如果我们给M个用户和N个物品都从0开始编号,并且将用户和物品的正面的交互信息(如阅读/点赞/购买)放入矩阵的小格子里,我们可以得到这样一张交互图:

img

经过推荐算法处理以后(我这里简单的用了一个SVD代替),大致是这样:

img

我们可以看到人群分为两派,一派喜欢前4种物品,另一派比较喜欢后4种物品,我们就这样把缺失值填上了,看上去问题解决了。 但是新的问题,也就从这里开始。

推荐系统为何让我们偏激

相信大家都不是粪车从门口过也要尝尝咸淡的人,所以我们大概率会集中在自己喜欢和支持的东西上——这个看上去也没什么大问题。比如饭圈之前就喜欢搞“封地自萌”,我们小圈子觉得哥哥最帅那就是最帅其实没有任何问题,哪怕出了圈子也没人认识你那哥哥姓甚名谁,你哥哥也可以天下第一。

但是这一切的前提是“人贵自知之明”,你需要知道你看到的结果是由你的历史行为形成的向量召回并且经过精排算法排序形成的,是你自己决定了自己看什么,你所在的就是一个小圈子,万万不要把它当成整个世界。

还是以饭圈为例,你的微博满屏都是你的好哥哥,但并不代表所有的人都在看你的哥哥,对你来说你的好哥哥是97%甚至100%,但是对于整个微博的流量可能只有10%,影射到生活可能之战1%都不到,毕竟大家还要回家做饭收衣服,很忙的!

不幸的是,人类就不是有自知之明的生物,之前的饭圈“破圈”,以及2.27事件就是相当的典型——一个我不认识的私域流量明星的粉丝通过举报等手段,让另一个我不熟悉的圈子(同人圈)的交流和发表作品用的网站消失。 从资本的角度看,所谓破圈是资本是不满足于收割私域流量,准备扩大收割面积,2.27事件是破圈的阵痛,是韭菜对资本无力的抵抗。 但是从普通用户的角度看,是一群异常极端的人在四处攻击他们所有看不顺眼的行为。在我看来,这些异常激动的行为的罪恶根源在于两方:推荐系统及其它原因产生的信息偏置,以及容易被偏置过的信息洗脑的人类。

支持观点A的人看到自己的首页上95%的观点都支持观点A,很高兴,支持观点B的人看到页面上99.85%都支持观点B,更加高兴。在他们看来,只不过还有5%或者0.15%的人似乎反对自己的观点。

天呐,大家都一边倒的支持自己的观点,怎么还有这么几个人冥顽不灵?

这个时候人类的另一个缺点——或者从生存的角度说是优点——就起作用了:仗势欺人,大家都觉得自己人多,自己的观点逻辑上也说得通——虽然他们的逻辑可能是基于错误事实推导出来的,但是没关系,我们现在人多,我们一人一口唾沫都能骂到你销号。

所以除了在自己的小圈子里互相转发以外,就是试图去“感化”支持自己能看到的、为数不多的、持对立观点的人。

我认为这种现象可以称作观测偏差,让人产生观测偏差,这也是洗脑的基本原理。一些政府也好、组织也罢,有目的,有组织的对互联网的内容进行注入或者删除,来达到让民众产生观测偏差,进而借此洗脑的目的。 比如我在前一篇文章里提到日本的“蓝莓星冰乐”推特,就是通过注入数据的方式,让大家觉得新冠并不是一个很严重问题,结果被日本网友掀了个底儿掉。 还有一些奇妙的机构,不仅通过注入,还通过删除的方式,让大家产生“岁月静好”,“万众一心”的错觉,就这样还经常翻车,真是“有心栽花花不开”。 这么来看,推荐系统造成的偏置只能算是“无心插柳柳成荫”。

稍微聪明一点的人会用小号或者匿名的模式去单纯的观测,可能可以得到类似:“AB两派势均力敌,但是从数据看,A暂时略胜一筹”这样较为中立的结论。

但是如果真正的从后台数据看,有可能支持观点A和观点B的人加起来不超过30%,大多数人其实支持的是更加温和的观点C,只不过他们甚至都不关心这个问题本身,所以被系统忽略了。 于是我们看到,AB两派吵得天翻地图,互相骂对方臭不可闻,是狗屎,是蛆,C则在风花雪月,聊天打牌,时不时莫名其妙被卷入AB之争当成对立面里面溅一身口水。

推特上的键政圈里这个问题尤其明显,有些观测偏差甚至不是推特在搞鬼,而是用户自己制造的:

file

比如上面这个小工具的主要作用就是:拉黑给某一条推特点赞的用户。 一般来说,有人发现了一条自己极其厌恶的推特,这个时候就可以拉黑所有给这个推特点赞的人。 本身推荐系统就有“协同过滤”之称的算法帮你过滤你不喜欢看的东西了,这个小工具可以说加剧了对立。

对立的产生本身就在于人类不愿意动脑子,不去思索为什么这些人会发让你厌恶的内容,而是单纯的觉得对方恶臭,讨厌,自己不愿意再见到。 我看到一条新闻,不需要确认其真伪,细节,只需要用我脑袋里的政治观点就可以作出评论,参见这个推特下面的评论:貴州女子高空玩兒秋千

廖雪峰老师也曾经吐槽过:

____国交警控制绿灯为过马路老人多亮了97秒,你怎么看?

我可以偏激的说一句,使用这个屏蔽点赞用户小工具的人,相当偏激,且相当容易被洗脑。因为他的脑袋里只允许装下一个观点,他的世界只能有一个声音,所有的反对意见都是这个世界的渣滓和污垢,他会认为这样的屏蔽行为只是一种“清洁”,就好像装纱窗防蚊虫一样自然。

如何对抗推荐系统

首先,你只要记住:“我看到的信息,大部分都是有偏向性的,不可轻信”,就足以对抗世界上大部分的洗脑,传销,带节奏。你甚至不用去特地对抗,因为你知道信息是有偏的,你就不会偏激。

当然,单单记住这一句话是有点问题的,毕竟我们还要靠互联网收集资料,如果不相信自己看到的信息,意味着无法获取任何有用的信息。这个时候我继续给出一个不是特别完美的解决方案:“孤证不立”。

当我们看到一个观点或者一个信息的时候,在接受它之前,首先最好能找到完整的证据链去证明它。比如你对我推荐系统“物以类聚,人以群分”的观点有疑惑,可以自己造一点数据去跑一跑诸如SVD++这样的算法,就知道我最后两张图表所言不虚。

对于一些证据不好找的内容,可以这样判断:如果你看到一些评论一边倒的内容,只有支持,没有任何反对,那这个内容肯定有问题。

要让一个内容成立,至少找到两个不同的支撑这个内容的证据,如果可以的话,最好找到反对的观点。如果实在无法确认,可以试试自己制造一些反对的观点,看看这些观点会引起怎样的讨论,或者怎样的消失,你对这个内容的可靠性心里就有数了。这样你才可以在相信与不相信之间慢慢抉择,有叫大概率作出正确判断。

所以,你最好关注一些你不喜欢的人,听一听你不喜欢的声音。尽管这么做可能对你造成不适,但是适度的不适可以让你成为一个更加开阔、理性、客观的人。成为所谓客观人不会带给你任何直接收益,但是减少偏激至少有助于防止形成极端主义,例如法西斯那样的独裁和专制。

看到喜欢的或者不喜欢的内容,切勿被一时的情绪所裹挟而冲昏了头脑,仔细想想,这个内容的作者本身可能抱有什么样的目的,作者隐藏了什么没有告诉你的内容。

以本文为例,我前面没有告诉你的是,新颖性也是推荐系统的指标之一,虽然难以评估,但是很重要。 推特并没有太多的过滤你的内容,最多是根据你的关注点赞信息给你推对应的广告,推特也有Trend这样的模块让你发现更大世界。 基于以上观点,将错误全部推给推荐系统并不对,如果你抱着前文的观点跑到互联网公司去要求他们撤掉推荐系统那就不对了,这篇文章也不是为了引起你对推荐系统的仇恨,我还是肯定推荐系统在解决信息爆炸上的价值的。

事实上,推荐系统会造成上述的问题,但是往往小于一些别有用心的人和组织进行的信息注入和删除——这是非常常见引导舆论的手段,这些特性的删除和注入的破坏力也远大于推荐系统造成的因为用户自我选择而带来的倾向性。

希望大家都能有更开阔的视野。

AI 会促使设计师成为更完整的人

By: Steven
28 March 2023 at 00:32

最近关于 AIGC 的关注度太高了,自己也时不时会抽空去了解一些情况,或者尝试去用一些工具。很多关于 AI 要替代人的观点大行其道,也一直有不少 AI 要让设计师失业的看法在坊间流传。但我自己的感受和看法是:

在 Midjourney、Stable Diffusion、ChatGPT 这些 AI 工具出现后,「手头功夫」并没有因此丧失意义,它们只是不再具备作为门槛的价值,但依旧是重要的前提。因为「手头功夫」是培养我们发掘问题、判断优劣和快速取舍的重要训练,缺少这部分锻炼,会让人在这一系列 AI 工具面前感到无力。准确地识别问题并提出诉求,这是未来教育的重中之重,也会反过来强调人的价值。

正好,前段时间后浪送了我一本书,是前微软包容性设计的首席总监 Kat Holmes 写的《误配》。一边看这本书,我就一边在结合自己的工作和最近关于 AIGC 的思考,我觉得这本书里提倡的理念,正好回应了当下的舆论思潮。

大部分谈论设计的书,都在试图通过图形和案例来构建一类理论和范式。但在这个 AIGC 日进八万步的新时代里,设计师要以什么身份来参与?我认为所有的既定范式,都会在三到五年之内被全部击碎。串联、融汇、杂交才是新世界的主流,创作者的身份将愈加模糊,甲乙方的界限也会逐渐消失或扭转。怎么回应这样的快速变化?我觉得《误配》这本首版于五年前的「旧书」,提出了很适合当下思考的母题:

设计行为、设计师、设计对象以及新技术之间,如何在智能化浪潮里,互相包容和一起进化?

这本书没有给出直接的答案,但对于有三年以上工作经验的设计师而言,带着经验、问题和困难去阅读,会有启发和收获。「物」的旧体系正在溃散,「系统」和「生态」将是历史的新主角。旧时代的残党,可以下船了。

昨天在各个社交媒体上发了一下自己的读书感受,因为被后浪的微博官号转发了,于是被这本书的译者何盈女士注意到。正巧我的朋友宋喆在刷朋友圈时看到她的这条寻人启事,就这么阴差阳错地跟她直接联系上了。

这种「地球村」的感觉很妙!

这更坚定了我今年一定要 重新启动设计纪录片 的决心了!

Linux Command Line Reference for Common Operations (2)

By: Onlyone
13 December 2011 at 12:54

My previous reference for practical Linux commands was surprisingly popular
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.
CommandDescription
grep . /proc/sys/net/ipv4/*List the contents of flag files
set | grep $USERSearch current environment
tr '\0' '\n' < /proc/$$/environDisplay the startup environment for any process
echo $PATH | tr : '\n'Display the $PATH one per line
kill -0 $$ && echo process exists and can accept signalsCheck 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:00Download url at 1AM to current dir
#apache2ctl configtest && apache2ctl gracefulRestart apache if config is OK
nice openssl speed sha1Run a low priority command (openssl benchmark)
chrt -i 0 openssl speed sha1Run 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 uptimeClock with system load
htop -d 5Better top (scrollable, tree view, lsof/strace integration, ...)
iotopWhat's doing I/O
#watch -d -n30 "nice ps_mem.py | tail -n $((${LINES:-12}-2))"What's using RAM
#iftopWhat's using the network. See also iptraf
#mtr www.pixelbeat.orgping and traceroute combined
Useful utilities
pv < /dev/zero > /dev/nullProgress Viewer for data copying from files and pipes
wkhtml2pdf http://.../linux_commands.html linux_commands.pdfMake a pdf of a web page
timeout 1 sleep 3run a command with bounded time. See also timeout
Networking
python -m SimpleHTTPServerServe 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.orgDisplay the server headers for a web site
#lsof -i tcp:80What's using port 80
#httpd -SDisplay a list of apache virtual hosts
vim scp://user@remote//path/to/fileEdit remote file using local vim. Good for high latency links
curl -s http://www.pixelbeat.org/pixelbeat.asc | gpg --importImport a gpg key from the web
tc qdisc add dev lo root handle 1:0 netem delay 20msecAdd 20ms latency to loopback device (for testing)
tc qdisc del dev lo rootRemove 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:30Email reminder
 uuencode file name | mail -s subject P@draigBrady.comSend a file via email
 ansi2html.sh | mail -a "Content-Type: text/html" P@draigBrady.comSend/Generate HTML email
Better default settings (useful in your .bashrc)
#tail -s.1 -f /var/log/messagesDisplay file additions more responsively
seq 100 | tail -n $((${LINES:-12}-2))Display as many lines as possible without scrolling
#tcpdump -s0Capture 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.pngTake a (remote) screenshot
convert -filter catrom -resize '600x>' orig.png 600px_wide.pngShrink 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.aviDisplay info about multimedia file
ffmpeg -f x11grab -s xga -r 25 -i :0 -sameq demo.mpgCapture video of an X display
DVD
 for i in $(seq 9); do ffmpeg -i $i.avi -target pal-dvd $i.mpg; doneConvert video to the correct encoding and aspect for DVD
 dvdauthor -odvd -t -v "pal,4:3,720xfull" *.mpg;dvdauthor -odvd -TBuild DVD file system. Use 16:9 for widescreen input
 growisofs -dvd-compat -Z /dev/dvd -dvd-video dvdBurn 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 nfcNormalize combining characters
printf '\300\200' | iconv -futf8 -tutf8 >/dev/nullValidate 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/nullShow all predefined macros
echo "#include <features.h>" | cpp -dN | grep "#define __USE_"Show all glibc feature macros
 gdb -tuiDebug 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/mouse0See how udev rules are applied for a device
#udevadm control --reload-rulesReload 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 fileShow capabilities for a program
 setcap cap_net_raw+ep your_gtk_progAllow gtk program raw access to network
stat -c%C .Show SELinux context for file
 chcon ... fileSet 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 bSplit 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 nprocRestrict a command to certain processors
find -type f -print0 | xargs -r0 -P$(nproc) -n10 md5sumProcess files in parallel over available processors
 sort -m <(sort data1) <(sort data2) >data.sortedSort separate data files over 2 processors

Linux Command Line Reference for Common Operations

By: Onlyone
13 December 2011 at 11:45

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.
CommandDescription
apropos whatisShow commands pertinent to string. See also threadsafe
man -t ascii | ps2pdf - > ascii.pdfmake a pdf of a manual page
which commandShow full path name of command
time commandSee how long a command takes
time catStart stopwatch. Ctrl-d to stop. See also sw
dir navigation
cd -Go to previous directory
cdGo 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 -lrtList files by date. See also newest and find_mm_yyyy
ls /usr/bin | pr -T9 -W$COLUMNSPrint 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; doneProcess each item with multiple commands (in while loop)
find -type f ! -perm -444Find files not readable by all (useful for web site)
find -type d ! -perm -111Find 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 referenceQuickly search (sorted) dictionary for prefix
grep --color reference /usr/share/dict/wordsHighlight occurances of regular expression in dictionary
archives and compression
gpg -c fileEncrypt file
gpg file.gpgDecrypt file
tar -c dir/ | bzip2 > dir.tar.bz2Make compressed archive of dir/
bzip2 -dc dir.tar.bz2 | tar -xExtract 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.bz2Make archive of subset of dir/ and below
find dir/ -name '*.txt' | xargs cp -a --target-directory=dir_txt/ --parentsMake 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 fileOnly get diffs. Do multiple times for troublesome downloads
rsync --bwlimit=1000 fromfile tofileLocally 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 commandRun command on $HOST as $USER (default command=shell)
ssh -f -Y $USER@$HOSTNAME xeyesRun 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: bigfileUse faster crypto for local LAN. This might saturate GigE
ssh -g -L 8080:localhost:80 root@$HOSTForward connections to $HOSTNAME:8080 out to $HOST:80
ssh -R 1434:imap:143 root@$HOSTForward connections from $HOST:1434 in to imap:143
ssh-copy-id $USER@$HOSTInstall 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.fileContinue 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' | headProcess output directly
echo 'wget url' | at 01:00Download url at 1AM to current dir
wget --limit-rate=20k urlDo a low priority download (limit to 20KB/s in this case)
wget -nv --spider --force-html -i bookmarks.htmlCheck 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 eth0Show status of ethernet interface eth0
ethtool --change eth0 autoneg off speed 100 duplex fullManually set ethernet interface speed
iwconfig eth1Show status of wireless interface eth1
iwconfig eth1 rate 1Mb/s fixedManually set wireless interface speed
iwlist scanList wireless networks in range
ip link showList network interfaces
ip link set dev eth0 name wanRename interface eth0 to wan
ip link set dev eth0 upBring interface eth0 up (or down)
ip addr showList addresses for interfaces
ip addr add 1.2.3.4/24 brd + dev eth0Add (or del) ip and mask (255.255.255.0)
ip route showList routing table
ip route add default via 1.2.3.254Set default gateway to 1.2.3.254
host pixelbeat.orgookup DNS ip address for name or vice versaL
hostname -iLookup local ip address (equivalent to host `hostname`)
whois pixelbeat.orgLookup whois info for hostname or ip address
netstat -tuplList internet services on a system
netstat -tupList active connections to/from system
windows networking (Note samba is the package that provides all this windows specific networking support)
smbtreeFind windows machines. See also findsmb
nmblookup -A 1.2.3.4Find the windows (netbios) name associated with ip address
smbclient -L windows_boxList shares on windows machine or samba server
mount -t smbfs -o fmask=666,guest //windows_box/share /mnt/shareMount a windows share
echo 'message' | smbclient -M windows_boxSend 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_hostsDelete a particular line
sort -t. -k1,1n -k2,2n -k3,3n -k4,4nSort IPV4 ip addresses
echo 'Test' | tr '[:lower:]' '[:upper:]'Case conversion
tr -dc '[:print:]' < /dev/urandomFilter non printable characters
tr -s '[:blank:]' '\t' </proc/diskstats | cut -f4cut fields separated by blanks
history | wc -lCount lines
set operations (Note you can export LANG=C for speed. Also these assume no duplicate lines within a file)
sort file1 file2 | uniqUnion of unsorted files
sort file1 file2 | uniq -dIntersection of unsorted files
sort file1 file1 file2 | uniq -uDifference of unsorted files
sort file1 file2 | uniq -uSymmetric Difference of unsorted files
join -t'\0' -a1 -a2 file1 file2Union of sorted files
join -t'\0' file1 file2Intersection of sorted files
join -t'\0' -v2 file1 file2Difference of sorted files
join -t'\0' -v1 -v2 file1 file2Symmetric Difference of sorted files
math
echo '(1 + sqrt(5))/2' | bc -lQuick math (Calculate φ). See also bc
seq -f '4/%g' 1 2 99999 | paste -sd-+ | bc -lCalculate π the unix way
echo 'pad=20; min=64; (100*10^6)/((pad+min)*8)' | bcMore complex (int) e.g. This shows max FastE packet rate
echo 'pad=20; min=64; print (100E6)/((pad+min)*8)' | pythonPython handles scientific notation
echo 'pad=20; plot [64:1518] (100*10**6)/((pad+x)*8)' | gnuplot -persistPlot FastE packet rate vs packet size
echo 'obase=16; ibase=10; 64206' | bcBase 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) | bcAdd a column of numbers. See also add and funcpy
calendar
cal -3Display a calendar
cal 9 1752Display a calendar for a particular month year
date -d friWhat date is it this friday. See also day
[ $(date -d '12:00 +1 day' +%d) = '01' ] || exitexit a script unless it's the last day of the month
date --date='25 Dec' +%AWhat 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' dateWhat 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" 1234Print number with thousands grouping appropriate to locale
BLOCK_SIZE=\'1 ls -lUse 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_prefixLookup locale info for specific country. See also ccodes
locale -kc $(locale | sed -n 's/\(LC_.\{4,\}\)=.*/\1/p') | lessList fields available in locale database
recode (Obsoletes iconv, dos2unix, unix2dos)
recode -l | lessShow available conversions (aliases on each line)
recode windows-1252.. file_to_change.txtWindows "ansi" to local charset (auto does CRLF conversion)
recode utf-8/CRLF.. file_to_change.txtWindows utf8 to local charset
recode iso-8859-15..utf8 file_to_change.txtLatin9 (western europe) to utf8
recode ../b64 < file.txt > file.b64Base64 encode
recode /qp.. < file.qp > file.txtQuoted printable decode
recode ..HTML < file.txt > file.htmlText to HTML
recode -lf windows-1252 | grep euroLookup table of characters
echo -n 0x80 | recode latin-9/x1..dumpShow what a code represents in latin-9 charmap
echo -n 0x20AC | recode ucs-2/x2..latin-9/xShow latin-9 encoding
echo -n 0x20AC | recode ucs-2/x2..utf-8/xShow utf-8 encoding
CDs
gzip < /dev/cdrom > cdrom.iso.gzSave copy of data cdrom
mkisofs -V LABEL -r dir | gzip > cdrom.iso.gzCreate cdrom image from contents of dir
mount -o loop cdrom.iso /mnt/dirMount the cdrom image at /mnt/dir (read only)
cdrecord -v dev=/dev/cdrom blank=fastClear a CDRW
gzip -dc cdrom.iso.gz | cdrecord -v dev=/dev/cdrom -Burn cdrom image (use dev=ATAPI -scanbus to confirm dev)
cdparanoia -BRip audio tracks from CD to wav files in current dir
cdrecord -v dev=/dev/cdrom -audio -pad *.wavMake 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 -lSrShow files by size, biggest last
du -s * | sort -k1,1rn | headShow top disk users in current dir. See also dutop
du -hs /home/* | sort -k1,1hSort paths by easy to interpret disk usage
df -hShow free space on mounted filesystems
df -iShow free inodes on mounted filesystems
fdisk -lShow disks partitions sizes and types (run as root)
rpm -q -a --qf '%10{SIZE}\t%{NAME}\n' | sort -k1,1nList all packages by installed size (Bytes) on rpm distros
dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1nList all packages by installed size (KBytes) on deb distros
dd bs=1 seek=2TB if=/dev/null of=ext3.testCreate a large test file (taking no space). See also truncate
> filetruncate data of file or create an empty file
monitoring/debugging
tail -f /var/log/messagesMonitor messages in a log file
strace -c ls >/dev/nullSummarise/profile system calls made by command
strace -f -e open ls >/dev/nullList system calls made by command
strace -f -e trace=write -e write=1,2 ls >/dev/nullMonitor what's written to stdout and stderr
ltrace -f -e getenv ls >/dev/nullList 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 22Show network traffic except ssh. See also tcpdump_not_me
ps -e -o pid,args --forestList 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$COLUMNSList processes by mem (KB) usage. See also ps_mem.py
ps -C firefox-bin -L -o pid,tid,pcpu,stateList all threads for a particular process
ps -p 1,$$ -o etime=List elapsed wall time for particular process IDs
last rebootShow system reboot history
free -mShow amount of (remaining) RAM (-m displays in MB)
watch -n.1 'cat /proc/interrupts'Watch changeable data continuously
udevadm monitorMonitor udev events to help configure rules
system information (see also sysinfo) ('#' means root access is required)
uname -aShow kernel version and system architecture
head -n1 /etc/issueShow name and version of distribution
cat /proc/partitionsShow all partitions registered on the system
grep MemTotal /proc/meminfoShow RAM total seen by the system
grep "model name" /proc/cpuinfoShow CPU(s) info
lspci -tvShow PCI info
lsusb -tvShow USB info
mount | column -tList mounted filesystems on the system (and align output)
grep -F capacity: /proc/acpi/battery/BAT0/infoShow state of cells in laptop battery
#dmidecode -q | lessDisplay SMBIOS/DMI information
#smartctl -A /dev/sda | grep Power_On_HoursHow long has this disk (system) been powered on in total
#hdparm -i /dev/sdaShow info about disk sda
#hdparm -tT /dev/sdaDo a read speed test on disk sda
#badblocks -s /dev/sdaTest for unreadable blocks on disk sda
interactive (see also linux keyboard shortcuts)
readlineLine editor used by bash, python, bc, gnuplot, ...
screenVirtual terminals with detach capability, ...
mcPowerful file manager that can browse rpm, tar, ftp, ssh, ...
gnuplotInteractive/scriptable graphing
linksWeb browser
xdg-open .open a file or url with the registered desktop application
© Jan 7 2008   [Comments] | [Add link to ...] |

Linux系统信息查看命令大全

By: Onlyone
13 December 2011 at 11:41

最近看了一些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 文件结构大全

❌
❌