📄 0005.htm
字号:
library <br> $ gcc -o mathprog mathprog.c -lm <br>( -l<arg> 会迫使 gcc 联结 /usr/lib/lib<arg>.a; 因此, -lm 会联结 <br>/usr/lib/libm.a) <br><br>对小程式来说, 这是一个好方法. 但是若程式是由数个 source files 组成, 我们可能 会需要 make 这个程式. 假设我们已经写好一个语法分析程式 parser.c, 它 #include 了两个 .h : parser.h , xy.h. 现在, 有个 calc.c 需要使用到 parser.c 中的功能. 这样该怎麽办?? <br><br>我们可以写一个叫作 makefile 的档案, 告诉编译器所有 source 和 object files 间的关系, 在这个例子里, <br><br> # This is makefile, used to compile calc.c <br> # Press the <TAB> key at appropriate positions! <br><br> calc: calc.o parser.o <br> <TAB>gcc -o calc calc.o parser.o -lm <br> # calc depends on two object files: calc.o and parser.o <br><br> calc.o: calc.c parser.h <br> <TAB>gcc -c calc.c <br> # calc.o depends on two source files <br><br> parser.o: parser.c parser.h xy.h <br> <TAB>gcc -c parser.c <br> # parser.o depends on three source files <br><br> # end of makefile. <br><br>储存, 然後键入 <br> $ make <br>以便编译程式. 或者, 这个档案被存在 calc.mak 里, 那麽就必需 <br> $ make -f calc.mak <br>当然, 请参阅 Man pages 以得到更多的资讯. <br><br>此外, 某些函数的用法在 man pages 可以找得到, 例如 <br> $ man printf <br><br><br>第六节: 剩下的 1% <br><br>6.1. 使自己暂时脱离 root 的身份 <br><br>用 root 来 login , 并且处理每天的工作实在不是一件好事情. 因为这个帐号相当 危险, 应该仅供系统维护时使用. 下面这个命令可以为你自己建立一个一般性的帐号. 用 root login, 再键入 <br> # adduser <br>然後输入系统询问的资料. (如果有你看不懂的问题, 请按下 <RET>. 这样系统将会 使用预设的资料.) <br><br>6.2. 建立虚拟记忆体 <br><br>虽然 Linux 理论上只要 2M 就可以执行, 但是愈多的记忆体会使工作更顺利. X Window System 会要求至少 8M RAM , 否则它就罢工. 要使用虚拟记忆体来增加可用记忆空间, 请以 root 身份执行: <br> # dd if=/dev/zero of=/swapfile bs=1024 count=8192 <br> # mkswap /swapfile 8192 <br> # sync <br> # swapon /swapfile <br>接著把最後一行加入 /etc/rc.d/rc.local 中, 使每次开机时就会自动开启 swap. <br><br>6.3. 使用 tar & gzip <br><br>在 Un*x 中有著几个被广泛使用於保存或压缩档案. tar 是一个保存档案的工具. 它有 点类似 PKZIP 但并不会作压缩的工作 -- 它只是将许多档案包装成一个而已: <br> $ tar -cvf <archive_name.tar> <file> [file...] <br>把 tar file 解开, 要用以下的命令: <br> $ tar -xpvf <archive_name.tar> [file...] <br>如果欲检视 tar file 中的档案列表, <br> $ tar -tf <archive_name.tar> | less <br>用 compress 或是 gzip 可以压缩档案. 压缩後档案就无法再使用除非解开来: <br> $ compress <file> <br>or: <br> $ gzip <file> <br>这样建立出来的压缩档会以 .Z (compress) 或 .gz (gzip) 作为延伸档名. 这些档案 无法再被 compress 或 gzip 再压缩. 想将档案解压缩的话, 请用 <br> $ compress -d <file> <br>or <br> $ gzip -d <file> <br><br>请参阅 Man pages. <br><br>其它像是 arj ,zip 或是 unzip (PK??ZIP 相容) 的工具在 Linux 下一样找得到. 在 Un*x 的世界里, .tar.gz 或 .tgz 的档案就像 DOS 下的 .ZIP 一般普遍. 以下这个命令可以浏览 .tar.gz 档案中的档案列表: <br> $ gzip -dc <file.tar.gz> | tar tf - | less <br><br><br>6.4. 安装应用程式 <br><br>大多数的 Linux 软体都以 .tar.gz 的方式包装; 有些软体就可以在 / 下用这个命令 完成安装: <br> # gzip -dc <file.tar.gz> | tar xvf - <br>档案会在正确的目录中解压缩 (目录亦会自动建立好). 看来不错, 不是吗?? :) <br>Slackware distribution 的使用者(其实其它的 distribution 也不差, 像是 redhat) <br>就有一个满有亲和力的安装程式 pkgtool. <br><br>其它的软体可能有它们自己的安装方试; 你可以找到说明的文件. 此外, 有些软体 是以 C 或 C++ source code 的方式来制成, 并未编成执行档. 这时就必须自行编译. 绝大多数的情形你只要打 <br> # make <br><br>很明显的, 你会需要 gcc -- 这个应该在所有的 distributions 中都有. 但是记住: <br>请用 root 身份完成以上这些软体安装的工作. <br><br>6.5. 你不能不知道的小技巧 <br><br>让系统帮你键入命令: 按下 <TAB> 可以让系统自动补齐命令中未打完的字. 例如: gcc this_is_a_long_name.c ; 只要键入 gcc thi<TAB> 就够了. (当有数个使用以上 相同字元开始的档案时, 你必需给与一定数量的字元使系统可以判定到底你想要的是哪 <br>一个). <br><br>回卷: 按 SHIFT + PAG UP 可以使萤幕回卷数页, 这视你拥有的 Video RAM 多寡而定. <br>更进一步的说, 当你要使用下面这个命令 <br> $ script <script_file> <br>这样会使得在萤幕上出现的任何东西都被复制到 script_file 中, 直到你使用 exit 这个命令为止. 这样就可以在稍後再来检视刚才的内容. <br><br>重设萤幕: 如果你不慎 more 或是 cat 一个像可执行档的档案, 我想你的萤幕应该会 充满了奇怪的符号. 用 reset 就可以解决这个问题: <br> $ reset <br>或是依序键入 CTRL-V ESC c RETURN. <br><br>来自 kernel 的讯息: 看一下 /var/adm/messages (以 root 身份), 里面包含了 kernel 要告诉你的资讯, 其中有启动时出现的讯息. <br><br>6.6. 一些有用的程式 <br><br>最重要的一件事就是, 要怎样找到这些软体. 我想大家都已经知道如何在网路中驰骋, 以及使用 archie 和 ftp. 这里列出三个最重要的 Linux 相关 ftp site: <br>sunsite.unc.edu, TSX-11.mit.edu, nic.funet.fi . 请使用距离你比较近的 mirror. <br>(ps. 国内的 nctuccca.nctu.edu.tw, linux.cis.nctu.edu.tw, ftp.ncu.edu.tw..etc) <br><br>at 可以让你在特定的日期及时间执行程式 <br><br>delete-undelete 就像它们的名字一样 :) <br><br>df 会告诉你有关你的硬碟的资讯; <br><br>dosemu 能执行一些 DOS 的程式 (但非全部..ps. 我想应该是大多数了..) - 包含 Windows 3.x , 但需作些调整; <br><br>file <filename> 告诉你 <filename> 是哪一种档案 (ASCII 文字档, 可执行档, 包装後 <br>的档案 ..等等); <br><br>find (参看 2.2 节) 是最强且有用的工具之一. 它能够找寻档案系统中, 所有符合 搜寻条件的档案, 并且对它作处理. 最常见的使用方法是: <br> $ find <directory> <expression> <br>这里的 <expression> 包含了搜寻的标准和对目标档案的处理动作. 例如: <br> $ find . -type l -exec ls -l {} \; <br>会找到所有的 symbolic links 并且显示它们联结的目的地. <br> $ find / -name "*.old" -ok rm {} \; <br>则找寻所有符合 *.old 型式的档案, 然後询问你是否要删除它. <br> $ find . -perm 755 <br>搜寻所有存取权限为 755 的档案 (即可执行档) <br> $ find . -user root <br>会找到拥有者为 root 的档案. 其它还有很多的用法, 当然, RMP :p <br><br>grep 可以在档案中找寻一个字串. 比如说 <br> $ grep -l "geology" *.tex <br>将列出所有包含 "geology" 这个字的 tex 档. 其馀请 RMP; <br><br>gzexe 将可执行档压缩, 但仍可执行; <br><br>joe 是一个很棒的编辑器. 用 jstar 可以启动它 -- 你会得到一个看起来像, 用起来 也像 WordStar 或是它的兄弟姊妹如 DOS editor 的编辑器; <br><br>lpr <file> 可以在背景列印档案. 用 lpq 可查看在列印序列中排队的情形; <br><br>mc -- 一个很好用的 file manager; <br><br>pine , 一个不错的 e-mail 程式; <br><br>sudo 使一般使用者做某些 root 才能做的事 (像是 format 或是 mount .. RMP :p ) <br><br>uname -a 会告诉你系统目前的状况; <br><br>zcat 和 zless 可以帮助你阅读被 gzip 压缩的文字档 - 却不用先将它解压. <br> $ zless textfile.gz <br> $ zcat textfile.gz | lpr <br><br>6.6. 常用的档案, 与它们的延伸名称, 相关程式 <br><br>在 Linux 里你会遇到许多型式的档案 -- 它们都有不同的延伸名称. 以下是一个大 <br>略的列表: <br><br>..1 ... .8: Manual Pages, 由 man 来读取. <br><br>..arj: arj 产生的压缩档. <br><br>..dvi: TeX (後述) 产生的输出档. 用 xdvi 就可以阅读; dvips 可以用来将 .dvi <br>转换成 .ps 的 postscript 档. <br><br>..gif: 图型档. 用 seejpeg 或是 xpaint. <br><br>..gz: gzip 的压缩档. <br><br>..info: info 档 ( man page 的一种型式). 由 info 来读取. <br><br>..jpg,.jpeg: 图型档. 使用 seejpeg. <br><br>..ps: postscript file. 用 gs , 或是 ghostview 来阅读. (great !!) <br><br>..tgz,.tar.gz: 由 tar 包装, 再由 gzip 压缩的档案. <br><br>..tex: 经过 TeX 处理的文字档, TeX 是一个强大的排版程式. 许多的 distributions <br>都附有 tex. <br><br>..texi: texinfo 档. (和 .info 类似). texinfo 使用之. <br><br>..xbm,.xpm,.xwd: 图形档. 用 xpaint. <br><br>..zip: 由 zip 压缩包装的档案, 请使用 zip 和 unzip. <br><br>..Z: 由 compress 压缩的档案. <br><br><br>剧终 -- 现在... <br><br>恭喜你!! 你已经对 Un*x 有了最初步的认识, 而可以准备用 Un*x 来进行更多的工作了. 但仍要提醒你, 这样仍然不够, 你仍然需要多一点 Linux 的使用及尝试的磨链. 不过, 如果你只不过是要使用一些应用程式, 那麽以上的讨论我猜已经足够了..:) 虽然我现在 仍然对 Linux 懂得不多, 但是 Linux 已经可以帮我处理许多每天必需的工作了! <br><br>我相信你一定会迷上 Linux , 进而更进一步的学息它 - 每个人都这样的. 我猜, 有了 Linux , 你一定不会想念 DOS ! 虽然我并不敢奢望有太多的读者, 但我仍深切 的希望能够对阅读本文的读者有所帮助 :) <br><br>Disclaimer <br><br><br><br>"From DOS to Linux - Quick!" was written by Guido Gonzato, <Guido@ibogfs.cineca.it>, April 1996. Many thanks to Matt Welsh, the author of "Linux Installation and Getting Started", to Ian Jackson, the author of "Linux frequently asked questions with answers", to Giuseppe Zanetti, the author of "Linux - Il sistema operativo FREE SOFTWARE per personal computer 386/486", to all the folks who emailed me suggestions, and especially to Linus Torvalds and GNU who gave us Linux. <br><br><br><br>This document is provided "as is". I put great effort into writing it as accurately as I could, but you use the information contained in it at your own risk. In no event shall I be liable for any damages resulting from the use of this work. <br><br><br><br>This document can be freely distributed as long as: <br><br>- - it is distributed in its entirety, including this disclaimer and permission notice; <br>- - no money is charged for it; <br>- - it is not modified in any way without my permission. <br><br>Translations, prints, re-editings, or extractions from this document must be approved by me before being distributed. For any requests, suggestions, flames, etc., feel free to contact me. If you don't have e-mail access, my snail-mail address is: <br><br>Guido Gonzato - Via Monte Ortigara 19/a, 37127 Verona - Italy <br><br>Enjoy life! <br><br> Guido =8-) <br><br>中译感言 <br><br>看了这麽多前辈们累积的心血, 心中总是有点不安.. 偶然间有这个机会做一点翻译的 工作, 还是万万不足以表答小弟心中对前辈们的感谢.. <br>希望这篇文章能够对您有所帮助. 小弟第一次从事翻译的工作, 谬误在所难免. <br>关於本文的译文若是您有任何的疑问或是建议, 您可以到 freebsd.ee.ntu.edu.tw 的 Interpret 板讨论, 或是 e-mail <br>b84089@cctwin.ee.ntu.edu.tw 或 <br>mglow.bbs@bbs.ee.ntu.edu.tw 告诉我, 小弟一定会尽力给予满意的答覆.. <br>另外, 本文尽可在 TANet 上流传而不需作者(就是我啦)的同意.. 但如欲移作商业用途, 还是请先知会一下..:) <br><br> <ahref="mailto:mglow.bbs@bbs.ee.ntu.edu.tw">mglow.bbs@bbs.ee.ntu.edu.tw</a> <br> on 970211 </p><hr size="0"><p align="center"><a href="linux.htm">返回</a></p></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -