Linux中国
1.73K subscribers
777 photos
6.34K links
Linux 中国官方 Telegram 频道
Download Telegram
Bash 脚本中如何使用 here 文档将数据写入文件

here 文档不是什么特殊的东西,只是一种 I/O 重定向方式,它告诉 bash shell 从当前源读取输入,直到读取到只有分隔符的行。Media

via https://linux.cn/article-10224-1.html
Bash 脚本中如何使用 here 文档将数据写入文件

here &#25991;&#26723;here document &#65288;LCTT &#35793;&#27880;&#65306;here &#25991;&#26723;&#21448;&#31216;&#20316; heredoc &#65289;&#19981;&#26159;&#20160;&#20040;&#29305;&#27530;&#30340;&#19996;&#35199;&#65292;&#21482;&#26159;&#19968;&#31181; I/O &#37325;&#23450;&#21521;&#26041;&#24335;&#65292;&#23427;&#21578;&#35785; bash shell &#20174;&#24403;&#21069;&#28304;&#35835;&#21462;&#36755;&#20837;&#65292;&#30452;&#21040;&#35835;&#21462;&#21040;&#21482;&#26377;&#20998;&#38548;&#31526;&#30340;&#34892;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/095122pd5k2kwhkkj22k2s.jpg">redirect output of here document to a text file</a>&#36825;&#23545;&#20110;&#21521; ftp&#12289;cat&#12289;echo&#12289;ssh &#21644;&#35768;&#22810;&#20854;&#20182;&#26377;&#29992;&#30340; Linux/Unix &#21629;&#20196;&#25552;&#20379;&#25351;&#20196;&#24456;&#26377;&#29992;&#12290; &#27492;&#21151;&#33021;&#36866;&#29992;&#20110; bash &#20063;&#36866;&#29992;&#20110; Bourne&#12289;Korn&#12289;POSIX &#36825;&#19977;&#31181; shell&#12290;here &#25991;&#26723;&#35821;&#27861;&#35821;&#27861;&#26159;&#65306;<pre class="prettyprint linenums">command <<EOFcmd1cmd2 arg1EOF</pre>&#25110;&#32773;&#20801;&#35768; shell &#33050;&#26412;&#20013;&#30340; here &#25991;&#26723;&#20351;&#29992; EOF<<- &#20197;&#33258;&#28982;&#30340;&#26041;&#24335;&#32553;&#36827;&#65306;<pre class="prettyprint linenums">command <<-EOF msg1 msg2 $var on line EOF</pre>&#25110;&#32773;<pre class="prettyprint linenums">command <<'EOF' cmd1 cmd2 arg1 $var won't expand as parameter substitution turned off by single quotingEOF</pre>&#25110;&#32773; <strong>&#37325;&#23450;&#21521;&#24182;&#23558;&#20854;&#35206;&#30422;</strong> &#21040;&#21517;&#20026; my_output_file.txt &#30340;&#25991;&#20214;&#20013;&#65306;<pre class="prettyprint linenums">command <<EOF > my_output_file.txt mesg1 msg2 msg3 $var on $fooEOF</pre>&#25110;<strong>&#37325;&#23450;&#21521;&#24182;&#23558;&#20854;&#36861;&#21152;</strong>&#21040;&#21517;&#20026; my_output_file.txt &#30340;&#25991;&#20214;&#20013;&#65306;<pre class="prettyprint linenums">command <<EOF >> my_output_file.txt mesg1 msg2 msg3 $var on $fooEOF</pre>&#31034;&#20363;&#20197;&#19979;&#33050;&#26412;&#23558;&#25152;&#38656;&#20869;&#23481;&#20889;&#20837;&#21517;&#20026; /tmp/output.txt &#30340;&#25991;&#20214;&#20013;&#65306;<pre class="prettyprint linenums">#!/bin/bashOUT=/tmp/output.txtecho "Starting my script..."echo "Doing something..."cat <<EOF >$OUT Status of backup as on $(date) Backing up files $HOME and /etc/EOFecho "Starting backup using rsync..."</pre>&#20320;&#21487;&#20197;&#20351;&#29992;<a href="https//www.cyberciti.biz/faq/linux-unix-appleosx-bsd-cat-command-examples/">cat&#21629;&#20196;</a>&#26597;&#30475;/tmp/output.txt&#25991;&#20214;&#65306;<pre class="prettyprint linenums">$ cat /tmp/output.txt</pre>&#31034;&#20363;&#36755;&#20986;&#65306;<pre class="prettyprint linenums"> Status of backup as on Thu Nov 16 17:00:21 IST 2017 Backing up files /home/vivek and /etc/</pre>&#31105;&#29992;&#36335;&#24452;&#21517;/&#21442;&#25968;/&#21464;&#37327;&#25193;&#23637;&#12289;&#21629;&#20196;&#26367;&#25442;&#12289;&#31639;&#26415;&#25193;&#23637;&#20687; $HOME &#36825;&#31867;&#21464;&#37327;&#21644;&#20687; $(date) &#36825;&#31867;&#21629;&#20196;&#22312;&#33050;&#26412;&#20013;&#20250;&#34987;&#35299;&#37322;&#20026;&#26367;&#25442;&#12290; &#35201;&#31105;&#29992;&#23427;&#65292;&#35831;&#20351;&#29992;&#24102;&#26377; 'EOF' &#36825;&#26679;&#24102;&#26377;&#21333;&#24341;&#21495;&#30340;&#24418;&#24335;&#65292;&#22914;&#19979;&#25152;&#31034;&#65306;<pre class="prettyprint linenums">#!/bin/bashOUT=/tmp/output.txtecho "Starting my script..."echo "Doing something..."# No parameter and variable expansion, command substitution, arithmetic expansion, or pathname expansion is performed on…
10 分钟建设一个加密货币商城

这篇文章将会教你如何在 10 分钟中内借助 WordPress 建立起一个支持 ERC20 通证的在线 B2C 商城。Media

via https://linux.cn/article-10225-1.html
10 &#20998;&#38047;&#24314;&#35774;&#19968;&#20010;&#21152;&#23494;&#36135;&#24065;&#21830;&#22478;

