Linux中国
1.73K subscribers
777 photos
6.34K links
Linux 中国官方 Telegram 频道
Download Telegram
在 Linux 上自定义 bash 命令提示符

尽管很多插件或工具都可以很轻易地满足这一需求,但我们也可以不使用插件和工具,自己手动自定义一些基本的显示方式,例如添加或者修改某些元素、更改前景色、更改背景色等等。Media

via https://linux.cn/article-10280-1.html
在 Linux 上自定义 bash 命令提示符

<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/27/111117mkydge86ndem2xfp.jpg">Media</a>&#20247;&#25152;&#21608;&#30693;&#65292;<strong>bash</strong>&#65288;the <strong>B</strong>ourne-<strong>A</strong>gain <strong>Sh</strong>ell&#65289;&#26159;&#30446;&#21069;&#32477;&#22823;&#22810;&#25968; Linux &#21457;&#34892;&#29256;&#20351;&#29992;&#30340;&#40664;&#35748; shell&#12290;&#26412;&#25991;&#23558;&#20250;&#20171;&#32461;&#22914;&#20309;&#36890;&#36807;&#28155;&#21152;&#39068;&#33394;&#21644;&#26679;&#24335;&#26469;&#33258;&#23450;&#20041; bash &#21629;&#20196;&#25552;&#31034;&#31526;&#30340;&#26174;&#31034;&#12290;&#23613;&#31649;&#24456;&#22810;&#25554;&#20214;&#25110;&#24037;&#20855;&#37117;&#21487;&#20197;&#24456;&#36731;&#26131;&#22320;&#28385;&#36275;&#36825;&#19968;&#38656;&#27714;&#65292;&#20294;&#25105;&#20204;&#20063;&#21487;&#20197;&#19981;&#20351;&#29992;&#25554;&#20214;&#21644;&#24037;&#20855;&#65292;&#33258;&#24049;&#25163;&#21160;&#33258;&#23450;&#20041;&#19968;&#20123;&#22522;&#26412;&#30340;&#26174;&#31034;&#26041;&#24335;&#65292;&#20363;&#22914;&#28155;&#21152;&#25110;&#32773;&#20462;&#25913;&#26576;&#20123;&#20803;&#32032;&#12289;&#26356;&#25913;&#21069;&#26223;&#33394;&#12289;&#26356;&#25913;&#32972;&#26223;&#33394;&#31561;&#31561;&#12290;&#22312; Linux &#20013;&#33258;&#23450;&#20041; bash &#21629;&#20196;&#25552;&#31034;&#31526;&#22312; bash &#20013;&#65292;&#25105;&#20204;&#21487;&#20197;&#36890;&#36807;&#26356;&#25913; $PS1 &#29615;&#22659;&#21464;&#37327;&#30340;&#20540;&#26469;&#33258;&#23450;&#20041; bash &#21629;&#20196;&#25552;&#31034;&#31526;&#12290;&#19968;&#33324;&#24773;&#20917;&#19979;&#65292;bash &#21629;&#20196;&#25552;&#31034;&#31526;&#20250;&#26159;&#20197;&#19979;&#36825;&#26679;&#30340;&#24418;&#24335;&#65306;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/27/111320oltgbmz8l3eg891u.png">Media</a>&#22312;&#19978;&#22270;&#36825;&#31181;&#40664;&#35748;&#26174;&#31034;&#24418;&#24335;&#24403;&#20013;&#65292;“sk” &#26159;&#25105;&#30340;&#29992;&#25143;&#21517;&#65292;&#32780; “ubuntuserver” &#26159;&#25105;&#30340;&#20027;&#26426;&#21517;&#12290;&#21482;&#35201;&#25554;&#20837;&#19968;&#20123;&#20197;&#21453;&#26012;&#26464;&#24320;&#22836;&#30340;&#29305;&#27530;&#36716;&#20041;&#23383;&#31526;&#20018;&#65292;&#23601;&#21487;&#20197;&#25353;&#29031;&#20320;&#30340;&#21916;&#22909;&#20462;&#25913;&#21629;&#20196;&#25552;&#31034;&#31526;&#20102;&#12290;&#19979;&#38754;&#25105;&#26469;&#20030;&#20960;&#20010;&#20363;&#23376;&#12290;&#22312;&#24320;&#22987;&#20043;&#21069;&#65292;&#25105;&#24378;&#28872;&#24314;&#35758;&#20320;&#39044;&#20808;&#22791;&#20221; ~/.bashrc &#25991;&#20214;&#12290;<pre class="prettyprint linenums">$ cp ~/.bashrc ~/.bashrc.bak</pre>&#26356;&#25913; bash &#21629;&#20196;&#25552;&#31034;&#31526;&#20013;&#30340; username@hostname &#37096;&#20998;&#22914;&#19978;&#25152;&#31034;&#65292;bash &#21629;&#20196;&#25552;&#31034;&#31526;&#19968;&#33324;&#37117;&#24102;&#26377; “username@hostname” &#37096;&#20998;&#65292;&#36825;&#20010;&#37096;&#20998;&#26159;&#21487;&#20197;&#20462;&#25913;&#30340;&#12290;&#21482;&#38656;&#35201;&#32534;&#36753; ~/.bashrc &#25991;&#20214;&#65306;<pre class="prettyprint linenums">$ vi ~/.bashrc</pre>&#22312;&#25991;&#20214;&#30340;&#26368;&#21518;&#28155;&#21152;&#19968;&#34892;&#65306;<pre class="prettyprint linenums">PS1="ostechnix> "</pre>&#23558;&#19978;&#38754;&#30340; “ostechnix” &#26367;&#25442;&#20026;&#20219;&#24847;&#19968;&#20010;&#20320;&#24819;&#20351;&#29992;&#30340;&#21333;&#35789;&#65292;&#28982;&#21518;&#25353; ESC &#24182;&#36755;&#20837; :wq &#20445;&#23384;&#12289;&#36864;&#20986;&#25991;&#20214;&#12290;&#25191;&#34892;&#20197;&#19979;&#21629;&#20196;&#20351;&#21018;&#25165;&#30340;&#20462;&#25913;&#29983;&#25928;&#65306;<pre class="prettyprint linenums">$ source ~/.bashrc</pre>&#20320;&#23601;…
如何在 Anbox 上安装 Google Play 商店及启用 ARM 支持

Anbox (Anroid in a Box)是一个自由开源工具,它允许你在 Linux 上运行 Android 应用程序。默认情况下,Anbox 没有 Google Play 商店或 ARM 应用支持。Media

via https://linux.cn/article-10281-1.html
&#22914;&#20309;&#22312; Anbox &#19978;&#23433;&#35013; Google Play &#21830;&#24215;&#21450;&#21551;&#29992; ARM &#25903;&#25345;

