Linux虽然“不复杂”,但要用好它却还有不少“讲究”。原因是要用好还涉及到相当数量的技巧。笔者在此收集、整理了一些Linux技巧,希望能为大家“用顺”Linux提供方便。
1.在Redhat下显示彩色目录及文件列表
用ls --color --F命令,参数--color指示用彩色显示,参数-F会在文件/目录名后加一个字符来指示它的类别。
建议初学者用man ls看看详细信息。比如用-l参数列出文件/目录的绝大部分信息(长格式示);用-a参数列出所有文件;包括首字符为“.”的隐含文件;用-N参数不处理文件名直接显示,这样在中文环境下就可以显示中文文件名了。还要注意ls与其它命令搭配使用可以生出很多技巧(最简单的如“ls -l | more”)。
为了方便起见,你可以编辑/etc/bashrc或home目录下的.bashrc,加入一行:
alias ls=″ls --color -F -N″
重新运行一下bash会立即生效,如果加在/etc/bashrc里则对所有使用bash shell的用户有效。如果使用的是其它的shell,则去找对应的配置文件。注意它不是/etc/aliases文件,那是sendmail的别名配置文件。
ls显示的颜色是可以修改的,请参考“Colours with Linux terminals”,它里面有个shell脚本可以显示所有的ANSI颜色。你可以去看一下/etc/DIR_COLORS或$HOME/.dir_colors,要注意两个文件的作用范围不同。
也可以用dircolors -p命令列出设置,更详细信息见“man dircolors”。
2.列出除某些类型文件外的当前目录内所有文件
使用Ksh,用ls !(*.Z)命令可以显示所有文件,除了*.Z文件。
这个命令在一个目录里有许多种类型文件时很有用。
3.删除一个目录下的所有文件和子目录及子目录下的所有文件
用rm -rf /tmp/example命令
这些都是给懒人们准备的,新手最好多用man命令学习。要是你英语不好,就只好等待中文版了。
4.快速进入某些目录
键入 cd~(或cd SHOME)可进入用户的home目录.
键入 cd - 可进入上一次所在的目录.
5.显示环境变量
echo S HOME 显示家目录
echo S PATH 显示可执行文件搜索路径
env 显示所有环境变量(可能很多,最好用″env | more″,″env | grep PATH″等)
修改环境变量,在bash下用export,在csh下用setenv。比如:
export PATH=SPATH:/usr/local/bin
要想知道export的具体用法,可以用shell的help命令:help export
6.查找文件
使用find命令,比如:
find /usr -name XF86* 在/usr目录下(包含子目录)查找名字前四个字母为XF86的文件
find . -name netscape -print 在当前目录下(包含子目录)查找名为netscape的文件
find /home -nouser 在/home目录下查找没有用户属主的文件(用户帐号被删除但有遗留文件)
find /var -newer test 在/var目录下查找比test文件日期更新的文件
find命令有很多参数,注意用man命令查看。
更快速的查找文件是使用locate,第一次使用locate之前用updatedb来更新文件/目录名数据库。
它把文件/目录信息写到数据库中,以后查找起来就特别快。updatedb放在crontab中而且缺省配置是在半夜自动执行。locate存在轻微的安全性问题,因为普通用户可以用它来取得自己不能访问的目录/文件的部分信息。现在有个secure locate,把uid/gid也保存到数据库中,用户在locate时先比较权限。
7.控制台下回卷屏幕
如何查看已经卷过屏幕的信息呢?试试这两个按键组合:shift+PageUp和shift+PageDown,它们对xterm/nxterm/cxterm/xxgdb都有效。而KDE带的KVT已经做得很好了。
8.查看文件内容的特殊方法
相信你对最基本的cat和less已经很熟悉了,如果有特殊的要求呢:
如果你只想看文件的前5行,可以使用head命令,如:
head -5 /etc/passwd
如果你想查看文件的后10行,可以使用tail命令,如:
tail -10 /etc/passwd
tail -f /var/log/messages
参数-f使tail不停地去读最新的内容,这样有实时监视的效果,当你在ppp拨号的过程中用它岂不是很方便!
查看文件中间一段,你可以使用sed命令,如:
sed -n ′5,10p′ /etc/passwd
这样你就可以只查看文件的第5行到第10行。
9.启动一个程序时让它立即进入后台运行方式
看过前面一篇bash的介绍应该明白Ctrl+z/bg/fg的用法。有些程序工作起来挺费时间,在它后面加个&符号看看,例如“updatedb &”,“netscape &”等等。这样这个shell会释放出来干别的活。请注意这样出来的程序父进程仍然是这个shell,若你退出这个shell,这些程序也会被kill掉。建议退出shell之前用jobs命令查看后台作业。