&#36825;&#31687;&#25991;&#31456;&#23558;&#20250;&#25945;&#20320;&#22914;&#20309;&#22312; 10 &#20998;&#38047;&#20013;&#20869;&#20511;&#21161; WordPress &#24314;&#31435;&#36215;&#19968;&#20010;&#25903;&#25345; ERC20 &#36890;&#35777;&#30340;&#22312;&#32447; B2C &#21830;&#22478;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/230122jrplqhf0qlm0zhm9.jpg">Media</a>&#22312;&#21306;&#22359;&#38142;&#21450;&#36890;&#35777;&#32463;&#27982;&#22791;&#21463;&#30633;&#30446;&#30340;&#20170;&#22825;&#65292;&#24456;&#22810;&#24320;&#28304;&#31038;&#21306;&#32439;&#32439;&#22312;&#25506;&#35752;&#22914;&#20309;&#23558;&#24320;&#28304;&#31038;&#21306;&#19982;&#21306;&#22359;&#38142;&#25216;&#26415;&#21644;&#36890;&#35777;&#32463;&#27982;&#30456;&#32467;&#21512;&#65292;&#20174;&#32780;&#20026;&#24320;&#28304;&#31038;&#21306;&#21644;&#24320;&#28304;&#29983;&#24577;&#25552;&#20379;&#33258;&#20027;&#12289;&#33258;&#27965;&#12289;&#21457;&#23637;&#30340;&#21160;&#21147;&#21644;&#25903;&#25345;&#12290;&#25105;&#20204; Linux &#20013;&#22269;&#23601;&#26159;&#36825;&#35832;&#22810;&#25506;&#32034;&#30340;&#24320;&#28304;&#31038;&#21306;&#20043;&#19968;&#65292;&#21487;&#21916;&#30340;&#26159;&#65292;&#25105;&#20204;&#24050;&#32463;&#36808;&#20986;&#20102;&#31532;&#19968;&#27493;&#65306;<a href="https://linux.cn/article-9886-1.html">&#21457;&#24067;&#31038;&#21306;&#36890;&#35777;</a>&#65292;&#20063;&#36808;&#20986;&#20102;&#31532;&#20108;&#27493;&#65292;<a href="https://linux.cn/article-10178-1.html">&#20351;&#36890;&#35777;&#27969;&#36890;&#36215;&#26469;</a>&#12290;&#36825;&#37324;&#65292;&#25105;&#20204;&#24895;&#24847;&#20998;&#20139;&#25105;&#20204;&#30340;&#32463;&#39564;&#32473;&#21508;&#20010;&#31038;&#21306;&#20249;&#20276;&#65292;&#20351;&#26356;&#22810;&#30340;&#24320;&#28304;&#31038;&#21306;&#20063;&#21487;&#20197;&#25237;&#36523;&#20110;&#26032;&#30340;&#29983;&#24577;&#25506;&#32034;&#65292;&#36991;&#24320;&#19968;&#20123;&#25105;&#20204;&#36935;&#21040;&#30340;&#38519;&#38449;&#65292;&#20174;&#32780;&#20849;&#21516;&#33829;&#36896;&#19968;&#20010;&#26356;&#32321;&#33635;&#30340;&#24320;&#28304;&#19990;&#30028;&#12290;&#25105;&#20204;&#30340;<a href="https://shop.linux.cn/">&#36890;&#35777;&#21830;&#22478;</a>&#26159;&#22522;&#20110; WordPress &#30340; WooCommerce &#21830;&#22478;&#26500;&#24314;&#30340;&#12290;&#23433;&#35013; WordPress&#22312;&#24320;&#22987;&#37197;&#32622;&#21830;&#22478;&#21069;&#65292;&#20320;&#38656;&#35201;&#20808;&#23433;&#35013; WordPress &#12290;&#20320;&#38656;&#35201;&#36141;&#20080;&#19968;&#20010;&#25903;&#25345; PHP + MySQL &#30340;&#34394;&#25311;&#20027;&#26426;&#65292;&#25110;&#33258;&#34892;&#37197;&#32622; VPS&#12289;&#20113;&#26381;&#21153;&#22120;&#30340;&#29615;&#22659;&#65292;&#20197;&#25903;&#25345; WordPress &#30340;&#36816;&#34892;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/230241urkdj4dzk2b06crj.jpg">Media</a>&#24403;&#20320;&#23433;&#35013;&#22909; WordPress &#21518;&#65292;&#20320;&#21487;&#20197;&#30475;&#21040;&#19968;&#20010;&#36825;&#26679;&#30340;&#21518;&#21488;&#12290;&#23433;&#35013; WooCommerce&#23433;&#35013;&#23436; WordPress &#21518;&#65292;&#25509;&#19979;&#26469;&#23433;&#35013; WordPress &#30340;&#21830;&#22478;&#25554;&#20214; WooCommerce &#65292;&#28857;&#20987;&#33756;&#21333;&#26639;&#20013;&#30340;“&#25554;&#20214;”-“&#23433;&#35013;&#25554;&#20214;”&#65292;&#35775;&#38382;&#21040;&#23433;&#35013;&#25554;&#20214;&#30340;&#30028;&#38754;&#65292;&#22312;&#30028;&#38754;&#21491;&#19978;&#35282;&#30340;&#25628;&#32034;&#26694;&#20869;&#23481;&#36755;&#20837;“WooCommerce”&#65292;&#24182;&#25353;&#19979;&#22238;&#36710;&#65292;&#21487;&#20197;&#25628;&#32034;&#21040; WooCommerce &#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/230241w4202h26s8hpzqs8.jpg">Media</a>&#28857;&#20987;&#29616;&#22312;…
在 Linux 中怎么运行 MS-DOS 游戏和程序

DOSBox 可以模拟带有声音、图形、鼠标、操纵杆和调制解调器等的因特尔 x86 电脑,它允许你运行许多旧的 MS-DOS 游戏和程序Media

via https://linux.cn/article-10226-1.html
&#22312; Linux &#20013;&#24590;&#20040;&#36816;&#34892; MS-DOS &#28216;&#25103;&#21644;&#31243;&#24207;

<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/235116y1q0qgh8qnc8jiej.png">Media</a>&#20320;&#26159;&#21542;&#24819;&#36807;&#23581;&#35797;&#19968;&#20123;&#32463;&#20856;&#30340; MS-DOS &#28216;&#25103;&#21644;&#20687; Turbo C++ &#36825;&#26679;&#30340;&#24223;&#24323;&#30340; C++ &#32534;&#35793;&#22120;&#65311;&#36825;&#31687;&#25945;&#31243;&#23558;&#20250;&#20171;&#32461;&#22914;&#20309;&#20351;&#29992; DOSBox &#22312; Linux &#29615;&#22659;&#19979;&#36816;&#34892; MS-DOS &#30340;&#28216;&#25103;&#21644;&#31243;&#24207;&#12290;DOSBox &#26159;&#19968;&#20010; x86 &#24179;&#21488;&#30340; DOS &#27169;&#25311;&#22120;&#65292;&#21487;&#20197;&#29992;&#26469;&#36816;&#34892;&#32463;&#20856;&#30340; DOS &#28216;&#25103;&#21644;&#31243;&#24207;&#12290; DOSBox &#21487;&#20197;&#27169;&#25311;&#24102;&#26377;&#22768;&#38899;&#12289;&#22270;&#24418;&#12289;&#40736;&#26631;&#12289;&#25805;&#32437;&#26438;&#21644;&#35843;&#21046;&#35299;&#35843;&#22120;&#31561;&#30340;&#22240;&#29305;&#23572; x86 &#30005;&#33041;&#65292;&#23427;&#20801;&#35768;&#20320;&#36816;&#34892;&#35768;&#22810;&#26087;&#30340; MS-DOS &#28216;&#25103;&#21644;&#31243;&#24207;&#65292;&#36825;&#20123;&#28216;&#25103;&#21644;&#31243;&#24207;&#26681;&#26412;&#26080;&#27861;&#22312;&#20219;&#20309;&#29616;&#20195; PC &#21644;&#25805;&#20316;&#31995;&#32479;&#19978;&#36816;&#34892;&#65292;&#20363;&#22914; Microsoft Windows XP &#21450;&#26356;&#39640;&#29256;&#26412;&#12289;Linux &#21644;FreeBSD&#12290; DOSBox &#26159;&#20813;&#36153;&#30340;&#65292;&#20351;&#29992; C++ &#32534;&#31243;&#35821;&#35328;&#32534;&#20889;&#24182;&#22312; GPL &#19979;&#20998;&#21457;&#12290;&#22312; Linux &#19978;&#23433;&#35013; DOSBoxDOSBox &#22312;&#22823;&#22810;&#25968; Linux &#21457;&#34892;&#29256;&#30340;&#40664;&#35748;&#20179;&#24211;&#20013;&#37117;&#33021;&#25214;&#30340;&#21040;&#12290;&#22312; Arch Linux &#21450;&#20854;&#34893;&#29983;&#29256;&#22914; Antergos&#12289;Manjaro Linux &#19978;&#65306;<pre class="prettyprint linenums">$ sudo pacman -S dosbox</pre>&#22312; Debian&#12289;Ubuntu&#12289;Linux Mint &#19978;&#65306;<pre class="prettyprint linenums">$ sudo apt-get install dosbox</pre>&#22312; Fedora &#19978;&#65306;<pre class="prettyprint linenums">$ sudo dnf install dosbox</pre>&#37197;&#32622; DOSBoxDOSBox &#26159;&#19968;&#20010;&#24320;&#31665;&#21363;&#29992;&#30340;&#36719;&#20214;&#65292;&#23427;&#19981;&#38656;&#35201;&#36827;&#34892;&#21021;&#22987;&#21270;&#37197;&#32622;&#12290;&#23427;&#30340;&#37197;&#32622;&#25991;&#20214;&#20301;&#20110; ~/.dosbox &#25991;&#20214;&#22841;&#20013;&#65292;&#21517;&#20026; dosbox-x.xx.conf&#12290; &#22312;&#27492;&#37197;&#32622;&#25991;&#20214;&#20013;&#65292;&#20320;&#21487;&#20197;&#32534;&#36753;/&#20462;&#25913;&#21508;&#31181;&#35774;&#32622;&#65292;&#20363;&#22914;&#20197;&#20840;&#23631;&#27169;&#24335;&#21551;&#21160; DOSBox&#65292;&#20840;&#23631;&#20351;&#29992;&#21452;&#32531;&#20914;&#65292;&#35774;&#32622;&#39318;&#36873;&#20998;&#36776;&#29575;&#65292;&#40736;&#26631;&#28789;&#25935;&#24230;&#65292;&#21551;&#29992;&#25110;&#31105;&#29992;&#22768;&#38899;&#65292;&#25196;&#22768;&#22120;&#65292;&#25805;&#32437;&#26438;&#31561;&#31561;&#12290;&#22914;&#21069;&#25152;&#36848;&#65292;&#40664;&#35748;&#35774;&#32622;&#21363;&#21487;&#27491;&#24120;&#24037;&#20316;&#12290;&#20320;&#21487;&#20197;&#19981;&#29992;&#36827;&#34892;&#20219;&#20309;&#26356;&#25913;&#12290;&#22312; Linux &#20013;&#36816;&#34892; MS-DOS &#19978;&#30340;&#28216;&#25103;&#21644;&#31243;&#24207;&#22312;&#32456;&#31471;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#21551;&#21160; DOSBox&#65306;<pre class="prettyprint linenums">$ dosbox</pre>&#19979;&#22270;&#23601;&#26159; DOSBox &#30340;&#30028;&#38754;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/235117s18kaalxv8892ngk.png">Media</a>&#27491;&#229…
如何弄清 Linux 系统运行何种系统管理程序

