1、1.11.21.31.41.51.61.71.81.91.101.111.121.131.141.151.161.171.181.191.201.211.221.231.241.251.261.271.281.291.301.311.321.331.34目錄笨办法学Linux中文版练习0:起步练习1:文本编辑器,vim练习2:文本浏览器,少即是多练习3:Bash:Shell、.profile、.bashrc、.bash_history练习4:Bash:处理文件,pwd,ls,cp,mv,rm,touch练习5:Bash:环境变量,env,set,export练习6:Bash:语言设置,LANG
2、,locale,dpkg-reconfigurelocales练习7:Bash:重定向,stdin,stdout,stderr,|,tee,pv练习8:更多的重定向和过滤:head,tail,awk,grep,sed练习9:Bash:任务控制,jobs,fg练习10:Bash:程序退出代码(返回状态)练习11:总结练习12:文档:man,info练习13:文档:Google练习14:包管理:Debian包管理工具aptitude练习15:系统启动:运行级别,/etc/init.d,rcconf,update-rc.d练习16:处理进程,ps,kill练习17:任务调度:cron,at练习18:
3、日志:/var/log,rsyslog,logger练习19:文件系统:挂载,mount,/etc/fstab练习20:文件系统:修改和创建文件系统,tune2fs,mkfs练习21:文件系统:修改根目录,chroot练习22:文件系统:移动数据,tar,dd练习23:文件系统:权限,chown,chmod,umask练习24:接口配置,ifconfig,netstat,iproute2,ss,route练习25:网络:配置文件,/etc/network/interfaces练习26:网络:封包过滤配置,iptables练习27:安全Shell,ssh,sshd,scp练习28:性能:获取性能
4、情况,uptime,free,top练习29:内核:内核消息,dmesg练习30:打磨、洗练、重复:总复习下一步做什么Debian手动安装12笨办法学Linux中文版原书:LearnLinuxTheHardWay(version)译者:飞龙自豪地采用谷歌翻译在线阅读PDF格式EPUB格式MOBI格式代码仓库赞助我协议CCBY-NC-SA4.0笨办法学Linux中文版3练习0:起步原文:Exercise0.TheSetup译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译Windows,手动安装非常长的指南Windows,VirtualBox虚拟机(.ova格式的预配置映像)你需要什么
5、VitualBox,虚拟机播放器。putty,终端模拟器。预配置的VirtualBoxDebian映像。这样做下载并安装VirtualBox下载并安装Putty。下载此文件:https:/ Import练习0:起步5选择 vm1并点击 Start等待 vm1启动练习0:起步6启动 putty,在 HostName或者IPAddress中输入 localhost。之后点击 Open练习0:起步7输入 user1,123qwe,。练习0:起步8恭喜,你现在登入了 vm1。练习0:起步9Linux你已经使用Linux了,你还需要什么嘛?开个玩笑。你可以严格遵循我的指南,或者随意在你的系统上做实验。M
6、acOS以后我会在这里把步骤补上。练习0:起步10练习1:文本编辑器,vim原文:Exercise1.TextEditor,The:vim译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译在Linux中,就像任何类Unix操作系统,一切都只是文件。而Unix哲学指出,配置文件必须是人类可读和可编辑的。在几乎所有的情况下,它们只是纯文本。所以,首先,你必须学习如何编辑文本文件。为此,我强烈建议你学习vim的基础知识,这是在Linux中处理文本的最强大的工具之一。Vim是由BillJoy于1976年编写的,vi的重新实现。vi实现了一个非常成功的概念,甚至MicrosoftVisualS
7、tudio2012有一个插件,它提供了一个模式,与这个超过35岁的编辑器兼容。你可以在这里玩转它(这是在浏览器中运行的真正的Linux)。完成之后,最后获取我的虚拟机。如果我还没成功说服你,你可以了解nano来代替。但至少要试试。现在,登入 vm1,之后键入:vimhello.txt你应该看到:Hello,braveadventurer!hello.txtNewFile0,0-1All有一个笑话说,vim有两种模式-“反复哔哔”和“破坏一切”。那么,如果你不知道如何使用vim,这是非常真实的,因为vim是模态的文本编辑器。模式是:练习1:文本编辑器,vim11普通模式:移动光标并执行删除,复制
8、和粘贴等文本操作。插入模式:输入文本。译者注:还有一个命令模式,用于生成真随机字符串(笑)。这十分使新手头疼,因为他们试图尽可能地避免普通模式。那么这是错误的,所以现在我将给你正确的大纲来使用vim:startvimwhileeditingisnotfinished,repeatnavigatetodesiredpositioninNORMALmodeenterINSERTmodebypressingitypetextexitINSERTmodebypressingwheneditingisfinished,type:wq最重要的是,几乎任何时候都呆在普通模式,短时间内进入插入模式,然后立即退
9、出。以这种方式,vim只有一种模式,而这种模式是普通模式。现在让我们试试吧。记住,按 i进入插入模式,以及 返回到普通模式。键入以下内容(在每行末尾按):iRosesareredLinuxisscary这是你应该看到的:RosesareredLinuxisscary4,17All现在我给你命令列表,在普通模式下移动光标:h-向左移动练习1:文本编辑器,vim12 j-向下移动 k-向上移动 l-右移 i-进入插入模式 o-在光标下插入一行并进入插入模式-退出插入模式 x-删除光标下的符号 dd-删除一行:wq-将更改写入文件并退出。是的,没错,这是一个冒号,后面跟着 wq和。:q!-不要对文件
10、进行更改并退出。那就够了。现在,将光标放在第一行并输入:oVioletsareblue之后,将光标放在 Linuxisscary那一行,并输入:oButImscarytoo你应该看到:RosesareredVioletsareblueLinuxisscaryButImscarytoo4,17All现在键入:wq保存文件,并退出。你应该看到:练习1:文本编辑器,vim13VioletsareblueLinuxisscaryButImscarytoohello.txt4L,64Cwrittenuser1vm1:$好的。你做到它了。你刚刚在vim中编辑了文本文件,很好很强大!附加题通过键入键入 vi
11、mhello.txt再次启动vim,并尝试我给你的一些命令。玩这个游戏,它会让你更熟悉vim:http:/vim- less,少即是多。“比什么多呢?”你可能会问。嗯.有一次,有一个被称为 more的浏览器。它很简单,只是向你显示你要求它显示的文本文件。它是如此简单,只能以一个方向显示文本文件,也就是向前。马克恩德尔曼(MarkNudelman)发现它并不那么令人满意,1983年至1985年,他编写了 less。从那以后,它拥有了许多先进的功能。因为它比 more更先进,一句话就诞生了:“少即是多,多即是少”。好吧,让我们试试吧。输入:less.bashrc你应该看到:user1vm1:$le
12、ss.bashrc#/.bashrc:executedbybash(1)fornon-loginshells.#see/usr/share/doc/bash/examples/startup-files(inthepackagebash-doc)#forexamples#Ifnotrunninginteractively,dontdoanything-z$PS1&return#dontputduplicatelinesinthehistory.Seebash(1)formoreoptions#dontoverwriteGNUMidnightCommanderssettingofignoresp
13、ace.HISTCONTROL=$HISTCONTROL$HISTCONTROL+:ignoredups.bashrc练习2:文本浏览器,少即是多15如果你的终端不是足够宽,文本将看起来像一团糟,因为它放不下整行。要修复它,请键入-ch。是的,dash-dash-ch-ENTER-ENTER。这将开启水平滚动。为了向上向下文浏览文字,使用已经熟悉的 j和 k。退出按q。现在我将向你展示 less的高级功能,这样你只能看到所需的那些行。键入&enable。你应该看到这个:#enablecolorsupportoflsandalsoaddhand#enableprogrammablecomplet
14、ionfeatures(you#this,ifitsalreadyenabledin/etc/bash.b&(END)注意看!为了移除过滤器,只需键入&。同样,要记住的命令:j-向上移动 k-向下移动 q-退出 less。-chop-long-lines或-ch-开启水平滚动。/-搜索。&something-只显示文件中包含某些内容的行。附加题Linux具有在线手册,通过键入 man来调用。默认情况下,在我们的系统中,本手册将使用 less来查看。键入 manman并阅读,然后退出。就是这样,没有更多的附加题了。练习2:文本浏览器,少即是多16练习3:Bash:Shell、.profile、.
15、bashrc、.bash_history。原文:Exercise3.Bash:Theshell,.profile,.bashrc,.bash_history译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译当使用CLI(命令行界面)来使用Linux时,你正在与一个名为shell的程序进行交互。所有你输入的都传递给shell,它解释你输入的内容,执行参数扩展(这有点类似于代数中的花括号扩展),并为你执行程序。我们将使用的Shell称为Bash,它代表BourneAgainShell,而BourneAgainShell又是一个双关语。现在我将使用纯中文,向大家介绍一下bash的工作方式:
16、你登入Linux虚拟机你的身份由用户名(user1)和密码(123qwe)确定。Bash执行了。Bash从你的配置中读取并执行首个命令,它定义了:命令提示符是什么样子使用Linux时,你会看到什么颜色你的编辑器是什么你的浏览器是什么.读取首个命令后,Bash进入循环没有通过输入 exit或者按下,来要求退出的时候:读取一行解析这一行,扩展花括号使用扩展参数执行命令我重复一下,你输入的任何命令都不会直接执行,而是首先扩展,然后执行。例如,当你输入 ls*时,星号*将扩展为当前目录中所有文件的列表。现在你将学习如何修改你的配置,以及如何编写和查看你的历史记录。这样做练习3:Bash:Shell、.
17、profile、.bashrc、.bash_history171:ls-al2:cat.profile3:echoHello,$LOGNAME!4:cp-v.profile.profile.bak5:echoechoHello,$LOGNAME!.profile6:tail-n5.profile7:history-w8:ls-altr9:cat.bash_history10:exit你会看到什么user1vm1spassword:Linuxvm12.6.32-5-amd64#1SMPSunMay604:00:17UTC2012x86_64TheprogramsincludedwiththeDe
18、bianGNU/Linuxsystemarefreesoftware;theexactdistributiontermsforeachprogramaredescribedintheindividualfilesin/usr/share/doc/*/copyright.DebianGNU/LinuxcomeswithABSOLUTELYNOWARRANTY,totheextentpermittedbyapplicablelaw.Lastlogin:ThuJun712:03:292012fromsis.siteHello,user1!user1vm1:$ls-altotal20drwxr-xr-
19、x2user1user14096Jun712:18.drwxr-xr-x3rootroot4096Jun621:49.-rw-r-r-1user1user1220Jun621:48.bash_logout-rw-r-r-1user1user13184Jun621:48.bashrc-rw-r-r-1user1user1697Jun712:04.profileuser1vm1:$cat.profile#/.profile:executedbythecommandinterpreterforloginshells.#Thisfileisnotreadbybash(1),if/.bash_profi
20、leor/.bash_login#exists.#see/usr/share/doc/bash/examples/startup-filesforexamples.#thefilesarelocatedinthebash-docpackage.#thedefaultumaskissetin/etc/profile;forsettingtheumask#forsshlogins,installandconfigurethelibpam-umaskpackage.#umask022练习3:Bash:Shell、.profile、.bashrc、.bash_history18#ifrunningba
21、shif-n$BASH_VERSION;then#include.bashrcifitexistsif-f$HOME/.bashrc;then.$HOME/.bashrcfifi#setPATHsoitincludesusersprivatebinifitexistsif-d$HOME/bin;thenPATH=$HOME/bin:$PATHfiechoHello,$LOGNAME!user1vm1:$echoHello,$LOGNAME!Hello,user1!user1vm1:$cp-v.profile.profile.bak.profile-.profile.bakuser1vm1:$e
22、choechoHello,$LOGNAME!.profileuser1vm1:$tail-n5.profile#setPATHsoitincludesusersprivatebinifitexistsif-d$HOME/bin;thenPATH=$HOME/bin:$PATHfiechoHello,$LOGNAME!user1vm1:$history-wuser1vm1:$ls-altrtotal28-rw-r-r-1user1user13184Jun621:48.bashrc-rw-r-r-1user1user1220Jun621:48.bash_logoutdrwxr-xr-x3rootr
23、oot4096Jun621:49.-rw-r-r-1user1user1741Jun712:19.profile.bak-rw-1user1user1308Jun712:21.bash_history-rw-r-r-1user1user1697Jun712:25.profiledrwxr-xr-x2user1user14096Jun712:25.user1vm1:$cat.bash_historyls-alcat.profileechoHello,$LOGNAME!cp-v.profile.profile.bakechoechoHello,$LOGNAME!.profiletail-n5.pr
24、ofilehistory-wls-altruser1vm1:$exitlogout不要害怕,所有命令都会解释。行号对应“现在输入它”的部分。解释练习3:Bash:Shell、.profile、.bashrc、.bash_history191.打印当前目录中的所有文件,包括隐藏的文件。选项-al告诉 ls以 long格式打印文件列表,并包括所有文件,包括隐藏文件。.profile和.bash_rc是隐藏文件,因为它们以点.开头。以点开头的每个文件都是隐藏的,这很简单。这两个特殊文件是shell脚本,它们包含登录时执行的指令。2.打印出你的.profile文件。只是这样。3.告诉你的shell,你
25、这里是bash,输出一个字符串 Hello,$LOGNAME!,用环境变量$LOGNAME替换$LOGNAME,它包含你的登录名。4.将.profile文件复制到.profile.bak。选项-v让 cp详细输出,这意味着它会打印所有的操作。记住这个选项,它通常用于让命令给你提供比默认更多的信息。5.在.bash_rc配置文件中添加一行。从现在开始,每次登录到 vm1时,都将执行该命令。注意,代表向文件添加了一些东西,但 意味着使用一些东西来替换文件。如果你不小心替换了.profile而不是向它添加,则命令cp-v.profile.bak.profile会向你返回旧的.profile文件。6.
26、从.profile文件中精确打印出最后5行。7.将所有命令历史写入.bash_history文件。通常这是在会话结束时完成的,当你通过键入 exit或按+D关闭它。8.打印当前目录中的文件。选项-tr表示文件列表按时间反向排序。这意味着最近创建和修改的文件最后打印。注意你现在有两个新的文件。9.打印出保存命令历史记录的文件。注意你所有的输入都在这里。10.关闭会话附加题在线搜索为什么 ls-al告诉你“总共20”,但是只有5个文件存在。这是什么意思?请注意,.和.是特殊文件条目,分别对应于当前目录和父目录的。登录 vm1并键入 man-K/etc/profile,现在使用光标键滚动到 INVO
27、CATION部分并阅读它。要退出 man,请键入q。键入 manman来找出 man-K选项的含义。在命令之前键入 uname与空格。现在,键入 history。看到了吗?如果你将空格放到命令前面,则不会将其保存在历史记录中!提示:当你需要在命令行上指定密码时,很实用。练习3:Bash:Shell、.profile、.bashrc、.bash_history20找到bash的wiki页面,并尝试阅读它。不用担心,如果它吓到你,只需要省略可怕的部分。练习3:Bash:Shell、.profile、.bashrc、.bash_history21练习4:Bash:处理文件,pwd,ls,cp,mv,
28、rm,touch原文:Exercise4.Bash:workingwithfiles,pwd,ls,cp,mv,rm,touch译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译在Linux中,一切都是文件。但是什么是文件?现在完全可以说,它是一个包含一些信息的对象。它通常定义如下:计算机文件是用于存储信息的,任意的信息块或资源。它可用于计算机程序,并且通常基于某种持久的存储器。文件是持久的,因为它在当前程序完成后,仍然可用于其它程序。计算机文件可以认为是纸质文档的现代对应物,它们通常保存于办公室和图书馆的文件中,这是该术语的来源。但这个定义太笼统了,所以让我们更具体一些。manst
29、at告诉我们,文件是一个对象,它包含以下属性:structstatdev_tst_dev;/*IDofdevicecontainingfile*/ino_tst_ino;/*inodenumber*/mode_tst_mode;/*protection*/nlink_tst_nlink;/*numberofhardlinks*/uid_tst_uid;/*userIDofowner*/gid_tst_gid;/*groupIDofowner*/dev_tst_rdev;/*deviceID(ifspecialfile)*/off_tst_size;/*totalsize,inbytes*/bl
30、ksize_tst_blksize;/*blocksizeforfilesystemI/O*/blkcnt_tst_blocks;/*numberof512Bblocksallocated*/time_tst_atime;/*timeoflastaccess*/time_tst_mtime;/*timeoflastmodification*/time_tst_ctime;/*timeoflaststatuschange*/;不要害怕,只要记住以下属性:大小,这正好是它所说的。上次访问的时间,当你查看文件时更新。上次修改的时间,当你更改文件时更新。现在你将学习如何打印当前目录,目录中的文件,复制
31、和移动文件。练习4:Bash:处理文件,pwd,ls,cp,mv,rm,touch22这样做1:pwd2:ls3:ls-a4:ls-al5:ls-altr6:cp-v.bash_history,17:cp-v.bash_history1.bash_history28:mv-v.bash_history1.bash_history29:rm-v.bash_history210:touch.bashrc11:ls-al12:ls.*你应该看到什么Hello,user1!user1vm1:$pwd/home/user1user1vm1:$lsuser1vm1:$ls-a.bash_history.b
32、ash_history1.bash_logout.bashrc.lesshst.profile.profile.bak.profile.bak1user1vm1:$ls-altotal40drwxr-xr-x2user1user14096Jun713:30.drwxr-xr-x3rootroot4096Jun621:49.-rw-1user1user1853Jun715:03.bash_history-rw-1user1user1308Jun713:14.bash_history1-rw-r-r-1user1user1220Jun621:48.bash_logout-rw-r-r-1user1
33、user13184Jun621:48.bashrc-rw-1user1user145Jun713:31.lesshst-rw-r-r-1user1user1697Jun712:25.profile-rw-r-r-1user1user1741Jun712:19.profile.bak-rw-r-r-1user1user1741Jun713:12.profile.bak1user1vm1:$ls-altrtotal40-rw-r-r-1user1user13184Jun621:48.bashrc-rw-r-r-1user1user1220Jun621:48.bash_logoutdrwxr-xr-
34、x3rootroot4096Jun621:49.-rw-r-r-1user1user1741Jun712:19.profile.bak-rw-r-r-1user1user1697Jun712:25.profile-rw-r-r-1user1user1741Jun713:12.profile.bak1-rw-1user1user1308Jun713:14.bash_history1drwxr-xr-x2user1user14096Jun713:30.-rw-1user1user145Jun713:31.lesshst-rw-1user1user1853Jun715:03.bash_history
35、练习4:Bash:处理文件,pwd,ls,cp,mv,rm,touch23user1vm1:$cp-v.bash_history,1.bash_history-.bash_history1user1vm1:$cp-v.bash_history1.bash_history2.bash_history1-.bash_history2user1vm1:$mv-v.bash_history1.bash_history2.bash_history1-.bash_history2user1vm1:$rm-v.bash_history2removed.bash_history2user1vm1:$touch
36、.bashrcuser1vm1:$ls-altotal36drwxr-xr-x2user1user14096Jun1412:23.drwxr-xr-x3rootroot4096Jun621:49.-rw-1user1user1853Jun715:03.bash_history-rw-r-r-1user1user1220Jun621:48.bash_logout-rw-r-r-1user1user13184Jun1412:24.bashrc-rw-1user1user145Jun713:31.lesshst-rw-r-r-1user1user1697Jun712:25.profile-rw-r-
37、r-1user1user1741Jun712:19.profile.bak-rw-r-r-1user1user1741Jun713:12.profile.bak1user1vm1:$user1vm1:$ls.*.bash_history.bash_logout.bashrc.lesshst.profile.profile.bak.profile.bak1.:ls.out.:user1解释1.打印你当前的工作目录,这是你的主目录。请注意它为何不同于 user1vm1:中的,这也表示,你在你的home目录中。这是因为 是你的主目录的缩写。2.这里没有任何东西,因为你的主目录中只有隐藏的文件。记住,
38、隐藏的文件是以点开头的名称。3.打印主目录中的所有文件,因为-a参数让 ls显示所有文件,包括隐藏文件。4.以长格式打印主目录中的所有文件:权限,所有者,组,大小,时间戳(通常是修改时间)和文件名。5.注意文件如何按日期安排,最新的文件是最后一个。-t告诉 ls按时间排序,-r告诉 ls反转排序。练习4:Bash:处理文件,pwd,ls,cp,mv,rm,touch246.将.bash_history复制到.bash_history1。这似乎对你来说很神秘,但解释真的很简单。Bash有一个称为花括号扩展的功能,它有一组规则,定义了如何处理像 1,2,3之类的结构。在我们的例子中,.bash_h
39、istory,1扩展为两个参数,即.bash_history和.bash_history1。Bash仅仅接受花括号前的一个参数,在我们的例子中是.bash_history,并向参数添加花括号里的所有东西,以逗号分隔,并以此作为参数。第一个添加只是变成.bash_history,因为花括号中的第一个参数是空的,没有第一个参数。接下来,Bash添加了 1,因为这是第二个参数,就是这样。扩展后传递给 cp的结果参数为-v.bash_history1.bash_history2。7.这可能对你来说很明显。将最近创建的.bash_history1复制到.bash_history2。8.向.bash_hi
40、story1移动到.bash_history2。请注意,它会覆盖目标文件而不询问,所以不再有.bash_history2,没有了!9.将.bashrc时间戳更新为当前日期和时间。这意味着.bashrc的所有时间属性,st_atime,st_mtime和st_ctime都设置为当前日期和时间。你可以通过输入 stat.bashrc来确定它。10.删除.bash_history2。这里没有警告,请小心。另外,总是用-v选项。11.再次以长格式打印所有文件。请注意.bashrc的时间戳更改。12.在你的主目录中以短格式打印文件。请注意,你不仅可以列出/home/user1目录,还可以列出/home目
41、录本身。不要和任何命令一起使用这个结构,特别是 rm,永远不要!或许,你会意外地通过删除错误的文件或更改权限,来使系统崩溃。附加题玩转bash花括号扩展。从 echotest1,2,foo,bar开始。尝试使用花括号键入几个单独的参数。使用Google搜索bash花括号扩展,从搜索结果中打开“Bash参考手册”,并阅读相应的部分。尝试弄清楚 ls.*如何和为什么工作。对自己说10次:“我会一直使用verbose选项。verbose选项通常用作-v参数”。对自己说10次:“我会永远用 ls检查任何危险的命令”。练习4:Bash:处理文件,pwd,ls,cp,mv,rm,touch25练习5:Ba
42、sh:环境变量,env,set,export原文:Exercise5.Bash:environmentvariables,env,set,export译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译请考虑以下内容:你希望程序打印出你的用户名。这个程序怎么知道的?在Linux中有一些环境变量。这意味着你的shell中有许多变量,其中许多变量自动设置,每次运行程序时,其中一些变量将传递给该程序。详细说明:一些变量只为你当前的shell设置。它们被称为本地shell变量。你可以通过键入 set,一个bash内置命令来列出它们,这意味着没有启动其它程序,之后你执行了它。此命令由bash本身
43、处理。其他变量被传递到你从当前shell启动的每个程序。它们被称为环境变量,可以通过 env程序列出,这意味着,通过键入 env,你将看到,你启动的每个程序获得了什么变量。你可能想要深入挖掘。要做到这一点,掌握subshell的概念,这是一个子进程,当你运行程序时创建,并且成为你的程序。现在,你将学习如何创建变量以及如何使用变量。这样做1:foo=HelloWorld!2:echo$foo3:set|grepfoo4:env|grepfoo5:exportfoo6:env|grepfoo7:foo=ls-al8:$foo你会看到什么练习5:Bash:环境变量,env,set,export26u
44、set1vm1:$foo=HelloWorld!user1vm1:$echo$fooHelloWorld!user1vm1:$set|grepfoofoo=HelloWorld!user1vm1:$env|grepfoouser1vm1:$exportfoouser1vm1:$env|grepfoofoo=HelloWorld!user1vm1:$foo=ls-aluser1vm1:$foototal36drwxr-xr-x2user1user14096Jun1412:23.drwxr-xr-x3rootroot4096Jun621:49.-rw-1user1user14042Jun1518:
45、52.bash_history-rw-r-r-1user1user1220Jun621:48.bash_logout-rw-r-r-1user1user13184Jun1412:24.bashrc-rw-1user1user150Jun1518:41.lesshst-rw-r-r-1user1user1697Jun712:25.profile-rw-r-r-1user1user1741Jun712:19.profile.bak-rw-r-r-1user1user1741Jun713:12.profile.bak1解释1.创建变量 foo,并将 HelloWorld!这一行放在其中。2.打印出变
46、量 foo。3.打印所有环境变量的列表,它传递给 grep,打印出只包含变量 foo的行。注意变量 foo存在。4.打印所有环境变量列表,它们传递给你执行的任何程序。注意变量 foo不存在。5.使变量 foo可用于从当前shell执行的所有程序。6.现在你可以看到,你的变量确实可用于你执行的所有程序。7.将 ls/放入变量 foo。8.执行包含在变量 foo中的命令。附加题输入并执行 env和 set。看看有多少个不同的变量?不用担心,通常你可以通过谷歌搜索,快速了解一个变量的作用。尝试这样做。尝试输入:set|egrep:alpha:.*$现在,试试 set。看见我在这里做了什么嘛?快速的解
47、释是:练习5:Bash:环境变量,env,set,export27egrep:alpha:.*$仅仅打印出以字母开头的行,它是每个字母,并忽略其他行。现在不要纠结这个,也不要纠结|符号。以后我会解释它。在这里阅读 env和 set之间的区别:http:/ setFOO=helloworldbash-cecho$FOO。这里是解释:http:/ manbash/PS1(是的,只是斜杠),按下。你现在可以按下 n查看下一个结果。浏览PROMPTING,并键入 q来退出man。现在,访问http:/ bashPS1。了解这两个文档来源的区别。练习5:Bash:环境变量,env,set,export2
48、8练习6:Bash:语言设置,LANG,locale,dpkg-reconfigurelocales原文:Exercise6.Bash:languagesettings,LANG,locale,dpkg-reconfigurelocales译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译在Linux中,语言选择像导出变量一样简单。这是正确的,通过查看这个变量,程序决定如何和你交流。当然,为了使其工作,程序必须支持区域设置,并将其翻译成可用和安装的语言。让我们通过安装法语区域设置,看看它的工作原理。现在,你将学习如何安装和选择一个区域设置。这样做1:echo$LANG2:locale
49、3:manman#pressqtoexitman4:sudodpkg-reconfigurelocales现在,选择 fr_FR.UTF-8locale,通过使用方向键来浏览列表,并使用看空格来选择区域设置。选择 en_US.UTF-8作为默认的系统区域。5:exportLANG=fr_FR.UTF-86:echo$LANG7:locale#pressqtoexitman8:manman9:exportLANG=en_US.UTF-8你会看到什么user1vm1:$echo$LANGen_US.UTF-8user1vm1:$localeLANG=en_US.UTF-8LANGUAGE=en_U
50、S:enLC_CTYPE=en_US.UTF-8练习6:Bash:语言设置,LANG,locale,dpkg-reconfigurelocales29LC_NUMERIC=en_US.UTF-8LC_TIME=en_US.UTF-8LC_COLLATE=en_US.UTF-8LC_MONETARY=en_US.UTF-8LC_MESSAGES=en_US.UTF-8LC_PAPER=en_US.UTF-8LC_NAME=en_US.UTF-8LC_ADDRESS=en_US.UTF-8LC_TELEPHONE=en_US.UTF-8LC_MEASUREMENT=en_US.UTF-8LC_ID