`
benx
  • 浏览: 276246 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux命令(转)

    博客分类:
  • java
阅读更多
简介:



这是包含在Linux软件包里(RedHat或者Mandrake),我们比较经常使用和比较有用的一些命令集合。在你当前路径的命令提示行下按<TAB>键,就可以看到有效的命令一览。在我的小型家用系统上,在我的当前路径下有3786个可执行命令。这些命令的大部分可以在图形用户界面下使用鼠标的左键或者右键来访问,全部都可以使用命令行来运行(除非你没有安装对应的软件包,在我的CD里都可以运行)。那些要求图形用户界面的程序必须在图形用户下才能运行,比如,你可以通过在KDE或者GNOME的终端输入命令来运行这些程序。一些更高级(对新手没有用处?)的命令工具可以参考第七部分的相关内容。





以下给那些对Linux没有概念的新手:



Linux是大小写敏感的系统,举个例子,Mozilla, MOZILLA, mOzilla和 mozilla是四个不同的命令(但是只有第四个mozilla是真正有效的命令)。还有,my_filE, my_file,和 my_FILE是三个不同的文件。用户的登录名和秘密也是大小写敏感的(这是因为UNIX系统和C语言的传统一向是大小写敏感所致)。


文件名最多可以有256个字符,可以包含数字,点号”.”,下划线”_”,横杆”-”,加上其他一些不被建议使用的字符。


文件名前面带”.”的文件在输入”ls”或者”dir” 命令时一般不显示。可以把这些文件看作是隐含文件,当然你也可以使用命令”ls –a”来显示这些文件。


“/”对等于DOS下的”\”(根目录,意味着所有其他目录的父目录,或者是在目录之间和目录和文件之间的一个间隔符号)。举个例子,cd /usr/doc。


在Linux系统下,所有的目录显示在单一目录树下(有别于DOS系统的驱动器标识)。这意味着所有的物理设备上的所有文件和目录都合并在单一的目录树下。


在配置文件里,以#打头的行是注释行。在修改配置文件的时候尽量不要删除旧的设置――可以把原来的设置加上”#”变成注释行,总是在修改地方对应地加入一些关于修改的注释,你会发觉在以后的管理中获益多多。


Linux是继承性的多用户操作系统。你的个人设定(和其他用户的个人设定)放在你的主目录下(一般是/home/your_user_login_name)。许多的配置文件的文件名都以”.”开头,这样用户一般看不到这些文件。


整个系统范围的设定一般放在目录/etc下。




和其他的多用户操作系统类似,在Linux下,文件和目录有自己的拥有者和访问权限。一般来说,你只被允许文件到你的主目录下(/home/your_user_login_name)。学习一些关于文件权限管理的相关知识,否则你肯定会觉得Linux实在很麻烦。


命令参数选项一般由”-”引导,后面跟一个字符(或者”--“,当选项超过一个字符时)。这样,”-”有点象DOS下的”/”。举个例子,输入命令 rm --help。


输入command& (命令名后面加&符号)在背景模式下运行一个命令。这个一般用来在X窗口下启动其他的程序。


5.1        Linux基本的键盘输入快捷键和一些常用命令

<Ctrl><Alt><F1>



切换到第一个文本终端。在Linux下你可以有多达六个不同的终端。这个命令的意思是:“同时按住<Ctrl>键和<Alt>键,然后按<F1>键,再释放所有的键”。



<Ctrl><Alt><Fn> (n=1..6)



切换到第n个文本终端。(你也可以使用不是很经常用到的命令chvt n 来实现,n指的是第n个文本终端)。在文本终端下(不是在X窗口),你也可以简单使用<ALT><Fn>来实现切换,不需要<CTRL>键。



打印出你正在使用的终端名称,如果你希望知道终端的名字,可以使用命令fgconsole。



<Ctrl><Alt><F7>



切换到第一个图形用户界面(一般来说X-window在第七个终端)





<Ctrl><Alt><Fn> (n=7到12)



切换到第n个图形用户街面。根据缺省,第一个X-Window在第7个终端运行,从第8到第12什么也没有,当然你可以逐个启动这些图形用户界面。



<Tab>



(在文本终端下)可以使用TAB自动完成命令,或者显示所有的可选项。这个快捷键真的非常好用,经常使用你会发觉它可以节约你很多的时间。



<ArrowUp>



(在文本终端或者X窗口下)滚动和编辑以前输入的命令。按<ENTER>执行一个历史命令



<ArrowDown>



回滚



<Shift><PgUp>



滚动终端输出。对于登录提示也起作用,所以你可以使用它回滚启动信息。你显卡的内存大小决定你可以回滚多少内容



<Shift><PgDown>



回滚终端输出



<Ctrl><Alt><+>



(在X窗口下) 改变X服务器的屏幕解析率 (如果你设置X服务器有多个不同的屏幕解析率)。比如对于我的标准SVGA卡和显示器,在文件/etc/X11/XF86Config有以下的设置行: (从缺省开始,到可以支持的最大虚拟屏幕解析率)



Modes "1024x768" "800x600" "640x480" "512x384" "480x300" "400x300" "1152x864"Z



当然,首先我必须设置我的X服务器,可以使用using Xconfigurator, xf86config, 也可以手工编辑文件:/etc/X11/XF86Config。XFdrake (Mandrake使用图形用户界面进行配置 )。你也可以参考命令xvidtune和xvidgen。



<Ctrl><Alt><->



(在X窗口下)把X服务器的屏幕解析率修改到上一次的设置。



<Ctrl><Alt><Esc>



(在X窗口,KDE下)关闭我鼠标将要指向的窗口(鼠标的光标形状会有所改变)。同样的效果也可以使用命令xkill(在X终端上)来实现。当一个程序窗口被挂住的时候特别有用。



<Ctrl><Alt><BkSpc>



(在X窗口下) 终止当前的 X窗口服务。如果X窗口不能正常退出时可以使用。



<Ctrl><Alt><Delete>



(适用于文本终端下)关机和重新启动。这是一个在文本终端下的正常关机命令,千万不要按计算机上的reset键来重新关机和重新启动!



<Ctrl>c



终止当前进程(对于一般的小型文本模式的应用程序)



<Ctrl>d



(在一个空白的命令行上输入)退出当前的终端。参加下一个命令。



<Ctrl>d



给当前的进程送文件结束符合。不要按两次否则你会把自己退出系统。



<Ctrl>s



停止终端传输



<Ctrl>q



从新开始终端传输。如果你的终端突然莫名其妙的停止响应,可以参考上一条命令。



<Ctrl>z



把当前进程送到后台处理。



exit



退出系统。我也可以使用logout命令达到同样效果。(如果你启动了第二个shell程序,比如,使用bash,这条命令将使你退出第二个shell回到第一个shell,但是不会退出系统。当然,可以再一次使用exit退出)



reset

恢复崩溃的终端(有些终端显示一些奇怪的字符)到缺省的设置。当你使用cat命令准备显示一个二进制文件时,你可能看不到你所输入的命令,尽管命令仍然照常工作。



<鼠标的中间键>



粘贴当前选择的文本。这是一个常规的Linux“复制-粘贴”操作。它是对被广泛采用的通信用户界面下“复制-粘贴”操作的一个非常有用的扩展(但是它不支持旧版本的NetScape,因为在旧版的NetScape只能使用MAC/Windows风格的“复制-粘贴”操作。如果你运行“setup”程序进行设置,你可以在文本终端下使用这个功能。而且它在大多数的对话框里也能很好的工作,真的非常方便!)如果你有一个“Linux-Ready”的鼠标(logitec或者其类似产品)或者你通过使用“模拟三键鼠标”,这个功能可以得到最大限度的发挥。一般来说,“第三键”的模拟是通过同时点击左右两个鼠标键来实现。



~



(水文符合) 我的主目录(一般来书是/home/我的登录名)。举例,命令~/my_dir将修改我的工作目录到我的主目录的子目录”my_dir”下。相对于输入”cd ~”,你也可以只输入”cd”,我把我的所有文件都放在自己的主目录下。



.



(点符号) 当前目录。举例:./my_program 将试图执行当前目录下的"my_program"文件



..



(两个点)到当前的上一级目录(也叫“父目录”)。举个例子,命令“cd..”将修改我的当前工作目录到上一级目录。



一些KDE的快捷键(很有用,但不是非要不可的)



<Alt><Tab>

切换不同的程序窗口。往回切换,使用 <Alt><Shift><Tab>



<Ctrl><Tab> 

切换不同的桌面。往回切换,使用 <Ctrl><Shift><Tab>



<Ctrl><Esc> 

显示我系统里正在运行的进程列表。允许我终止那些由我启动的进程(或者送信号给这些进程)



<Alt><F1>   

访问K菜单 (对等于微软Windows的的“开始”菜单).



<Alt><F12>  

使用键盘上的箭号键模拟鼠标的操作



<Alt><鼠标左键>    

拖曳并移动一个窗口。一般来说,我通过拖曳窗口的题目栏来移动一个窗口。有些时候,我用它把

一个窗口移动到屏幕之外。使用这个功能,我可以把窗口移动到屏幕的任何位置。



<Alt><PrintScreen>

把当前屏幕的快照存到剪贴板



<Ctrl><Alt><PrintScreen>

把当前桌面的快照存到剪贴板



<Ctrl><Alt><l>

锁定桌面



<Ctrl><Alt><d>

切换隐藏/显示桌面的功能(当老板走过来的时候迅速藏起你的纸牌接龙游戏非常管用哦!)





<Alt><SysRq><command_key> (非必须掌握)



这是在Linux的内核(底层内核)上支持的一组组合键。它意味着这些组合键在大部分情况下都是有效的。组合键主要是针对开发人员的程序调试目的或者在紧急场合下才使用;你也可以使用其他的办法,安全第一。<SysRq>键在PC上指的是PrintScreen键。组合键的功能可以通过设置相对应的内核参数来激活或者取消,比如: echo "1" > /proc/sys/kernel/sysrq



<Alt><SysRq><k>

终止在当前虚拟终端上运行的所有进程(包括X窗口)。这个组合键被称为“安全访问键“(SAK).



<Alt><SysRq><e>

发送 TERM 信号(结束信号)到除了init进程以外的所有运行进程,要求其退出



<Alt><SysRq><i>

发送 KILL (终止信号)到除了init进程以外的所有运行进程, 这个组合键比上一个更加有效,但是也可能引起一些程序被异常终止。



<Alt><SysRq><l>

发送KILL命令到所有运行进程(包括init),系统将不再能够使用



<Alt><SysRq><s>

在所有的挂载文件系统上运行紧急同步(缓存写) 。这可以保护数据丢失



<Alt><SysRq><u>

以只读模式重新挂载所有已加载的文件系统。这和上面的同步组合键有相同的功能,但是另外有一个好处:如果操作顺利完成,下一次硬件重新启动时,fsck将不会重新检查所有的文件系统。

<Alt><SysRq><r> 关闭键盘的原始模式。当你的X窗口程序挂住没有响应时特别有用。使用这个组合键之后,你可能会接着使用<CTRL><ALT><DEL>程序启动。



<Alt><SysRq><b>

不进行同步和卸载就立刻重新启动系统。之后你可能会碰到一下错误信息。



<Alt><SysRq><o>

关机 (如果正确设置以后)



<Alt><SysRq><p>

导出当前的寄存器和标志到控制台



<Alt><SysRq><t>

导出当前任务和相关信息到控制台



<Alt><SysRq><m>

导出内存的内容到控制台



<Alt>SysRq><数字>

“数字”从0到9。设置控制台记录的级别,用于控制哪一些内核信息将被显示在控制台上。举例,“0”意味着只有象PANIC和OOPS的之类的紧急信息才被显示在控制台上。



<Alt><SysRq><h>

显示帮助信息。还有,任何其他不被支持的 <Alt><SysRq><key> 组合键将显示同样的帮助。



5.2        帮助命令



命令名 –help | more



显示一个简略的命令帮助(对大部分命令有效)。举个例子,试着使用 “cp –help | more”。“--help”和和DOS下的“/h”开关功能类似。当输出超过一个屏幕时,加上“more”是很有必要的。



man 命令名



显示对应命令系统的帮助手册。输入“q”退出浏览器。如果你设置了高级选项,试着输入“man man”。命令“info 命令名” 和命令“man 命令名”功能相似,但是包含更多的最新信息。帮助手册对于新手可能有点难于读懂——因为它们最初是写来给UNIX程序员看的。使用“命令名 –help”可以得到一个简略容易消化的命令帮助。有些程序自带README文件或者其他帮助信息文件----建议你可以看看目录/usr/share/doc。在指定的部分显示命令帮助,可以使用这样的命令“man 3 exit”,这个命令只显示exit命令帮助手册的“第三部分”;或者使用命令“man –a exit”, 这个命令显示exit命令帮助手册的“所有部分”。exit命令帮助的所有部分是: 1-用户命令;2-系统调用;3-子调用;4-设备;5-文件格式;6-游戏;7-杂项;8-系统管理;9-新内容。打印完整的命令帮助,可以使用命令“man 命令名 | col -b | lpr”(可选项col –b删除所有的退格键和一些难以阅读的特殊字符)。



info 命令名



显示指定命令的帮助信息。info 命令是取代man 命令的一个好处是,它通常带有最近更新的系统资料。多使用“空格键”和“退格键”,否则你可能会晕头转向。按“q”键退出。如果觉得用于翻阅的办法不太好用――你也可以试着使用pinfo命令,看你会不会更喜欢这个替代品。



apropos 命令名



对所输入的命令名给出一个帮助一览表。



whatis 命令名



给出匹配所输入命令名的简短清单。whatis命令有点象apropos――它们使用相同的数据库。不同的是,whatis搜索的是关键字,apropos搜索的是关键字的具体描述。



help 命令名



显示bash shell内置命令的简单信息。使用 help 命令不带任何参数将显示bash shell所有内置的命令。最短的bash shell内置命令应该包括:alias, bg, cd, echo, exit, export, help, history, jobs, kill, logout, pwd, set, source, ulimit, umask, unalias, unset.



kdehelp

kdehelpcenter



(在X-终端下有效, 使用在你的系统上可以工作的那一个命令). 使用图形的浏览器显示整个系统的帮助。一般来说,KDE帮助通过把对应的图标放在KDE控制板上来实现。对等的GNOME帮助系统可以使用gnome-help-browser命令。



5.3        系统信息

pwd



输出工作目录。举例,在屏幕上显示我当前所在的目录



hostname



输出本地主机的名称(我正在使用的这一台机器)。使用netconf修改机器的名称(要求超级用户权限)



whoami



输出我的登录名称



id username

输出用户标识ID(UID)和其对应的用户组标识ID(GID),有效的ID(如果不同于真正的用户ID)和所属的其他用户组



date



输出操作系统的当前日期,时间和时区。如果要以ISO标准格式输出,我必须使用命令“date –Iseconds”。

我可以修改当前的日期和时间到2003-12-31 23:57,使用命令:date 123123572003。或者使用两个命令(比较容易理解和记住):



date –-set 2003-12-31

date –set 23:57:00



如果要重新设置硬件时钟(BIOS),可以使用命令setclock,要求超级用户权限。



time



侦测一个进程所需要的时间加上其他处理的时间的总和。不要和上面提到的date命令混淆。比如,我可以使用命令“time ls”来判断显示一个目录需要多长时间;或者我可以使用命令“time sleep 10”来测试time命令(睡眠10秒钟,什么也不做)。





clock



(两个命令中的一个)从计算机的硬件(由电池供应的实时的硬件时钟)获得日期/时间。你可以使用这个命令来设置硬件时钟,但是setclock可能简单一些(看前面的两个命令)。举例:“hwclock –systohc –utc”命令把系统时钟设置到硬件时钟(以UTC格式)。



who



显示登录在系统里的用户



w



显示登录在系统里的用户,检查他们正在做什么以及他们的处理器使用状况。属于常用的安全方面的命令。



rwho -a



(=remote who,远端的who命令)。显示网络里其他计算机的用户登录状况。这个命令要求rwho服务必须在远端机器上运行。如果没有,以root用户运行setup(RedHat特有)激活“rwho”。



finger 用户名



显示对于一个用户的系统信息。可以试一下命令:finger root。任何人都可以使用finger命令访问任何一台连接到因特网提供finger服务的计算机。比如:finger @finger.kernel.org



last



显示最后一个登录到系统的用户。经常运行这个命令作为系统安全检测的手段之一是一个绝好的主意。



lastb



(“=last bad”,最后一个坏的)显示最后一个不成功的登录尝试。但是这个命令在我的系统上不能工作,所以你可能要使用:touch /var/log/btmp



“/var/log/btmp在一般的系统安装里无效的主要原因是因为:它是一个包含登录的出错信息的完全可读的文件。一个用户登录时最经常犯的错误是输入用户密码作为用户名,这样,文件/var/log/btmp对计算机黑客来说简直是一个礼物”。(谢谢Bruce Richardson提供这个信息)。



如果要解决这个问题,修改该文件的文件访问权限为只有root用户才可以使用命令“lastb”。命令:“chmod o-r /var/log/btmp”



history | more



显示当前用户在命令行模式下执行的最后(1000个)命令。参数“|more”在输出满屏时暂停。如果要检查其他用户在你系统上都运行了什么,以root用户登录,检查在该用户主目录下的文件“.bash_history”(没错,该文件可以被修改和删除)。



uptime



显示自从上一次启动到现在机器运行的总时间。





ps



(= “print status”或者 “process status”,打印状态或者处理状态)列出由当前用户运行的进程一览。



ps axu | more



列出当前运行的所有进程,包括那些不是来自控制终端的进程,在显示用户进程的同时显示用户名。



top



持续列出正在运行的所有进程,按CPU的占用率排序(占用率高的排在最前面)。按<CTRL>C退出。



PID     = 用户标识

USER    = 启动或者拥有该进程的用户.

PRI     = 进程的优先级别(值越大,优先级别越低,一般进程是0,最高的级别是-20,最低的级别是20。

NI      = 优化级别(比如,进程试图以预先给定的优先级别的数值来运行)。数值越高,进程的优化级别也越高(优先级别越低)

SIZE    = 进程加载到内存的代码+数据+堆栈的字节总数(以千字节计算)

RSS     = 物理内存被占用的大小(以千字节计算)

SHARE   = 和其他进程共享的内存(以千字节计算)

STAT    = 进程的当前状态 S-睡眠, R-运行,T-停止或者被跟踪,D-不可中断的睡眠,Z-不死的进程

%CPU    = CPU占用虑百分比(自从上一次屏幕更新以来)

%MEM    = 共享物理内存的占用率

TIME    = 进程占用的CPU时间 (自从进程启动以来)

COMMAND=启动该任务使用的命令行(小心命令行里出现的密码等信息,有权限运行top命令的用户都可以看见它们!)





gtop

ktop



(X终端)在图形用户界面下的两个top功能。我比较习惯使用gtop(在gnome自带)。在KDE环境下,ktop在K菜单的“System”菜单下的“Task Manager”里。



uname –a



(=“Unix Name”带可选项“all”)显示你本地计算机信息。也可以使用通信用户界面的guname(X终端下)得到更好的信息显示。



XFree86 –version



显示本地计算机的X-Windows的版本。



cat /etc/issue



检查你的发行版本。你也可以把你自己的信息放到文件/etc/issue里――在用户登录的时候会显示。如果你想要显示更多的信息,还有一个比较常见的做法是把本地专有的登录信息内容放在文件/etc/motd里 (“motd”=“message of the day”,当天信息)



free



内存的信息(以千字节显示)。“共享”内存是指可以被多个进程共同享有的内存(比如,可执行代码是“共享”的)。“缓冲”和“缓存”则是用来保留最近访问的文件和数据――当其他进程需要更多的内存时候这些内容可以被减缩。



df -h



(=disk free 硬盘剩余空间) 输出所有文件系统的硬盘信息(以易读的模式, h-human readable, 人类可读)



du /-bh | more



(=disk usuage, 硬盘使用状况)输出根目录“/”下每个子目录具体的硬盘使用状况



cat /proc/cpuinfo



CPU信息――它显示文件cpuinfo的内容。要注意的是文件在/proc目录下不是真正的文件――它们只是在观察内核信息时起连接的作用。



cat /proc/interrupts



显示正在使用的中断号。在配置一个新硬件的时候可能需要浏览一下。



cat /proc/version



Linux的版本和其他信息



cat /proc/filesystems



显示当前使用的文件系统的类型



cat /etc/printcap |more



显示打印机的设置



lsmod



(= "list modules". 显示模块。必须是root用户,如果不是,使用命令/sbin/lsmod执行)显示当前已经加载的内核模块 .



set|more



显示当前的用户环境(全部显示)。一般来说东西太多了。



echo $PATH



显示环境变量“PATH”的内容。这个命令也可以用来显示其他的环境变量。使用set来察看所有的环境变量(和前一个命令功能相同)



dmesg | less



输出内核信息(也就是常说的内核内部缓存信息)。按“q”退出“less”。也可以使用 “less /var/log/dmesg”来直接检查最近一次系统启动时“dmesg”输出到文件里的内容。



chage -l my_login_name



查看我的密码过期信息



quota



查看我的硬盘区间(硬盘使用的限制)



sysctl -a |more



显示所有可设置的Linux内核参数



runlevel



输出和前一个和当前的运行级别(runlevel)。输出“N5”意味着:“没有前一个运行级别”和“5是当前的运行级别”。要修改运行级别,使用“init”,举例:“init 1”把当前的运行级别切换到“单用户模式”。



运行级别是Linux的操作模式。运行级别可以使用init命令进行快捷的修改。举例,“init 3”将把模式切换到运行级别3,以下是运行级别的标准:



0-中断 (不要把系统初始设置“initdeafult”设成这个值)

1-单用户模式

2-多用户模式,不带NFS(如果你没有网络,和运行级别3相同)

3-全功能多用户模式

4-目前没有使用

5-X11 (图形用户界面)

6-重新启动(不要把系统初始设置“initdeafult”设成这个值)



系统的初始运行级别设置在文件:/etc/inittab里



sar



查看抽取系统活动记录文件信息(/var/log/sarxx, 其中xx指的是当前的日期)。sar可以抽取很多种系统统计信息,包括CPU的平均载荷,i/o的统计,当天的网络流量统计或者是几天以前的数据。

5.4        基本操作

ls

dir



列出当前目录的内容。dir命令是ls命令的一个别名,所以这两个命令在文件罗列时使用的颜色代码是绝对一致的:



深蓝色=目录

浅灰色=一般文件

绿色=可执行文件

紫色=图形文件

红色=压缩文件

浅蓝色=链接文件

黄色=设备文件

棕色=FIFO文件(先进先出,命令管道)



ls -al |more



列出当前目录的内容,所有文件(包括那些以“点号”开头的隐含文件),并以“长格式”显示。把所有输出定向到管道more,在屏幕满屏时可以暂停。ls命令还有很多其他的非常有用的可选项。还有一些快捷键可以减少麻烦的命令输入。试试ll(=长格式罗列,相当于ls –l)。另外一个我经常使用的可选项是“ls –ad”(列出所有当前目录下的子目录但是不输出它们的内容)。



cd 目录



修改当前目录。只输入“cd”没有指定目录名将切换到你的主目录。“cd –”将切换到上一次你访问的目录,这个命令在两个不同的目录之间切换时非常方便。“cd ..”将退到当前目录的上一级目录(父目录)。



./程序名



在当前目录下运行一个可执行程序。当可执行文件不在我的PATH下时,“./”是必须的。一个在我的PATH下的可执行文件可以简单的输入程序名运行而不需要“./”。



shutdown -h now



(要求root用户)关机。一般用于在远程关闭计算机。在控制台上可以使用<CTRL><ALT><DEL>来关闭计算机(所有用户都可以)



halt

reboot

init 6



(三个命令都要求root用户)关机或者重新启动计算机。主要用于远程系统重新启动,比上面的命令要简单一些。如果计算机停止响应时非常有用,我一般通过网络从其他机器telnet到停止响应的计算机上然后重新启动它。在本地计算机上,我则一般使用<CTRL><ALT><DEL>来重新启动。



vlock

(旧版本的RedHat没有这个功能)锁住当前的文本终端。也可以使用vlock –a锁住所有的终端(可能不是什么好主意)。最好的做法一般是使用logout命令退出系统。你不能在图形用户界面的终端上使用vlock命令――因为窗口管理器自带一个屏幕保护程序和一个加锁的工具(在KDE下一个小的锁型标志,键盘快捷键<CTRL><ALT><L>)。



5.5        文件管理

cp source destination



复制源文件source 到目标文件destination。举例“cp /home/stan/existing_file_name .”将复制文件到我的当前工作目录。使用“-R”可选项(代表“recursive”)复制整个目录树的内容,比如:“cp -R my_existing_dir/ ~”将复制我当前工作目录的一个子目录到我的主目录里。



mcopy source destination



从DOS文件系统复制一个文件或者复制一个文件到DOS的文件系统里(不需要挂载DOS文件系统)。举例:

“mcopy a:\autoexec.~/junk”。查看“man mtools”了解更多的相关命令,可以不需要挂载DOS文件系统就可以直接访问DOS文件,比如命令:mdir, mcd, mren, mmove, mmd, mrd, mformat ...我们不是很经常使用mtool的命令是因为――通常可以把DOS/MS Windows的文件系统挂载到Linux里,然后用Linux的常规命令来访问这些文件。



mv  source destination



移动文件和更改文件名。对于文件和目录的移动和改名都可以使用这个命令。



rename 字符串 更新字符串 文件名



很好用的文件名修改工具。举例:“rename .htm .html *.htm”把所有的以“htm”为扩展名的文件名里的“htm”全部换成“html”。



ln source destination



从叫做source的源文件创建一个叫做destination的目标文件的“硬链接”。这个文件看起来好像是一个源文件的复制文件,但是实际上只保留了一个文件的硬拷贝,只是两个(或者多个)目录的入口指到同一个文件上。任何对这个文件所作的修改在所有地方都可以看得见。当一个目录得入口删除后,其他得目录得入口保持不变。“硬链接”的局限性是:文件必须在同一个文件系统里,创建目录或者一些特殊文件的硬链接是不可能的。



ln -s source destination



从叫做source的源文件创建一个叫做destination的目标文件的“标志链接”(软链接)。“标志链接”只是指定到“真实文件”的访问路由。和“硬链接”相比较,它的好处是源文件和目标文件可以在不同的文件系统里。“标志链接”也有自己的不足之处:如果“真实文件”被移动或者删除,“链接”就被破坏――不知道路径指到什么地方;“软链接”可以产生“循环参照”(就象数据库或者电子表格,举例:a指向b,b指向c,c指向a)。简而言之,标志链接非常有用而且也很常用(比“硬链接”要常用得多),但是同时可能带来一些文件管理的复杂性。



rm files



删除文件。你必须是拥有这些文件才能够删除它们(或者是root用户)。在很多系统里,你将会被提问是否确认删除文件。如果你不想被提问,使用“-f”(=force,强制删除)参数。举例:rm –f * 将删除所有当前工作目录下的所有文件,而且没有任何确认提示。



mkdir directory



创建新目录。



rmdir directory



删除一个空目录



rm -r files



删除文件,目录和所有它们的子目录。作为root用户,要小心使用这个命令――如果你在顶级目录树上执行这条命令,你将删除系统里所有的文件,到目前为止在Linux里还没有“取消删除”的命令。如果你真的想要这么做(再仔细想想?),这里告诉你该怎么办:使用命令 ”rm –rf /*”。



rm -rf files

(强制)删除文件,目录和所有它们的子目录如上所述,但是跳过确认信息提示。如果你是root用户,绝对要小心使用这个命令。



mc



激活“Midnight Commander”文件管理器(看起来有点象Linux下的Norton Commander)。根据一些恐龙级的计算机用户的反映,这是至今为止最好的文件管理器。



konqueror &



(在X终端下)激活KDE文件管理器。也许这是文件管理器的极品。比微软的文件浏览器要好得多。它集成了网页浏览,PDF文件阅读和其他功能。真的很酷!



xwc



(在X终端下)另外一个很出色的文件管理器,是X-Win-Commander的缩写。比Konqueror的速度快,但是功能上稍微逊色。



nautilus &



(在X终端下)一个真正很酷的文件管理器。比Konqueror要慢,但是提供了一些有用的功能――比如图标提供文件内容预览!它甚至可以预览声音文件!但是对CPU速度依赖较大,它在我的1.33GHZ的计算机上运行出色,但是我从来不在我的133MHZ的老机器上使用它。



5.6        查看和编辑文件

cat filename | more


这个命令用于查看一个被称为 "filename"的文本文件的内容,每次一页.  "|"符号是"pipe" 符号(在很多美式键盘里, 它与"\"共用一个键).  more 使文本内容的输出显示停止在每一屏.对于长文件,有时可以很方便地使用head 和tail 来显示文件的开始和结尾部分或用less 使之能上下滚动. 如果你恰巧使用 cat显示一个二进制文件,你的终端随后显示古怪的字符, 你能使用reset命令恢复它.

cat filename | less
less filename

(选用二条命令之一) 滚动一个文本文件的内容.退出按q . "less" 大致相当于 "more" , 该命令来自 DOS,但经常 "less"比 "more"更方便因为它可使我能使用滚动条上下滚动.
head filename

显示长文本文件的前10行.
tail filename
显示长文本文件的最后10行. 使用tail -f filename让文件的末尾持续读取该文件的不断出现的数据.
pico filename
使用简单,标准的文本编辑器pico来编辑一个文本文件.  使用 <Ctrl>x推出.  Linux有很多文本编辑器, 包括几个基于图形用户界面的编辑器. 一个新的 pico 克隆版(GPLed) 是 nano.
pico -w filename
编辑文本文件, 没有文本行长度的限制.对于编辑配置文件很方便, 如. /etc/fstab.
kwrite
(在X终端) 很不错, "高级文本编辑器". 支持垂直文本选择!
kate
kedit
gedit
(在X终端).简单但很好的文本编辑器 (基于GUI).
gxedit
(在X终端)另一多用途,具特色的文本编辑器. 它甚至于能定时备份.
latte
(在X终端) "代码" 编辑器, 即, 用于写程序的无格式文本编辑器.
nedit
(在X终端) 另一种程序编辑器. 很好.
bluefish
(在X终端) html 编辑器 (源码的句法高亮标注, 有很多工具和选项).
ispell filename
一个 ASCII 文本文件的拼写检查命令. AbiWord, WordPerfect, StarOffice 和其它文本处理器都使用键入就检查的策略,所以除非需要,否则你不用担心简单的 ispell 命令. Linux 新版本 (如, RH7.0) 包含了功能增强的拼写检查模块, 称为 aspell,但上面的命令仍然工作.
look thermo
在你的系统单词目录(/usr/share/dict/words)中查寻开始于"thermo"的单词.
wvHtml ms_word_document.doc > filename.html
转化MS Word 文件到 html文件.


5.7        查找文件


find / -name "filename"

 

在你的文件系统中从根目录"/"开始搜索被称为"filename"的文件. "filename"文件名可以包含通配符(*,?).



find命令功能强大.它有很多选项让你以不同的方式搜索文件.例如, 通过日期, 文件大小, 权限, 拥有者等等.但一些的搜索查询要花上几分钟编写. 查看info find. 这里是一些使用 find 来完成一些有用的任务的复杂例子.



find $HOME -name core -exec rm -f {} \;

 

以上命令从你的$HOME目录开始寻找, 发现名字是 "core"的文件. 对于每一个这种被找到的文件,执行 "rm -f" (强制删除文件).  {} 代表了已发现的文件,  "\"终止了该命令列表.


find /dev -user "peter" |more

 
以上命令显示由用户 "peter"所拥有的所有设备的文件.显示文件名是 find命令的默认行为,所以如果这就是我所要做的,无须特别指定.

find /home/peter -nouser -exec ls -l {} \; -ok chown peter.peter {} \;

 
在/home/peter目录下找到非有效拥有者的文件.以长格式列出文件.然后将这些文件的所有权改为用户"peter" 和 组 "peter". 要处理文件的所有权, 你可能必须是超级用户.


locate filename

 

发现包含字符串"filename"的文件名.这比前面的命令更容易, 更快, 但基于数据库(通常在夜间重建),所以你无法找到刚刚存到文件系统的文件. 为了强制立即更新数据库, 作为超级用户可以使用: updatedb&.


which executable_name

 
如果我在命令行键入可执行文件的名字, 显示该可执行文件的全路径.例如, 这条命令:
which mozilla。我的系统出现:
/usr/bin/mozilla

whereis command

 
显示"command"命令的二进制文件, 源文件和手册的位置.

rgrep -r 'celeste' . |more

grep -r 'celeste' . |more


(二条命令, 在你的系统中选用一条).在当前目录和所有子目录中搜索含有字符串"celeste"所有文件(选项"-r"代表递归). 显示文件名和在文件中包含所寻找的字符串所在的行.

kfind &

 
(在X终端). 在一个GUI前端界面使用find and grep. 很不错.  命令行末尾的& 使find运行在后台以便使X终端保持可用状态。
 
 

5.8        X-windows基础
 

xinit &

 

启动基本的X-windows服务器(没有 windows管理器). "&"使命令运行在后台.


startx &

 
启动X-windows服务器和默认windows管理器.就象在带有Win3.1的DOS下键入"win" .

startx -- :1 &

 
在显示进程1中启动另一个X-windows(默认显示进程为0). 你能够同时运行几个 GUI 终端.在这些界面之间使用<Ctrl><Alt><F7>, <Ctrl><Alt><F8>来转换.

xterm

 
(在X终端) 运行一个简单的 X-windows终端. 键入 exit将关闭它.对于Xwindows 有其它更高级的”虚拟”终端.我喜欢普遍使用的 konsole 和kvt (二者均来自 kde) 和gnome-terminal (来自 gnome).  如果你需要看起来更奇特的终端, 试试Eterm. 我还可以选择简单, 运行快的rxvt.

startkde
gnome-session
xfce
afterstep
AnotherLevel
fvwm2
fvwm

 
(在X终端, 7 条不同的命令, 使用其中之一来启动你喜欢的windows 管理器). 在X服务器上在一个X终端启动你喜欢的windows 管理器.

5.9        网络应用程序


mozilla &



(在X终端下) 运行mozilla网页浏览器。现在的版本是Mozilla 1.01 (2002年10月),这个浏览器非常不错。Mozilla是Netscape的一个衍生品(在老的Linux系统上一般使用NetScape)。还有其他几个不错的替代品比如konqueror和galeon (在Linux的X终端上输入konqueror和galeon直接运行)



mozilla –display host: 0.0 &



(在X终端下)在当前的计算机上运行Mozilla如何把输出定向到叫做“host”的计算机的第0个显示器的第0个窗口屏幕。你当前的计算机必须有权限在 “host” 计算机显示内容(一般的做法是,在“host”计算机上的X终端输入命令“xhost [当前的计算机名]”。其他的X-Windows的程序也可以通过同样的办法来运行)。



lynx file.html



以纯文本方式来浏览html超文本文件。尽管lynx看起来不像基于图形用户界面的网页浏览器那么出色,但是它很小巧,几乎没有出差错的时候,也不需要什么特殊的设置,只要你的网络是正常的。



konqueror &



(在X终端下) 集成了文件管理器和网页浏览器的功能。很不错,和Mozilla的很多功能可以一比高低。KDE自带的软件。



pine



一个很不错,老古董的文本邮件阅读工具。还有另外一个老古董是elm。你的Mozilla将会阅读你因特网上的邮件,pine则让你阅读“本地”的邮件。比如,你儿子的邮件或者在你网络里的另外一台计算机的cron进程发送给你的信息。命令mail也可以用来阅读和写邮件,但是没有那么方便使用。



mutt



一个非常基本但是及其有用的快速邮件阅读工具。



mail



给email使用的一个基本的操作系统工具。如果你只是要阅读邮件,可以参考上面的快速email阅读命令。如果你要在shell脚本上发送邮件,mail倒是一个很好的选择。



kmail &



(在x终端下)很好的图形用户界面的邮件程序。我使用kmail,因为它比Netscape的mail做得要出色的多。我可以拥有多个电子邮件帐号,然后分别从本地的smtp服务器和ISP的pop3服务器上下载邮件到同一个收件箱。简单易用,支持数字签名。



licq &



(在x终端下)一个ICQ的客户端程序。还有另外一个不错的选择是kxicq。就的Linux发行版本不带licq客户端程序,你可能需要自己下载安装。



knode &



(在x终端下)启动我喜欢的新闻组阅读器(usenet)。比Netscape内置的阅读器要好。



talk username1



和另外一个登录在系统里的用户交谈(也可以使用“talk username1@machine_name”来和另外一台计算机上的用户交谈)。要接受会谈请求,输入命令“talk username2”。如果你正在忙着而有人想要和你交谈,你可以使用命令“mesg n”拒绝接受信息。你可以使用命令who或者rwho来查看有哪些用户当前登录在系统里。talk是一个老古董的UNIX标准工具,在某些场合下仍然非常有用。



telnet server



使用telnet协议连接到另外一台计算机。可以使用计算机名或者IP地址。你会要求输入用户登录名和密码――你必须在远端计算机上有有效的用户帐号和密码。telnet将让你连接到另外一台计算机上好像你就在使用那一台计算机的键盘(几乎完全一样)。telnet不是非常安全――你输入的任何东西在网络上都是开放的文本模式,包括你的密码!一个在“传输路径”上稍微有点专业知识的系统管理员就可以阅读你所输入的内容。如果你要加密的传输,使用ssh(需要一些系统设置)。



rlogin server



(=remote login,远程登录)。这将使用你在当前登录系统上使用的用户名和密码,如果登录失败将会提醒你输入密码。



rsh server



(=remote server) 连接到远程计算机的另外一个办法。这将使用你在当前登录系统上使用的用户名和密码,如果登录失败将会提醒你输入密码。



ssh servername –l username



(=secure shell,安全的shell)使用安全连接远处登录到另外一台计算机。ssh是安全的,因为它使用一对RSA“公共-私有”钥匙压缩所有传送的数据。如果你没有指定用户名,它假设你使用当前的用户名。



ftp server



ftp到另外一台计算机(还有一个ncftp带有一些附加的功能,另外还有基于图形用户界面的gftp)。ftp对于从一台计算机上复制文件到另外一台计算机上非常有用。可以试着用“anonymous”(匿名)用户如果你在远程计算机上没有有效帐号。建立连接之后,使用“?”查询有效的ftp命令一览。最基本的ftp命令有以下这些:



ls            查看远程计算机上的文件

ASCII, binary 设置文件传输模式为“文本模式”或者“二进制模式”,选择正确的模式非常重要

get           从远程计算机上复制一个文件到本地计算机

mget          从远程计算机上复制多个文件到本地计算机

put           从本地计算机上复制一个文件到远端计算机

mput          从本地计算机上复制多个文件到远端计算机

bye           结束连接



如果你要使用脚本文件实现自动化,你可以考虑ncftpput和ncftpget,举例:



ncftpput –u my_user_name –p password –a remote.host.domain.remote_dir *local.html



如果你的计算机在防火墙后面,ncftpput可能会有一些问题-你需要配置文件 /home/user_name/.ncftp/firewall。另外一个选择,你也可以使用lftp来达到同样目的:



lftp –e “mput –a *local.html” –u my_username, my_password ftp://remote.host.domain



如果要保留ftp目录的镜像,可以使用命令fmirror:



wget -m --no-parent http://sunsite.dk/linux-newbie



从网站上复制文件。以上这个例子使用可选项-m(mirror,镜像)从主站上获得完整的文件集合。可选项“--no-parent”限制搜索子目录里的文件。



minicom



minicom是一个专门给串行口设计的“终端模拟器”。看起来和用起来都很象“procomm”或者“telix”。对于串行口通信的故障诊断非常有用。



rx



使用Zmodem,Ymodem和Xmodem协议接收文件。Xmodem需要文件名。输入rx –help得到更多的信息。现在还有谁在使用这些协议?



5.10  文件压缩和解压缩

tar -zxvf filename.tar.gz



(=tape archiver,磁带压缩) 解压一个你从因特网上下载的tarball文件 (*.tar.gz or *.tgz)。



tar -xvf filename.tar



拆解一个tarred(但是没有压缩)的文件。



tar czvpf /var/backups/mybackup.tar.gz /home

cd /; tar xzvpf /var/backups/mybackup.tar.gz '*/myfile.rtf'



作为root用户,创建一个/home目录的备份压缩文件。第二条命令显示如何从备份恢复一个文件。在tarball文件里将不包含“点”文件(指的是以“ .”开头的文件或者目录)。要把所有文件解包,可以使用:tar cvzf filename.tgz * .[a-aA-Z]*



gunzip filename.gz



解压一个压缩文件(*.gz或者*.z)。如果你想把文件压缩成这种格式,可以使用 gzip(还有zip或者compress命令)。注意一下gunzip有趣的发音听起来象“gun zip”(大炮压缩)。



zcat filename.gz | more



(=zip cat)显示一个压缩文件的内容。还有其他一些相关命令不需要预先解开压缩文件就可以使用:zless, zmore, zgrep…等等。



bunzip2 filename.bz2



(=big unzip)解压一个由bzip2压缩工具压缩的文件(*.bz2)。一般用于很大的文件。



unzip filename.zip



解压一个由DOS下的PKZIP压缩工具压缩的文件(*.zip)



zip filename.zip filename1 filename2



把两个文件“filename1”和“filename2”压缩到一个压缩文件叫做 “filename.zip”。



unarj e filename.arj



解压一个使用arj压缩的文件(*.arj)



lha e filename.lha

解压一个使用lha压缩的文件(*.lha)



uudecode -o outputfile filename



解码一个使用uuencode的文件。uu-encoded在使用email传送非纯文本文件的时候应用非常广泛(uuencoded把任何文件格式都变成文本文件)



cat filename | mimencode -o filename.mime

cat filename.mime | mimencode -u -o filname



(两个命令)第一个命令把文件filename编码成基于因特网邮件7bit数据传送标准的文件filename.mime。第二个命令把基于因特网邮件7bit数据传送标准的文件filename.mime解码成一般文件filename。



ar -x my_archive.a file1 file2



(=压缩存档)。从压缩文件my_archive.a解压出文件file1和file2。ar压缩工具更多的用于保存文件库记录。



ark &



(在X终端下)。一个图形用户界面的压缩工具。也许是你管理压缩文件所需要的方便工具。还有另外一个选择是gnozip。



5.11  进程控制



ps



(=“print status”or “process status”)列表显示当前正在运行的进程的进程标识号(PID)。用ps aux查看你的系统上下在运行的所有进程(也包括其他用户的进程和没有终端控制的进程),每个进程都显示其所有者的名字。使用“top”命令持续显示当前正在运行的进程列表。



any_command &



在后台运行任务命令(符号“&”表示“在后台运行前面的命令”)。任务号(Job_number)(译者注:和进程号)将显示在屏幕上,你可以使用任务号将该任务调到前台(见下面)。当我从一个X终端启动一个GUI程序时,我经常使用“&”。



jobs



列表显示后台运行或是被停止了的进程并显示它们的任务号。



fg job_number



将一个后台运行的或是被停止了的进程调到前台运行



bg job_number



将一个进程调至后台运行,这与在命令行用“&”启动后台进程是完全一样的。这将重新启动一个被停止了的后台进程。一般可以用<Ctrl>z来停止当前的前台进程。如果你有被停止的或后台运行的任务,你必须在命行输入exit命令两次,以从系统中注销。



batch

at>updatedb<Ctrl>d

在系统负荷低的时候执行任何命令(经常昌需要长时间完成的任务)。你可以从系统中注销,但进程将继续运行。当命令完成后,一封包含输出信息的电子邮件将发送给你。在以上示例中,“at>”是一个提示符,将要执行的命令是updatedb,然后按<Ctrl><d>来结束命令的输入(你可以输入很多命令提交执行,用<Enter>来分隔它们)。



at 17:00



在指定时间执行命令。你将被提示输入要执行的命令,直到你按<Ctrl>d。相关的命令有atq(显示由at启动的进程队列)和(从“at 队列”中删除一个进程)



kill PID



强制一个进程终止。首先要用ps确定终止的进程的进程标识号(PID)。



killall program_name

通过程序名终止一个(组)程序。例如:killall pppd将断开你的拨号网络。



Nohup program_name

(=no hangup)。运行程序program_name,并使它在你注销时不被中断。输出结果被重定向到你的用户的主目录下的nohup.out文件。在你确信不想运行一个交互程序的时候,使用nohup。



Xkill

(在X终端中)用鼠标终止一个基于GUI的程序。(用你的鼠标指到你要终止的进程的窗口并点击)



kpm

(在X终端中)KDE进程管理程序



lpc

(由root用户执行)检查和控制打印机。输入“?”可以查看命令列表。



lpq

显示打印机队列的内容。在你可从“K”菜单-实用程序(“K”menu-Utilities)中调用基于GUI的“打印机队列”(“Printer Queue”)



lprm job_number

从打印队列中删除一个打印任务。



nice program_name

执行一个程序并调整及优先级。因为在本例中没有指定优先级,将从缺省优先级(通常是0)增加10(进程将运行较慢)。较小的值,代表较高的优先级。优先级的取值范围为-20到19。只有root用户能指定负值。用top可显示正在运行的进程的优先级。



renice –18 PID



(以root用户运行)将一个正在运行的进行的优先级调整为-18。普通用户只能调整他们自己的进程,而且只能从当前值向上调(即使其运行变慢)。可以使用renice +10 –u peter来减少用户peter对CPU资源的占用,这样当他运行高强度运算任务时,使其他用户不受到损害。



<Ctrl>c,<Ctrl>z,<Ctrl>s和<Ctrl>q也属于本章内容,但它们在前面已经描述过了。简单地说,它们表示停止当前命令,调度当前命令到后台运行,停止数据传输,恢复数据传输。



lsof



列表显示已经打开的文件。如果你是root用户,所有的打开的文件都将被显示。使用lsof /dev/tty1你可以指定显示由第一控制台所有的进程打开的所有文件。要想只显示网络文件(对安全审计非常有用),你可以使用lsof –I(以root用户执行)。



Watch –n 60 my_command



以60秒为间隔反复执行my_command命令(缺省间隔为2秒)



5.12  一些管理命令



su



(=substitute user id)采用超级用户(=root)的身份(将提示你输入口令)。输入“exit”返回你先前的注册。不要习惯于用身份在你的机器上工作。root帐户是用于管理的,当你需要访问管理帐户时,su命令可以使你轻松进入。你也可以使用su命令去采用其他任何用户的身份,例如:su barbara将你变成“barbara”(除非你是超级用户,否则需要口令)。



Alias ls=”ls –color=tty”

为命令产生一个别名,用增加一个关于颜色的格式。在这个例子中,别名也叫“ls”,只有当输出被指向一个终端(而不是文件)时,color选项才被执行。如果你想让系统上的所有用户始终能使用这个别名,就把它写到/etc/bashrc文件中。别名是定制你的系统的一种方便的方法。只输入“alias”可以查看你的帐户可使用的别名的列表。使用unalias alias_name可以删除一个别名。



cat /var/log/httpd/access_log



显示自从上次日志文件被“转动”(一般每天在cron程序运行时转动一次)后,谁连接过你的http(apache)服务器。前一次的日志文件为access_log.1,再前一次的日志文件access_log.2,依此类推。



cat /var/log/secure



(以root用户运行)检查重要系统日志。如果你使用Internet访问的话,定时检查的一个很好的主意。



ftpwho



(以root用户运行)检查当前谁连接在你的ftp服务器。



printtool



(在X终端上以root用户运行)打印机配置工具。设置文件存放在/etc/printcap和/var/spool/lpd目录下。



setup



(以root用户运行)配置鼠标、声卡、键盘、和系统服务。许多发行套装都有自己特定的配置实用程序,setup是Redhat的缺省配置程序。Mandrake 7.0提供非常好用的DrakConf。



linuxconf



(以root用户运行,在文本模式或是在X终端上)。在这里你可以访问和更改上百种网络设置。功能非常强大――一次不要改动太多东西,改动你所不清楚的项目时一定要小心。Redhat网络配置工具netconf是linuxconf的一个子集,因此它比较简单而且很多时候容易使用。



mouseconf



(以root用户运行)。一个配置鼠标的简单工具(在完成初始安装后)。Mandrake也有一个类似的工具mousedrake。



kudzu



(以root用户运行)。自动检测和配置硬件。如果你的鼠标(或是其他串行设备)有问题,你可能想要停用kudzu,这样它在系统启动过程中就不会运行(kudzu弄乱了我的系统,使我的鼠标不能工作)。你可以在你需要时手动运行它。



timeconfig



(以root用户运行)为你的系统设置时区。我的计算机的硬件时钟保存的时间是UTC(协调世界时,也称GMT或格林威治时间)。这样,我避免了任何在转换时区时(由夏时制、通过网络跨洲传送文件或是旅行外出引起的)可能发生的问题。时惯上在服务器上使用UTC时间来避免时间“倒流”(有时会引发一些问题)。文件的时间戳总是保持使用UTC时间,并使用时区信息来显示当地时间。例如,许多应用程序(如编译器,数据库)是依靠比较文件的时间戳来区分新的文件与旧的文件的。保证时区信息正确是很重要的。我将当地时间作为BIOS时间来避免发生问题的唯一原因是,当我的从一台计算机上进行双重启动,而其它操作系统(MS Windows?)不知道如何处理UTC。然后,我通过选择“Hardware clock set to GMT”来告诉Linux服务器,这Linux样在需要UTC时,可以计算出来。



setclock



(以root用户运行)。从当前linux系统时间设置计算机硬件时钟。首先,使用“date”命令设置Linux系统时间。例如,我可以将日期和时间改为2000-12-31-23:57,使用命令:

date 123123572000

然后将时间写到硬件时钟,使用命令:

setclock



dateconfig&



(在X终端上,以root用户运行,否则将提示你输入root用户口令)。一个非常棒的GUI实用工具,用于设置操作系统时间、硬件时钟和时区信息,告之BIOS使用UTC时间,而不需要前面的两个命令。



Xvidtune



(在X终端上)调整所有分辩率下的显示器设置,以消除黑带,上下左右调整显示,等等。(首先使用显示器自身的调整按钮,使得文本模式在屏幕上正确显示)。然后用xvidtune针对每种分辩率调整显示频率,使其在屏幕上正确显示。为了使改动保持下去,在屏幕上显示频率,然后将它们传送到/etc/X11/XF86Config设置文件中。在较新型的显示器上,你可能更愿意使用显示器的内建设置来调整你的显示器,xvditune主要是给那些没有记忆设置参数的功能的老式显示器用的。



Kvideogen



(在X终端上)为定义你的屏幕分辩率产生“模式行”。在产生设置文本(“模式行”)后,你可以将其复制-粘贴到的设置文件/etc/X11/XF86Config中(或是/etc/X11/XF86Config-4,如果你使用X-sever 4.00版本)。另见快捷键<Ctrl><Alt><+>。



SVGATextMode 80x25x9

SVGATextMode 80x29x9



(以root用户运行)修改文本终端的文本分辩率。在示例中(第二行)我我将文本屏幕改为80列x29行,字符高度为9像素。第一行定义的是一个常用的分辩率,这样第二行命令在系统上不能工作,我能通过按两次<ArrowUP>(译者注:上箭头)和<Enter>来重新控制屏幕。可以使用哪些模式取决于你的显示卡和你的显示器的刷新频率――需要编辑文件/etc/TextConfig(以root用户运行),去掉相应行前面的注释符,使SVGATextMode知道系统支持哪些模式。



SuperProbe



(以root用户运行)一个检测显示卡类型和内存数量的实用工具。



cat /var/log/Xfree86.0.log



一个对检测X-window设置过程中的错误非常有用的日志文件。文件名中的“0”表示“显示方式0”-如果你需要“显示方式1或2等”的日志文件,你需要相应地修改文件名。



lspci



显示主板信息和PCI扩展槽内都插了哪些卡。我的旧的计算机有ISA(或EISA)插槽,没有PCI。



lsdev



显示硬件信息(DMA,IRQ,IO端口)



lsof|more



显示系统上打开的文件。



kernelcfg



(在X终端上以root用户运行)增加、删除核心模块的GUI工具。每个模块就象一个设备驱动程序―Linux内核中支持一个设备或功能的一段程序。你在命令行使用insmod命令也可以完成同样的工作。



lsmod



(=list modules)显示当前加载的核心模块。一个模块就象一个设备驱动程序-它对一个硬件或一个特性提供操作系统核心支持。



modprobe –l|more



列出系统内核的所有可用模块。哪些模块可用是由如何编译Linux核心决定的。几乎每一种可能的模块特性都可以被编译到内核中,以“硬连接”(可能会快一点,但不能删除)或“模块”(可能会慢一点,但可以根据需要装载/删除),或“无“(根本不支持这个特性)等方式。系统核心所支持的模块(编译过的)都以文件的形式存在/lib/modules(及其子目录)下,当你丢失模块时,你可以流览这些目录,可以找到线索。如果系统核心不支持你所需要的模块,你可以启用该模块并重新编译系统核心(这是因为原装的核心都只包括常用的模块,没有预编译一些试验性的模块。还有,如果你有一些该死的边缘硬件…)。 



modprobe sb



装载soundblaster(sb)模块。使用前面的命令来查找已经加载的核心模块。



insmod parport

insmod ppa



(以root用户运行)向内核中插入模块(一个模块大致相当于一个DOS设备驱动程序)。平常,我用“modprobe”(见前面的命令)来插入模块 。这个例子展示如何为支持一个外置并口100MB ZIP驱动器来插入模块(好像在RH6.0和6.1下,外部ZIP驱动器以其他方式工作都会有问题)。对于250MB外置ZIP,可用imm模块来代替ppa模块。



rmmod module_name



(以root用户运行,但不是必须)从系统核删除module_name模块。



depmod –a



(以root用户运行)为核心建立模块依赖关系表。除非你想/etc/modules而不想重新启动系统,否则不必要。



setserial /dev/cua0 port 0x03f8 irq 4



(以root用户运行)将一个串行接口设置为非标准设置。这个例子显示第一个串口的标准设置(cua0或ttyS0)。第二个串口(cua1ttyS1)的PC标准设置为:端口地址0x02f8,中断3。第三个串口(cua2或ttyS2)为:0x03e8,中断4。第四个串口(cua3或ttyS3)为:0x02e8,中断3,。如果你要它们在启动时即被设置,将这些设置加到文件中。详见man setserial。



Tunelp



(以root用户运行,很少用到)调整并行端口。



/sbin/chkconfig –level 123456 kudzu off



(以root用户运行)用来检查/启用/禁用在各个运行级下自动启动的系统服务的工具。一般情况下,如果我需要在当前运行级下启用/禁用一个服务,我只用Redhat ntsysv实用程序,但chkconfig给了我更多的灵活性。另外一个可用的工具是(基于X界面)。这个例子展示如何禁用kudzu服务,使它在任何运行级都不启动(它弄乱了我的一台机器上的鼠标设置)。显示在所有运行级下启动/停止的服务,我使用:



chkconfig –list|more



检查服务的当前状态,我使用:



service –status –all



立即启动一个服务,我可以使用一些东西,像(启动一个ftp服务器):



service su-ftpd start



重新启动网络服务(如:在我修改了它的配置后),我可以用:



service smb restart



symlinks –r –cds /



(以root用户运行)检查和修改系统上的符号链接。从根开始,遍历所有的子目录(选项 –r=“rescuer”)修改绝对路径链接杂乱链接为相对链接,删除空悬链接,缩短超长链接(选项 -cds)。如果你的文件系统覆盖几个不同的硬盘分区,你需要为每个分区重新运行这个命令(如:symlinks –r –cds /usr)。



cd /usr/src/linux-2.4.7-20

make xconfig



(在X终端上以root用户运行)一个漂亮的GUI前端工具,可在编译自定义内核的准备过程中配置内核选项。(例子中的目录名中包含我的的版本号,如果你的内核版本号不是本例中的,你需要修改你的目录名。你需要“Tk”解释器来地,并且安装了核心的源代码)。“make xconfig”的其他实现方法是“make config”(在文本模式下运行一个脚本,并回答一些问题)和“make menuconfig”(运行一个基于文本菜单驱动的配置工具)。

更多信息;Less /usr/share/doc/HOWTO/Kernel-HOWTO

在使用“”完成新内核的配置选择后,你要执行以下命令来编译新的内核;

make clean(这是一个可选的命令;它清除旧的目标文件,它可能会延长编译过程,但在一些情况下它可以阻止一些问题的发生)



make dep

make bzImage



最后的命令需要一些时间来完成(可能是10分钟或是2个小时,这取决于你的硬件)。它产生文件arch/386/boot/bzImage, 即是你的新内核。接下来:

make modules

make modules_install

现在新内核安装在/lib/modules/KernelName



如果你想运行多个内核的时候,不要改动模块目录的名字-内核必须能够找到与其匹配的模块。如果你想改变内核的名字,你必须编辑主内核makefile文件(如:/usr/src/linux-2.2.14/Makefile),修改最开始的几行。我的文件(缺省TH 7.2)是:

VERSION = 2

PATCHLEVEL = 4

SUBLEVEL = 7

EXTRAVERSION = -10custom



可以用来显示当前运行的内核的名字。我的是。



我“原装”的RedHat内核配置在/boot/config-2.4.28-24(RedHat 8.0)文件中,同时一些附加的“custom”内核设置在目录/usr/src/linux-x.x.x./configs中。我可以从命令的对话框中加载它们中的任何一部分。



现在我能安装新内核。安装过程涉及到将新内核复制(同时改名)到目录中:



cp arch/386/boot/bzImage /boot/vmlinuz-2.4.7-10custom

cp System.map /boot/System.map-2.4.7-10custom



并修改/etc/lilo.conf或/boot/grub/grub.conf,这样在启动时我可以选择用哪一个内核(新的或旧的)引导。强烈建议保存旧内核做为一个引导的选项(万一新内核拒绝引导)。

如果你使用initrd(initial ram disk)做两阶段引导,你还需要生成一个包含在启动过程中内核用到的模块的映像:



mkinitrd /boot/initrd-2.4.7-10custom.img 2.4.7-custom



看一下如何给内核打补钉,快速参考:



cd /usr/src/linux-2.4.7-10

patch –E –p1 < /home/download/the_patch_to_apply

分享到:
评论

相关推荐

    linux shell 实现IP和数字的转换

    要将点分十进制IP转换为十进制整数,我们可以编写一个Shell脚本,使用`awk`或`expr`命令来处理。以下是一个简单的示例: ```bash #!/bin/bash ip="192.168.1.1" octets=(${ip//\./ }) dec_ip=0 for octet in "${...

    linux ocr command line linux 命令 图片 文字 转换

    linux ocr command line linux 命令 图片 文字 转换 linux ocr command line linux 命令 图片 文字 转换 linux ocr command line linux 命令 图片 文字 转换

    Linux串口转网络,linux下socat命令实现网络转发串口数据

    Linux串口转网络,linux下socat命令实现网络转发串口数据

    运维人员常用Linux命令

    运维人员常用Linux命令 作为一名运维人员,掌握基本的Linux命令是必备的技能。 Linux操作系统提供了许多强大的命令,可以帮助运维人员高效地完成工作。本文将总结常用的Linux命令,帮助运维人员快速掌握这些命令,...

    最全Linux常用命令大全-linux常用命令全集pdf

    输入pwd 命令,Linux会输出当前目录。 1.2 cd命令 cd 命令用来改变所在目录。 cd/ 转到根目录中 cd~转到/home/user用户目录下 cd /usr 转到根目录下的usr目录中------------绝对路径 cd test转到当前目录下的test子...

    Linux命令学习+Linux标准文本处理命令

    通过学习这些基本的Linux命令和Shell操作,初学者可以更快地熟悉Linux环境,并能有效地管理和操作Linux系统。此外,掌握这些技能还有助于提升在开发、运维以及其他与Linux相关的领域的专业能力。

    Linux命令详解手册

    Linux命令详解手册是一本适合Linux新手和有一定基础的用户深入学习Linux命令的指南。它详细介绍了大量的Linux命令,涵盖了系统管理、系统设置、文档编辑以及压缩备份等多个方面的操作。掌握这些命令对于理解和使用...

    windows下使用linux命令

    这个"windows下使用linux命令"的主题涵盖了如何安装和使用WSL,以及一些常见的Linux命令在Windows下的应用。 首先,让我们来了解如何启用和配置WSL。在Windows设置中,选择“更新与安全” &gt; “针对开发者” &gt; 选择...

    Linux命令大全手册

    Linux命令大全手册旨在帮助用户熟悉Linux操作系统,尤其是对于那些习惯于DOS和Windows系统的用户。Linux因其稳定性、可靠性以及高效性而备受推崇,它源于UNIX系统,并在其基础上进行了改进和增强。在Linux环境中,...

    Linux命令大全完整版.pdf

    Linux命令大全完整版是一份针对Linux操作系统的命令参考手册,包含了在Linux系统中进行管理、设置、编辑文档、压缩和备份等操作所需用到的命令。下面详细说明了各个章节中命令的具体知识点: 1. Linux系统管理命令 ...

    linux常用命令大全.pdf

    ### Linux常用命令大全 #### 一、文件管理 1. **查看目录与文件** - **ls**: 用于列出当前目录下的文件和子目录。...每个命令都可通过`man`命令获取详细的手册页,这是学习Linux命令的重要资源之一。

    \Linux命令 \Linux命令 \Linux命令

    以下是一些常见的Linux命令及其详细解释: 1. **系统信息**: - `arch`: 显示机器的处理器架构。 - `uname -m`: 类似于`arch`,提供更具体的处理器架构信息。 - `uname -r`: 显示当前正在运行的内核版本。 - `...

    Linux常用C函数和Linux命令大全

    本文将深入探讨“Linux常用C函数”和“Linux命令大全”这两个主题,以帮助你提升在这两个领域的专业技能。 首先,让我们来谈谈“Linux常用C函数”。C语言是一种强大的、低级别的编程语言,广泛用于系统编程、嵌入式...

    linux命令大全完整版(pdf)

    置文件,转成新的格式。现今的配置文件XF86Config,存放在 /etc 或/etc/X11 目录下,它的格式包含了更多的信息,因此在 转换之后,您还须自行编辑设置文件,输入不足的部分。 startx(start X Window) 功能说明:启动...

    linux 命令手册.zip

    这份"Linux命令手册"提供了全面的命令指南,包括基础操作和高级技巧,对于学习和提升Linux技能大有裨益。 手册中的内容分为多个部分,首先会介绍基本的文件操作命令,如`ls`用于列出目录内容,`cd`用于切换目录,`...

    linux内核_linux命令大全

    本文将围绕“Linux内核”和“Linux命令大全”这两个主题进行详细探讨。 首先,我们来讨论《深入理解Linux内核》这本书。这是一本725页的PDF文档,旨在帮助读者深入了解Linux内核的工作原理和内部机制。内核作为操作...

    linux命令详解阿手册PDF文档

    《Linux命令详解手册》是一份全面的Linux命令参考资料,它详细介绍了Linux系统中广泛使用的一系列命令,覆盖了系统管理、系统设置、文档编辑以及压缩备份等多个方面。为了方便用户查阅,该手册按照命令的功能进行了...

    linux命令记忆方法

    ### Linux命令记忆方法 在Linux系统中,掌握各种命令对于高效地进行系统管理与操作至关重要。面对数量庞大的命令,寻找有效的记忆方法变得尤为关键。本文将根据提供的信息,详细介绍一些常用的Linux命令及其记忆...

    最全Linux常用命令大全-linux常用命令全集

    "最全Linux常用命令大全-linux常用命令全集" 本文档对 Linux 中最常用的命令进行了详细的总结和说明,涵盖了文件和目录管理、磁盘空间管理等方面的命令。 文件和目录管理命令 1. `pwd` 命令:显示当前目录 `pwd`...

    windows和linux命令大全

    本资料包"windows和linux命令大全"汇总了这两个平台的常用命令,帮助用户更高效地管理和维护系统。 对于Windows操作系统,它的命令行工具是命令提示符(Command Prompt)或Windows PowerShell。在命令提示符中,...

Global site tag (gtag.js) - Google Analytics