Linux 系统中主要有三种有名而仍在使用的初始化系统。大多数 Linux 发行版都使用其中之一。Media

via https://linux.cn/article-10227-1.html
&#22914;&#20309;&#24324;&#28165; Linux &#31995;&#32479;&#36816;&#34892;&#20309;&#31181;&#31995;&#32479;&#31649;&#29702;&#31243;&#24207;

<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/13/003654a6ytyyyomtl62ydy.jpg">Media</a>&#34429;&#28982;&#25105;&#20204;&#32463;&#24120;&#21548;&#21040;&#31995;&#32479;&#31649;&#29702;&#22120;System Manager&#36825;&#35789;&#65292;&#20294;&#24456;&#23569;&#26377;&#20154;&#28145;&#31350;&#20854;&#30830;&#20999;&#24847;&#20041;&#12290;&#29616;&#22312;&#25105;&#20204;&#23558;&#21521;&#20320;&#23637;&#31034;&#20854;&#21306;&#21035;&#12290;&#25105;&#20250;&#23613;&#33258;&#24049;&#25152;&#33021;&#26469;&#35299;&#37322;&#28165;&#26970;&#19968;&#20999;&#12290;&#25105;&#20204;&#22823;&#22810;&#37117;&#30693;&#36947; System V &#21644; systemd &#20004;&#31181;&#31995;&#32479;&#31649;&#29702;&#22120;&#12290; System V &#65288;&#31616;&#20889; SysV&#65289; &#26159;&#32769;&#24335;&#31995;&#32479;&#25152;&#20351;&#29992;&#30340;&#21476;&#32769;&#19988;&#20256;&#32479;&#30340;&#21021;&#22987;&#21270;&#31995;&#32479;&#21450;&#31995;&#32479;&#31649;&#29702;&#22120;&#12290;Systemd &#26159;&#20840;&#26032;&#30340;&#21021;&#22987;&#21270;&#31995;&#32479;&#21450;&#31995;&#32479;&#31649;&#29702;&#22120;&#65292;&#24182;&#19988;&#24050;&#34987;&#22823;&#37096;&#20998;&#20027;&#27969; Linux &#21457;&#34892;&#29256;&#25152;&#37319;&#29992;&#12290;Linux &#31995;&#32479;&#20013;&#20027;&#35201;&#26377;&#19977;&#31181;&#26377;&#21517;&#32780;&#20173;&#22312;&#20351;&#29992;&#30340;&#21021;&#22987;&#21270;&#31995;&#32479;&#12290;&#22823;&#22810;&#25968; Linux &#21457;&#34892;&#29256;&#37117;&#20351;&#29992;&#20854;&#20013;&#20043;&#19968;&#12290;&#20160;&#20040;&#26159;&#21021;&#22987;&#21270;&#31995;&#32479;&#31649;&#29702;&#22120;&#65311;&#22312;&#22522;&#20110; Linux/Unix &#30340;&#25805;&#20316;&#31995;&#32479;&#20013;&#65292;init (&#21021;&#22987;&#21270;&#30340;&#31616;&#31216;) &#26159;&#20869;&#26680;&#21551;&#21160;&#31995;&#32479;&#26102;&#24320;&#21551;&#30340;&#31532;&#19968;&#20010;&#36827;&#31243;&#12290;&#23427;&#25345;&#26377;&#30340;&#36827;&#31243; ID&#65288;PID&#65289;&#21495;&#20026; 1&#65292;&#20854;&#22312;&#21518;&#21488;&#19968;&#30452;&#36816;&#34892;&#30528;&#65292;&#30452;&#21040;&#20851;&#26426;&#12290;init &#20250;&#26597;&#25214; /etc/inittab &#25991;&#20214;&#20013;&#30456;&#24212;&#37197;&#32622;&#20449;&#24687;&#26469;&#30830;&#23450;&#31995;&#32479;&#30340;&#36816;&#34892;&#32423;&#21035;&#65292;&#28982;&#21518;&#26681;&#25454;&#36816;&#34892;&#32423;&#21035;&#22312;&#21518;&#21488;&#21551;&#21160;&#25152;&#26377;&#30340;&#20854;&#23427;&#36827;&#31243;&#21644;&#24212;&#29992;&#12290;&#20316;&#20026; Linux &#21551;&#21160;&#36807;&#31243;&#30340;&#19968;&#37096;&#20998;&#65292;BIOS&#12289;MBR&#12289;GRUB &#21644;&#20869;&#26680;&#36827;&#31243;&#22312;&#27492;&#36827;&#31243;&#20043;&#21069;&#23601;&#34987;&#28608;&#27963;&#20102;&#12290;&#19979;&#38754;&#21015;&#20986;&#30340;&#26159; Linux &#30340;&#21487;&#29992;&#36816;&#34892;&#32423;&#21035;&#65288;&#23384;&#22312;&#19971;&#20010;&#36816;&#34892;&#32423;&#21035;&#65292;&#20174; 0 &#21040; 6&#65289;&#12290;0&#65306;&#20572;&#26426;1&#65306;&#21333;&#29992;&#25143;&#27169;&#24335;2&#65306;&#22810;&#29992;&#25143;&#65292;&#26080; NFS&#65288;LCTT &#35793;&#27880;&#65306;NFS &#21363; Network File System&#65292;&#32593;&#32476;&#25991;&#20214;&#31995;&#32479;&#65289;3&#65306;&#20840;&#21151;&#33021;&#22810;&#29992;&#25143;&#27169;&#24335;4&#65306;&#26410;&#20351;&#29992;5&#65306;X11&#65288;GUI – &#22270;&#24418;&#29992;&#25143;&#30028;&#38754;&#65289;6&#65306;&#37325;&#21551;&#19979;&#38754;&#21015;&#20986;&#30340;&#26159; Linux &#31995;&#32479;&#20013;&#24191;&#27867;&#20351;&#29992;&#30340;&#19977;&#31181;&#21021;&#22987;&#21270;&#31995;&#32479;&#12290;System V (Sys V)&#65306;&#26159;&#31867; Unix &#25805;&#20316;&#31995;&#32479;&#20256;&#32479;&#30340;&#20063;&#26159;&#39318;&#27454;&#21021;&#22987;&#21270;&#31995;&#324…
在命令行使用 Pandoc 进行文件转换

