数学建模社区-数学中国

标题: Linux 使用技巧集锦 [打印本页]

作者: huashi3483    时间: 2004-9-27 14:59
标题: Linux 使用技巧集锦
初用Linux时可能有处处不方便的感觉, 可是等使用一段时间掌握了一些技巧后就会感到越来越顺手了. 以下就是我使用Linux以来积累的一些经验与技巧, 相信对初学者会有所帮助的. - d+ t6 Y$ K( F1 z
& R- [0 o% o% }4 T; d7 Z
  1. 使用虚拟控制台
7 M: K8 O" K: P/ `/ K9 `+ z8 Z
# e" O& T5 a5 W& b4 r5 G4 H  登录后按Alt+F2键这时又可以看到"login:"提示符, 这个就是第二个虚拟控制台. 一般新安装的Linux有四个虚拟控制台, 可以用Alt+F1~Alt+F4来访问. 虚拟控制台最有用的时候是当一个程序出错锁住输入时可以切换到其他虚拟控制台登录进入后杀掉这个出错的进程. ) W8 _0 T/ F( ^, K0 [8 N

( O  V% I* @  o  }/ o  2. 拷贝与粘贴- m- k( L( G6 {5 J: D7 B
+ Q1 v; a" C; t' v0 }+ ~5 S7 x
  字符界面: 不管是Slackware 还是RedHat 安装后每次启动时都会自动运行一个叫gpm的程序, 该程序运行后就可以用鼠标来拷贝与粘贴了. 具体做法是按住鼠标左键拖动使要拷贝的地方反白, 这时反白的区域已经被拷贝, 再按鼠标右键拷贝的内容就会被粘贴在光标所在位置了.
+ ^& W9 G6 A- B& w* `6 b; e5 q4 Q9 p! `$ e& W: E# V0 _" {
  X-Window下: 拷贝的操作与字符界面下一样, 三键鼠标的话按中键粘贴, 两键鼠标的话同时按左右键粘贴(须在配置XF86时在鼠标的设置里选择 Emulate 3 Button). . A; _' @* S! T6 O" i8 _

% _3 z3 l" d2 q4 A' W  3. 快速进入某些目录
& U# u9 p! Y0 V7 L( n* j, `. r9 l; t# P  L- K0 V
  键入cd ~ 可进入用户的home目录.
& G% l* ~" Q- h2 ?8 I$ Z$ T7 V# ]% k5 q9 `2 R4 r5 x+ _6 p
  键入cd - 可进入上一个进入的目录.
9 H, N) ^8 U4 }) J2 ^1 H  h* d
! `; I8 A+ B% d: F$ ?7 y% O+ r  4. 软驱的使用% v4 ^% C0 \  ]/ s$ t

* ^* n( |2 i! M  如果是Linux 的ext2文件系统用如下命令:
- O3 I5 x2 _6 A3 y# n$ Y1 M
3 P- ]" w9 b7 M/ q' J  #mount -t ext2 /dev/fd0 /mnt
# s, N9 F: R/ n' w  ]5 j$ X9 _7 }9 ?9 u1 i
  dos格式的软盘则用命令: . G( [% P( o8 R3 \, Y
, B$ K7 b/ ?0 [: v2 b( r+ b  K- f: Q4 q
  #mount -t msdos /dev/fd0 /mnt 9 Q7 Q9 C( h+ `* _) u  I

- {: \6 o. V. w) @" V  然后就可以在/mnt里访问软盘的内容了, 注意在取出软盘之前要先卸掉软盘上的文件系统,
% K# u! W- y! ?7 p( o& D- M0 n5 H5 Y7 i: ?
  #umount /mnt
) i+ m2 Q5 Q  c6 g* h2 s& f8 R8 y0 H4 j3 I& ~9 ~0 s2 H  B6 v8 A' Q& e$ G
  否则会导致信息丢失.