<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/27/115100j1mj9blltf1njvav.png">Media<a href="https://anbox.io/">Anbox &#65288;Anroid in a Box&#65289;&#26159;&#19968;&#20010;&#33258;&#30001;&#24320;&#28304;&#24037;&#20855;&#65292;&#23427;&#20801;&#35768;&#20320;&#22312; Linux &#19978;&#36816;&#34892; Android &#24212;&#29992;&#31243;&#24207;&#12290;&#23427;&#30340;&#24037;&#20316;&#21407;&#29702;&#26159;&#22312; LXC &#23481;&#22120;&#20013;&#36816;&#34892; Android &#36816;&#34892;&#26102;&#29615;&#22659;&#65292;&#37325;&#26032;&#21019;&#24314; Android &#30340;&#30446;&#24405;&#32467;&#26500;&#20316;&#20026;&#21487;&#25346;&#36733;&#30340; loop &#38236;&#20687;&#65292;&#21516;&#26102;&#20351;&#29992;&#26412;&#26426; Linux &#20869;&#26680;&#26469;&#25191;&#34892;&#24212;&#29992;&#12290;&#25454;&#20854;&#32593;&#31449;&#25152;&#36848;&#65292;&#23427;&#30340;&#20027;&#35201;&#29305;&#24615;&#26159;&#23433;&#20840;&#24615;&#12289;&#24615;&#33021;&#12289;&#38598;&#25104;&#21644;&#36235;&#21516;&#65288;&#19981;&#21516;&#22806;&#24418;&#23610;&#23544;&#32553;&#25918;&#65289;&#12290;&#20351;&#29992; Anbox&#65292;&#27599;&#20010; Android &#24212;&#29992;&#25110;&#28216;&#25103;&#23601;&#20687;&#31995;&#32479;&#24212;&#29992;&#19968;&#26679;&#37117;&#22312;&#19968;&#20010;&#21333;&#29420;&#30340;&#31383;&#21475;&#20013;&#21551;&#21160;&#65292;&#23427;&#20204;&#30340;&#34892;&#20026;&#25110;&#22810;&#25110;&#23569;&#31867;&#20284;&#20110;&#24120;&#35268;&#31383;&#21475;&#65292;&#26174;&#31034;&#22312;&#21551;&#21160;&#22120;&#20013;&#65292;&#21487;&#20197;&#24179;&#38138;&#31561;&#31561;&#12290;&#40664;&#35748;&#24773;&#20917;&#19979;&#65292;Anbox &#27809;&#26377; Google Play &#21830;&#24215;&#25110; ARM &#24212;&#29992;&#25903;&#25345;&#12290;&#35201;&#23433;&#35013;&#24212;&#29992;&#65292;&#20320;&#24517;&#39035;&#19979;&#36733;&#27599;&#20010;&#24212;&#29992;&#30340; APK &#24182;&#20351;&#29992; adb &#25163;&#21160;&#23433;&#35013;&#12290;&#27492;&#22806;&#65292;&#40664;&#35748;&#24773;&#20917;&#19979;&#19981;&#33021;&#20351;&#29992; Anbox &#23433;&#35013; ARM &#24212;&#29992;&#25110;&#28216;&#25103; —— &#23581;&#35797;&#23433;&#35013; ARM &#24212;&#29992;&#20250;&#26174;&#31034;&#20197;&#19979;&#38169;&#35823;&#65306;<pre class="prettyprint linenums">Failed to install PACKAGE.NAME.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]</pre>&#20320;&#21487;&#20197;&#22312; Anbox &#20013;&#25163;&#21160;&#35774;&#32622; Google Play &#21830;&#24215;&#21644; ARM &#24212;&#29992;&#25903;&#25345;&#65288;&#36890;&#36807; libhoudini&#65289;&#65292;&#20294;&#36825;&#26159;&#19968;&#20010;&#38750;&#24120;&#22797;&#26434;&#30340;&#36807;&#31243;&#12290;&#20026;&#20102;&#26356;&#23481;&#26131;&#22320;&#22312; Anbox &#19978;&#23433;&#35013; Google Play &#21830;&#24215;&#21644; Google Play &#26381;&#21153;&#65292;&#24182;&#35753;&#23427;&#25903;&#25345; ARM &#24212;&#29992;&#31243;&#24207;&#21644;&#28216;&#25103;&#65288;&#20351;&#29992; libhoudini&#65289;&#65292;<a href="https://geeks-r-us.de/2017/08/26/android-apps-auf-dem-linux-desktop/">geeks-r-us.de&#65288;&#25991;&#31456;&#26159;&#24503;&#35821;&#65289;&#19978;&#30340;&#20154;&#21019;&#24314;&#20102;&#19968;&#20010;&#33258;&#21160;&#25191;&#34892;&#36825;&#20123;&#20219;&#21153;&#30340;&#33050;&#26412;&#12290;&#22312;&#20351;&#29992;&#20043;&#21069;&#65292;&#25105;&#24819;&#26126;&#30830;&#25351;&#20986;&#65292;&#21363;&#20351;&#22312;&#38598;&#25104; libhoudini &#26469;&#25903;&#25345; ARM &#21518;&#65292;&#20063;&#24182;&#38750;&#25152;&#26377; Android &#24212;&#29992;&#21644;&#28216;&#25103;&#37117;&#33021;&#22312; Anbox &#20013;&#36816;&#34892;&#12290;&#26576;&#20123; Android &#24212;&#29992;&#21644;&#28216;&#25103;&#21487;&#33021;&#26681;&#26412;&#19981;&#20250;&#20986;&#29616;&#22312; Google Play &#21830;&#…
2018 重温 Unix 哲学

在现代微服务环境中,构建小型、单一的应用程序的旧策略又再一次流行了起来。Media

via https://linux.cn/article-10282-1.html
2018 &#37325;&#28201; Unix &#21746;&#23398;

