这篇文章是给孩子们写的,例如6年级的小学生,我最近正在教6年级学生学习Python。严格说来,这篇文章的目的并不是让孩子真正学到东西,而是让他们产生兴趣,但是这种兴趣能够引导他们学习UNIX终端,最终开始真正的使用它。要想运行这篇文章中的各种指令,你需要一个UNIX机器,Linux或是Mac OS X系统都可以。你还需要学会如何安装软件。下面有两个选项供你选择:
tr工具在OS X或是Ubuntu机器上都已经默认安装好了。它能够根据你提供的规则,将字符串中的字符转换为不同的字符。要想更详细的了解tr,你可以输入这个命令(去掉$符号):
$ man tr
这个命令会向你展示UNIX系统内置的命令说明。
在一些文本上,我们将会使用ROT13在tr中进行加密,它会将每一个字母在字母表中向前移动13个位置,在需要的时候对他们进行从Z到A的排列。由于英语中有26个字母,因此使用ROT13进行加密,它会为我们提供原始的文本。ROT13虽然很好玩,但是你不应该用它对重要信息进行加密,因为破解它十分容易。
输入下面内容:
$ echo 'Hello this is a test' | tr 'A-Za-z' 'N-ZA-Mn-za-m'
Uryyb guvf vf n grfg
它会被编码成:
$ echo 'Uryyb guvf vf n grfg' | tr 'A-Za-z' 'N-ZA-Mn-za-m'
Hello this is a test
在讲解下一个命令之前,我们还需要多说两个事情:
首先,UNIX的管道操作符(上面命令中的“|”符号,看上去像是一个管道)是UNIX命令中一个非常常用的东西,它会将一个命令的输出作为第二个命令中的输入。我们未来会经常使用它。
第二,我们是如何告诉tr使用ROT13的?其方法就是,通过第一个参数“A-Za-z”。
这里的A-Z,代表的是从A到Z,a-z代表的是从a到z(在计算机眼中,大写和小写字母都两个完全不同的字符)。这样,我们就告诉了tr,它只要将字母表中的任一字母进行编译,但是不用理会其他字符(例如空格、标点和数字等)。第二个参数“’N-ZA-Mn-za-m”规定了第一个参数的编译规则。因此,第一个参数(A)中的第一个字符会被编译成第二个参数(N)中的第一个字符,以此类推。
可惜的是,这个命令并没有默认安装在Mac或是Ubuntu Linux上。在Mac上,你可以这样进行安装:
brew install fortune
如果这样无法安装,那么你需要先安装Homebrew,你可以在参考这个页面。
在Ubuntu上请尝试这样进行安装:
sudo apt-get install fortune
在使用“sudo”命令的时候,它会要求你在运行下一个命令之前输入机器的密码。
如果你就是安装不上fortune,也不要着急,直接进入下一个命令也可以。
fortune会随机生成一个轻幽默的名人名言:
$ fortune
I have never let my schooling interfere with my education.
-- Mark Twain
这个命令在Mac上已经默认安装。在Ubuntu上,你需要输入“sudo apt install gnustep-gui-runtime”进行安装。
请输入:
$ say "you just might be a genius"
请确保系统声音已经打开。
由于某些原因,Linux的say命令需要它的输入必须是一个命令行参数,因此我们无法使用管道符将fortune的输出发送给say。因此这个命令在Linux上无法使用(在OS X上可用):
$ fortune | say
我们可以使用一个小技巧:把第一个命令放在括号中,并且在之前加入一个$符号,我们就可以把第一个命令的输出导入另一个命令的命令行参数中,这样你的电脑就可以将fortune读出来了:
$ say $(fortune)
另一个实现相同效果的小技巧,就是把fortune的输出放入一个文件中,然后让say读出这个文件:
$ fortune > my_fortune.txt
$ say -f my_fortune.txt
这里的大于号,会将fortune的输出“重定向”到一个文件中。重定向的作用和管道符的作用相似,但是输出会进入到文件中,而不是进入到另一个程序中。这个符号非常实用。
如果你在Linux和Mac上比较一下say,你会发现Mac的语音功能更好用。
cowsay这个非常重要的命令实用了ASCII,让一个牛的形象来说出一段话。你可以这样实用它:
$ fortune | cowsay
__________________________________
/ What is mind? No matter. What is \
| matter? Never mind. |
| |
\ -- Thomas Hewitt Key, 1799-1875 /
----------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Homebrew和Apt都有名叫cowsay的package,你可以使用相同的命令来进行安装。
cowsay还有其他一些有趣的特性,例如在后面加上“-d”能把牛变成死去的牛:
$ fortune | cowsay -d
_________________________________________
/ Laws are like sausages. It's better not \
| to see them being made. |
| |
\ -- Otto von Bismarck /
-----------------------------------------
\ ^__^
\ (xx)\_______
(__)\ )\/\
U ||----w |
|| ||
你还可以自己试验一下“man cowsay”的效果。
如果你觉得cowsay还不过瘾,你可以试试ponysay。但是ponysay无法所谓预编译package使用。你可以在源代码上进行开发,方法是首先使用apt-get或是brew来安装git package,然后运行下面的命令:
$ git clone https://github.com/erkin/ponysay.git
$ cd ponysay
$ ./setup.py --freedom=partial --private install
这个过程会将ponysay安装在一个奇怪的位置,但是并不影响使用。这里(在Linux下,在Mac上你需要将另一个命令的输出pipe到ponysay上)一个可爱的小马会告诉你一个数字的质因数分解:
Figlet(实际名称为FIGlet)会将文本的样式进行变化,请看下面的例子:
$ whoami | figlet
_
_ __ ___ __ _ ___| |__ _ __
| '__/ _ \/ _` |/ _ \ '_ \| '__|
| | | __/ (_| | __/ | | | |
|_| \___|\__, |\___|_| |_|_|
|___/
Figlet有很多种选择,让你可以控制文本输出的样式。例如,你可以对字体进行修改:
$ echo 'hello Eddie' | figlet -f script
_ _ _ ___
| | | | | | / (_) | | o
| | _ | | | | __ \__ __| __| _
|/ \ |/ |/ |/ / \_ / / | / | | |/
| |_/|__/|__/|__/\__/ \___/\_/|_/\_/|_/|_/|__/
另一个命令toilet与figlet相似,但是有更多的选项。你可以使用相同的命令同时安装着两个东西。
UNIX的“cat”程序可以在终端上打印一个文件,或是任何pipe给它的东西。而lolcat与它类似,不过却能表现更好看的颜色:
bb程序在Homebrew上并不可用,但是在Ubuntu上,你可以使用“sudo apt-get install bb”对它进行安装。它是一个非常强大的ASCII art deme。
rig
很多网站都希望你使用真名字或是真实地址进行注册和登录,但是你的家长却不希望你在网上泄露自己的身份。rig这个东西能帮你忙,它可以帮你生成随机的身份:
$ rig
Juana Waters
647 Hamlet St
Austin, TX 78710
(512) xxx-xxxx
就连邮政编码和电话区码都是正确的。处于某些原因,rig从来不会生成犹他州的身份。
bc是一个计算器程序,但是它和普通的计算器却有一些不同,它能够计算无限大的数字(取决于你计算机内存的大小),而且不会损失精确性。你可以尝试一下:
$ echo '2 ^ 100' | bc
1267650600228229401496703205376
可惜的是,bc并没有内置的阶乘函数,但是我们可以轻松的使用bc内置的编程语言写一个阶乘函数。通过输入bc打开它的互动模式。然后输入下面的代码:
define fact(n) {
if (n < 2) return 1;
return n * fact(n - 1);
}
现在你就可以运行非常复杂的阶乘计算数了:
fact(1000)
40238726007709377354370243392300398571937486421071463254379991042993\
85123986290205920442084869694048004799886101971960586316668729948085\
58901323829669944590997424504087073759918823627727188732519779505950\
99527612087497546249704360141827809464649629105639388743788648733711\
91810458257836478499770124766328898359557354325131853239584630755574\
09114262417474349347553428646576611667797396668820291207379143853719\
58824980812686783837455973174613608537953452422158659320192809087829\
73084313928444032812315586110369768013573042161687476096758713483120\
25478589320767169132448426236131412508780208000261683151027341827977\
70478463586817016436502415369139828126481021309276124489635992870511\
49649754199093422215668325720808213331861168115536158365469840467089\
75602900950537616475847728421889679646244945160765353408198901385442\
48798495995331910172335555660213945039973628075013783761530712776192\
68490343526252000158885351473316117021039681759215109077880193931781\
14194545257223865541461062892187960223838971476088506276862967146674\
69756291123408243920816015378088989396451826324367161676217916890977\
99119037540312746222899880051954444142820121873617459926429565817466\
28302955570299024324153181617210465832036786906117260158783520751516\
28422554026517048330422614397428693306169089796848259012545832716822\
64580665267699586526822728070757813918581788896522081643483448259932\
66043367660176999612831860788386150279465955131156552036093988180612\
13855860030143569452722420634463179746059468257310379008402443243846\
56572450144028218852524709351906209290231364932734975655139587205596\
54228749774011413346962715422845862377387538230483865688976461927383\
81490014076731044664025989949022222176590433990188601856652648506179\
97023561938970178600408118897299183110211712298459016419210688843871\
21855646124960798722908519296819372388642614839657382291123125024186\
64935314397013742853192664987533721894069428143411852015801412334482\
80150513996942901534830776445690990731524332782882698646027898643211\
39083506217095002597389863554277196742822248757586765752344220207573\
63056949882508796892816275384886339690995982628095612145099487170124\
45164612603790293091208890869420285106401821543994571568059418727489\
98094254742173582401063677404595741785160829230135358081840096996372\
52423056085590370062427124341690900415369010593398383577793941097002\
77534720000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
0000000000000000000000000000000000000000000000000000
总结
其实我们只是探索了UNIX终端的最基本功能。直到现在我也没能使用遍它的所有程序,Twitter上很多人为我提供了建议,我也将他们的建议用在了这篇文章中。如果你还想进一步了解它的乐趣,你可以看看这个视频。
原文来自:SDK.cn
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com
根据给定的手机号、姓名、身份证、人像图片核验是否一致
通过企业关键词查询企业涉讼详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。
IP反查域名是通过IP查询相关联的域名信息的功能,它提供IP地址历史上绑定过的域名信息。
结合权威身份认证的精准人脸风险查询服务,提升人脸应用及身份认证生态的安全性。人脸风险情报库,覆盖范围广、准确性高,数据权威可靠。
全国城市和站点空气质量查询,污染物浓度及空气质量分指数、空气质量指数、首要污染物及空气质量级别、健康指引及建议采取的措施等。