哥的 Linux 私房菜
from http://linux.vbird.org/
基本的流程
* 先 Linux 的安指令起:
有 Linux 怎 Linux 呢?所以好好的安起一套你需要的 Linux 吧!然 Linux 的 distributions 很多,不基本上架都是大同小的, 差在於介面的和力套件的不同了!所以,一套你喜的就好了, 倒是有哪一套特好~~
* 解 Linux 的案架限概念:
重要!由於不同的限定妨你的使用者的便利性,但是太於便利又致入侵的可能! 所以需要解一下你的系呦!
* 多接文字介面:
量以文字介面一些基本的 Linux 使用技巧,然一始度慢,但是熟悉之後, 您未的之路是以指增加的型增您的 Linux 技呦!
* BASH 相的咚咚:
既然要玩文字介面,那 BASH shell 玩意,面的『正表示法』、 『管命令』『命令重向』等等,真的需要解比好呦!此外,了助您未的管理, shell scripts 也是挺重要的!
* 一下如何使用 Shell Shell scripts 的法:
是稍微了,不也建一呢!於管理 Linux 主的用途很大呦!
* 至少一定要解套件管理:
得最重要的套件管理,亦即 RPM Tarball 的技巧完整的建立概念, 是您相重要的一!
* 作的重要性:
在看本或者路上的相介之後,千得自己作看看, 有任何事情比自己作的更快的!此外,不要信本或者路上的教, 自己身去理解,才能中的含意技巧。
------------------------------
GNU/Linux distribution(行套件, distro)的
除了 GNU/Linux 和其他作系的比外, distro 的也是常引起口水。原因倒不是哪 distro 真的比「好」的,而是每人使用的目的及性有所不同,所站的角度不一,然主就不一了,其,「好」的定在哪呢?明的位不妨著思考一下。人的建位,的真的是很浪,除了上述的理由外,有各 distro 互相是互有消的,而且 FS/OSS 都是 open source,差不太大,倒是各家 distro 有各家 distro 的一套使用哲,他是某些族群的特性,但永法照到全部的族群。所以,就有人在使用的 distro 始接,好好去研究才是正,通常很少有人到尾只接一 distro 的。
Linux 其只是 Linus Torvalds 所的核心(kernel),必需配上多工具(大部份是 GNU5 的)才能成一完整的作系,因此就有多的商或在做整合的工作,就是各 distro 的由。但由於主要部份是:kernel + GNU Tools + XFree86,因此基本操作是大同小,不必太心。
安方式及安所使用的指令各 distro 很可能不一。在 i18n架下,目前所有的 distro 都已具中文能力,只不是有有微好及有有安中文字型的。各立的 distro 您可在下列地方找到:
telnet://bbs.sayya.org
http://www.linuxfab.com/indexForumTree.php
http://www.slackware.org.tw
http://www.gentoo.org.tw
http://moto.debian.org.tw
http://knoppix.tnc.edu.tw
包括 CLE, Slackware, Mandrake, GNU/Debian, SuSE……等等,如果您想先解各 distro 可以去逛逛再定,甚至有多 distro 都已有心同好把安及使用手整理成中文供免下。注意一下,不要把 distro 的行版本成是 Linux kernel 的版本,例如 Mandrake 9.2 9.2 是 distro 的版本,而他的 Linux(kernel) 是 2.4.22 的版本,千搞了。所以,有 Linux 9.2 版本的(至少最近的是不展快速)。
另外一要注意的地方,目前大部份的 distro,例如 Debian, Mandrake, Red Hat,他的安套件,主程式和展函式(含有 devel 字的套件)是分包的,通常,些展函式的部份都不安上去,所以法相程式,如果您也想自行程式的,忘了把些含 devel 字的套件也安上去,才找得到函式(*.a,延伸名是 a 的案)及所需要的(*.h,延伸名是 h 的案)。
重的提醒各位,有空把您的安光碟 mount 上,看看面有些什,最近由於安程式的自化,多使用者跟本搞不清楚有什套件可以用,以致 BBS/News 上常出缺什程式,要安什套件的,千拜熟悉一下自己的有些什存。
-----------------------------
不的英文站介
http://www.cafecomputer.com/faqindex.htm
是 John Pisini 先生的 Linux-FAQ (Yet another Linux FAQ),是由他自行撰的另一份 FAQ 文件,常常更新,料相新,很值得考。
http://www.tldp.org/
是 LDP(Linux Documentation Project) 的大本,就是一些 HOWTOs 文件。在的都是最新的版本。
http://homepage.powerup.com.au/~squadron/
是一就完的 Linux 手。面含重要的系定及一些相用的指令,可以下後印出放在手考。是一,但我下的 pdf 是,作者大概是指正反面都印吧!:-)
http://www.xfree.org/current/
是 XFree86 的文件大本。
http://pdx.freedesktop.org/
新一代的桌面境 project。由於 X protocol 的老,XFree86 的步也稍微慢了些,方案突起,值得大家注意。
------------------------------------
充分利用系的文件
man pages(使用 man 指令)
info pages(使用 info 指令)
/usr/doc (或 /usr/share/doc) 目下的料(尤其是一些 HOWTO 文件)
/usr/X11R6/doc
/usr/src/linux/Documentation 下的料
得安要把一些文件安上去,文件躺在 HD 或 CD ,跑到 BBS/news 上。
多上明或本上找不到的容,如一些程式使用明,其就在 /usr/src/linux 及其下的子目,甚至有些是在程式的注解。
如果您的 distro 中文版的 HOWTO 文件,到: http://www.linux.org.tw/CLDP/ 一,有量很多的中文翻文件。
文件的超多,但心,不必刻意去背,只要有印象就行了,些系上的文件通常是查用的,常用的指令及,查多了自然就起,查系上的文件可是基本功夫,千忽略了。
-------------------------------------
建先熟悉的指令及架
不做明,只做例式的明,以上能用原,要看 man pages、info pages、HOWTO 文件或籍的明。最重要的是,您要自去操作看看。始由於不熟悉,很不,但可以把一些常用到的 tips 收集起,就像以前英文先由句型著手一般,而且,量由指令的完整原文。如果您是在 GUI 的境下,端(rxvt/xterm...),看。千得 Un*x 的哲,工具的合,所以有多指令是可以合在一起使用的。
1.uname
是得知所用系的指令。包括使用的是什系、kernel 版本……等等。
uname -a
上就,有什果出。
2.locate
是快速找案的指令, locate locate 看看。行指令,前面的 locate 是指令,後面的 locate 就要去找的案名(出果含路在)。如果跑出一大堆的果,那可以使用 more 出的西分停,例如:
locate locate | more
,locate locate 的果,就透管21,引 more 器做一步的理。一每出一,就停,按 Space 又下一,可考 man more 或本第 11 的明。如果 locate locate 有息出的,用 updatedb 更新一下系料。比的件式搜,研究一下 find 指令。
3.> 及 >> 重
重(redirect)的功能在 Un*x 系吃很重的份量,通常可以使用管的都可以使用重的方式,果入的案中。例如上面所的 locate 的例子,也可以:
locate locate > locate.lst
一,本是在幕示的容,在被向 locate.lst 案了,就可以案做一步的理或份、保存。那 >> 又是什呢?和 > 一,但是不去除原案的容,而是附加上去。
有一很特殊的使用方法,那就是把一案的容清掉:
> locate.lst
把 locate.lst 案的原容清掉,成一空案,的思考方式就是,你把有的西入一案了,而 > 本就先原的容清掉。
4.which
找系上的指令,是否在目前路22所及之,例如,想知道 ls 指令系上有有,如果有的,是在哪,就可以下 which ls。 which 用的相繁,得好的,甚至 alias 都示。一般的 distro 在 /etc/profile.d/which.sh 定好。例如:
alias which='alias | /usr/bin/which --tty-only \
--read-alias --show-dot --show-tilde'
一,每次行 which 就加了些。忘了 man which。
5.alias
是 bash 建的指令,作用是替某些指令取名,使用上方便,例如第 4 的 which 就是一很好的例子。通常,目前的 distro 都您定了一些的 alias,不,不一定合您需要就是了。
竟 alias 是非常人化的西,除非是系上的需要,是有必要整系的,以免本尊、分身混淆不清。像我自己的 ~/.bashrc23 就了一堆,但其他人不一定和我的用法一吧?
# .bashrc
alias m='mount'
alias rm='rm -i'
alias cp='cp -i'
alias df='df -h'
alias du='du -h'
alias v='ls -l -F --color'
alias d='ls -F'
alias um='umount'
alias telnet='telnet -8'
alias l='locate'
alias zg='zgrep'
alias g='grep'
alias bz='bzip2'
alias gz='gzip -9'
6.find
是的找案的指令,在要找特定的案很好用,找到的案也可以加上一些特殊的理。可加上不同的件搜,但搜可能久些,除非必要,不然,使用 locate 可能更方便。
find . -name "*.tmp"
找目前目及其子目,副名 tmp 的案
find . -name "*.tmp" -exec rm {} \;
同上,但找到後行除作
英文句代表行目,然也可以改成其他的目。其他,也可以找特定大小,或特定建立的案,就各位研究一下 man find 了。
7.grep
也是搜工具,但他找的是案容是否含有某些字串。
grep Linux *
找目前目(不含子目)所有含有 Linux 字串的案
grep -r Linux *
同上,但子目也去找
指令常和其他的指令合起使用,例如,前面所的 locate locate,我就可以再分析一下,以便小搜:
locate locate | grep bin
只找含有 bin 字串的 locate,就小至 bin 目的(有例外的情形)。
locate locate | grep doc
同理,要找 locate 的相明,就可以使用
locate locate | grep doc | more
也行!
8.man (manual)
是看 manual pages 上明的指令。 man locate 看看。按 h 看操作明,有空的就 man man。善用 man -k(或 apropos) 找系上的指令。例如要找 ftp 的相指令 man -k ftp 就列出一堆出。
9.info(information)
比 man 更大的上明的指令,通常 man 主要是把程式的用法(如使用哪些代表什意)列出,而 info 得更,有它的展史都有。不不是每程式或都提供 info 的明,此 info 就直接把 man 的明拿用了。 info ls 及 man ls 的明有什不同。按 Ctrl + h 看操作明,有空的就 info info。有 pinfo 指令,但可能系上有,找看看您的光碟上有有,可取代 info 指令,操作便,而且有彩色。
10.ls (list)
就是 DOS 的 dir 指令,意思就是 list 啦!功能比 dir 多了!ls 的相多,忘了 man ls,找些您喜的看。
11.cat (concatenate)
可以示案容或合案成一案。
cat bg5.txt 示 bg5.txt 的容。
cat 1.txt 2.txt > 3.txt 1.txt 及 2.txt 合成 3.txt。
12.more (and less)
在 DOS 也有,不功能不可同日而。改用 zmore 及 zless (*.gz, *.Z) 或 bzmore 及 bzless (*.bz2)。more /etc/profile 或 cat /etc/profile | more 方式皆可,後者的用法,在不是案的情形用得到,例如,ls -l | more 就是一例,ls 是指令,他的出引(就是那 `|') more 理。less 和 more 乎是同的功能,只是 less 是後展的,改了一些 more 不方便的地方,例如向後翻,man 的分制,靠的就是 less。
13.gzip, bzip2, tar
是 Un*x 系常用到的、打包的工具,必要先熟悉,在路上下的案有多都是 *.tar.gz, *.tar.bz2, *.tgz 的格式,您要解就要利用到些工具。
tar zcvf test.tar.gz test/
test 目的所有案打包成 test.tar.gz
tar zxvf test.tar.gz
test.tar.gz 解至 test/ 目下,自建立目
14.wget (web get)
是抓的工具,如果有安,把您的安光碟 mount 上,上去,http, ftp 上的案都可以抓,整站抓下也。一般使用很:
wget ftp://xxx.xxx.xxx/target.tar.gz
wget -c ftp://xxx.xxx.xxx/target.tar.gz()
wget -spider ftp://xxx.xxx.xxx/target.tar.gz
不下,只是看案存不存在
wget http://xxx.xxx.xxx/target.tar.gz
wget -m -np http://xxx.xxx.xxx/target.html
以 target.html 中心的整相案抓下,m=mirror,np=no parent 不抓上目的案。
man wget 有相多的例供考,也有 gwget 的 GUI 界面供使用。
15.ln (link)
ln -s orig.txt link.txt 原存在的 orig.txt 建一 link.txt。有如 Windows 系中的捷 (shortcut) 一。不加 -s 的,是硬(hard link),除非找出他的 inode (ls -i),不然,法分出是分身,是本尊。千注意,原始(orig.txt)在前面,(link.txt)在後面。
16.chmod (change mode) 是改案限的指令。在 Un*x 系中,案限的念很重要,限不,可能打不案而法,行的,法行。
chmod +r test 使案可(read)
chmod +w test 使案可(write)
chmod +x test 使案可行(eXecute)
使用 + 就是加入所指定的限,使用 - ,就是去除所指定的限
限的然那,往後另立章明,以上只是篇文章上用到的。您可以先 man chmod 及 info chmod,想解案限的,可以 info fileutils File permissions 那章。如果使用 GUI 的案管理程式,那大概些限都被包起了,可以由窗中很容易就行更改,然,大量案的限改是要在命令列行比有效率。
17.mkdir (make directory)
是建立目的指令。使用上很,mkdir test 就在目前的目下建立一 test 子目。
18.rm (remove)
是除案或目的指令。在 Un*x 系,案一旦除就很回,所以,小心使用,一般都像我在前面所的 alias 一,加上 -i ,每次的除案,系就要求,多了一保障。除目的,要多加 -r ,如果已再三定目通通要除,案多,又有子目的,由於加了 -i ,一一要求,不,可以使用 rm -fr 迫除目,而不做。
19.mv (move)
是移案或目的指令,包括更改他的名。例如:
mv test.tex test.txt
案 test.tex 改名 test.txt
mv back bak
目 back 改名 bak
mv test.txt /tmp/test.txt
test.txt 由目前目移至 /tmp 目下
20.telnet
打 BB ?telnet bbs.xxx.xxx.xxx 就可以了!然您要先有中文端,例如:chdrv, jmcce, crxvt...等等。而且要有中文入法,chdrv, jmcce 就有附,crxvt 的可配合 xcin 入中文。如果碰到,可使用 telnet -8 看看。
30.mount/umount
是一和 Windows 系很不一的念。在 Linux ,所有都是做案的,就在 /dev 目下。像 /dev/hdc 是我的 IDE CD-ROM,平常就是和 /dev/cdrom 在一起,在入 Linux 系,只(mount)上 root 案系,其他的就要看 /etc/fstab 是否有定,有的,也上,有的,就要手了。
好了,我的 /etc/fstab 有一行是:
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0
因有 noauto 的定,所以不自上。要上,只要下:
mount /mnt/cdrom
即可。如果有事先在 /etc/fstab 定,那就得自行指定,例如:
mount -t iso9600 /dev/cdrom /mnt/cdrom
或
mount -t auto /dev/cdrom /mnt/cdrom
要注意的是,/mnt/cdrom 目要事先就建立好,而且前面的是 device,後面的才是磁碟上的目,千不要搞了。-t 主要是指定案系 (file system type),不指定或指定 auto mount 自去判。相的指令就是 umount 了。
umount /mnt/cdrom
31.ps (process status)
是察目前系所有入的所有行程(process,想像成入的程式)。一般使用 ps aux 或 ps auxw 即可,其中示出的第二 PID 就是 process ID ,系就是以辨支程式而不是原程式名。
32.top
有似 ps,不,他是系的。而且可以直接在下必要的指令,可入 top 後按 h 或 ? 看一下他的明。
33.free
是得知系用的情形。有,是 BBS/news 上常的 FAQ,那就是我的 free 位怎那少?我明明有 1GB 的 RAM 呀!不必疑,Linux 拿去自行用,例如做 buffer/cache 之的,你要用到上你的啦!
34.du/df
是察硬碟使用的情形,disk usage/disk free。通常我都加上 -h 的,因我是人,那 h 就是代表 human,示 M/G 等位,比好察。du 的,比常用的是加 -s ,意思是 sum,只告就好了,不必唆的以下子目的也列出一大堆出, du -s /usr(那快啦!要等他算一下,多工嘛!先去做其他的事情),然後再一下 du /usr 看有什不同。
35.kill/killall
由 ps aux 察到有某一程式用大量的 CPU,而且行不正常又不退出,只好手了。只要找出程式的 PID,然後:
kill PID
即可。如果是不掉,那就用最害的手招「九神功」:
kill -9 PID
那 killall 是什用的呢?那是比的手,不必找 PID,只要知道程式名即可,他把程式名成 PID 再系,例如行中的 vim,只要下:
killall vim
即可,但小心,一所有行中的 vim 都掉。killall 也可以加 -9 。
先熟悉任一器
在 Un*x ,有多案的定,都得自行手去定,而 Un*x 的器,在是多的不像 :-)。自己手而其他 Un*x 系也有的器使用。vi, emacs 乎是 Un*x 系的基本配,然使用上非常有性就是了!另外有 joe, pico...等的。
vi(m) 的使用明:
http://edt1023.sayya.org/vim/index.html (中文)
http://edt1023.sayya.org/vim/vim-draft-030303.pdf (中文)
或
Vi IMproved - Vim(一本 OBP24 的,使用 OPL25授):
http://www.newriders.com/books/opl/ebooks/0735710015.html (英文)
http://www.truth.sk/vim/vimbook-OPL.pdf (英文)
然,入 Vim 後,按 F1 有非常的上明。
emacs 中文使用明:
ftp://beta.wsl.sinica.edu.tw/aspac/doc/94/94016.ps.gz
站有一些中文文件,是中研院的 ASPAC ,先抓一下:
ftp://beta.wsl.sinica.edu.tw/aspac/doc/announce.doc
看一看再定要不要抓其它案。
入 emacs 後,按 Ctrl-h 後,再按 t 有明。emacs 的明也是相的富。
joe 中文使用明:
http://www.linuxfab.com/indexColumnData.php?CID=61&FIRSTHIT=1
pico 不必中文明了吧!:-) 是件新 pine 所附的器,您系上不一定有。
36.bash
是 GNU/Linux 的 shell,的,您一入 GNU/Linux, shell 就您和作系的通的工作,就像 DOS 的 command.com 一。光一 shell 要的,就可以出一本,您一有空的,不妨 man bash 或 info bash,熟悉一下,一些有 shell 的境定,都有的交待。
bash 的相可以先考 FAQ:
ftp://ftp.cwru.edu/pub/bash/FAQ
深入一的文件:
http://www.tldp.org/LDP/abs/html/
bash, abs (Advanced Bash-Scripting) guide 文件很值得研究,有相多的例供考,在作者的有 tarball26 可以下。
如果使用的是 GUI 介面,那可以叫出 gnome-help-browser 或 khelpcenter (版 kdehelp),可直接叫出然後由,或加,看一些系上就有的明文件,例如叫出 bash 的 man/info:
gnome-help-browser man:bash
gnome-help-browser info:bash
khelpcenter man:bash
khelpcenter info:bash
由於 GNOME/KDE 境有 man/info pages 的明文件,因此要使用工具叫用他的明文件,而工具也是可以解 man/info pages 格式,使用上相方便。
man, info, more, less 的搜功能
按 / 然後入要找的字串,再按 Enter 即可,按 n (next) 找,大的 N 是往回(上)找,按 q (quit) 。
偷:指令全(Tab )及史指令的再使用
有人或使用在命令列入指令很麻,尤其是碰到指令名很的,多多利用全,就是 Tab ,只要入前面字母,按一下 Tab 就去全系中所能找得到的所有可能指令(包括 bash 的建命令及境27、hostname28、函、username29)、目、案名,相方便。
另外上下方向可以叫出所曾下的指令,history 指令,更可以列出所曾下的指令史清供,只要在清前加 ! 即可行整串指令容。
37.od
不必先熟悉,只是提出「搞怪」一下,好玩用的。你可以 man od,大概看一下容,然後,思考一下指令能什用?然後再照一下我底下的用例,你,西真的是死的,人才是活的。:-)
echo '你好' | od -t x1
生以下的果:
0000000 a7 41 a6 6e 0a
0000005
好吧!葫到底是在什碗糕?什大,只是在查「你好」字的 Big-5 中文,由以上的果可以知道,「你」的 Big-5 是 0xa741,而「好」的是 0xa66e。把 x1 改成 a 的,出的果是所的 ascii 字元(注意,有些是不可字元,幕上不一定看得到)。不相信的,把 xcin 叫出,按 Ctrl-Alt-0 到入法,然後入 a741 看看是出什字。