&#22312;&#29616;&#20195;&#24494;&#26381;&#21153;&#29615;&#22659;&#20013;&#65292;&#26500;&#24314;&#23567;&#22411;&#12289;&#21333;&#19968;&#30340;&#24212;&#29992;&#31243;&#24207;&#30340;&#26087;&#31574;&#30053;&#21448;&#20877;&#19968;&#27425;&#27969;&#34892;&#20102;&#36215;&#26469;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/27/123158rm6qqqjgdffp16dm.jpg">Media</a>1984 &#24180;&#65292;Rob Pike &#21644; Brian W. Kernighan &#22312; AT&T &#36125;&#23572;&#23454;&#39564;&#23460;&#25216;&#26415;&#26399;&#21002;&#19978;&#21457;&#34920;&#20102;&#21517;&#20026; “<a href="http://harmful.cat-v.org/cat-v/">Unix &#29615;&#22659;&#32534;&#31243;</a>” &#30340;&#25991;&#31456;&#65292;&#20854;&#20013;&#20182;&#20204;&#20351;&#29992; BSD &#30340; cat -v &#20363;&#23376;&#26469;&#35748;&#35777; Unix &#21746;&#23398;&#12290;&#31616;&#32780;&#35328;&#20043;&#65292;Unix &#21746;&#23398;&#26159;&#65306;&#26500;&#24314;&#23567;&#22411;&#12289;&#21333;&#19968;&#30340;&#24212;&#29992;&#31243;&#24207; —— &#19981;&#31649;&#29992;&#20160;&#20040;&#35821;&#35328; —— &#21482;&#20570;&#19968;&#20214;&#23567;&#32780;&#32654;&#30340;&#20107;&#24773;&#65292;&#29992; stdin / stdout &#36827;&#34892;&#36890;&#20449;&#65292;&#24182;&#36890;&#36807;&#31649;&#36947;&#36827;&#34892;&#36830;&#25509;&#12290;&#21548;&#36215;&#26469;&#26159;&#19981;&#26159;&#26377;&#28857;&#32819;&#29087;&#65311;&#26159;&#30340;&#65292;&#25105;&#20063;&#36825;&#20040;&#35748;&#20026;&#12290;&#36825;&#23601;&#26159; James Lewis &#21644; Martin Fowler &#32473;&#20986;&#30340; <a href="https://martinfowler.com/articles/microservices.html">&#24494;&#26381;&#21153;&#30340;&#23450;&#20041;</a> &#12290;&#31616;&#21333;&#26469;&#35828;&#65292;&#24494;&#26381;&#21153;&#26550;&#26500;&#30340;&#39118;&#26684;&#26159;&#23558;&#21333;&#20010; &#24212;&#29992;&#31243;&#24207;&#24320;&#21457;&#20026;&#19968;&#22871;&#23567;&#22411;&#26381;&#21153;&#30340;&#26041;&#27861;&#65292;&#27599;&#20010;&#26381;&#21153;&#37117;&#36816;&#34892;&#22312;&#23427;&#30340;&#36827;&#31243;&#20013;&#65292;&#24182;&#29992;&#36731;&#37327;&#32423;&#26426;&#21046;&#36827;&#34892;&#36890;&#20449;&#65292;&#36890;&#24120;&#26159; HTTP &#36164;&#28304; API &#12290;&#34429;&#28982;&#19968;&#20010; *nix &#31243;&#24207;&#25110;&#32773;&#26159;&#19968;&#20010;&#24494;&#26381;&#21153;&#26412;&#36523;&#21487;&#33021;&#38750;&#24120;&#23616;&#38480;&#29978;&#33267;&#19981;&#26159;&#24456;&#26377;&#29992;&#65292;&#20294;&#26159;&#24403;&#36825;&#20123;&#29420;&#31435;&#24037;&#20316;&#30340;&#21333;&#20803;&#32452;&#21512;&#22312;&#19968;&#36215;&#30340;&#26102;&#20505;&#23601;&#26174;&#31034;&#20986;&#20102;&#23427;&#20204;&#30495;&#27491;&#30340;&#22909;&#22788;&#21644;&#24378;&#22823;&#12290;*nix&#31243;&#24207; vs &#24494;&#26381;&#21153;&#19979;&#38754;&#30340;&#34920;&#26684;&#23545;&#27604;&#20102; *nix &#29615;&#22659;&#20013;&#30340;&#31243;&#24207;&#65288;&#20363;&#22914; cat &#25110; lsof&#65289;&#19982;&#24494;&#26381;&#21153;&#29615;&#22659;&#20013;&#30340;&#31243;&#24207;&#12290; *nix &#31243;&#24207;&#24494;&#26381;&#21153;&#25191;&#34892;&#21333;&#20803;&#31243;&#24207;&#20351;&#29992; stdin/stdout&#20351;&#29992; HTTP &#25110; gRPC API&#25968;&#25454;&#27969;&#31649;&#36947;&#65311;&#21487;&#37197;&#32622;&#21644;&#21442;&#25968;&#21270;&#21629;&#20196;&#34892;&#21442;&#25968;&#12289;&#29615;&#22659;&#21464;&#37327;&#21644;&#37197;&#32622;&#25991;&#20214;JSON/YAML &#25991;&#26723;&#21457;&#29616;&#21253;&#31649;&#29702;&#22120;&#12289;man&#12289;makeDNS&#12289;&#29615;&#22659;&#21464;&#37327;&#12289;OpenAPI&#35753;&#25105;&#20204;&#35814;&#32454;&#30340;&#30475;&#30475;&#27599;&#19968;&#34892;&#12290;&#25191;&#34892;&#21333;&#20803;*nix &#31995;&#32479;&#65288;&#22914; Linux&#65289;&#20013;&#30340;&#25191;&#34892;&#21333;&#20803;&#26159;&#19968;&#20010;&#21487;&#25191;&#34892;&#30340;&#25991;&#20214;&#65288;&#20108;&#36827;&#21046;&#25110;&#32773;…
举例说明 alias 和 unalias 命令

一个记住这些如此长的命令的简便方式就是为这些命令创建一个别名。你可以为任何经常重复调用的常用命令创建别名,而不仅仅是长命令。Media

via https://linux.cn/article-10283-1.html
&#20030;&#20363;&#35828;&#26126; alias &#21644; unalias &#21629;&#20196;

<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/27/224429noagpp9h5hbi8bk8.jpg">Media</a>&#22914;&#26524;&#19981;&#26159;&#19968;&#20010;&#21629;&#20196;&#34892;&#37325;&#24230;&#29992;&#25143;&#30340;&#35805;&#65292;&#36807;&#20102;&#19968;&#27573;&#26102;&#38388;&#20043;&#21518;&#65292;&#20320;&#23601;&#21487;&#33021;&#24050;&#32463;&#24536;&#35760;&#20102;&#36825;&#20123;&#22797;&#26434;&#19988;&#20887;&#38271;&#30340; Linux &#21629;&#20196;&#20102;&#12290;&#24403;&#28982;&#65292;&#26377;&#24456;&#22810;&#26041;&#27861;&#21487;&#20197;&#35753;&#20320; <a href="https://www.ostechnix.com/easily-recall-forgotten-linux-commands/">&#22238;&#24819;&#36215;&#36951;&#24536;&#30340;&#21629;&#20196;</a>&#12290;&#20320;&#21487;&#20197;&#31616;&#21333;&#30340; <a href="https://www.ostechnix.com/save-commands-terminal-use-demand/">&#20445;&#23384;&#24120;&#29992;&#30340;&#21629;&#20196;</a> &#28982;&#21518;&#25353;&#38656;&#20351;&#29992;&#12290;&#20063;&#21487;&#20197;&#22312;&#32456;&#31471;&#37324; <a href="https://www.ostechnix.com/bookmark-linux-commands-easier-repeated-invocation/">&#26631;&#35760;&#37325;&#35201;&#30340;&#21629;&#20196;</a>&#65292;&#28982;&#21518;&#22312;&#20219;&#20309;&#26102;&#20505;&#20320;&#24819;&#35201;&#30340;&#26102;&#38388;&#20351;&#29992;&#23427;&#20204;&#12290;&#32780;&#19988;&#65292;Linux &#26377;&#19968;&#20010;&#20869;&#24314;&#21629;&#20196; history &#21487;&#20197;&#24110;&#21161;&#20320;&#35760;&#24518;&#36825;&#20123;&#21629;&#20196;&#12290;&#21478;&#22806;&#19968;&#20010;&#35760;&#20303;&#36825;&#20123;&#22914;&#27492;&#38271;&#30340;&#21629;&#20196;&#30340;&#31616;&#20415;&#26041;&#24335;&#23601;&#26159;&#20026;&#36825;&#20123;&#21629;&#20196;&#21019;&#24314;&#19968;&#20010;&#21035;&#21517;&#12290;&#20320;&#21487;&#20197;&#20026;&#20219;&#20309;&#32463;&#24120;&#37325;&#22797;&#35843;&#29992;&#30340;&#24120;&#29992;&#21629;&#20196;&#21019;&#24314;&#21035;&#21517;&#65292;&#32780;&#19981;&#20165;&#20165;&#26159;&#38271;&#21629;&#20196;&#12290;&#36890;&#36807;&#36825;&#31181;&#26041;&#27861;&#65292;&#20320;&#19981;&#24517;&#20877;&#36807;&#22810;&#22320;&#35760;&#24518;&#36825;&#20123;&#21629;&#20196;&#12290;&#36825;&#31687;&#25991;&#31456;&#20013;&#65292;&#25105;&#20204;&#23558;&#20250;&#22312; Linux &#29615;&#22659;&#19979;&#20030;&#20363;&#35828;&#26126; alias &#21644; unalias &#21629;&#20196;&#12290;alias &#21629;&#20196;alias &#20351;&#29992;&#19968;&#20010;&#29992;&#25143;&#33258;&#23450;&#20041;&#30340;&#23383;&#31526;&#20018;&#26469;&#20195;&#26367;&#19968;&#20010;&#25110;&#32773;&#19968;&#20018;&#21629;&#20196;&#65288;&#21253;&#25324;&#22810;&#20010;&#36873;&#39033;&#12289;&#21442;&#25968;&#65289;&#12290;&#36825;&#20010;&#23383;&#31526;&#20018;&#21487;&#20197;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#21517;&#23383;&#25110;&#32773;&#32553;&#20889;&#65292;&#19981;&#31649;&#36825;&#20010;&#21629;&#20196;&#21407;&#26469;&#22810;&#20040;&#22797;&#26434;&#12290;alias &#21629;&#20196;&#24050;&#32463;&#39044;&#35013;&#22312; shell&#65288;&#21253;&#25324; BASH&#12289;Csh&#12289;Ksh &#21644; Zsh &#31561;&#65289; &#24403;&#20013;&#12290;alias &#30340;&#36890;&#29992;&#35821;&#27861;&#26159;&#65306;<pre class="prettyprint linenums">alias [alias-name[=string]...]</pre>&#25509;&#19979;&#26469;&#30475;&#20960;&#20010;&#20363;&#23376;&#12290;&#21015;&#20986;&#21035;&#21517;&#21487;&#33021;&#22312;&#20320;&#30340;&#31995;&#32479;&#20013;&#24050;&#32463;&#35774;&#32622;&#20102;&#19968;&#20123;&#21035;&#21517;&#12290;&#26377;&#20123;&#24212;&#29992;&#22312;&#20320;&#23433;&#35013;&#23427;&#20204;&#30340;&#26102;&#20505;&#21487;&#33021;&#24050;&#32463;&#33258;&#21160;&#21019;&#24314;&#20102;&#21035;&#21517;&#12290;&#35201;&#26597;&#30475;&#24050;&#32463;&#23384;&#22312;&#30340;&#21035;&#21517;&#65292;&#36816;&#34892;&#65306;<pre class="prettyprint linenums">$ alias</pre>&#25110;&#32773;&#65292;<pre class="prettyprint…
如何在终端中浏览 Stack Overflow