这篇指南介绍如何使用 Pandoc 将文档转换为多种不同的格式。

via https://linux.cn/article-10228-1.html
&#22312;&#21629;&#20196;&#34892;&#20351;&#29992; Pandoc &#36827;&#34892;&#25991;&#20214;&#36716;&#25442;

&#36825;&#31687;&#25351;&#21335;&#20171;&#32461;&#22914;&#20309;&#20351;&#29992; Pandoc &#23558;&#25991;&#26723;&#36716;&#25442;&#20026;&#22810;&#31181;&#19981;&#21516;&#30340;&#26684;&#24335;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/13/115159kt7mokqq5m5umitr.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;&#26631;&#35760;&#35821;&#35328;&#20351;&#29992;&#26631;&#31614;&#26469;&#26631;&#35760;&#25991;&#26723;&#30340;&#21508;&#20010;&#37096;&#20998;&#12290;&#24120;&#29992;&#30340;&#26631;&#35760;&#35821;&#35328;&#21253;&#25324; Markdown&#12289;ReStructuredText&#12289;HTML&#12289;LaTex&#12289;ePub &#21644; Microsoft Word DOCX&#12290;&#31616;&#21333;&#26469;&#35828;&#65292;<a href="https://pandoc.org/">Pandoc</a> &#20801;&#35768;&#20320;&#23558;&#19968;&#20123;&#25991;&#20214;&#20174;&#19968;&#31181;&#26631;&#35760;&#35821;&#35328;&#36716;&#25442;&#20026;&#21478;&#19968;&#31181;&#26631;&#35760;&#35821;&#35328;&#12290;&#20856;&#22411;&#30340;&#20363;&#23376;&#21253;&#25324;&#23558; Markdown &#25991;&#20214;&#36716;&#25442;&#20026;&#28436;&#31034;&#25991;&#31295;&#12289;LaTeX&#65292;PDF &#29978;&#33267;&#26159; ePub&#12290;&#26412;&#25991;&#23558;&#35299;&#37322;&#22914;&#20309;&#20351;&#29992; Pandoc &#20174;&#21333;&#19968;&#26631;&#35760;&#35821;&#35328;&#65288;&#22312;&#26412;&#25991;&#20013;&#20026; Markdown&#65289;&#29983;&#25104;&#22810;&#31181;&#26684;&#24335;&#30340;&#25991;&#26723;&#65292;&#24341;&#23548;&#20320;&#23436;&#25104;&#20174; Pandoc &#23433;&#35013;&#65292;&#21040;&#23637;&#31034;&#22914;&#20309;&#21019;&#24314;&#22810;&#31181;&#31867;&#22411;&#30340;&#25991;&#26723;&#65292;&#20877;&#21040;&#25552;&#20379;&#26377;&#20851;&#22914;&#20309;&#32534;&#20889;&#26131;&#20110;&#31227;&#26893;&#21040;&#20854;&#20182;&#26684;&#24335;&#30340;&#25991;&#26723;&#30340;&#25552;&#31034;&#12290;&#25991;&#20013;&#36824;&#23558;&#35299;&#37322;&#20351;&#29992;&#20803;&#20449;&#24687;&#25991;&#20214;&#23545;&#25991;&#26723;&#20869;&#23481;&#21644;&#20803;&#20449;&#24687;&#65288;&#20363;&#22914;&#65292;&#20316;&#32773;&#22995;&#21517;&#12289;&#20351;&#29992;&#30340;&#27169;&#26495;&#12289;&#20070;&#30446;&#26679;&#24335;&#31561;&#65289;&#36827;&#34892;&#20998;&#31163;&#30340;&#24847;&#20041;&#12290;Pandoc &#23433;&#35013;&#21644;&#35201;&#27714;Pandoc &#40664;&#35748;&#23433;&#35013;&#22312;&#22823;&#22810;&#25968; Linux &#21457;&#34892;&#29256;&#20013;&#12290;&#26412;&#25945;&#31243;&#20351;&#29992; pandoc-2.2.3.2 &#21644; pandoc-citeproc-0.14.3&#12290;&#22914;&#26524;&#19981;&#25171;&#31639;&#29983;&#25104; PDF&#65292;&#37027;&#20040;&#36825;&#20004;&#20010;&#21253;&#23601;&#36275;&#22815;&#20102;&#12290;&#20294;&#26159;&#65292;&#25105;&#24314;&#35758;&#20063;&#23433;&#35013; texlive&#65292;&#36825;&#26679;&#23601;&#21487;&#20197;&#36873;&#25321;&#29983;&#25104; PDF &#20102;&#12290;&#36890;&#36807;&#20197;&#19979;&#21629;&#20196;&#22312; Linux &#19978;&#23433;&#35013;&#36825;&#20123;&#31243;&#24207;&#65306;<pre class="prettyprint linenums">sudo apt-get install pandoc pandoc-citeproc texlive</pre>&#24744;&#21487;&#20197;&#22312; Pandoc &#30340;&#32593;&#31449;&#19978;&#25214;&#21040;&#20854;&#20182;&#24179;&#21488;&#30340; <a href="http://pandoc.org/installing.html">&#23433;&#35013;&#35828;&#26126;</a>&#12290;&#25105;&#24378;&#28872;&#24314;&#35758;&#23433;&#35013; <a href="https://hackage.haskell.org/package/pandoc-crossref">pandoc-crossref</a>&#65292;&#36825;&#26159;&#19968;&#20010;“&#29992;&#20110;&#23545;&#22270;&#34920;&#65292;&#26041;&#31243;&#24335;&#65292;&#34920;&#26684;&#21644;&#20132;&#21449;&#24341;&#29992;&#36827;&#34892;&#32534;&#21495;&#30340;&#36807;&#2838…
什么是纯粹的开源社区精神,我用了十年去探索

今天,我们有一个机会,可以好好了解一下中国互联网发展史上发展最亲密的一个社群。这个社群追求的理想,让许多新东西的出现成为了可能。Media

via https://linux.cn/article-10229-1.html
&#20160;&#20040;&#26159;&#32431;&#31929;&#30340;&#24320;&#28304;&#31038;&#21306;&#31934;&#31070;&#65292;&#25105;&#29992;&#20102;&#21313;&#24180;&#21435;&#25506;&#32034;