1 t/ P! a" N$ n# n9 t* ?
. e) c- r( D0 H  在软盘上建立文件系统可用如下命令:
5 K/ t# Z& f7 X/ Q4 W
5 g# L- d0 I& l% |( a! T) j$ J  #mke2fs /dev/fd0 1440
& {5 K+ w$ V3 u) I3 B; ]( s# x# u1 a" P9 B7 d" O) M6 c3 ^% S9 B
  5. RedHat下显示彩色目录列表
; R3 p1 d3 T6 h4 Q% [- h
0 h: p6 b' Z9 S  I9 W$ G$ @  打开/etc/bashrc, 加入如下一行: . D; |& G+ o& c5 T5 c  Z" k
$ @+ _# U: I9 g' b& T2 R
  alias ls="ls --color" . V/ |/ X0 }2 g$ G; X1 }: ^4 J

% \$ R) N- ^- H8 S! q+ x- [  下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:
5 `+ m+ Y  y  K5 Z. L6 u1 V& V3 @3 k, s1 v$ ^2 y
  蓝色-->目录 : S& m- }) W2 o$ s" G& s
2 `, \: t* \) J4 f
  绿色-->可执行文件 : R- v: G# p+ L! Q, c

4 j$ [9 y( M# S5 H) \: W) }  红色-->压缩文件
# @( \8 a& u1 E7 [- Z8 i' s
* d7 V# g! j% U7 }- q# x  浅蓝色-->链接文件 ( ?6 w& n. m: B: }8 I9 x
9 Q  W# q2 q( g% V
  灰色-->其他文件
. m; E: s5 G, b
$ k8 ^2 E9 [' u+ R+ `  6. 显示文件的类型2 _& c2 a/ W9 t0 A
9 Z# A" R# G1 ^* J
  用命令file 可以使你知道某个文件究竟是ELF格式的可执行文件, 还是shell script文件或是其他的什么格式, 例如:
' W& ^& v' k3 _% x7 K+ O! w
2 |  n, ?: v! Q& ^  #file startx & }8 ?/ D) t  L+ t  F
) X( U5 U6 ~& [2 P3 w# W
  7 .命令文件的路径
5 P8 ?- s% R' I# O; ]9 S) l' n6 C7 U# c/ o, z' Z
  当你键入一些命令如find, shutdown, mount, startx时是否想过要知道这些文件究竟放在哪个目录里? 用命令5 u/ ]8 L. [2 A/ D% Y1 b6 y$ S1 q
( J6 p% q: L7 t
  whereis 可以实现.如 4 n/ j2 P  e. ?4 c/ O

- d7 K' g7 p6 v* ]$ X, F  #whereis startx : x+ }; x9 p  ?" \+ V6 {

- t# `! t# W1 j  8. 查找文件
+ v: a5 i& p, j, @4 `# Q8 G0 h
# E/ Q3 h- A( ~1 H5 D# K  find 命令要加一些参数才能查到文件, 如:
1 P# Z6 U1 j5 W  s# x
3 y: N/ Q( d8 D" u7 w  #find /usr -name XF86Setup -print - J; U2 \: F2 A7 T/ w+ Z# G

& f; o) ?$ P' x  在/usr里查找文件XF86Setup.
5 E; h6 [: w# ]* p- q1 g9 {' n
+ T& M' T- D: K  9. 删除无用的core文件
# R- q" \. N; @1 Z$ g
  i/ j- C7 J0 R6 v8 ~  程序运行出后有时候会产生一个名为core的文件, 这个文件一般很大而且没什么用, 可以删除掉以释放 空间.
; ?0 \( G7 f: n: X: ^8 f4 o& ~& ]1 q  d+ E& C7 h1 h6 |0 ~; J
  10. 一次解开.tar.gz文件 8 a# h/ I' C' L+ P* i4 i% j4 z+ e
/ l0 d+ V3 N- p
  解开.tar.gz文件一般要先用gunzip解压再用tar解包, 在Linux下可以一次完成, 如:
# {$ {6 \* D6 M; i: p8 F2 I  K( T6 `" c" O: J
  #tar zxpvf sample.tar.gz
' W0 N5 E7 X* L# P( E
+ _8 M+ Y2 J# R2 m& D  11. 显示win95分区里的长文件名
) @# g; r, M- `8 A9 n8 f( y# f; T9 @) f7 c+ p2 ^4 u: }, l
  如果你发现win95分区里的长文件命不能显示, 可以重新用vfat方式来mount. 对于启动时就mount的分区可以修改文件/etc/fstab, 将里面的msdos字样改为vfat. 如果无法用vfat mount, 则要重新编译一下核心, 加入对vfat的支持. * \: U& b1 F( v# f0 u& t$ c3 E

6 t  ?- `; c4 X& h/ ?  12. Linux 里的Norton Commander
  H( _3 Y4 W$ ]  X: X& G
3 L1 |2 [9 [6 \  在提示符下键入命令mc后你就会看到一个与Norton Commander很相似的界面, 实际上功能也很相似甚至更强大, 比如可以直接对.tar.gz 压缩包里的文件进行操作(有点像ZipMagic). # }; c" }, o) z! ^8 ?2 |4 l3 k

2 A9 k. ?* N, D& b  B: P) P/ m  13. 启动后直接进入X
) w( p! W" g7 s4 ?; M1 T! Y1 |+ f
+ o' [  o, A0 S& j: Y0 o  编辑/etc/inittab文件, 把id:3:initdefautl改为 id:4:initdefautl. 不过搜索路径可能会有些问题, 关机时你得直接进入/sbin 里去执行shutdown. ; \. v8 o- H0 L# ^; |
# M, D1 y, p2 E5 H+ k5 {# [& O4 H
  14. 后台运行X 程序) X2 V1 G* u- e& [

3 f6 l6 [; y( ^9 @1 n0 Y7 C* T  执行一个X程序时别忘了在后面加一个&号,如 #netscape & 否则的话在你推出执行的程序之前再无法在那个终端窗口里输入命令了.
  L/ \! Y8 U  w4 }( `' R6 y- z5 `& H" D* a
  15. 强行退出X % |3 W3 C4 s) ^4 W+ z
$ h: o5 U  R1 K  p
  有时候在X 里由于程序出错鼠标键盘都不起作用, 这时候不用着急, 因为在Linux下几乎不会像在Win95里那样恶性死机, 你只须键入Ctrl+Alt+BackSpace键就可以回到字符界面下了.
作者: huashi3483    时间: 2004-9-27 15:00
 Linux 使用技巧集锦的第二辑,主要是一些初学者容易遇到又不容易解决的问题,希望大家能喜欢。另外如果有错误的话欢迎来信指正,我将非常感谢。
& z* R- `3 W# f0 F
+ }" r6 a( X! ]( }! Q  1. 重装Win9x后lilo失效无法启动Linux " K' x2 Y1 I+ y! c3 i3 g- w
" x. _" M' y. T3 A4 a. N
  只须先用软盘启动Linux然后运行一次lilo即可。对于RedHat可以用命令mkbootdisk来制作启动盘,例如:
, x, |3 B5 H; e
1 V. d" y. x5 v9 T. g$ x  mkbootdisk --devices /dev/fd0 2.0.34-1, g' o/ I; L, E# X3 c5 H: c1 ^' d
+ P0 B. W3 C) v- c
  其中2.0.34-1是 /lib/modules下的一个目录。 " E" Q1 ^4 k- C  Z: Q: m

- @# h' Z# J/ w% {! B6 @  2. 把dos/windows改为缺省启动的OS
) ~  C0 P9 P' t$ I# |4 a, _: r% S3 ?% y# X0 p4 q
  RedHat把Linux作为lilo缺省启动的OS,即出现 boot: 提示符后直接回车启动Linux。如果想改为dos/Windows,修改文件/etc/lilo.conf,把有关启动dos的部分放在前面,再运行一次lilo即可。例如把lilo.conf从:
; i7 d$ Z: ^. h2 v% E. z8 M7 }( ?4 L5 t
  boot=/dev/hdamap=/boot/mapinstall=/boot/boot.bprompttimeout=50image=/boot/vmlinuz-2.0.34-1 label=linux root=/dev/hdc5 read-onlyother=/dev/hda1
9 y& t# D! Y( i2 U' A; {0 D6 q: O# j0 }  w, g% P
  label=dos3 ^) D' ?$ A( A  w

3 m6 {  D4 x$ \8 f' t+ f  table=/dev/hda
( W0 U+ P- W, }4 v0 J& f  O
2 y7 N+ S+ Y# k# W% h  改为:boot=/dev/hdamap=/boot/mapinstall=/boot/boot.bprompttimeout=50other=/dev/hda1% s0 D2 G: j% j0 \
8 B  R& W( F- E' ^
  label=dos
$ S$ C9 T- u' m  \2 D( F4 B$ h7 Z+ z2 L% u5 s  r( V3 S
  table=/dev/hdaimage=/boot/vmlinuz-2.0.34-1 label=linux root=/dev/hdc5 read-only
0 s5 z; e- i7 T; E6 d8 o
6 ]  R2 L) C$ r5 A) A  3. 去掉引导区内的lilo信息
- r3 Q6 S8 C( X; f2 c2 t, K; c* K8 X! A( b* O& H0 [, X# M% ?
  安装lilo后如果硬盘数量或分区情况有改变的话将导致硬盘不能启动,这时只须用软盘启动dos再运行 fdisk/mbr 即可。(这个方法还可清除任何引导区病毒) 2 f, I! o( F0 b4 _
2 o3 X5 ~2 b2 l
  4. 让X 支持AGP 显卡
/ r2 a$ V: [( [, @: L6 d2 a$ G9 k$ i7 u) l, s0 D
  下载一个AX 4.1 即AcceleratedX 4.1 ,一个商业版的X Server 。除AGP 显卡外AX 还支持很多牌号的显卡。另外还可以用AX 带的设置程序Xsetup 方便的对分辨率,刷新率等参数进行设置。不过我也不知道用AGP卡效果如何,因为我现在还在用老掉牙的 S3 765 。$ T3 h3 ~3 }: a* @! R& M* ?6 [
2 R9 ^6 B9 t- n9 k. j/ ^
  按此下载AX 4.1 3 k1 `8 ?  i& _- e/ g5 [

! L$ P) e& Y" I& ~. O% Y5 B% H3 L  5. 把man 或info 的信息存为文本文件7 M% J1 e0 }0 |, J
4 E% w& n7 z: h+ k
  以tcsh 为例:man tcsh / col -b > tcsh.txt info tcsh -o tcsh.txt -s 5 a) f- g) X! V

* d8 z: I) R' q  y  6. 用当前路径作提示符7 l2 i7 E! b0 M& P

! h) T- o; {$ w& z5 m  对bash 来说,在.bashrc 里加一行:PS1="\$PWD\\$" 0 u0 N) w" \* s. ]1 o4 x* |1 N2 A
, L5 W& `1 f% d) x: z) `
  对tcsh 来说,在.tcshrc 里加一行:set prompt="%/>"