你可以如你在 Google 搜索中那样直接用英语查询,然后它会使用 Google 和 Stackoverflow API 来搜索给定的查询。Media

via https://linux.cn/article-10284-1.html
&#22914;&#20309;&#22312;&#32456;&#31471;&#20013;&#27983;&#35272; Stack Overflow

<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/27/234754jwxn6uz09e515frm.png">Media</a>&#21069;&#27573;&#26102;&#38388;&#65292;&#25105;&#20204;&#20889;&#20102;&#19968;&#31687;&#20851;&#20110; <a href="https://www.ostechnix.com/search-browse-stack-overflow-website-commandline/">SoCLI</a> &#30340;&#25991;&#31456;&#65292;&#23427;&#26159;&#19968;&#20010;&#20174;&#21629;&#20196;&#34892;&#25628;&#32034;&#21644;&#27983;&#35272; Stack Overflow &#32593;&#31449;&#30340; python &#33050;&#26412;&#12290;&#20170;&#22825;&#65292;&#25105;&#20204;&#23558;&#35752;&#35770;&#19968;&#20010;&#21517;&#20026; “how2” &#30340;&#31867;&#20284;&#24037;&#20855;&#12290;&#23427;&#26159;&#19968;&#20010;&#21629;&#20196;&#34892;&#31243;&#24207;&#65292;&#21487;&#20197;&#20174;&#32456;&#31471;&#27983;&#35272; Stack Overflow&#12290;&#20320;&#21487;&#20197;&#22914;&#20320;&#22312; <a href="https://www.ostechnix.com/google-search-navigator-enhance-keyboard-navigation-in-google-search/">Google &#25628;&#32034;</a>&#20013;&#37027;&#26679;&#30452;&#25509;&#29992;&#33521;&#35821;&#26597;&#35810;&#65292;&#28982;&#21518;&#23427;&#20250;&#20351;&#29992; Google &#21644; Stackoverflow API &#26469;&#25628;&#32034;&#32473;&#23450;&#30340;&#26597;&#35810;&#12290;&#23427;&#26159;&#20351;&#29992; NodeJS &#32534;&#20889;&#30340;&#33258;&#30001;&#24320;&#28304;&#31243;&#24207;&#12290;&#20351;&#29992; how2 &#20174;&#32456;&#31471;&#27983;&#35272; Stack Overflow&#30001;&#20110; how2 &#26159;&#19968;&#20010; NodeJS &#21253;&#65292;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992; Npm &#21253;&#31649;&#29702;&#22120;&#23433;&#35013;&#23427;&#12290;&#22914;&#26524;&#20320;&#23578;&#26410;&#23433;&#35013; Npm &#21644; NodeJS&#65292;&#35831;&#21442;&#32771;&#20197;&#19979;&#25351;&#21335;&#12290;&#22312;&#23433;&#35013; Npm &#21644; NodeJS &#21518;&#65292;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#23433;&#35013; how2&#12290;<pre class="prettyprint linenums">$ npm install -g how2</pre>&#29616;&#22312;&#35753;&#25105;&#20204;&#30475;&#19979;&#22914;&#20309;&#20351;&#29992;&#36825;&#20010;&#31243;&#24207;&#27983;&#35272; Stack Overflow&#12290;&#20351;&#29992; how2 &#25628;&#32034; Stack Overflow &#31449;&#28857;&#30340;&#20856;&#22411;&#29992;&#27861;&#26159;&#65306;<pre class="prettyprint linenums">$ how2 <search-query></pre>&#20363;&#22914;&#65292;&#25105;&#23558;&#25628;&#32034;&#22914;&#20309;&#21019;&#24314; tgz &#23384;&#26723;&#12290;<pre class="prettyprint linenums">$ how2 create archive tgz</pre>&#21710;&#21568;&#65281;&#25105;&#25910;&#21040;&#20197;&#19979;&#38169;&#35823;&#12290;<pre class="prettyprint linenums">/home/sk/.nvm/versions/node/v9.11.1/lib/node_modules/how2/node_modules/devnull/transports/transport.js:59Transport.prototype.__proto__ = EventEmitter.prototype; ^ TypeError: Cannot read property 'prototype' of undefined at Object.<anonymous> (/home/sk/.nvm/versions/node/v9.11.1/lib/node_modules/how2/node_modules/devnull/transports/transport.js:59:46) at Module._compile (internal/modules/cjs/loader.js:654:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10) at Module.load (internal/modules/cjs/loader.js:566:32) at tryModuleLoad (internal/modules/cjs/loader.js:506:12) at Function.Module._load (internal/modules/cjs/loader.js:498:3) at Module.require (internal/modules/cjs/loader.js:598:17) at require (internal/modules/cjs/helpers.js:11:18) at Object.<anonymous> (/home/sk/.nvm/versions/node/v9.11.1/lib/node_modules/how2/node_modules/devnull/transports/stream.js:8:17) at Module._compile (internal/modules/cjs/loader.js:654:30)</pre>&#25105;&#21487;&#33021;&#36935;&#21040;&#20102;&#19968;&#20010; bug&#12290;&#25105;&#24076;&#26395;&#23427;&#22312;&#26410;&#26469;&#29256;&#26412;&#20013;&#24471;&#21040;&#20462;&#22797;&#12290;&#20294;&#26159;&#65292;&#25105;&#22312;<a href="https://github.com/santinic/how2/issues/79">&#36825;&#37324;</a>&#25214;&#21040;…
GPL 合作承诺的发展历程

GPL 合作承诺消除了开发者对许可证失效的顾虑,从而达到促进技术创新的目的。Media

via https://linux.cn/article-10285-1.html
GPL &#21512;&#20316;&#25215;&#35834;&#30340;&#21457;&#23637;&#21382;&#31243;