<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/13/145941dn6iezi3diies1ui.jpg">Media</a>&#20154;&#31867;&#26412;&#36523;&#26159;&#19968;&#20010;&#21327;&#20316;&#33021;&#21147;&#26497;&#24378;&#30340;&#29289;&#31181;&#65292;&#32780;&#38543;&#30528;&#24456;&#22810;&#21010;&#26102;&#20195;&#31185;&#25216;&#21457;&#26126;&#30340;&#35806;&#29983;&#65292;&#33976;&#27773;&#26426;&#12289;&#30005;&#12289;&#20114;&#32852;&#32593;&#31561;&#25216;&#26415;&#30340;&#20986;&#29616;&#65292;&#20154;&#20204;&#21464;&#30340;&#26356;&#23481;&#26131;&#32858;&#22312;&#19968;&#36215;&#12290;&#36825;&#20123;&#23567;&#20249;&#20276;&#20174;&#19968;&#24320;&#22987;&#30340;&#19977;&#20116;&#25104;&#32676;&#65292;&#21040;&#26368;&#21518;&#25317;&#26377;&#19968;&#22871;&#20849;&#21516;&#35821;&#35328;&#21644;&#35748;&#30693;&#30340;&#21382;&#21490;&#12290;&#22312;&#20114;&#32852;&#32593;&#26102;&#20195;&#65292;&#22823;&#23478;&#36890;&#36807;&#31038;&#21306;&#30340;&#21147;&#37327;&#65292;&#25226;&#24320;&#28304;&#30340;&#31934;&#31070;&#20256;&#25773;&#21040;&#19990;&#30028;&#21508;&#22788;&#12290;&#23567;&#20249;&#20276;&#21487;&#20197;&#26356;&#23481;&#26131;&#30340;&#32452;&#38431;&#65292;&#36890;&#36807;&#21512;&#29702;&#30340;&#20998;&#24037;&#65292;&#23558;&#19981;&#21487;&#33021;&#30340;&#20107;&#24773;&#21464;&#20026;&#21487;&#33021;&#65288;&#29978;&#33267;&#36825;&#20123;&#23567;&#20249;&#20276;&#37117;&#19981;&#38656;&#35201;&#32858;&#38598;&#22312;&#21516;&#19968;&#20010;&#21150;&#20844;&#23460;&#65289;&#12290;&#32780;&#20170;&#22825;&#65292;&#25105;&#20204;&#26377;&#19968;&#20010;&#26426;&#20250;&#65292;&#21487;&#20197;&#22909;&#22909;&#20102;&#35299;&#19968;&#19979;&#20013;&#22269;&#20114;&#32852;&#32593;&#21457;&#23637;&#21490;&#19978;&#21457;&#23637;&#26368;&#20146;&#23494;&#30340;&#19968;&#20010;&#31038;&#32676;&#12290;&#36825;&#20010;&#31038;&#32676;&#36861;&#27714;&#30340;&#29702;&#24819;&#65292;&#35753;&#35768;&#22810;&#26032;&#19996;&#35199;&#30340;&#20986;&#29616;&#25104;&#20026;&#20102;&#21487;&#33021;&#12290;&#36825;&#21040;&#24213;&#26159;&#24590;&#26679;&#30340;&#19968;&#20010;&#31038;&#32676;&#65311;&#24590;&#26679;&#30340;&#19968;&#27573;&#22855;&#22937;&#32463;&#21382;&#65311;&#23601;&#35753;&#25285;&#20219; Ruby China &#35770;&#22363;&#31649;&#29702;&#21592;&#30340; Daniel &#32473;&#25105;&#20204;&#22909;&#22909;&#35762;&#36848;&#19968;&#19979;&#12290;&#65288;enjoy&#65374;&#37027;&#26102;&#25105;&#25165; 25 &#23681; &#36825;&#26159;&#19968;&#27573;&#36229;&#36807; 10 &#24180;&#30340;&#32463;&#21382;&#65292;&#20180;&#32454;&#31639;&#31639;&#24212;&#35813;&#26159; 11 &#24180;&#22810;&#20102;&#12290;&#36825;&#27573;&#32463;&#21382;&#65292;&#38142;&#25509;&#20102;&#24456;&#22810;&#36807;&#21435;&#30340;&#20154;&#21644;&#24456;&#22810;&#30340;&#20107;&#65292; &#29616;&#22312;&#30340;&#31192;&#29503;&#21644; Nervos &#31038;&#21306;&#25152;&#26377;&#30340;&#20154;&#65292;&#37117;&#26159;&#36890;&#36807; Ruby &#32467;&#32536;&#30340;&#12290;&#21487;&#33021;&#35201;&#20174; 2007 &#24180;&#24320;&#22987;&#35828;&#36215;&#65292;&#37027;&#26102;&#20505;&#25105;&#25165;&#24320;&#22987;&#25509;&#35302;&#31038;&#21306;&#12290;&#24403;&#26102;&#65292;&#25105;&#22312;&#19978;&#28023;&#19968;&#23478;&#20570; Ruby &#25216;&#26415;&#30340;&#20844;&#21496;&#24037;&#20316; &#12290;&#30001;&#20110;&#24037;&#20316;&#30340;&#21407;&#22240;&#65292;&#25105;&#21442;&#21152;&#20102;&#24403;&#26102; Ruby &#31038;&#21306;&#30340;&#19968;&#20123;&#32447;&#19979;&#27963;&#21160;&#65292;&#20063;&#26426;&#32536;&#24039;&#21512;&#22320;&#35748;&#35782;&#20102; Ruby &#31038;&#21306;&#30340;&#20004;&#20010;&#21019;&#22987;&#20154;&#65306;&#19968;&#20010;&#21483;&#24352;&#20803;&#19968;&#65292;&#21478;&#19968;&#20010;&#21483; Steven&#12290;&#37027;&#27573;&#26102;&#38388;&#25105;…
使用 SonarQube 追踪代码问题

通过不断分析代码以了解潜在的质量问题,开源的 SonarQube 项目支持了 DevOps 的“尽早发布和经常发布” 的思维模式。Media

via https://linux.cn/article-10230-1.html
&#20351;&#29992; SonarQube &#36861;&#36394;&#20195;&#30721;&#38382;&#39064;

