Linux 使用技巧集锦(转载)

Linux 使用技巧集锦(转载)

极光苏键 | 2006-04-23 12:45

初用Linux时可能有处处不方便的感觉, 可是等使用一段时间掌握了一些技巧后就会感到越来越顺手了. 以下就是我使用Linux以来积累的一些经验与技巧, 相信对初学者会有所帮助的.

1. 使用虚拟控制台

  登录后按Alt+F2键这时又可以看到"login:"提示符, 这个就是第二个虚拟控制台. 一般新安装的Linux有四个虚拟控制台, 可以用Alt+F1~Alt+F4来访问. 虚拟控制台最有用的时候是当一个程序出错锁住输入时可以切换到其他虚拟控制台登录进入后杀掉这个出错的进程.

2. 拷贝与粘贴

  字符界面: 不管是Slackware 还是RedHat 安装后每次启动时都会自动运行一个叫gpm的程序, 该程序运行后就可以用鼠标来拷贝与粘贴了. 具体做法是按住鼠标左键拖动使要拷贝的地方反白, 这时反白的区域已经被拷贝, 再按鼠标右键拷贝的内容就会被粘贴在光标所在位置了.

X-Window下: 拷贝的操作与字符界面下一样, 三键鼠标的话按中键粘贴, 两键鼠标的话同时按左右键粘贴(须在配置XF86时在鼠标的设置里选择 Emulate 3 Button).

3. 快速进入某些目录

键入 cd ~ 可进入用户的home目录.

键入 cd - 可进入上一个进入的目录.

4. 软驱的使用

如果是Linux 的ext2文件系统用如下命令:

#mount -t ext2 /dev/fd0 /mnt

dos格式的软盘则用命令:

#mount -t msdos /dev/fd0 /mnt

然后就可以在/mnt里访问软盘的内容了, 注意在取出软盘之前要先卸掉软盘上的文件系统,

#umount /mnt 否则会导致信息丢失.

在软盘上建立文件系统可用如下命令:

#mke2fs /dev/fd0 1440

5. RedHat下显示彩色目录列表

打开/etc/bashrc, 加入如下一行:

alias ls="ls --color"

下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:

蓝色-->目录

绿色-->可执行文件

红色-->压缩文件

浅蓝色-->链接文件

灰色-->其他文件

6. 显示文件的类型

  用命令 file 可以使你知道某个文件究竟是ELF格式的可执行文件, 还是shell script文件或是其他的什么格式 例如:

#file startx

7 .命令文件的路径

当你键入一些命令如find, shutdown, mount, startx时是否想过要知道这些文件究竟放在哪个目录里? 用命令

whereis 可以实现,如

#whereis startx

8. 查找文件

find 命令要加一些参数才能查到文件, 如:

#find /usr -name XF86Setup -print

在/usr里查找文件XF86Setup.

9. 删除无用的core文件

程序运行出后有时候会产生一个名为core的文件, 这个文件一般很大而且没什么用, 可以删除掉以释放空间.

10. 一次解开.tar.gz文件

解开.tar.gz文件一般要先用gunzip解压再用tar解包, 在Linux下可以一次完成, 如:

#tar zxpvf sample.tar.gz

11. 显示win95分区里的长文件名

  如果你发现win95分区里的长文件命不能显示, 可以重新用vfat方式来mount. 对于启动时就mount的分区可以修改文件/etc/fstab, 将里面的msdos字样改为vfat. 如果无法用vfat mount, 则要重新编译一下核心, 加入对vfat的支持.

12. Linux 里的Norton Commander

  在提示符下键入命令mc后你就会看到一个与Norton Commander很相似的界面, 实际上功能也很相似甚至更强大, 比如可以直接对.tar.gz 压缩包里的文件进行操作(有点像ZipMagic).

13. 启动后直接进入X

  编辑/etc/inittab文件, 把id:3:initdefautl改为 id:4:initdefautl. 不过搜索路径可能会有些问题, 关机时你得直接进入/sbin 里去执行 shutdown.

14. 后台运行 X 程序

  执行一个X程序时别忘了在后面加一个&号,如 #netscape & 否则的话在你推出执行的程序之前再无法在那个终端窗口里输入命令了.