GPL &#21512;&#20316;&#25215;&#35834;GPL Cooperation Commitment&#28040;&#38500;&#20102;&#24320;&#21457;&#32773;&#23545;&#35768;&#21487;&#35777;&#22833;&#25928;&#30340;&#39038;&#34385;&#65292;&#20174;&#32780;&#36798;&#21040;&#20419;&#36827;&#25216;&#26415;&#21019;&#26032;&#30340;&#30446;&#30340;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/28/101831jxng18z1101p1xms.png">Media</a>&#20551;&#22914;&#33021;&#20813;&#20110;&#39038;&#34385;&#65292;&#25216;&#26415;&#21019;&#26032;&#21644;&#21457;&#23637;&#23558;&#20250;&#35753;&#19990;&#30028;&#21457;&#29983;&#22825;&#32763;&#22320;&#35206;&#30340;&#25913;&#21464;&#12290;<a href="https://gplcc.github.io/gplcc/">GPL &#21512;&#20316;&#25215;&#35834;</a>GPL Cooperation Commitment&#23601;&#36825;&#26679;&#24212;&#36816;&#32780;&#29983;&#65292;&#21482;&#20026;&#36890;&#36807;&#20844;&#24179;&#12289;&#19968;&#33268;&#12289;&#21487;&#39044;&#27979;&#30340;&#35768;&#21487;&#35777;&#26469;&#35753;&#31185;&#25216;&#21019;&#26032;&#26080;&#21518;&#39038;&#20043;&#24551;&#12290;&#21435;&#24180;&#65292;&#25105;&#26366;&#32463;&#20889;&#36807;&#19968;&#31687;&#25991;&#31456;&#65292;&#35752;&#35770;&#20102;&#35768;&#21487;&#35777;&#23545;&#24320;&#28304;&#36719;&#20214;&#19979;&#28216;&#29992;&#25143;&#30340;&#24433;&#21709;&#12290;&#22312;&#36827;&#34892;&#30740;&#31350;&#30340;&#26102;&#20505;&#65292;&#25105;&#23601;&#21457;&#29616;&#35768;&#21487;&#35777;&#30340;&#32422;&#26463;&#21147;&#24182;&#19981;&#24378;&#65292;&#32780;&#19988;&#24456;&#22810;&#24773;&#20917;&#19979;&#26159;&#19981;&#21487;&#39044;&#27979;&#30340;&#12290;&#22240;&#27492;&#65292;&#25105;&#22312;&#25991;&#31456;&#20013;&#25552;&#20986;&#20102;&#19968;&#20010;&#33021;&#20351;&#24320;&#28304;&#35768;&#21487;&#35777;&#20855;&#26377;&#19968;&#33268;&#24615;&#21644;&#21487;&#39044;&#27979;&#24615;&#30340;&#28508;&#22312;&#35299;&#20915;&#26041;&#26696;&#12290;&#20294;&#25105;&#21482;&#32771;&#34385;&#21040;&#20102;&#35832;&#22914;&#36890;&#36807;&#27861;&#24459;&#31995;&#32479;&#31435;&#27861;&#30340;“&#20256;&#32479;”&#26041;&#27861;&#12290;2017 &#24180; 11 &#26376;&#65292;RedHat&#12289;IBM&#12289;Google &#21644; Facebook &#25552;&#20986;&#20102;&#36825;&#31181;&#25105;&#20174;&#26410;&#32771;&#34385;&#36807;&#30340;&#38750;&#20256;&#32479;&#30340;&#35299;&#20915;&#26041;&#26696;&#65306;GPL &#21512;&#20316;&#25215;&#35834;&#12290;GPL &#21512;&#20316;&#25215;&#35834;&#35268;&#23450;&#20102; GPL &#20844;&#24179;&#19968;&#33268;&#25191;&#34892;&#30340;&#26041;&#24335;&#12290;&#25105;&#35748;&#20026;&#65292;GPL &#21512;&#20316;&#25215;&#35834;&#20043;&#25152;&#20197;&#26377;&#36825;&#20040;&#28145;&#21051;&#30340;&#24847;&#20041;&#65292;&#26377;&#20197;&#19979;&#20004;&#20010;&#21407;&#22240;&#65306;&#19968;&#26159;&#35768;&#21487;&#35777;&#30340;&#20844;&#24179;&#24615;&#21644;&#19968;&#33268;&#24615;&#23545;&#20110;&#24320;&#28304;&#31038;&#21306;&#30340;&#21457;&#23637;&#26469;&#35828;&#33267;&#20851;&#37325;&#35201;&#65292;&#20108;&#26159;&#27861;&#24459;&#23545;&#19981;&#21487;&#39044;&#27979;&#24615;&#24182;&#19981;&#23481;&#24525;&#12290;&#20102;&#35299; GPL&#35201;&#20102;&#35299; GPL &#21512;&#20316;&#25215;&#35834;&#65292;&#39318;&#20808;&#35201;&#20102;&#35299;&#20160;&#20040;&#26159; GPL&#12290;GPL &#26159; <a href="https://www.gnu.org/licenses/licenses.en.html">GNU &#36890;&#29992;&#35768;&#21487;&#35777;</a>GNU General Public License&#30340;&#32553;&#20889;&#65292;&#23427;&#26159;&#19968;&#20010;&#20844;&#20849;&#29256;&#26435;&#30340;&#24320;&#28304;&#35768;&#21487;&#35777;&#65292;&#36825;&#23601;&#24847;&#21619;&#30528;&#24320;&#28304;&#36719;&#20214;&#30340;&#20998;&#21457;&#32773;&#24517;&#39035;&#21521;&#19979;&#28216;&#29992;&#25143;&#20844;&#24320;&#28304;&#20195;&#30721;&#12290;GPL &#36824;&#31105;&#27490;&#23545;&#19979;&#28216;&#30340;&#20351;&#29992;&#20316;&#20986;&#38480;&#21046;&#65292;&#35201;&#27714;&#…
i3 窗口管理器使 Linux 更美好

通过键盘操作的 i3 平铺窗口管理器使用 Linux 桌面。Media

via https://linux.cn/article-10286-1.html
i3 &#31383;&#21475;&#31649;&#29702;&#22120;&#20351; Linux &#26356;&#32654;&#22909;