&#36890;&#36807;&#19981;&#26029;&#20998;&#26512;&#20195;&#30721;&#20197;&#20102;&#35299;&#28508;&#22312;&#30340;&#36136;&#37327;&#38382;&#39064;&#65292;&#24320;&#28304;&#30340; SonarQube &#39033;&#30446;&#25903;&#25345;&#20102; DevOps &#30340;“&#23613;&#26089;&#21457;&#24067;&#21644;&#32463;&#24120;&#21457;&#24067;” &#30340;&#24605;&#32500;&#27169;&#24335;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/14/092831ypfrsw7f2z5iyy2w.jpg">Media</a>&#36234;&#26469;&#36234;&#22810;&#30340;&#32452;&#32455;&#27491;&#22312;&#23454;&#26045; <a href="https://en.wikipedia.org/wiki/DevOps">DevOps</a> &#20197;&#20415;&#22312;&#36890;&#36807;&#20013;&#38388;&#24320;&#21457;&#21644;&#27979;&#35797;&#29615;&#22659;&#20197;&#21518;&#26356;&#24555;&#26356;&#22909;&#30340;&#23558;&#26032;&#20195;&#30721;&#24341;&#20837;&#21040;&#29983;&#20135;&#29615;&#22659;&#12290;&#34429;&#28982;&#29256;&#26412;&#25511;&#21046;&#12289;&#25345;&#32493;&#38598;&#25104;&#21644;&#37096;&#32626;&#20197;&#21450;&#33258;&#21160;&#21270;&#27979;&#35797;&#37117;&#23646;&#20110; DevOps &#30340;&#33539;&#30068;&#65292;&#20294;&#20173;&#28982;&#23384;&#22312;&#19968;&#20010;&#20851;&#38190;&#38382;&#39064;&#65306;&#32452;&#32455;&#22914;&#20309;&#37327;&#21270;&#20195;&#30721;&#36136;&#37327;&#65292;&#32780;&#19981;&#20165;&#20165;&#26159;&#37096;&#32626;&#30340;&#36895;&#24230;&#65311;<a href="https://www.sonarqube.org/">SonarQube</a> &#26159;&#29992;&#26469;&#22635;&#34917;&#36825;&#20010;&#31354;&#38553;&#30340;&#19968;&#31181;&#36873;&#25321;&#12290;&#23427;&#26159;&#19968;&#20010;&#24320;&#28304;&#24179;&#21488;&#65292;&#36890;&#36807;&#20195;&#30721;&#30340;&#33258;&#21160;&#21270;&#38745;&#24577;&#20998;&#26512;&#19981;&#26029;&#30340;&#26816;&#26597;&#20195;&#30721;&#36136;&#37327;&#12290; SonarQube &#25903;&#25345; 20 &#22810;&#31181;&#35821;&#35328;&#30340;&#20998;&#26512;&#65292;&#24182;&#22312;&#21508;&#31181;&#31867;&#22411;&#30340;&#39033;&#30446;&#20013;&#36755;&#20986;&#21644;&#23384;&#20648;&#38382;&#39064;&#12290;SonarQube &#21516;&#26102;&#20063;&#25552;&#20379;&#20102;&#19968;&#20010;&#21487;&#21516;&#26102;&#32500;&#25252;&#21644;&#31649;&#29702;&#19981;&#21516;&#39033;&#30446;&#12289;&#19981;&#21516;&#20195;&#30721;&#30340;&#38598;&#20013;&#30340;&#29615;&#22659;&#12290;&#21487;&#20197;&#20026;&#27599;&#20010;&#39033;&#30446;&#23450;&#21046;&#35268;&#21017;&#12290;&#25345;&#32493;&#30340;&#26816;&#26597;&#21644;&#20998;&#26512;&#20195;&#30721;&#30340;&#20581;&#24247;&#36712;&#36857;&#12290;SonarQube &#36824;&#21487;&#20197;&#38598;&#25104;&#21040;&#21487;&#25345;&#32493;&#38598;&#25104;&#21644;&#24320;&#21457;&#65288;CI/CD&#65289;&#27969;&#31243;&#20013;&#65292;&#21327;&#21161;&#21644;&#33258;&#21160;&#30830;&#23450;&#20195;&#30721;&#26159;&#21542;&#20026;&#29983;&#20135;&#29615;&#22659;&#20570;&#22909;&#20102;&#20934;&#22791;&#30340;&#36807;&#31243;&#12290;&#23427;&#21487;&#20197;&#34913;&#37327;&#20160;&#20040;&#24320;&#31665;&#21363;&#29992;&#65292;SonarQube &#21487;&#20197;&#27979;&#37327;&#30340;&#20851;&#38190;&#25351;&#26631;&#65292;&#21253;&#25324;&#20195;&#30721;&#38169;&#35823;&#12289;&#20195;&#30721;&#24322;&#21619;code smells&#12289;&#23433;&#20840;&#28431;&#27934;&#21644;&#37325;&#22797;&#30340;&#20195;&#30721;&#12290;<strong>&#20195;&#30721;&#38169;&#35823;</strong> &#26159;&#20195;&#30721;&#20013;&#30340;&#19968;&#37096;&#20998;&#19981;&#27491;&#30830;&#25110;&#26080;&#27861;&#27491;&#24120;&#36816;&#34892;&#12289;&#21487;&#33021;&#20250;&#23548;&#33268;&#38169;&#35823;&#30340;&#32467;&#26524;&#65292;&#26159;&#25351;&#37027;&#20123;&#22312;&#20195;&#30721;&#21457;&#24067;&#21040;&#29983;&#20135;&#29615;&#22659;&#20043;&#21069;&#24212;&#35813;&#34987;&#20462;&#22797;&#30340;&#26126;&#26174;&#30340;&#38169;&#35823;&#12290;<a href="https://en.wikipedia.org/wiki/Code_smell">&#20195;&#30721;&#24322;&#21619;</a> &#19981;&#21516;&#20110;&#20195…
使用 Redis 和 Python 构建一个共享单车的应用程序

学习如何使用 Redis 和 Python 构建一个位置感知的应用程序。Media

via https://linux.cn/article-10231-1.html
&#20351;&#29992; Redis &#21644; Python &#26500;&#24314;&#19968;&#20010;&#20849;&#20139;&#21333;&#36710;&#30340;&#24212;&#29992;&#31243;&#24207;

&#23398;&#20064;&#22914;&#20309;&#20351;&#29992; Redis &#21644; Python &#26500;&#24314;&#19968;&#20010;&#20301;&#32622;&#24863;&#30693;&#30340;&#24212;&#29992;&#31243;&#24207;&#12290;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/14/112130al1dd1ctqtcs0utc.png">Media</a>&#25105;&#32463;&#24120;&#20986;&#24046;&#12290;&#20294;&#19981;&#26159;&#19968;&#20010;&#27773;&#36710;&#29378;&#28909;&#20998;&#23376;&#65292;&#25152;&#20197;&#24403;&#25105;&#26377;&#31354;&#38386;&#26102;&#65292;&#25105;&#26356;&#21916;&#27426;&#22312;&#22478;&#24066;&#20013;&#25955;&#27493;&#25110;&#32773;&#39569;&#21333;&#36710;&#12290;&#25105;&#21442;&#35266;&#36807;&#30340;&#35768;&#22810;&#22478;&#24066;&#37117;&#26377;&#20849;&#20139;&#21333;&#36710;&#31995;&#32479;&#65292;&#20320;&#21487;&#20197;&#31199;&#20010;&#21333;&#36710;&#29992;&#20960;&#20010;&#23567;&#26102;&#12290;&#22823;&#22810;&#25968;&#31995;&#32479;&#37117;&#26377;&#19968;&#20010;&#24212;&#29992;&#31243;&#24207;&#26469;&#24110;&#21161;&#29992;&#25143;&#23450;&#20301;&#21644;&#31199;&#29992;&#20182;&#20204;&#30340;&#21333;&#36710;&#65292;&#20294;&#23545;&#20110;&#20687;&#25105;&#36825;&#26679;&#30340;&#29992;&#25143;&#26469;&#35828;&#65292;&#22312;&#19968;&#20010;&#22320;&#26041;&#21487;&#20197;&#33719;&#24471;&#21487;&#31199;&#36161;&#30340;&#22478;&#24066;&#20013;&#25152;&#26377;&#21333;&#36710;&#30340;&#20449;&#24687;&#20250;&#26356;&#26377;&#24110;&#21161;&#12290;&#20026;&#20102;&#35299;&#20915;&#36825;&#20010;&#38382;&#39064;&#24182;&#19988;&#23637;&#31034;&#24320;&#28304;&#30340;&#24378;&#22823;&#36824;&#26377;&#20026; Web &#24212;&#29992;&#31243;&#24207;&#28155;&#21152;&#20301;&#32622;&#24863;&#30693;&#30340;&#21151;&#33021;&#65292;&#25105;&#32452;&#21512;&#20102;&#21487;&#29992;&#30340;&#20844;&#24320;&#30340;&#20849;&#20139;&#21333;&#36710;&#25968;&#25454;&#12289;<a href="https://www.python.org/">Python</a> &#32534;&#31243;&#35821;&#35328;&#20197;&#21450;&#24320;&#28304;&#30340; <a href="https://redis.io/">Redis</a> &#20869;&#23384;&#25968;&#25454;&#32467;&#26500;&#26381;&#21153;&#65292;&#29992;&#26469;&#32034;&#24341;&#21644;&#26597;&#35810;&#22320;&#29702;&#31354;&#38388;&#25968;&#25454;&#12290;&#30001;&#27492;&#35806;&#29983;&#30340;&#20849;&#20139;&#21333;&#36710;&#24212;&#29992;&#31243;&#24207;&#21253;&#21547;&#26469;&#33258;&#24456;&#22810;&#19981;&#21516;&#30340;&#20849;&#20139;&#31995;&#32479;&#30340;&#25968;&#25454;&#65292;&#21253;&#25324;&#32445;&#32422;&#24066;&#30340; <a href="https://www.citibikenyc.com/">Citi Bike</a> &#20849;&#20139;&#21333;&#36710;&#31995;&#32479;&#65288;LCTT &#35793;&#27880;&#65306;Citi Bike &#26159;&#32445;&#32422;&#24066;&#30340;&#19968;&#20010;&#31169;&#33829;&#20844;&#20849;&#21333;&#36710;&#31995;&#32479;&#12290;&#22312; 2013 &#24180; 5 &#26376; 27 &#26085;&#27491;&#24335;&#33829;&#36816;&#65292;&#26159;&#32654;&#22269;&#26368;&#22823;&#30340;&#20844;&#20849;&#21333;&#36710;&#31995;&#32479;&#12290;Citi Bike &#30340;&#21517;&#31216;&#26377;&#20004;&#23618;&#24847;&#24605;&#12290;Citi &#26159;&#35745;&#21010;&#36190;&#21161;&#21830;&#33457;&#26071;&#38134;&#34892;&#65288;CitiBank&#65289;&#30340;&#21517;&#23383;&#12290;&#21516;&#26102;&#65292;Citi &#21644;&#33521;&#25991;&#20013;“&#22478;&#24066;&#65288;city&#65289;”&#19968;&#35789;&#30340;&#35835;&#38899;&#30456;&#21516;&#65289;&#12290;&#23427;&#21033;&#29992;&#20102;&#33457;&#26071;&#21333;&#36710;&#31995;&#32479;&#25552;&#20379;&#30340; &#36890;&#29992;&#20849;&#20139;&#21333;&#36710;&#25968;&#25454;&#27969;General Bikeshare Feed&#65292;&#24182;&#21033;&#29992;&#20854;&#25968;&#25454;&#28436;&#31034;&#20102;&#19968;&#20123;&#20351;&#29992; Redis &#22320;&#29702;&#31354;&#38388;&#25968;&#25454;&#32034;&#24341;&#30340;&#21151;&#33021;&#12290; &#33457;&#26071;&#21333;&#36710;&#25968;&#25454;&#21487;&#25353;&#29031; <a href="https://w…
Sed 命令完全指南

