|
8 \: I7 e- ?( G初用Linux时可能有处处不方便的感觉, 可是等使用一段 时间掌握了一些技巧后就会感到越来越顺手了. 以下就是我 使用Linux以来积累的一些经验与技巧, 相信对初学者会有所帮助的. - f7 a* D0 V9 A3 h4 J
1. 使用虚拟控制台
) Y0 i/ ^5 M2 q: A登录后按Alt+F2键这时又可以看到"login:"提示符, 这 个就是第二个虚拟控制台. 一般新安装的Linux有四个虚拟控 制台, 可以用Alt+F1~Alt+F4来访问. 虚拟控制台最有用的时 候是当一个程序出错锁住输入时可以切换到其他虚拟控制台 ?
; K9 } K. F. ~( Z2. 拷贝与粘贴 ' E8 ^' c- v4 Z1 {( K1 w" K1 H
字符界面: 不管是Slackware 还是RedHat 安装后每次启 动时都会自动运行一个叫gpm的程序, 该程序运行后就可以用 鼠标来拷贝与粘贴了. 具体做法是按住鼠标左键拖动使要拷贝的地方反白, 这时反白的区域已经被拷贝, 再按鼠标右键拷贝的内容就会被粘贴在光标所在位置了. X-Window下: 拷贝的操作与字符界面下一样, 三键鼠标的话 按中键粘贴, 两键鼠标的话同时按左右键粘贴(须在配置XF86 时在鼠标的设置里选择 Emulate 3 Button)., C; S! m' y6 q
3. 快速进入某些目录
4 Z# y5 @; E! m+ B( T+ y6 R+ c键入 cd ~ 可进入用户的home目录. 键入 cd - 可进入上一个进入的目录.
! }) P r) l' ^6 `) p. M- w: x/ V1 _4. 软驱的使用7 n2 d( Q* E% e% |7 v: J. ~
如果是Linux 的ext2文件系统用如下命令: #mount -t ext2 /dev/fd0 /mnt dos格式的软盘则用命令: #mount -t msdos /dev/fd0 /mnt 然后就可以在/mnt里访问软盘的内容了, 注意在取出软盘之 前要先卸掉软盘上的文件系统, #umount /mnt 否则会导致信息丢失. 在软盘上建立文件系统可用如下命令: #mke2fs /dev/fd0 1440
# _. u. f# n3 c% r/ Y% \5. RedHat下显示彩色目录列表 ( b7 I: s2 F p5 y' i2 I
打开/etc/bashrc, 加入如下一行: alias ls="ls --color" 下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下: % O1 Q2 [- W( q+ o3 V. [
蓝色-->目录
' b" K) H, i$ Y* {7 o, K绿色-->可执行文件
7 A y5 U$ o/ _5 y红色-->压缩文件 9 P' @/ B' _: b: ~5 |2 ~
浅蓝色-->链接文件 1 D& l0 o% z/ z8 E
灰色-->其他文件 6 q5 Z; ~; _7 K" c H% B" A' N
6. 显示文件的类型
+ f+ D. J% G6 y5 J; I 用命令 file 可以使你知道某个文件究竟是ELF格式的可执行文件, 还是shell script文件或是其他的什么格式 例如: #file startx
) k6 R2 f: Y5 g7 .命令文件的路径# @& A1 [8 k% B8 p6 S1 ^0 x% M. I; j. @
当你键入一些命令如find, shutdown, mount, startx时是否 想过要知道这些文件究竟放在哪个目录里? 用命令 whereis 可以实现,如 #whereis startx
1 _9 P% l1 p3 r+ w8. 查找文件9 m2 I. T: V# D& I1 t* {, j" ~
find 命令要加一些参数才能查到文件, 如: #find /usr -name XF86Setup -print 在/usr里查找文件XF86Setup.
2 \' \+ v' [& w- j F2 n9. 删除无用的core文件
8 \8 J/ y5 {* p( t% {程序运行出后有时候会产生一个名为core的文件, 这个文件一般很大而且没什么用, 可以删除掉以释放空间.
7 U( H& a" j/ c2 _8 e/ Q10. 一次解开.tar.gz文件
9 \. q# B# y d q/ `; j解开.tar.gz文件一般要先用gunzip解压再用tar解包, 在Linux下可以一次完成, 如: #tar zxpvf sample.tar.gz . f9 o# y: _+ D/ d
11. 显示win95分区里的长文件名
) G0 g4 w! Y0 D. j; U' w/ U% v+ g如果你发现win95分区里的长文件命不能显示, 可以重新 用vfat方式来mount. 对于启动时就mount的分区可以修改文 件/etc/fstab, 将里面的msdos字样改为vfat. 如果无法用 vfat mount, 则要重新编译一下核心, 加入对vfat的支持.! m- p' x3 H, `3 }# T' j$ Q
12. Linux 里的Norton Commander 5 e( N# L) G7 d: M8 D- d
在提示符下键入命令mc后你就会看到一个与Norton Commander很相似的界面, 实际上功能也很相似甚至更强大, 比如可以直接对.tar.gz 压缩包里的文件进行操作(有点像 ZipMagic). " [$ ]3 p; U- P& X7 p8 `
13. 启动后直接进入X 编辑/etc/inittab文件,( C' I7 J$ Z( v8 B0 w
把id:3:initdefautl改为 id:4:initdefautl. 不过搜索路径可能会有些问题, 关机时 你得直接进入/sbin 里去执行 shutdown.
2 G! l* W+ `9 V6 o$ C U. `14. 后台运行 X 程序
, C, v9 p% D8 O8 ]# U, t J7 A% b执行一个X程序时别忘了在后面加一个&号,如 #netscape & 否则的话在你推出执行的程序之前再无法在那个终端窗口里输入命盍? # t# p$ A5 [( X; o7 W
15. 强行退出 X ( E; X9 X0 \8 R
有时候在 X 里由于程序出错鼠标键盘都不起作用, 这时 候不用着急, 因为在Linux下几乎不会像在Win95里那样恶性 死机, 你只须键入Ctrl+Alt+BackSpace键就可以回到字符界 面下了.
7 l. u1 f* g' m9 K! h16. 重装Win9x后lilo失效无法启动Linux
7 H, S$ C; r7 P6 w9 O# h" l 只须先用软盘启动Linux然后运行一次lilo即可。对于 RedHat可以用命令mkbootdisk来制作启动盘,例如: mkbootdisk --devices /dev/fd0 2.0.34-1 其中2.0.34-1是 /lib/modules下的一个目录。
& D t* y7 P0 z% m# ]% a17. 把dos/windows改为缺省启动的OS
}( N Y, z6 f& v) hRedHat把Linux作为lilo缺省启动的OS,即出现 boot: 提示符后直接回车启动Linux。如果想改为dos/Windows,修 改文件/etc/lilo.conf,把有关启动dos的部分放在前面,再 运行一次lilo即可。例如把lilo.conf从:6 [; w6 K7 ?) x/ H9 k+ ^% i1 C% {
boot=/dev/hda
( A% Z h }, k; M B y( h$ `map=/boot/map ) y4 ]+ o# H; _) n9 G) Q; D. {
install=/boot/boot.b prompt
7 y, A9 [% O' @% f# u% d% jtimeout=50
% I) I1 t/ _* r- Bimage=/boot/vmlinuz-2.0.34-1
9 Z+ J' X$ G+ b2 o5 f7 T. f0 llabel=linux 5 G$ u4 s) Z; r! {
root=/dev/hdc5 read-only 2 y6 I$ d4 y1 F0 o8 m
other=/dev/hda1
! e" S2 {3 X% `% U4 Hlabel=dos # K, M: e1 E4 F2 u# m! s6 r% Y! s
table=/dev/hda 改为:- F5 |1 Y) ~/ P3 H- e: y* X
boot=/dev/hda
S# O$ e" W9 Y( Z1 x9 Z1 }map=/boot/map 6 Q+ G# r& f& L( M0 Y5 N; T( K) W
install=/boot/boot.b prompt
- L( N. |: |: _# R W/ R# ?8 }timeout=50 ( T! N0 y- f5 L
other=/dev/hda1 - \% R1 \8 K0 p+ r2 V1 a5 z5 r
label=dos - V0 F e- b7 _ \6 T
table=/dev/hda8 P$ A- E" H Z w. |) Q5 c
image=/boot/vmlinuz-2.0.34-1
6 l8 x* ^, D# }& H( M5 Clabel=linux " z- F/ {7 o7 K4 d0 E7 z
root=/dev/hdc5 read-only
" U5 A3 k+ s# L( T2 q+ w18. 去掉引导区内的lilo信息
7 a' w& B9 d1 i/ w! ^安装lilo后如果硬盘数量或分区情况有改变的话将导致硬盘不能启动,这时只须用软盘启动dos再运行 fdisk/mbr 即可。(这个方法还可清除任何引导区病毒) 8 T. `$ \9 t& ?) j9 l3 y# Z4 G
19. 让 X 支持 AGP 显卡 , ^/ b5 H$ P% M
下载一个 AX 4.1 即 AcceleratedX 4.1 , 一个商业版 的 X Server 。除 AGP 显卡外 AX 还支持很多牌号的显卡。 另外还可以用AX 带的设置程序 Xsetup 方便的对分辨率,刷 新率等参数进行设置。不过我也不知道用AGP卡效果如何,因 为我现在还在用老掉牙的 S3 765 。
" L# P) v1 _3 q9 [3 t: h20. 把 man 或 info 的信息存为文本文件. f" w: Y' Y; i) w2 Y. H
以 tcsh 为例: man tcsh | col -b > tcsh.txt info tcsh -o tcsh.txt -s* ~2 t8 ~' `3 |" W* n0 ~3 Q
21. 用当前路径作提示符9 @$ \+ t) X0 x# G
对 bash 来说,在 .bashrc 里加一行: PS1="\$PWD\\$" 对 tcsh 来说,在 .tcshrc 里加一行: set prompt="%/>"3 y, e; M" @* k: k
22. 压缩可执行文件4 `, u/ Z- {- F, }8 u1 j
Linux 下有一个类似 dos 里的 pklite 和 lzexe 的命 令 -- gzexe 。而且压缩率一般都可以超过 50% ,在空间紧 张时很有用。比如: /dosc/temp# ls -al total 148 -rwxr-xr-x 1 root root 149564 Dec 8 15:33 gawk /dosc/temp# gzexe gawk gawk: 54.5% /dosc/temp# ls -al total 216 -rwxr-xr-x 1 root root 68710 Dec 8 15:36 gawk -rwxr-xr-x 1 root root 149564 Dec 8 15:33 gawk /dosc/temp#
q4 [# X! ?! b/ j23. 查看 Linux 启动时的信息9 x9 w# k. `5 Z1 e) u( R* g
Linux 启动时屏幕显示的信息来不及看清就一闪而过, 如果对这些信息感兴趣的话可以在启动完后用命令 dmesg 查看。1 W, {" J/ S7 ]
3 O$ z7 {4 _" R4 f3 e) ]
24. 处理文件名内含有特殊字符的文件
# ]$ K, j& \- g) v" S5 P如果有一个文件名叫 -file 如果想删除它,键入 rm -file 会显示 invalid option ,原来由于文件名的第一个字符为 - , Linux 把文件名当作选项了,可以加 -- 解决 这个问题, 如 rm -- -file 。如果是其他特殊字符的话可 以在特殊字符前加一个 \ ,或者用双引号把整个文件名括起来。 D4 R: N. h. A- |4 J
25. 一次处理一整个目录
; l! p% l( Z, P) L( O% {7 zLinux/UNIX 的很多常用命令如 rm , cp 等都有一个参 数 -r , 是递归的意思, 命令里加了参数 -r 就可以对目标目录及其下所有子目录进行操作,如: rm -rf /test (f 是 force 意为强行) , 该命令完全删除 根目录下的子目录 test ,作用类似于 dos 下的 deltree ,当然使用这个命令时要特别小心。再如: cp -r /test /test1 有类似 dos 下 xcopy /s 的作用。
) J* `7 D Y6 Y$ {& z( A5 N26. 修改登录画面 ' Z/ |' \0 N+ S$ \. m0 k' c4 M
对本机: 先修改文件 /etc/issue 改为相要显示的内容, 再修改文件 /etc/rc.d/rc.local(RedHat) 或 /etc/rc.d/rc.S(Slackware) 把下面几句注释掉: # This will overwrite /etc/issue at every boot. So, make any changes you # want to make to /etc/issue here or you will lose them when you reboot. echo "" > /etc/issue echo "Red Hat Linux $R" >> /etc/issue echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue cp -f /etc/issue /etc/issue.net echo >> /etc/issue 不然的话每次重新启动 /etc/issue 都会被更改。 对 telnet 的远地机器: 先把文件 /etc/usr/sbin/in.telnetd 改名,如改为 in.telnetd.exe ,再编一个名为 in.telnetd 的 shell 脚 本, 在显示完需要的内容后再调用 in.telnetd.exe 。如: #!/bin/sh cat /etc/login.banner #需要在登录提示符前显示的内容 echo -n "" exec /usr/sbin/in.telnetd.exe
; }7 e% y, i5 Z$ Y, s4 x% e27. 几个有用的别名0 g( o% e3 {$ ~. w5 W) `& \9 b
几个能方便操作和减少误操作的别名,建议把它们放到启动 文件里, 如 /etc/bashrc 。 alias rm=’rm -i’ alias cp=’cp -i’ alias mv=’mv -i’ #前三个别名的作用是在删除、覆盖文件之前先提示确认, RedHat已经自动 #加上了,强烈建议Slackware的用户也加上,因为 Linux/UNIX下文件一旦删 #除就再也无法恢复了。 alias l=’ls -l’ alias cd..=’cd ..’ alias utar=’tar xvfz’ #解 *.tar.gz 文件 alias inforpm=’rpm -qpi’ #显示rpm包的信息 alias instrpm=’rpm -Uhv’ #安装rpm包 alias listrpm=’rpm -qpl’ #列rpm包内的文件 alias uistrpm=’rpm -e’ #反安装rpm包 * @. `& s% ] U+ \5 F
28. 使用命令补齐
7 S! R% j8 g+ V' ^; F. {8 O3 h所谓命令补齐(Command-Line Completion)是指当键入的 字符足以确定目录下一个唯一的文件时只须按 Tab 键就可以 自动补齐该文件名的剩下部分,例如要把目录 /freesoft 下 的文件 gcc-2.8.1.tar.gz 解包,当键入到 tar xvfz /freesoft/g 时如果该文件是该目录下唯一以 g 起头的文件 的话就可以按下 Tab 键,这时命令会被自动补齐为:tar xvfz /freesoft/gcc-2.8.1.tar.gz ,非常方便。
4 q( D% d( `, P, A2 |- F9 J29. 最后一条技巧 0 W% M+ r* u6 ~) ]/ _3 Q7 K) x9 }- b4 z
有时间的话多看看系统提供的FAQ文件,因为通常遇到的 问题大多数都能在里面找到答案 |
|