&#36890;&#36807;&#38190;&#30424;&#25805;&#20316;&#30340; i3 &#24179;&#38138;&#31383;&#21475;&#31649;&#29702;&#22120;&#20351;&#29992; Linux &#26700;&#38754;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/28/114731z171znh8978ngn8a.jpg">Media</a>Linux&#65288;&#21644;&#19968;&#33324;&#30340;&#24320;&#28304;&#36719;&#20214;&#65289;&#26368;&#32654;&#22909;&#30340;&#19968;&#28857;&#26159;&#33258;&#30001; —— &#21487;&#20197;&#22312;&#19981;&#21516;&#30340;&#26367;&#20195;&#26041;&#26696;&#20013;&#36827;&#34892;&#36873;&#25321;&#20197;&#28385;&#36275;&#25105;&#20204;&#30340;&#38656;&#27714;&#12290;&#25105;&#20351;&#29992; Linux &#24050;&#32463;&#24456;&#38271;&#26102;&#38388;&#20102;&#65292;&#20294;&#25105;&#20174;&#26469;&#27809;&#26377;&#23545;&#21487;&#36873;&#29992;&#30340;&#26700;&#38754;&#29615;&#22659;&#23436;&#20840;&#28385;&#24847;&#36807;&#12290;&#30452;&#21040;&#21435;&#24180;&#65292;<a href="https://xfce.org/">Xfce</a> &#36824;&#26159;&#25105;&#35748;&#20026;&#22312;&#21151;&#33021;&#21644;&#24615;&#33021;&#20043;&#38388;&#30340;&#24179;&#21644;&#26368;&#25509;&#36817;&#28385;&#24847;&#30340;&#19968;&#20010;&#26700;&#38754;&#29615;&#22659;&#12290;&#28982;&#21518;&#25105;&#21457;&#29616;&#20102; <a href="https://i3wm.org/">i3</a>&#65292;&#36825;&#26159;&#19968;&#20010;&#25913;&#21464;&#20102;&#25105;&#30340;&#29983;&#27963;&#30340;&#24778;&#20154;&#30340;&#36719;&#20214;&#12290;i3 &#26159;&#19968;&#20010;&#24179;&#38138;&#31383;&#21475;&#31649;&#29702;&#22120;&#12290;&#31383;&#21475;&#31649;&#29702;&#22120;&#30340;&#30446;&#26631;&#26159;&#25511;&#21046;&#31383;&#21475;&#31995;&#32479;&#20013;&#31383;&#21475;&#30340;&#22806;&#35266;&#21644;&#20301;&#32622;&#12290;&#31383;&#21475;&#31649;&#29702;&#22120;&#36890;&#24120;&#29992;&#20316;&#21151;&#33021;&#40784;&#20840;&#30340;&#26700;&#38754;&#29615;&#22659; (&#22914; GONME &#25110; Xfce ) &#30340;&#19968;&#37096;&#20998;&#65292;&#20294;&#20063;&#26377;&#19968;&#20123;&#21487;&#20197;&#29992;&#20316;&#29420;&#31435;&#30340;&#24212;&#29992;&#31243;&#24207;&#12290;&#24179;&#38138;&#24335;&#31383;&#21475;&#31649;&#29702;&#22120;&#20250;&#33258;&#21160;&#25490;&#21015;&#31383;&#21475;&#65292;&#20197;&#19981;&#37325;&#21472;&#30340;&#26041;&#24335;&#21344;&#25454;&#25972;&#20010;&#23631;&#24149;&#12290;&#20854;&#20182;&#27969;&#34892;&#30340;&#24179;&#38138;&#24335;&#31383;&#21475;&#31649;&#29702;&#22120;&#36824;&#26377; <a href="https://code.google.com/archive/p/wmii/">wmii</a> &#21644; <a href="https://xmonad.org/">xmonad</a> &#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/28/114747cz93iitfkz4w0in0.png">i3 tiled window manager screenshot</a><em>&#24102;&#26377;&#19977;&#20010;&#30340; i3 &#23631;&#24149;&#25130;&#22270;</em>&#20026;&#20102;&#33719;&#24471;&#26356;&#22909;&#30340; Linux &#26700;&#38754;&#20307;&#39564;&#65292;&#20197;&#19979;&#26159;&#25105;&#20351;&#29992;&#21644;&#25512;&#33616; i3 &#31383;&#21475;&#31649;&#29702;&#22120;&#30340;&#20116;&#20010;&#39318;&#35201;&#21407;&#22240;&#12290;1&#12289;&#26497;&#31616;&#33402;&#26415;i3 &#36895;&#24230;&#24456;&#24555;&#12290;&#23427;&#26082;&#19981;&#20887;&#26434;&#12289;&#20063;&#19981;&#33457;&#21736;&#12290;&#23427;&#30340;&#35774;&#35745;&#31616;&#21333;&#32780;&#39640;&#25928;&#12290;&#20316;&#20026;&#24320;&#21457;&#20154;&#21592;&#65292;&#25105;&#37325;&#35270;&#36825;&#20123;&#21151;&#33021;&#65292;&#22240;&#20026;&#25105;&#21487;&#20197;&#20351;&#29992;&#26356;&#22810;&#30340;&#21151;&#33021;&#20197;&#20016;&#23500;&#25105;&#26368;&#21916;&#27426;&#30340;&#24320;&#21457;&#24037;&#20855;&#65292;&#25110;&#32773;&#20351;&#29992;&#23481;&#22120;&#25110;&#34394;&#25311;&#26426;&#22312;&#26412;&#22320;&#27979;&#35797;&#20869;&#23481;&#12290;&#27492;&#22806;&#65292; i3 &#26159;&#19968;&#20010;&#31383;&#21475;&#31649;&#29702;&#22120;&#65292;&#19982;&#21151;&#33021;&#40784;&#20840;&#30340;…
使用 Pandoc 将你的书转换成网页和电子书

通过 Markdown 和 Pandoc,可以做到编写一次,发布两次。Media

via https://linux.cn/article-10287-1.html
&#20351;&#29992; Pandoc &#23558;&#20320;&#30340;&#20070;&#36716;&#25442;&#25104;&#32593;&#39029;&#21644;&#30005;&#23376;&#20070;

&#36890;&#36807; Markdown &#21644; Pandoc&#65292;&#21487;&#20197;&#20570;&#21040;&#32534;&#20889;&#19968;&#27425;&#65292;&#21457;&#24067;&#20004;&#27425;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/28/182455gxocchrdgd4pkocz.jpg">Media</a>Pandoc &#26159;&#19968;&#20010;&#21629;&#20196;&#34892;&#24037;&#20855;&#65292;&#29992;&#20110;&#23558;&#25991;&#20214;&#20174;&#19968;&#31181;&#26631;&#35760;&#35821;&#35328;&#36716;&#25442;&#20026;&#21478;&#19968;&#31181;&#26631;&#35760;&#35821;&#35328;&#12290;&#22312;&#25105; <a href="https://linux.cn/article-10228-1.html">&#23545; Pandoc &#30340;&#31616;&#20171;</a> &#19968;&#25991;&#20013;&#65292;&#25105;&#28436;&#31034;&#20102;&#22914;&#20309;&#25226; Markdown &#32534;&#20889;&#30340;&#25991;&#26412;&#36716;&#25442;&#20026;&#32593;&#39029;&#12289;&#24187;&#28783;&#29255;&#21644; PDF&#12290;&#22312;&#36825;&#31687;&#21518;&#32493;&#25991;&#31456;&#20013;&#65292;&#25105;&#23558;&#28145;&#20837;&#25506;&#35752; <a href="https://pandoc.org/">Pandoc</a>&#65292;&#23637;&#31034;&#22914;&#20309;&#20174;&#21516;&#19968;&#20010; Markdown &#28304;&#25991;&#20214;&#29983;&#25104;&#32593;&#39029;&#21644; ePub &#26684;&#24335;&#30340;&#30005;&#23376;&#20070;&#12290;&#25105;&#23558;&#20351;&#29992;&#25105;&#21363;&#23558;&#21457;&#24067;&#30340;&#30005;&#23376;&#20070;&#12298;<a href="https://www.programmingfightclub.com/">&#38754;&#21521;&#23545;&#35937;&#24605;&#24819;&#30340; GRASP &#21407;&#21017;</a>&#12299;&#20026;&#20363;&#36827;&#34892;&#35762;&#35299;&#65292;&#36825;&#26412;&#30005;&#23376;&#20070;&#27491;&#26159;&#36890;&#36807;&#20197;&#19979;&#36807;&#31243;&#21019;&#24314;&#30340;&#12290;&#39318;&#20808;&#65292;&#25105;&#23558;&#35299;&#37322;&#36825;&#26412;&#20070;&#20351;&#29992;&#30340;&#25991;&#20214;&#32467;&#26500;&#65292;&#28982;&#21518;&#20171;&#32461;&#22914;&#20309;&#20351;&#29992; Pandoc &#29983;&#25104;&#32593;&#39029;&#24182;&#23558;&#20854;&#37096;&#32626;&#22312; GitHub &#19978;&#65307;&#26368;&#21518;&#65292;&#25105;&#28436;&#31034;&#20102;&#22914;&#20309;&#29983;&#25104;&#23545;&#24212;&#30340; ePub &#26684;&#24335;&#30005;&#23376;&#20070;&#12290;&#20320;&#21487;&#20197;&#22312;&#25105;&#30340; GitHub &#20179;&#24211; <a href="https://github.com/kikofernandez/programmingfightclub">Programming Fight Club</a> &#20013;&#25214;&#21040;&#30456;&#24212;&#20195;&#30721;&#12290;&#35774;&#32622;&#22270;&#20070;&#32467;&#26500;&#25105;&#29992; Markdown &#35821;&#27861;&#23436;&#25104;&#20102;&#25152;&#26377;&#30340;&#20889;&#20316;&#65292;&#20320;&#20063;&#21487;&#20197;&#20351;&#29992; HTML &#26631;&#35760;&#65292;&#20294;&#26159;&#24403; Pandoc &#23558; Markdown &#36716;&#25442;&#20026; ePub &#25991;&#26723;&#26102;&#65292;&#24341;&#20837;&#30340; HTML &#26631;&#35760;&#36234;&#22810;&#65292;&#20986;&#29616;&#38382;&#39064;&#30340;&#39118;&#38505;&#23601;&#36234;&#39640;&#12290;&#25105;&#30340;&#20070;&#25353;&#29031;&#27599;&#31456;&#19968;&#20010;&#25991;&#20214;&#30340;&#24418;&#24335;&#36827;&#34892;&#32452;&#32455;&#65292;&#29992; Markdown &#30340; H1 &#26631;&#35760;&#65288;&#65283;&#65289;&#22768;&#26126;&#27599;&#31456;&#30340;&#26631;&#39064;&#12290;&#20320;&#20063;&#21487;&#20197;&#22312;&#27599;&#20010;&#25991;&#20214;&#20013;&#25918;&#32622;&#22810;&#20010;&#31456;&#33410;&#65292;&#20294;&#23558;&#23427;&#20204;&#25918;&#22312;&#21333;&#29420;&#30340;&#25991;&#20214;&#20013;&#21487;&#20197;&#26356;&#36731;&#26494;&#22320;&#26597;&#25214;&#20869;&#23481;&#24182;&#22312;&#20197;&#21518;&#36827;&#34892;&#26356;&#26032;&#12290;&#20803;&#20449;&#24687;&#36981;&#24490;&#31867;&#20284;&#30340;&#27169;&#24335;&#65292;&#27599;&#31181;&#36755;&#20986;&#26684;&#24335;&#37117;&#26377;&#33258;&#24049;&#30340;&#20803;&#20449;&#24687;&#25991;&#20214;&#12290;&#20803;&#20449;&#24687;&#25991;&#20214;&#23450;&#20041;&#26377;&#20851…
什么是 SRE?它和 DevOps 是怎么关联的?