这将是你全面了解 Sed 命令的一个机会,深入挖掘它的运行细节和精妙之处。Media

via https://linux.cn/article-10232-1.html
Sed &#21629;&#20196;&#23436;&#20840;&#25351;&#21335;

&#22312;&#21069;&#38754;&#30340;&#25991;&#31456;&#20013;&#65292;&#25105;&#23637;&#31034;&#20102; <a href="https://linuxhandbook.com/sed-command-basics/">Sed &#21629;&#20196;&#30340;&#22522;&#26412;&#29992;&#27861;</a>&#65292; Sed &#26159;&#19968;&#20010;&#23454;&#29992;&#30340;&#27969;&#32534;&#36753;&#22120;&#12290;&#20170;&#22825;&#65292;&#25105;&#20204;&#20934;&#22791;&#21435;&#20102;&#35299;&#20851;&#20110; Sed &#26356;&#22810;&#30340;&#30693;&#35782;&#65292;&#28145;&#20837;&#20102;&#35299; Sed &#30340;&#36816;&#34892;&#27169;&#24335;&#12290;&#36825;&#23558;&#26159;&#20320;&#20840;&#38754;&#20102;&#35299; Sed &#21629;&#20196;&#30340;&#19968;&#20010;&#26426;&#20250;&#65292;&#28145;&#20837;&#25366;&#25496;&#23427;&#30340;&#36816;&#34892;&#32454;&#33410;&#21644;&#31934;&#22937;&#20043;&#22788;&#12290;&#22240;&#27492;&#65292;&#22914;&#26524;&#20320;&#24050;&#32463;&#20570;&#22909;&#20102;&#20934;&#22791;&#65292;&#37027;&#23601;&#25171;&#24320;&#32456;&#31471;&#21543;&#65292;<a href="https://gist.github.com/s-leroux/5cb36435bac46c10cfced26e4bf5588c">&#19979;&#36733;&#27979;&#35797;&#25991;&#20214;</a> &#28982;&#21518;&#22352;&#22312;&#30005;&#33041;&#21069;&#65306;&#24320;&#22987;&#25105;&#20204;&#30340;&#25506;&#32034;&#20043;&#26053;&#21543;&#65281;<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/14/191948l9y6vzqu18yz18v4.jpg">Media</a>&#20851;&#20110; Sed &#30340;&#19968;&#28857;&#28857;&#29702;&#35770;&#30693;&#35782;&#39318;&#20808;&#25105;&#20204;&#30475;&#19968;&#19979; sed &#30340;&#36816;&#34892;&#27169;&#24335;&#35201;&#20934;&#30830;&#29702;&#35299; Sed &#21629;&#20196;&#65292;&#20320;&#24517;&#39035;&#20808;&#20102;&#35299;&#24037;&#20855;&#30340;&#36816;&#34892;&#27169;&#24335;&#12290;&#24403;&#22788;&#29702;&#25968;&#25454;&#26102;&#65292;Sed &#20174;&#36755;&#20837;&#28304;&#19968;&#27425;&#35835;&#20837;&#19968;&#34892;&#65292;&#24182;&#23558;&#23427;&#20445;&#23384;&#21040;&#25152;&#35859;&#30340;&#27169;&#24335;&#31354;&#38388;pattern space&#20013;&#12290;&#25152;&#26377; Sed &#30340;&#21464;&#25442;&#37117;&#21457;&#29983;&#22312;&#27169;&#24335;&#31354;&#38388;&#12290;&#21464;&#25442;&#37117;&#26159;&#30001;&#21629;&#20196;&#34892;&#19978;&#25110;&#22806;&#37096; Sed &#33050;&#26412;&#25991;&#20214;&#25552;&#20379;&#30340;&#21333;&#23383;&#27597;&#21629;&#20196;&#26469;&#25551;&#36848;&#30340;&#12290;&#22823;&#22810;&#25968; Sed &#21629;&#20196;&#37117;&#21487;&#20197;&#30001;&#19968;&#20010;&#22320;&#22336;&#25110;&#19968;&#20010;&#22320;&#22336;&#33539;&#22260;&#20316;&#20026;&#21069;&#23548;&#26469;&#38480;&#21046;&#23427;&#20204;&#30340;&#20316;&#29992;&#33539;&#22260;&#12290;&#40664;&#35748;&#24773;&#20917;&#19979;&#65292;Sed &#22312;&#32467;&#26463;&#27599;&#20010;&#22788;&#29702;&#24490;&#29615;&#21518;&#36755;&#20986;&#27169;&#24335;&#31354;&#38388;&#20013;&#30340;&#20869;&#23481;&#65292;&#20063;&#23601;&#26159;&#35828;&#65292;&#36755;&#20986;&#21457;&#29983;&#22312;&#36755;&#20837;&#30340;&#19979;&#19968;&#20010;&#34892;&#35206;&#30422;&#27169;&#24335;&#31354;&#38388;&#20043;&#21069;&#12290;&#25105;&#20204;&#21487;&#20197;&#23558;&#36825;&#31181;&#36816;&#34892;&#27169;&#24335;&#24635;&#32467;&#22914;&#19979;&#65306;&#23581;&#35797;&#23558;&#19979;&#19968;&#20010;&#34892;&#35835;&#20837;&#21040;&#27169;&#24335;&#31354;&#38388;&#20013;&#22914;&#26524;&#35835;&#21462;&#25104;&#21151;&#65306;&#25353;&#33050;&#26412;&#20013;&#30340;&#39034;&#24207;&#23558;&#25152;&#26377;&#21629;&#20196;&#24212;&#29992;&#21040;&#19982;&#37027;&#20010;&#22320;&#22336;&#21305;&#37197;&#30340;&#24403;&#21069;&#36755;&#20837;&#34892;&#19978;&#22914;&#26524; sed &#27809;&#26377;&#20197;&#38745;&#40664;&#27169;&#24335;&#65288;-n&#65289;&#36816;&#34892;&#65292;&#37027;&#20040;&#23558;&#36755;&#20986;&#27169;&#24335;&#31354;&#38388;&#20013;&#30340;&#25152;&#26377;&#20869;&#23481;&#65288;&#21487;&#33021;&#20250;&#26159;&#20462;&#25913;&#36807;&#30340;&#65289;&…
Caffeinated 6.828:使用的工具