15. 强行退出 X

  有时候在 X 里由于程序出错鼠标键盘都不起作用, 这时候不用着急, 因为在Linux下几乎不会像在Win95里那样恶性死机, 你只须键入Ctrl+Alt+BackSpace键就可以回到字符界面下了。

16. 重装Win9x后lilo失效无法启动Linux

  只须先用软盘启动Linux然后运行一次lilo即可。对于RedHat可以用命令mkbootdisk来制作启动盘,例如:

mkbootdisk --devices /dev/fd0 2.0.34-1

其中2.0.34-1是 /lib/modules下的一个目录。

17. 把dos/windows改为缺省启动的OS

  RedHat把Linux作为lilo缺省启动的OS,即出现 boot: 提示符后直接回车启动Linux。如果想改为dos/Windows,修改文件/etc/lilo.conf,把有关启动dos的部分放在前面,再运行一次lilo即可。例如把lilo.conf从:

boot=/dev/hda

map=/boot/map

install=/boot/boot.b

prompt

timeout=50

image=/boot/vmlinuz-2.0.34-1

label=linux

root=/dev/hdc5

read-only

other=/dev/hda1

label=dos

table=/dev/hda

改为:

boot=/dev/hda

map=/boot/map

install=/boot/boot.b

prompt

timeout=50

other=/dev/hda1

label=dos

table=/dev/hda

image=/boot/vmlinuz-2.0.34-1

label=linux

root=/dev/hdc5

read-only

18. 去掉引导区内的lilo信息

  安装lilo后如果硬盘数量或分区情况有改变的话将导致硬盘不能启动,这时只须用软盘启动dos再运行 fdisk/mbr 即可。(这个方法还可清除任何引导区病毒)

19. 让 X 支持 AGP 显卡

  下载一个 AX 4.1 即 AcceleratedX 4.1 , 一个商业版的 X Server 。除 AGP 显卡外 AX 还支持很多牌号的显卡。另外还可以用AX 带的设置程序 Xsetup 方便的对分辨率,刷新率等参数进行设置。不过我也不知道用AGP卡效果如何,因为我现在还在用老掉牙的 S3 765 。

20. 把 man 或 info 的信息存为文本文件

以 tcsh 为例: man tcsh | col -b > tcsh.txt

info tcsh -o tcsh.txt -s

21. 用当前路径作提示符

对 bash 来说,在 .bashrc 里加一行:

PS1="$PWD$"

对 tcsh 来说,在 .tcshrc 里加一行:

set prompt="%/>"

22. 压缩可执行文件

  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#

23. 查看 Linux 启动时的信息

  Linux 启动时屏幕显示的信息来不及看清就一闪而过,如果对这些信息感兴趣的话可以在启动完后用命令 dmesg 查看。

24. 处理文件名内含有特殊字符的文件

  如果有一个文件名叫 -file 如果想删除它,键入 rm -file 会显示 invalid option ,原来由于文件名的第一个字符为 - , Linux 把文件名当作选项了,可以加 -- 解决这个问题, 如 rm -- -file 。如果是其他特殊字符的话可以在特殊字符前加一个 ,或者用双引号把整个文件名括起来。

25. 一次处理一整个目录

  Linux/UNIX 的很多常用命令如 rm , cp 等都有一个参数---- -r , 是递归的意思, 命令里加了参数 -r 就可以对目标目录及其下所有子目录进行操作,如:

rm -rf /test (f 是 force 意为强行) , 该命令完全删除根目录下的子目录 test ,作用类似于 dos 下的 deltree ,当然使用这个命令时要特别小心。再如:

cp -r /test /test1 有类似 dos 下 xcopy /s 的作用。

26. 修改登录画面

对本机:

先修改文件 /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

27. 几个有用的别名

几个能方便操作和减少误操作的别名,建议把它们放到启动文件里, 如 /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包