大型企业里 SRE 角色比较常见,不过小公司也需要 SRE。Media

via https://linux.cn/article-10288-1.html
&#20160;&#20040;&#26159; SRE&#65311;&#23427;&#21644; DevOps &#26159;&#24590;&#20040;&#20851;&#32852;&#30340;&#65311;

&#22823;&#22411;&#20225;&#19994;&#37324; SRE &#35282;&#33394;&#27604;&#36739;&#24120;&#35265;&#65292;&#19981;&#36807;&#23567;&#20844;&#21496;&#20063;&#38656;&#35201; SRE&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/28/213800k9fd0ic4d9p64qdq.jpg">Media</a>&#34429;&#28982;&#31449;&#28857;&#21487;&#38752;&#24615;&#24037;&#31243;&#24072;site reliability engineer&#65288;SRE&#65289;&#35282;&#33394;&#22312;&#36817;&#20960;&#24180;&#21464;&#24471;&#27969;&#34892;&#36215;&#26469;&#65292;&#20294;&#26159;&#24456;&#22810;&#20154; —— &#29978;&#33267;&#26159;&#36719;&#20214;&#34892;&#19994;&#37324;&#30340; —— &#36824;&#19981;&#30693;&#36947; SRE &#26159;&#20160;&#20040;&#25110;&#32773; SRE &#37117;&#24178;&#20123;&#20160;&#20040;&#12290;&#20026;&#20102;&#25630;&#28165;&#26970;&#36825;&#20123;&#38382;&#39064;&#65292;&#36825;&#31687;&#25991;&#31456;&#35299;&#37322;&#20102; SRE &#30340;&#21547;&#20041;&#65292;&#36824;&#26377; SRE &#24590;&#26679;&#20851;&#32852; DevOps&#65292;&#20197;&#21450;&#22312;&#24037;&#31243;&#24072;&#22242;&#38431;&#35268;&#27169;&#19981;&#22823;&#30340;&#32452;&#32455;&#37324; SRE &#35813;&#22914;&#20309;&#24037;&#20316;&#12290;&#20160;&#20040;&#26159;&#31449;&#28857;&#21487;&#38752;&#24615;&#24037;&#31243;&#65311;&#35895;&#27468;&#30340;&#20960;&#20010;&#24037;&#31243;&#24072;&#20889;&#30340;&#12298;<a href="http://shop.oreilly.com/product/0636920041528.do">SRE&#65306;&#35895;&#27468;&#36816;&#32500;&#35299;&#23494;</a>&#12299;&#34987;&#35748;&#20026;&#26159;&#31449;&#28857;&#21487;&#38752;&#24615;&#24037;&#31243;&#30340;&#26435;&#23041;&#20070;&#31821;&#12290;&#35895;&#27468;&#30340;&#24037;&#31243;&#21103;&#24635;&#35009; Ben Treynor Sloss &#22312;&#20108;&#21313;&#19968;&#19990;&#32426;&#21021;<a href="https://landing.google.com/sre/interview/ben-treynor.html">&#21019;&#36896;&#20102;&#36825;&#20010;&#26415;&#35821;</a>&#12290;&#20182;&#26159;&#36825;&#26679;&#23450;&#20041;&#30340;&#65306;“&#24403;&#20320;&#35753;&#36719;&#20214;&#24037;&#31243;&#24072;&#35774;&#35745;&#36816;&#32500;&#21151;&#33021;&#26102;&#65292;SRE &#23601;&#20135;&#29983;&#20102;&#12290;”&#34429;&#28982;&#31995;&#32479;&#31649;&#29702;&#21592;&#20174;&#24456;&#20037;&#20043;&#21069;&#23601;&#22312;&#20889;&#20195;&#30721;&#65292;&#20294;&#26159;&#36807;&#21435;&#30340;&#24456;&#22810;&#26102;&#20505;&#31995;&#32479;&#31649;&#29702;&#22242;&#38431;&#26159;&#25163;&#21160;&#31649;&#29702;&#26426;&#22120;&#30340;&#12290;&#24403;&#26102;&#20182;&#20204;&#31649;&#29702;&#30340;&#26426;&#22120;&#21487;&#33021;&#26377;&#20960;&#21313;&#21488;&#25110;&#32773;&#19978;&#30334;&#21488;&#65292;&#19981;&#36807;&#24403;&#36825;&#20010;&#25968;&#23383;&#28072;&#21040;&#20102;&#20960;&#21315;&#29978;&#33267;&#20960;&#21313;&#19975;&#30340;&#26102;&#20505;&#65292;&#23601;&#19981;&#33021;&#31616;&#21333;&#30340;&#38752;&#20154;&#21435;&#35299;&#20915;&#38382;&#39064;&#20102;&#12290;&#35268;&#27169;&#22914;&#27492;&#22823;&#30340;&#24773;&#20917;&#19979;&#65292;&#24456;&#26126;&#26174;&#24212;&#35813;&#29992;&#20195;&#30721;&#21435;&#31649;&#29702;&#26426;&#22120;&#65288;&#20197;&#21450;&#26426;&#22120;&#19978;&#36816;&#34892;&#30340;&#36719;&#20214;&#65289;&#12290;&#21478;&#22806;&#65292;&#19968;&#30452;&#21040;&#36817;&#20960;&#24180;&#65292;&#36816;&#32500;&#22242;&#38431;&#21644;&#24320;&#21457;&#22242;&#38431;&#37117;&#36824;&#26159;&#23436;&#20840;&#29420;&#31435;&#30340;&#12290;&#20004;&#20010;&#23703;&#20301;&#30340;&#25216;&#33021;&#35201;&#27714;&#20063;&#34987;&#35748;&#20026;&#26159;&#23436;&#20840;&#19981;&#21516;&#30340;&#12290;SRE &#30340;&#35282;&#33394;&#24819;&#23581;&#35797;&#25226;&#36825;&#20004;&#20221;&#24037;&#20316;&#32467;&#21512;&#36215;&#26469;&#12290;&#22312;&#28145;&#20837;&#25506;&#35752;&#20160;&#20040;&#26159; SRE &#20197;&#21450; SRE &#22914;&#20309;&#21644;&#24320;&#21457;&#22242;&#3…
如何更换 Ubuntu 系统的 GDM 登录界面背景