在这个课程中你将使用两套工具:一个是 x86 模拟器 QEMU,它用来运行你的内核;另一个是编译器工具链,包括汇编器、链接器、C 编译器,以及调试器,它们用来编译和测试你的内核。Media

via https://linux.cn/article-10233-1.html
Caffeinated 6.828&#65306;&#20351;&#29992;&#30340;&#24037;&#20855;

<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/15/093141rznmgo1nmnszsc1i.jpg">Media</a>&#22312;&#36825;&#20010;&#35838;&#31243;&#20013;&#20320;&#23558;&#20351;&#29992;&#20004;&#22871;&#24037;&#20855;&#65306;&#19968;&#20010;&#26159; x86 &#27169;&#25311;&#22120; QEMU&#65292;&#23427;&#29992;&#26469;&#36816;&#34892;&#20320;&#30340;&#20869;&#26680;&#65307;&#21478;&#19968;&#20010;&#26159;&#32534;&#35793;&#22120;&#24037;&#20855;&#38142;&#65292;&#21253;&#25324;&#27719;&#32534;&#22120;&#12289;&#38142;&#25509;&#22120;&#12289;C &#32534;&#35793;&#22120;&#65292;&#20197;&#21450;&#35843;&#35797;&#22120;&#65292;&#23427;&#20204;&#29992;&#26469;&#32534;&#35793;&#21644;&#27979;&#35797;&#20320;&#30340;&#20869;&#26680;&#12290;&#26412;&#25991;&#26377;&#20320;&#38656;&#35201;&#21435;&#19979;&#36733;&#21644;&#23433;&#35013;&#20320;&#33258;&#24049;&#30340;&#21103;&#26412;&#30456;&#20851;&#20449;&#24687;&#12290;&#26412;&#35838;&#31243;&#20551;&#23450;&#20320;&#29087;&#24713;&#25152;&#26377;&#20986;&#29616;&#30340; Unix &#21629;&#20196;&#30340;&#29992;&#27861;&#12290;&#25105;&#20204;&#24378;&#28872;&#25512;&#33616;&#20320;&#20351;&#29992;&#19968;&#20010; Debathena &#26426;&#22120;&#21435;&#20570;&#20320;&#30340;&#23454;&#39564;&#65292;&#27604;&#22914; athena.dialup.mit.edu&#12290;&#22914;&#26524;&#20320;&#20351;&#29992;&#36816;&#34892;&#22312; Linux &#19978;&#30340; MIT Athena &#26426;&#22120;&#65292;&#37027;&#20040;&#26412;&#35838;&#31243;&#25152;&#38656;&#35201;&#30340;&#25152;&#26377;&#36719;&#20214;&#24037;&#20855;&#37117;&#22312; 6.828 &#30340;&#23384;&#20648;&#20013;&#65306;&#21482;&#38656;&#35201;&#36755;&#20837; add -f 6.828 &#23601;&#21487;&#20197;&#35775;&#38382;&#23427;&#20204;&#12290;&#22914;&#26524;&#20320;&#19981;&#20351;&#29992; Debathena &#26426;&#22120;&#65292;&#25105;&#20204;&#24314;&#35758;&#20320;&#20351;&#29992;&#19968;&#21488; Linux &#34394;&#25311;&#26426;&#12290;&#22914;&#26524;&#26159;&#36825;&#26679;&#65292;&#20320;&#21487;&#20197;&#22312;&#20320;&#30340; Linux &#34394;&#25311;&#26426;&#19978;&#26500;&#24314;&#21644;&#23433;&#35013;&#24037;&#20855;&#12290;&#25105;&#20204;&#23558;&#22312;&#19979;&#38754;&#20171;&#32461;&#22914;&#20309;&#22312; Linux &#21644; MacOS &#35745;&#31639;&#19978;&#26469;&#26500;&#24314;&#21644;&#23433;&#35013;&#24037;&#20855;&#12290;&#22312; <a href="http://www.cygwin.com">Cygwin</a> &#30340;&#24110;&#21161;&#19979;&#65292;&#22312; Windows &#20013;&#36816;&#34892;&#36825;&#20010;&#24320;&#21457;&#29615;&#22659;&#20063;&#26159;&#21487;&#34892;&#30340;&#12290;&#23433;&#35013; cygwin&#65292;&#24182;&#30830;&#20445;&#23433;&#35013;&#20102; flex &#21644; bison &#21253;&#65288;&#23427;&#20204;&#22312;&#24320;&#21457; header &#36719;&#20214;&#21253;&#20998;&#31867;&#19979;&#38754;&#65289;&#12290;&#23545;&#20110; 6.828 &#20013;&#20351;&#29992;&#30340;&#24037;&#20855;&#20013;&#30340;&#26377;&#29992;&#30340;&#21629;&#20196;&#65292;&#35831;&#21442;&#32771;<a href="labguide.html">&#23454;&#39564;&#24037;&#20855;&#25351;&#21335;</a>&#12290;&#32534;&#35793;&#22120;&#24037;&#20855;&#38142;“&#32534;&#35793;&#22120;&#24037;&#20855;&#38142;“ &#26159;&#19968;&#22871;&#31243;&#24207;&#65292;&#21253;&#25324;&#19968;&#20010; C &#32534;&#35793;&#22120;&#12289;&#27719;&#32534;&#22120;&#21644;&#38142;&#25509;&#22120;&#65292;&#20351;&#29992;&#23427;&#20204;&#26469;&#23558;&#20195;&#30721;&#36716;&#25442;&#25104;&#21487;&#36816;&#34892;&#30340;&#20108;&#36827;&#21046;&#25991;&#20214;&#12290;&#20320;&#38656;&#35201;&#19968;&#20010;&#33021;&#22815;&#29983;&#25104;&#22312; 32 &#20301; Intel &#26550;&#26500;&#65288;x86 &#26550;&#26500;&#65289;&#19978;&#36816;&#34892;&#30340; ELF &#20108;&#36827;&#21046;&#26684;&#24335;&#31243;&#24207;&#30340;&#32534;&#35793;&#22120;&#24037;&#20855;&#38142;&#12290;&#27979;&#35797;&#20320;&#30340;&#32534;&#35793;&#22120;&#24037;&#20855;&#38142;&#29616;&#20195;&#30340; Linux &#21644; BSD UNIX &#21457;&#34892;&#29256;&#2…
使用 Python 的 toolz 库开始函数式编程

toolz 库允许你操作函数,使其更容易理解,更容易测试代码。Media

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