28. 使用命令补齐

  所谓命令补齐(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 ,非常方便。

29. 最后一条技巧

  有时间的话多看看系统提供的FAQ文件,因为通常遇到的问题大多数都能在里面找到答案。

30.取消^M字符

当你FTP一些DOS文件到unix下时,你经常会看见每行文件后面有个讨 厌的^M 字符,有两个简单的方法可以取消它。用"vi"打开此文件,在Command mode下敲入: s/^V^M//g 或者,在UNIX SHELL下敲入: sed 's/^V^M//g' foo > foo.new

31.使用nohup命令

如果你想进程在你退出系统后还能执行,可以使用NOHUP命令 如: % nohup tar -cf /dev/tape /home & 你退出后再重新登录的话,使用'ps'命令可以看到进程还在执行

32.查看文件的方法

如果你只想看文件的前5行,可以使用head命令,如: head -5 /etc/passwd 如果你想查看文件的后10行,可以使用tail命令,如: tail -10 /etc/passwd 你知道怎么查看文件中间一段吗?你可以使用sed命令 如: sed -n '5,10p' /etc/passwd 这样你就可以只查看文件的第5行到第10行。

33.计算文件数和目录数下面的语句可以帮你计算有多少个文件和多少个目录..

# ls -l * |grep "^-"|wc -l ---- to count files

# ls -l * |grep "^d"|wc -l ----- to count dir

还可以将以上的语句变成script或做个alias

34.只列子目录的方法:

ls -F | grep /$ 或者

alias sub = "ls -F | grep /$"(linux)

ls -l | grep "^d" 或者

ls -lL | grep "^d" (Solaris)

35.利用Find命令改变所有权

想要改变当前目录下所有文件的所有权,可以这样:

find . -exec chown OWNER.[GROUP] {} ; (Solaris)

find . -exec chown -R OWNER.[GROUP] {} ; (Linux)

36.列出除了某些类型文件的当前目录所有文件

使用Ksh,用ls !(*.Z)可以显示所有文件,除了*.Z文件。 这个命令在一个目录里有许多种类型的文件的时候很有用。

37、处理特殊的文件名

假设Linux系统中有一个文件名叫“-aaa”,如果我们想对它进行操作,例如现在要删除它,如果我们按照一般的删除方法在命令行中输入rm -aaa命令,界面将会提示我们是无效选项(invalid option),原来由于文件名的第一个字符为 - ,Linux把文件名当作选项了,我们可以使用“--”符号来解决这个问题,例如我们可以输入rm -- -aaa命令来删除-aaa文件。如果是其他特殊字符的话可以在特殊字符前加一个“”符号,或者用双引号把整个文件名括起来。

38、修复Linux下超级用户的密码

如果超级用户将密码忘记,就无法进入系统,也无法管理和使用系统。本来这种事不太可能发生,但是在一些Linux单机使用者,尤其是初学者中,却是比较容易发生。一般的解决方法就是格式化硬盘来重新安装系统,但这有点儿小题大作了。准备好bootdisk和rootdisk两张软盘,从软驱启动,启动到 root盘并出现shell提示符。将Linux根目录分区mount至/mnt目录,比如你的Linux在硬盘第一分区,就在命令行中输入mount /dev/hda1 /mnt,然后进入mnt目录,将其中的etc/passwd文件改名,输入mv /mnt/etc/passwd /mnt/etc/passwd.bak就可以了;接着使用命令cp /etc/passwd /mnt/etc/passwd将软盘上的/etc/passwd文件复制到硬盘中的etc目录下,这样重新由硬盘启动,登录时就不会询问超级密码;最后使用mv/etc/passwd.bak passwd命令将passwd文件改回,再运行passwd命令重新设定密码就可以了。

39、直接进行Linux的安装工作

  通常我们在安装某个操作系统软件时,需要该系统的引导盘启动才能安装。但我们在安装Linux操作系统时,可以利用该系统光盘中的一个名为 loadlin.exe的DOS软件,将Linux核心直接调入内存,并由Linux核心代替当前操作系统来接管计算机,并进入Linux的安装界面。在安装Linux时,我们只要在运行对话框中输入loadlin E:imagesvmlinuz root=/dev/ram initrd=E:imagesinitrd.img这个命令就可以直接安装Linux了;其中E是光驱盘符,E:imagesvmlinuz为 Linux核心名。

40、快速启动Linux系统

  随着个人计算机配置的日益提高,在自己的计算机上安装Linux系统已经不是什么新鲜的事了。假设我们的计算机上同时装有windows和Linux两个操作系统,应该如何启动Linux呢?是否每次都需要重启计算机,通过LiLo引导?其实如果我们在dos下,有一种简单快速启动Linux的方法,那就是load Linux。loadlin.exe是在dos下的可执行程序,它可以在纯dos环境下迅速启动Linux,而且无需重启计算机,通常我们可以在光盘的 /kernels目录下可以找到这个程序。如果不知这个程序被放置于安装盘的何处,可以使用“find -name loadlin*”命令来寻找。找到之后将其复制到dos分区中,同时还需要复制一份你所使用的Linux内核文件。可以通过windows直接从光盘复制,也可在Linux环境下使用mcopy命令将文件copy到dos分区;接着再编写一个Linux.bat的批处理文件,文件内容如下:c: loadlin c:vmlinuz root=/dev/hda1 ro

其中我们假设loadlin.exe和vmlinuz这两个内核文件都在c盘根目录,而root为Linux根设备,而且Linux处于硬盘第一分区,所以设备名为/dev/hda1,ro意为readonly。以后在dos下要启动Linux时,运行Linux.bat就可以了。这样启动Linux快速高效,大大的减少了系统自检时等待的时间。

41、消除Xwindows下的死机现象

  如果我们在Xwindows状态下运行Linux时,由于硬件本身的问题或者自己操作上的不当,有时侯可能会导致系统突然失去响应,也就是我们常见到的一种死机现象,其实此时系统并没有死机。我们可以用两个常用的方法来消除这种现象:第一,用键盘上的复合键Ctrl+Alt+Backspace来关闭当前正在运行的任务;第二,首先按住键盘上的Ctrl+Alt+F2复合键,让系统切换到另一个操作台,然后登陆到系统,再执行#ps -ax|grep startx命令,这将会列出你的Xserver的进程标识(PID),接着在命令行中输入如下命令就能消除Xwindows下的死机现象:#kill -9 PID_Number,最后通过Alt+F1复合键返回原来的平台。

42、快速关闭Linux系统

  旧版本的的Linux/UNIX系统必须先运行shutdown命令,然后才能关闭电源,但最新版本的Linux/UNIX系统已经在这个方面作了很大的改进,再也没有必要象以前那样关机了。因为新版本的系统借鉴了大型机的技术,采用了抗掉电的日志式文件系统,可以自动跟踪保存用户数据、自动同步刷新文件系统,用户完全可以随手关闭电源,从而达到快速关闭系统的目的了。

43、巧妙使用rm命令

  我们知道在Linux字符界面中,要删除一个文件的话可以使用rm命令,删除一个目录可以使用rmdir命令。但由于rmdir命令只能删除空白的目录,假使某个目录下面有文件,就只能先用rm命令来把目录中的文件删除掉才可以,所以通常需要rmdir与rm这两个命令配合使用才能彻底删除一个完整的目录。但用这种方法来对付几级子目录还能凑合,如果一个目录中含有若干个子目录,而且这若干子目录中又包含了若干级子目录,再使用这种方法不把你累死才怪。现在我们可以使用带-r参数的rm命令来删除一个非空目录,例如我们在命令行中输入rm -r bbb这样的命令,表示系统将把bbb目录中包含的所有文件和子目录全部删除掉。

44、善用虚拟操作台

  当我们登录进Linux系统后,如果再按一下键盘上的Alt+F2键,这时我们又可以看到一个Shell提示符,其实这个就是第二个虚拟操作台。通常,新安装的Linux系统共有四个虚拟操作台,我们可以分别用复合键Alt+F1、Alt+F2、Alt+F3、Alt+F4来访问它们。使用虚拟操作台频率最多的地方就是,当某一个程序出错锁住输入时或者Linux系统突然失去响应时,就可以切换到其他虚拟操作台登录进入后杀掉这个出错的进程任务。

45、增加虚拟缓存

  如果计算机上的SWAP(交换空间)不够了,只要我们的硬盘上还有空余的空间,我们就可以把这些剩余空间利用起来,我们可以直接使用命令:mkswap /dev/hda(假设Linux的驱动器是/dev/hda),swapon /dev/hda;要自动启动Swap,可以把新的分区加入到etc/fstab中去,照着原来swap的写就行了。用"free"检查swap的大小, Linux支持最多16个交换分区,每个交换分区最大128M,没有空闲分区的时候,可以用个大文件来建立。下面是执行的一系列命令:

   #dd if=/dev/zero of=swapfile bs=1024 count=8192

   #mkswap swapfile 8192

   #sync

   #swapon swapfile

46、巧妙使用Tab键

  大家知道在Linux字符界面中输入命令时,有时需要输入很多字符,如果经常这样逐个逐个地输入字符,比较烦琐。假设键入的字符足以确定目录下一个唯一的文件时,我们只须按键盘上的 Tab 键就可以自动补齐该文件名的剩下部分,例如要把目录 /ccc 下的文件 ddddddd-1.2.3.tar.gz 解包时,当我们在命令行中键入到tar xvfz /ccc/d时,如果该文件是该目录下唯一以d起头的文件的话就可以直接按下键盘上的Tab键,这时命令会被自动补齐为:tar xvfz /ccc/ddddddd-1.2.3.tar.gz ,从而提高了输入效率。

47、多用拷贝与粘贴来提高操作速度

   Linux系统安装后,每次启动到字符界面时都会自动运行一个叫gpm的程序, 该程序运行后就可以用鼠标来拷贝与粘贴了。具体做法是按住鼠标左键拖动让要拷贝的地方突出显示, 这时突出显示的区域已经被拷贝, 再按鼠标右键拷贝的内容就会被粘贴在光标所在位置了。如果我们在Xwindow下运行Linux系统,拷贝与粘贴的操作与在普通的Win9x系统下一样。

48、加快Linux存取数据

  如果我们想快速提高Linux下的硬盘读取数据,可以在Linux下进行一些设置,让Linux在32位输入输出方式和DMA通道方式下进行工作。设置时,在Linux命令界面中输入命令/sbin/hdparm -cl /dev/hda来打开32bit传输方式,输入命令/sbin/hdparm -dl /dev/hda来打开DMA传输方式,接着再输入命令/sbin/hdparm -kl /dev/hda来使硬盘在Reset之后仍然保持上述的设置,通过这些设置,我们就能提高Linux的读盘速度到1倍以上

49.禁止启动时进入其它操作系统

当计算机上有多个操作系统时,我们可以调整多重启动管理器的配置,让计算机在启动时只能进入Linux,禁止别人进入其它操作系统。

大多Linux系统使用的都是LILO多重启动管理器,也有使用其它启动管理器的(蓝点LINUX 2.0使用的就是grub启动管理器)。

对于LILO启动管理器,可以编辑/etc/lilo.conf文件,其中文字行以“image=”开头的部分引导Linux系统,以“other=”开头的部分引导其它操作系统。只要将以“other=”开头描述引导其它操作系统的部分删除,重新启动,计算机就只能进入LINUX系统了。如果想恢复计算机可以引导其它操作系统的状态,只要重新编辑/etc/lilo.conf文件,恢复以“other=”开头的描述部分即可。

对于grub启动管理器,可以编辑/boot/grub/menu.lst文件,其中以“title”开头的文字行就是计算机启动时出现的菜单选项,将描述引导其它操作系统的部分删除,只保留引导Linux系统的部分,重新启动,计算机将只显示引导Linux系统的选项,计算机只能进入Linux系统。恢复计算机能引导其它操作系统的状态可以重新编辑/boot/grub/menu.lst文件,添加以“title”开头描述引导其它操作系统的部分即可。

50.启动时直接进入KDE环境

要想让Linux启动时直接进入KDE环境,可对文件/etc/inittab进行修改。用文本编辑器打开文件/etc/inittab,找到如下的一行文字: id: 3: initdefault: 把它改为: id: 5: initdefault: 再次启动时就可以直接进入KDE环境了。