Ubuntu 18.04 LTS 桌面系统在登录、锁屏和解锁状态下,我们会看到一个纯紫色的背景。Media

via https://linux.cn/article-10289-1.html
&#22914;&#20309;&#26356;&#25442; Ubuntu &#31995;&#32479;&#30340; GDM &#30331;&#24405;&#30028;&#38754;&#32972;&#26223;

<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/28/215150y77msel002uj2mu1.png">Media</a>Ubuntu 18.04 LTS &#26700;&#38754;&#31995;&#32479;&#22312;&#30331;&#24405;&#12289;&#38145;&#23631;&#21644;&#35299;&#38145;&#29366;&#24577;&#19979;&#65292;&#25105;&#20204;&#20250;&#30475;&#21040;&#19968;&#20010;&#32431;&#32043;&#33394;&#30340;&#32972;&#26223;&#12290;&#23427;&#26159; GDM&#65288;GNOME &#26174;&#31034;&#31649;&#29702;&#22120;GNOME Display Manager&#65289;&#20174; ubuntu 17.04 &#29256;&#26412;&#24320;&#22987;&#20351;&#29992;&#30340;&#40664;&#35748;&#32972;&#26223;&#12290;&#26377;&#19968;&#20123;&#20154;&#21487;&#33021;&#20250;&#19981;&#21916;&#27426;&#36825;&#20010;&#32431;&#33394;&#30340;&#32972;&#26223;&#65292;&#24819;&#25442;&#19968;&#20010;&#37239;&#19968;&#28857;&#12289;&#26356;&#21560;&#30555;&#30340;&#65281;&#22914;&#26524;&#26159;&#36825;&#26679;&#65292;&#20320;&#25214;&#23545;&#22320;&#26041;&#20102;&#12290;&#36825;&#31687;&#30701;&#25991;&#23558;&#20250;&#21578;&#35785;&#20320;&#22914;&#20309;&#26356;&#25442; Ubuntu 18.04 LTS &#30340; GDM &#30331;&#24405;&#30028;&#38754;&#30340;&#32972;&#26223;&#12290;&#26356;&#25442; Ubuntu &#30340;&#30331;&#24405;&#30028;&#38754;&#32972;&#26223;&#36825;&#26159; Ubuntu 18.04 LTS &#26700;&#38754;&#31995;&#32479;&#40664;&#35748;&#30340;&#30331;&#24405;&#30028;&#38754;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/28/215144j0j43z646fy6jyim.png">Media</a>&#19981;&#31649;&#20320;&#21916;&#27426;&#19982;&#21542;&#65292;&#20320;&#24635;&#26159;&#20250;&#19981;&#32463;&#24847;&#22312;&#30331;&#24405;&#12289;&#35299;&#23631;/&#38145;&#23631;&#30340;&#26102;&#38754;&#23545;&#23427;&#12290;&#21035;&#25285;&#24515;&#65281;&#20320;&#21487;&#20197;&#38543;&#20415;&#26356;&#25442;&#19968;&#20010;&#20320;&#21916;&#27426;&#30340;&#22270;&#29255;&#12290;&#22312; Ubuntu &#19978;&#26356;&#25442;&#26700;&#38754;&#22721;&#32440;&#21644;&#29992;&#25143;&#30340;&#36164;&#26009;&#22270;&#20687;&#19981;&#38590;&#12290;&#25105;&#20204;&#21487;&#20197;&#28857;&#20987;&#40736;&#26631;&#23601;&#25630;&#23450;&#20102;&#12290;&#20294;&#26356;&#25442;&#35299;&#23631;/&#38145;&#23631;&#30340;&#32972;&#26223;&#21017;&#38656;&#35201;&#20462;&#25913;&#25991;&#20214; ubuntu.css&#65292;&#23427;&#20301;&#20110; /usr/share/gnome-shell/theme&#12290;&#20462;&#25913;&#36825;&#20010;&#25991;&#20214;&#20043;&#21069;&#65292;&#26368;&#22909;&#22791;&#20221;&#19968;&#19979;&#23427;&#12290;&#36825;&#26679;&#25105;&#20204;&#21487;&#20197;&#36991;&#20813;&#20986;&#29616;&#38382;&#39064;&#26102;&#21487;&#20197;&#24674;&#22797;&#23427;&#12290;<pre class="prettyprint linenums">$ sudo cp /usr/share/gnome-shell/theme/ubuntu.css /usr/share/gnome-shell/theme/ubuntu.css.bak</pre>&#20462;&#25913;&#25991;&#20214; ubuntu.css&#65306;<pre class="prettyprint linenums">$ sudo nano /usr/share/gnome-shell/theme/ubuntu.css</pre>&#22312;&#25991;&#20214;&#20013;&#25214;&#21040;&#20851;&#38190;&#23383; lockDialogGroup&#65292;&#22914;&#19979;&#34892;&#65306;<pre class="prettyprint linenums">#lockDialogGroup { background: #2c001e url(resource:///org/gnome/shell/theme/noise-texture.png); background-repeat: repeat; }</pre><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/28/215145vfzummckrueaware.png">Media</a>&#21487;&#20197;&#30475;&#21040;&#65292;GDM &#40664;&#35748;&#30331;&#24405;&#30340;&#32972;&#26223;&#22270;&#29255;&#26159; noise-texture.png&#12290;&#29616;&#22312;&#20462;&#25913;&#20026;&#20320;&#33258;&#24049;&#30340;&#22270;&#29255;&#36335;&#24452;&#12290;&#20063;&#21487;&#20197;&#36873;&#25321; .jpg &#25110; .png &#26684;&#24335;&#30340;&#25991;&#20214;&#65292;&#20004;&#31181;&#26684;&#24335;&#30340;&#22270;&#29255;&#25991;&#20214;&#37117;&#26159;&#25903;&#25345;&#30340;&#12290;&#20462;&#25913;&#23436;&#25104;&#21518;&#30340;&#25991;&#20214;&#20869;&#23481;&#22914;&#19979;&#65306;<pre…
IssueHunt:一个新的开源软件打赏平台

即使是 FOSS 也需要资金来继续开发。如果我们不建立让软件持续开发的系统,我们怎能期待更高质量的软件?Media

via https://linux.cn/article-10290-1.html