& B9 t- e6 r5 F  o7 p. A' l8 {7 O; X2 t5 _' q+ e
  7. 压缩可执行文件
+ W% W' @% G) {# u  v" Y. i3 b$ S& K
" ]9 r2 v$ [6 @  T/ r: i7 R  Linux 下有一个类似dos 里的pklite 和lzexe 的命令-- gzexe 。而且压缩率一般都可以超过50% ,在空间紧张时很有用。比如:
$ s  R$ K; R' e$ g
6 C& t( }1 l9 ^7 t# B: L  t% {3 R  /dosc/temp# ls -altotal 148-rwxr-xr-x 1 root root 149564 Dec 8 15:33 gawk/dosc/temp# gzexe gawkgawk: 54.5%/dosc/temp# ls -altotal 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#
) w: o- e& i# Y' A* e
4 O& p, s; z: T5 E( v0 \" a6 {  8. 查看Linux 启动时的信息% v! B  j0 b9 A3 m

* T; [7 L6 r6 x" e/ f+ [6 x/ ^  Linux 启动时屏幕显示的信息来不及看清就一闪而过,如果对这些信息感兴趣的话可以在启动完后用命令dmesg 查看。
% j# [9 n2 x6 z6 L8 h1 X2 }3 ]+ `6 s) c* Q
  9. 处理文件名内含有特殊字符的文件
5 D. o, o+ z: v9 X* K' q  h. r
9 }" s9 i& x# ?2 I- ~6 N  如果有一个文件名叫-file 如果想删除它,键入rm -file 会显示invalid option ,原来由于文件名的第一个字符为- ,Linux 把文件名当作选项了,可以加-- 解决这个问题,如rm -- -file 。如果是其他特殊字符的话可以在特殊字符前加一个\ ,或者用双引号把整个文件名括起来。9 M. |* V, x9 z  B7 \& X

& F; n$ K* [% }2 @. c5 z- J  10. 一次处理一整个目录3 j% c- u8 r( x
+ [5 l' W) R, T/ s2 ~! V
  Linux/UNIX 的很多常用命令如rm ,cp 等都有一个参数---- -r ,是递归的意思,命令里加了参数-r 就可以对目标目录及其下所有子目录进行操作,如:rm -rf /test (f 是force 意为强行) ,该命令完全删除根目录下的子目录test ,作用类似于dos 下的deltree ,当然使用这个命令时要特别小心。再如:cp -r /test /test1 有类似dos 下xcopy /s 的作用。2 }- D5 `% g) }# z

# ~0 b3 T, n2 n! x* |/ Y  11. 修改登录画面
2 g8 Q0 U; v' U8 q& Y, c/ C! W/ F& `5 i& x; \  \
  对本机:4 K+ t+ d6 C) F

/ l$ A1 g3 F- r2 ^# m, n$ d  先修改文件/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/issueecho "Red Hat Linux $R" >> /etc/issueecho "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue1 b7 v. }# r8 ?
% Y( D4 _9 x5 `- @1 _
  cp -f /etc/issue /etc/issue.netecho >> /etc/issue
6 @1 O, x9 H( B2 h& X3 j, E8 P. ?/ A7 a# y8 X# m
  不然的话每次重新启动/etc/issue 都会被更改。
9 j. L& H/ v$ c3 D1 ]0 R
) B8 n8 U7 O% W9 M. Y  对telnet 的远地机器:7 }8 D* A8 s) u

  r  K8 `) G; I) T  q' `7 ~  先把文件/etc/usr/sbin/in.telnetd 改名,如改为in.telnetd.exe ,再编一个名为in.telnetd 的shell 脚本,在显示完需要的内容后再调用in.telnetd.exe 。如:#!/bin/shcat /etc/login.banner #需要在登录提示符前显示的内容echo -n ""exec /usr/sbin/in.telnetd.exe
4 E/ ?7 r) j# A/ A1 Z. T
, `8 @5 A' E( a4 D3 {* c  12. 几个有用的别名
4 I& k/ n+ I1 P' Z! T4 k, J) Z/ b9 l! o5 ^2 K* {1 R5 E) H& x: L- ^
  几个能方便操作和减少误操作的别名,建议把它们放到启动文件里,如/etc/bashrc 。/ S, j( s/ b. O" v( V4 m2 G, x$ G
1 n1 j% c) F+ |5 w) s* G* u
  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包 ! a- S4 ?! ~( B# s; j

; L8 d0 X8 }' ~# A6 L  13. 使用命令补齐5 p3 b1 H0 o% `5 D$ U
9 U" }" c3 y6 ^  {+ z
  所谓命令补齐(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 ,非常方便。
5 j8 \: M; z0 f  f. y6 Z* t( O
* X8 J0 M- q1 q9 C) k  14. 最后一条技巧# |$ P% u5 V0 U7 G" C& z

7 A  {; G; g' g6 u: O  i- A  有时间的话多看看系统提供的FAQ文件,因为通常遇到的问题大多数都能在里面找到答案。




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5