【转】Linux基本指令介绍
说明一下,基本上虽然 Linux 目前对于图形界面的使用已经支援的相当的不错,但是对于一些比较细微的设定方面,毕竟是比不上使用传统的文字介面来的有效!并且,使用文字介面来设定对于了解 Linux 有一定的帮助,毕竟 Linux 与 MS 的咚咚是不太相同的!鸟哥特别建议大家使用文字介面来解决问题!
除此之外,使用文字介面登入 Linux 对于系统资源的损耗也比较少,相对的,就有比较多的资源可以做为网路的用途,进而增加 Linux 的效能。尤其,在我们这个网页中,基本上是以一般被淘汰的 586 系列电脑做为主机,因此对于记忆体与 CPU 的效能要求并不高,所以能有效的减少系统资源的浪费就尽量的减少一些容易耗掉系统资源的废物吧!
底下我们会分门别类的将各个比较常用的指令给搬上来,你可以参考一下。另外一个最重要的地方是,在 Linux 主机上,已经内建各个指令的说明内容了,而且是很详细的线上说明,你可以使用:
# man command <=== command 为你欲查询的指令名称
# info command
在上表中,针对 command 这个指令你可以使用 man 或者是 info 来查询他的功能与说明,例如你要查寻 ls 这个指令时,你可以输入: man ls 或 info ls 来查询一下!适当的利用线上查询对于你的英文及相关的指令功能有一定程度的帮助喔!
登入与登出(开机与关机)
telnet
这套软体在 Windows 及 Linux 系统中都存在,只是介面有点不很相同就是了。基本上,这个程式是 user 端用来连线登入远端主机的。例如鸟哥人在台南,但是我可以在台南使用可以连上 Internet 的电脑,经由 telnet 连线上家里的 Linux 主机,而进行设定!感觉上就好象在家里玩自己的 Linux 主机一样!
一般来说,如果你是使用 Winodows 系统,则你可以在『开始』-->『执行』后,输入 telnet xxx.yyy.zzz.qqq ,其中, xxx.yyy.zzz.qqq 为 IP 位址,则可以连上主机(或者是 BBS )啰。当然,如果您是在 Linux 系统下,亦可直接输入 telnet xxx.yyy.zzz.qqq 来连上主机或BBS喔!
语法: telnet 主机位址(或主机名称)
login
登入系统的指令,在远端进入系统时,程式会自动执行。假设你所要登入的系统主机为 sun.os.test.com ,则你可以在 Windows 底下的 Telnet 软体,或其他软体上,执行:
telnet sun.os.test.com
则会出现如下的画面:
SunOS 5.7 login: username Password: sun# _
你只要有 username 及 pass word 就可以登入系统啦!在你登入系统后, sun# 是提示字元,相当于古早的 C:\> 的意思!
exit
这是离开 Linux 系统的指令,相当于 login out 的意思。
sun# exit
shutdown
Linux 用来关机的指令,这个指令只有 root 才有权力下! shutdown 的用法如下:
# shutdown <==系统在两分钟后关机,并传送讯息给在线上的人 # shutdown -h now <==系统立刻关机 # shutdown -r now <==系统立刻重新开机 # shutdown -h 20:30 <==系统在今天的 20:30 分关机 # shutdown -h 10 <==系统在 10 分钟后关机
reboot
这是鸟哥最常用来重新开机的指令(或关机),可以配合写入缓冲资料的 sync 指令动作,如下:
# sync; sync; sync; reboot
Linux 多人多工与背景执行功能
多人多工
Linux 最为人所称道的即是其多人多工的能力,你可以在任何时刻连线上来你的 Linux 主机,并且同时做很多的工作,例如同时执行 http 的 Web 功能,同时进行 fortran 等程式语言的编辑,并同时上网聊天!你会怀疑, Windows 98 也可以做到这样的地步呀!不过,不要忘了,在 Linux 的系统下,你所做的任何工作都是独立的,你可以随时将你所不要的工作给杀掉,而且,当其中某一个程式当掉的时候, Linux 并不会当机,只要你在其他的视窗再开启一个终端介面,然后查出当机的那一个指令的 process (过程),然后将之杀掉就可以了!根本不用再重新开机!也因为这种多人多工的强大能力,因此, Linux 系统一般来说是很少当机的,并且,由于其记忆体的管理功能完善,因此也不容易有 CPU 过热的情况发生(如果只是做为一般伺服器使用)。
在你的 Linux 主机中,可以支援七个终端视窗介面,你可以按 .....来切换不同的终端机介面!所以当其中一个终端机介面当机的时候,你可以在另外一个终端机登入,然后查出错误的所在(使用 ps -aux 的功能),再以 kill 将错误的地方杀掉即可!
背景执行
另外一个功能,就是『背景执行』的功夫了。当你输入
# cp file1 file2 &
这一串指令的时候,表示将 file1 这个档案复制为 file2 ,且放置于背景中执行,也就是说执行这一个命令之后,在这一个终端介面仍然可以做其他的工作!而当这一个指令( cp file1 file2 )执行完毕之后,系统将会在您的终端介面显示完成的消息!很便利喔!
多人多工的问题
多人多工确实有很多的好处,但其实也有管理上的困扰,因为使用者越来越多,将导致你管理上的困扰哩!另外,由于使用者日盛,当使用者达到一定的人数后,通常你的机器便需要升级了,因为 CPU 的运算与 RAM 的大小可能就会不敷使用!
& 与
如前所述,背景执行可以提供你在同一个终端机介面(命令模式)当中同时做很多的事情,你可以使用 & 或 来将指令放置背景中执行。例如执行 find "/" -name httpd & 这一行命令,表示将寻找 httpd 这个档案的指令放置到背景中执行的意思。另外,当你执行一个需要长时间的程式,例如执行 ftp 程式时,在程式进行当中,也可以经由按下 来将程式放置于背景中。那如何由背景中将程式在叫回萤幕上呢?请参考下一个指令 fg。
fg
fg 是将程式再叫回萤幕上显示的一个指令,在终端模式中输入 fg 即可。当然,如果你当时并没有程式在执行的话,系统会告诉你,并无执行中程式(no such job)。
ps -aux
这是察看执行中的程式的一个指令,你可以配合其参数 -aux 来执行,如下:
# ps -aux
则系统将会列出连同系统服务的程式,在输出的第一列中会出现 『PID』字样,在那一栏中的咚咚就是每一个程式执行的代码。例如下面的输出画面。
# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 1324 532 ? S Jul16 0:14 init root 2 0.0 0.0 0 0 ? SW Jul16 0:05 root 3 0.0 0.0 0 0 ? SW Jul16 0:29 root 4 0.0 0.0 0 0 ? SW Jul16 0:00 root 5 0.0 0.0 0 0 ? SW Jul16 0:00
在上图中, init 这个程式的 PID 为 1 。
kill
这是用来杀掉执行中程式的指令,需配合 ps 这个指令,当你执行一个 ftp 程式,但是他有点当当的时候,你可以 ps -aux 这个指令查出 ftp 这个程式的代码(PID),假设其 PID 为 110 ,然后输入:
# kill 110
即可杀掉这个 ftp 程式。
档案与目录管理
cd
这是用来变换工作路径的指令。一登入 Linux 系统后,root 会在 /root 下,至于使用者会在预设的 /home/username 底下,例如鸟哥的 ID 为 vbird ,则以 vbird 的身份登入后,会到 /home/vbird 这个路径下。OK!那回到上一层可以用 cd .. 而到相对路径可到 cd ../bird,至于绝对路径则是 cd /usr/sbin !注意喔,在前面的提示字元会改变路径名称!
# cd .. <== 回到上一层 # cd <== 回到使用者目录 # cd /usr/bin <== 到 /usr/bin 这一个目录 # <== 看吧!到 bin 这个目录下啰!
pwd
这是显示目前所在目录的指令,例如在上个表格最后的目录是 /usr/bin 这个目录,但是提示字元仅显示 bin ,如果你想要知道目前所在的目录,可以输入 pwd 即可:
# pwd /usr/bin <== 显示路径啰! #
ls
这是用来显示档案名称与内容的指令,档案的内容说明已经在 这里 说明过了,在此不再重复! ls 的语法为:
# ls --color 以彩色显示档案资料 # ls -l 详细列出档案系统结构 # ls -a 显示隐藏档(以"."开头的档案) # ls -al 同时显示隐藏档与详细资料 # ls -al|more 将档案内容以一页一页显示
cat
这是将档案内容列出的指令。例如在 /root 下有一个档名为 .bashrc (这是系统预设的档案,是隐藏档),你可以按下 cd 回到 /root 目录后,执行:
# cat .bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias ll='ls -l' alias lm='ls -al|more'
上面显示的就是 .bashrc 这个档案的内容啦!基本上,cat 与 DOS 下的 type 是相同的!
more
是否觉得 cat 在读取较大的档案的时候会有看不到的资讯呢(如果档案太大的话),这时候你可以用 more 来一页页读取喔!另外, more 也可以与其他的程式合并使用,例如 ls !(如下表中,『|』就是分隔号,可以将两个指令放在一起执行!)
# more .bashrc # ls -al|more
mkdir
建立新的目录!例如我们要建立一个 test 的目录,你可以这样下指令:
# mkdir test # ls -l
再执行了 ls -l 之后,你就可以看到 test 这个目录啦!
rm -irf
这是移除的指令,相当于 dos 下的 del 指令!这里要注意的是,通常在 Linux 系统下,为了怕档案被误杀,所以都已经有 -i 这个参数, -i 是指每个档案被杀掉之前都会确认一次。而如果要连目录下的东西都一起杀掉的话,就要使用 -rf 这个参数了!你可以用下面这个例子来试试看有什么不同的现象!
# rm test # rm -rf test
rmdir
mkdir 是建立目录,而 rmdir 就是移除目录的指令。不过,若是欲移除的目录里头有档案或其他目录存在,就无法移除,这时就要用刚刚的 rm -rf 来移除啦!
mv
这是移动档案或目录的指令,例如我们要将 .bashrc 这个档案移动至根目录下,则:
# mv .bashrc / # mv /.bashrc .
而将档案移动至目前的工作目录,则加上 "." 这个字!
语法: mv 来源档(或目录)目的档(或目录)
cp
就是 copy 的意思。例如我们要将 .bashrc 这个档案复制到 /home 底下,可以:
# cp .bashrc /home
语法: cp 来源档 目的档
ln
ln -s 真实目录或档案 连结的目录或档案:这是连结档案或目录的指令,通常我们都会加 -s 这个参数,例如我们将 /usr/bin 这个目录连接到 /root 底下,可以这样输入:
# ln -s /usr/bin bin
不过请注意喔,在你的 /root 底下的 bin 这个目录中的所有档案其实都是 /usr/bin 里面的东西,所以你如果进入 /root/bin 内乱杀东西的话,等于是将 /usr/bin 内的档案杀掉喔!
语法: ln -s 来源档(或目录)目的档(或目录)
find
寻找档案的指令,会将欲寻找的档案找出来,例如下面的例子:
# find / -name bin
上面的意思为:在 / 目录(根目录)下寻找档名(-name)为 bin 的档案,要注意的是,因为 Linux 的档案很多,如果你的电脑比较旧,可能会找很久...
语法: find 路径 -name 档名
whereis
相对于 find ,你也可以使用 whereis 这个指令来下达找寻的档案,whereis 利用曾经找过的系统资讯内的资料去找档案,所以速度会很快,不过,如果 whereis 找不到的话,并不代表该档案真的不存在!这个要小心!
# whereis bin bin: /usr/bin
chmod
这是变更档案属性的指令,通常鸟哥都是以数字作为改变属性的依据;在档案的属性中, r 为4分、w 为2分, x 为1分,如果你想要让你刚建立的一个档案,让大家都看到的话,即你需要『-rw-r--r--』,这是你的三个群组的分数分别是 r w=6, r=4, r=4,所以可以下达:
# chmod 644 .bashrc # ls -al .bashrc -rw-r--r-- 1 root root 216 Apr 8 13:54 .bashrc
chown
记得档案有『拥有人』及『拥有群组』吧,这个 chown 就是在改变拥有者的指令。例如你 copy 一个档案给 vbird ,但是因为你的身份是 root ,所以你 copy 过去的档案 vbird 可能不能使用,因此你需要将档案的拥有人改成 vbird 才可以!如下:
# cp .bashrc /home/vbird # cd /home/vbird # chown vbird .bashrc
那如果想要将整个目录下的档案都改变拥有者与拥有群组呢?可以下达
chown -R username:groupname directory (ex> chown -R root:root /root)
即可喔!
chgrp
作用与 chown 相似,只是在改变档案或目录的『拥有群组』。
df
这是用来察看硬碟空间的指令。由于我们目前将档案都建立在根目录『/』下,所以只要没有空间,则所有档案都无法复制进来系统。不过,若你规划出多的硬碟,则可以察看你的硬碟空间资讯,如下所示:
# df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda5 964312 87648 827680 10% / /dev/hdb5 2150420 745500 1295680 37% /home /dev/hdb1 2016016 1419708 493896 74% /usr /dev/hda1 1022080 349880 672200 34% /win98
上面说,Filesystem 是硬碟所在的划分表, Used 是指使用掉的硬碟空间(KB),Available是剩下空间,Mounted on则是这颗硬碟代表哪一个目录。如上所示,根目录(/)在 hda5 这颗硬碟,总空间有 964312 KB,剩下可用空间为 827680KB,至于 /win98 则在 hda1 中,且全部空间有 1022080 KB。
如果要将资料型态以 MB 数显示的话,可以输入 df -m 来达成。
du
这是用来察看目录内所有档案使用掉的空间的情况,如下所示:
# du -m
其中, du 预设的档案输出资料为 KB,以参数 -m 使档案资料显示为 MB。
磁碟与硬体管理
mount
这是将硬碟或者是光碟、软碟接挂上系统的指令!之前有提过,在 Linux 下面,每一个装置都是一个档案(或目录),而每一种装置的档案型态都不相同,因此对于 mount 后面加的参数就很重要啰:例如:
# mount -t iso9660 /dev/cdrom /mnt/cdrom <=光碟 # mount -t vfat /dev/fd0 /mnt/floppy <=软碟(windows 系统档) # mount -t ext2 /dev/fd0 /mnt/floppy <=软碟(Linux 系统档) # mount -t ext2 /dev/hdc1 /mnt/harddisk <=硬碟
光碟装置档=/dev/cdrom、软碟装置档=/dev/fd0、硬碟装置档=/dev/hdxx。
如上表所示, -t 是参数,至于 iso9660, vfat, ext2则是这些装置的档案型态!后面接的则是这个装置所在的目录!千万记得,这些目录需要是早已存在的,而且最好是空的目录,不然目录里面原本存在的档案会不见去!
另外,注意喔!当你 mount 上光碟机或软碟的时候,请不要轻易的拿出磁片(而且光碟片也不会被你退出),因为会造成系统读取的错误!你应该用 umount 来退出!指令为
umount /mnt/cdrom (umount 装置所在目录)
fdformat
这是用来『低阶格式化』软碟的指令。(注意:软碟的装置档为 /dev/fd0 )不必将软碟 mount 就可以格式化了,指令内容为:
# fdformat /dev/fd0H1440
注意喔!在上面的装置档案为 /dev/fd0H1440 ,其中加在 /fd0 之后的 H1440 为表示 1.44MB 的软碟容量!在低阶格式化之后,还要将软碟的档案格式化为 Linux 的 ext2 之型态,则需要使用 mke2fs 指令!
fdisk
这是对硬碟(也可以对软碟喔)做分割的程式。基本的用法为=> fdisk 装置档案,假设您有一颗硬碟要重新规划,而这颗硬碟为 hdc ,则你可以输入:
# fdisk /dev/hdc
然后,按下 m 会出现 help 的选单,要知道的大概只有两个子指令,一个是删除 partition 按 d ,一个是增加 partition 按 n,假设你要增加一个 primary partition,按下 n 再按 p 再按你要的 primary partition 号码(1-4)就可以了。假设你的 hdc 需要规划成为一个硬碟(即 hdc1)则在输入 fdisk /dev/hdc 后,需要按:
n(增加) -> p(primary partition) -> 1(partition 1) -> w (储存写入) -> q (离开)
同样的,分割完硬碟(或软碟)后,要以 mke2fs 格式化!
mke2fs
这是用来将磁碟格式化成 Linux 系统档的指令。基本上,只要写入对的装置档案就可以了。例如我们要格式化软碟的话,或是新的硬碟 hdc1 ,则可以如此写:
# mke2fs -c /dev/fd0 # mke2fs -c /dev/hdc1
要记得的是,在你做这个格式化的动作时,软碟与硬碟均不可 mount 到 Linux 的系统中。
mkbootdisk
这是制作开机磁片的指令。指令很简单:
# mkbootdisk --device /dev/fd0 `uname -r`
其中, `uname -r` 是目前 Linux 系统所使用的核心版本,如果你有多个核心版本的话,你以可以直接输入核心版本。例如在这个网页中所使用的核心有两个版本,一个是 2.2.12-20,另一个是 2.2.18,若要以 2.2.18 设定开机的话,可以使用: mkbootdisk --device /dev/fd0 2.2.18 !
badblocks
这是用来检查硬碟或软碟有没有坏轨的指令,你可以用底下的方式来下达:
# badblocks -svw /dev/hdc1
fsck
这是用来检查与修正硬碟错误的指令。注意:通常只有身为 root 且你的系统有问题的时候才使用这个指令,否则在正常状况下使用此一指令,可能会造成对档案的危害!
# fsck /dev/hdc1
通常使用这个指令的场合都是在系统出现极大的问题,导致你在 Linux 开机的时候得进入单人单机模式下进行维护的行为时,才必须使用此一指令!
rpm
这是一个安装或者是解安装 RedHat 软体的指令,在 RedHat 中已经有设定了一些有点像 Windows 的软体安装功能,这就是 rpm 这套软体了!而 rpm 所安装的软体又分为两种形式,因此你可以分别使用下面两种参数对不同的档案进行安装:
# rpm -ivh xxxxx.rpm <==将 xxxxx.rpm 档案安装于 Linux 系统中 # rpm -ivh --nodeps xxxxx.rpm <==将 xxxxx.rpm 档案『强制』安装于 Linux 系统中 # rpm -Uvh xxxxx.rpm <==将 xxxxx.rpm 升级 # rpm -e xxxxx.rpm <==将 xxxxx.rpm 解除安装 # rpm -q squid <==察看 squid 这一个软体的版本 # rpm --recompile yyyyy.src.rpm <==安装档名为 .src.rpm 的档案!
这里要注意的是, rpm 的档案主要有两种形式,一种是已经经过编译的 i386.rpm 档案,令一种是未经编译的 .src.rpm 档案,两种档案形式的安装参数是不一样的,请小心注意!
系统管理员
su
这是一个用来转换你身份成为 super user (系统管理员)的指令,任何人只要知道 root 的密码,就可以成为 super user,所以密码可千万不要外流呀!由于 RedHat 在主机之外的终端机上,无法以 root 的身份直接连线,所以你需要以一般身份的 user 连线之后,再以 su 指令来成为 super user:
# su <==输入指令 Password: <==在这里输入 root 的密码 # <==看,使用者名称变啰!
clear
这是用来清除萤幕画面用的,没有什么太大的用处。通常是你觉得画面太乱的时候输入用的!直接输入 clear 就可以了!
dmesg
在开机的时候你会发现有很多的讯息出现吧,例如 CPU 的形式、硬碟、光碟型号及硬碟分割表等等。但是讯息都是『刷』的一声就跑过去了!这些讯息有时候对于系统管理员是很重要的,因为他提供了系统的资讯呀!要看这些讯息你可以用 dmesg 这个指令来观看!
# dmesg|more
加上 |more 的原因是因为讯息太多了,所以可以加入这个管线指令来使画面暂停!
groupadd
这是用来增加群组的指令,通常鸟哥都不用这个指令的,因为有更容易使用的指令 /bin/userconf 可以使用哩(注意,在 RedHat 7.0 以后的版本,就要使用 /sbin/userconf 哩)!
useradd
这是用来增加使用者的指令,鸟哥通常不使用这个指令,你可以使用 /bin/userconf 这个指令,更简单易用喔(是视窗介面的喔!)(注意,在 RedHat 7.0 以后的版本,就要使用 /sbin/userconf 哩)
userconf
这是用来增加使用者、群组等,且以视窗为介面的一个指令!如果你是以远端登入,并使用 su 指令成为 super user 的话,直接输入 userconf 可能会找不到这个指令,你可以输入: /bin/userconf 来启动这个指令!(注意,在 RedHat 7.0 以后的版本,就要使用 /sbin/userconf 哩),由于这个指令的图示较多,请到这里来看看!
passwd
这是用来更改密码的指令,很简单,只要在提示字元下输入 passwd ,然后输入目前的密码,再输入两次欲修改成的新密码,就修改OK了!不过要注意,密码的形式:不能与帐号相同,且需要 8 个字元以上,另外,帐号也不能太简单!否则系统会不接受!
# passwd Changing password for vbird (current) UNIX password: <==这里输入目前的密码 New UNIX password: <==这里输入新的密码 Retype new UNIX password: <==这里再输入新的密码一次 passwd: all authentication tokens updated successfully
who
这是用来视察目前在系统上的使用者指令,你也可以使用 w 这个指令来下达动作。
# who root pts/0 Aug 2 20:43 # w 8:48pm up 4 days, 5:08, 1 user, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.1.2 8:43pm 0.00s 0.38s ? -
基本上,who 与 w 的功能是相同的,只是 who 仅列出使用者名称与登入时间,至于 w 则会列出使用者的
·来源位址(IP):就是 FROM 那一项即是IP;
·登入时间:即是 LOGIN@ 那一项;
·工作项目:就是 WHAT 那一项!
whoami
这是用来确认你目前的身份的指令,由于你可能会有几个身份在你的机器上,所以需要以这个指令来确认你的身份,不过由于 Linux 会将使用者名称写在提示字元上,所以这个指令目前比较少用到了。
top
这是用来指示目前系统的服务项目的动态资料。
# top 10:14pm up 4 days, 6:34, 1 user, load average: 0.01, 0.01, 0.00 40 processes: 39 sleeping, 1 running, 0 zombie, 0 stopped CPU states: 0.5% user, 0.3% system, 0.0% nice, 99.0% idle Mem: 63124K av, 60844K used, 2280K free, 23604K shrd, 35648K buff Swap: 104380K av, 1684K used, 102696K free 10788K cached PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND 3121 root 20 0 1016 1016 820 R 0 0.9 1.6 0:47 top 1 root 0 0 380 368 320 S 0 0.0 0.5 0:04 init 2 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kflushd 3 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kupdate 4 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kpiod 5 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kswapd 6 root -20 -20 0 0 0 SW< 0 0.0 0.0 0:00 mdrecoveryd 366 bin 0 0 308 288 228 S 0 0.0 0.4 0:00 portmap 382 root 0 0 392 376 328 S 0 0.0 0.5 0:00 apmd 435 root 0 0 488 480 388 S 0 0.0 0.7 0:00 syslogd 446 root 0 0 688 676 316 S 0 0.0 1.0 0:00 klogd
输入 top 之后,会出现类似上面的显示情况。上图中说明了你的记忆体有63124K,而下方的面版说明了目前正在执行中的工作内容!
free
这是用来察看记忆体的指令。
# free total used free shared buffers cached Mem: 63124 60732 2392 23136 35648 10796 -/ buffers/cache: 14288 48836 Swap: 104380 1684 102696
如上图中,说明总记忆体容量为 63124K,而使用了 60732K,另外,虚拟记忆体(Swap)共有 104380K(亦即共有 100MB 的虚拟记忆体)。
quotacheck, edquota
这些档案是用来限制使用者在 Linux 主机上的硬碟使用容量。例如,有十个人同时分享一个 2G 的硬碟空间,但是有一个使用者就用了 1.5 GB 的容量,那相对的,其他人可使用的空间就只有剩下 0.5G 啦!不公平对不对,而且也怕被使用者填充大量的垃圾,而使用系统资源被瓜分掉!因此就有 Quota 这个咚咚的出现啦!由于执行的步骤较为繁琐,所以额外写了一个页面,请到这里来看看。
压缩指令
compress
这是用来压缩及解压缩档名为 .Z 的压缩档。要注意的是,用 compress 压缩的时候,会将原档案杀掉而变成档名为 .Z 的档案,例如你压缩一个名为 bird.test 的档案,则压缩完成后只会剩下 bird.test.Z 这个压缩档!当然,解压缩的时候也是一样的,压缩档不见了,只有剩下被解压缩的档案。指令如下:
# compress xxxxx <==将 xxxxx 档案压缩成为 xxxxx.Z 档名 # compress -d xxxxx.Z <==将 xxxxx.Z 解压缩成 xxxxx
上表中,解压缩也可以用 uncompress xxxxx.Z 来达成!
gzip
这个也是一个压缩指令,与 compress 很相似,指令的用法也相同!只是压缩的档名为 .gz 罢了!
# gzip xxxxx <==这是压缩指令 # gzip -d xxxxx.gz <==这是解压缩指令
tar
这是一个很棒的压缩指令,这个指令可以配合 gzip 来进行整个目录的压缩!例如有一个名为 bird 的目录要被你整合成一个档案,你可以使用:tar -xvf *.tar *(其中 * 为你所要整合的目录名称)。
# tar -cvf bird.tar bird <==只有将目录转成一个档案,没有压缩 # tar -zcvf bird.tar.gz bird <==压缩一整个目录成为 .tar.gz 档案
上面这个例子的 bird.tar 只是将 bird 这个目录整个拷贝成为一个档案而已,并没有压缩,而 bird.tar.gz 则是将 bird 这个目录压缩成为一个档案!基本上,我们都是使用 -zxvf 来压缩一整个目录的!而如果是要解压缩呢?由于有没有压缩所下的参数并不相同,所以针对两种档案也是有两种参数的组合:
# tar -xvf bird.tar # tar -zxvf bird.tar.gz
上面则是解压缩的参数!
注意了,用 compress 及 gzip 压缩及解压缩的时候,会将原档案取代掉!而使用 tar 来压缩及解压缩的时候,原档案将会与产生档案同时存在!通常我们都是使用 tar 来进行压缩或解压缩的!(当然,你还是可以使用 compress 及 gzip 来压缩一个大的档案!)
一些网路功能
ifconfig
这是用来查询目前我们这个系统的网路卡的状况的指令,可以查询 IP、子遮罩网路及网路卡的硬体资讯等等。例如:
# ifconfig eth0 Link encap:Ethernet HWaddr 00:50:FC:20:F1:4D inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7651977 errors:0 dropped:0 overruns:0 frame:0 TX packets:7467862 errors:0 dropped:0 overruns:0 carrier:0 collisions:961 txqueuelen:100 Interrupt:10 Base address:0x6100 eth1 Link encap:Ethernet HWaddr 00:80:C8:5A:87:01 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7492497 errors:0 dropped:0 overruns:0 frame:0 TX packet s:7617653 errors:0 dropped:0 overruns:0 carrier:0 collisions:289 txqueuelen:100 Interrupt:9 Base address:0x6200 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:512 errors:0 dropped:0 overruns:0 frame:0 TX packets:512 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 ppp0 Link encap:Point-to-Point Protocol inet addr:211.74.249.38 P-t-P:172.16.11.8 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 RX packets:7469726 errors:0 dropped:0 overruns:0 frame:0 TX packets:7617651 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10
由于上面的例子是使用两张网路卡,因此会有 eth0 及 eth1 两个介面,至于 lo 是系统内设的递回网路,这是一定会有的咚咚,而且其 inet addr(IP)一定是 127.0.0.1!另外, ppp0 则是 ADSL 拨接之后所产生的虚拟介面(对外的介面!)。在这个例子中,鸟哥使用了两张网路卡, eth0 用在内部网路, eth1 用在 ADSL 拨接,所以 eth1 就没有 address。至于第一张网路卡的网路位址是虚拟的 192.168.1.2。而真正的对外联系是 ppp0 这一个拨接介面,其 internet 是 211.74.249.38!
route
这是用来看你的网路通讯包传送的路由情况的指令。由于通信包是藉由一个一个的路由表来传递的,所以观察你的路由表,对于网路除错(debuge)就很重要啦!
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.2 * 255.255.255.255 UH 0 0 0 eth0 172.16.11.8 * 255.255.255.255 UH 0 0 0 ppp0 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 172.16.11.8 0.0.0.0 UG 0 0 0 ppp0
例如上表中,所有的通讯都是藉由 ppp0 这一个介面卡(Iface)并且其通讯闸(Gateway)为 172.16.11.8 这一个!另外,在虚拟 IP (内部网路)则是藉由 eth0 (192.168.1.2)这一块网卡来连线的!
另外,你也可以使用 route 来加入你的路由表,假如你要将一个网路为 192.56.76.XXX 且子网路为 255.255.255.0 的位置加入你的 eth0 这个网路卡的连线处理中,就可以使用如下的语法:
# route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
netstat
这也是用来观察网路状况的指令。
# netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 126 swks249-38.adsl.:telnet 192.168.1.15:1341 ESTABLISHED Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 2 DGRAM 87643 /dev/log unix 0 STREAM CONNECTED 116 @00000012
在上表黄色的部分,由于鸟哥是在另一部电脑连线进入的,所以网路位址就会不同啰!
hostname
这只是用来观看你的主机名称而已。
# hostname tsai.adsldns.org
ping
这是用来察看对方网路是否有动作的指令,这个指令亦可以在 windows 上面执行!
# ping www.kimo.com.tw PING www.kimo.com.tw (202.1.237.21) from 211.74.249.38 : 56(84) bytes of data. 64 bytes from 202.1.237.21: icmp_seq=0 ttl=245 time=56.7 ms 64 bytes from 202.1.237.21: icmp_seq=1 ttl=245 time=58.0 ms 64 bytes from 202.1.237.21: icmp_seq=2 ttl=245 time=58.7 ms 64 bytes from 202.1.237.21: icmp_seq=3 ttl=245 time=52.0 ms 64 bytes from 202.1.237.21: icmp_seq=4 ttl=245 time=72.2 ms --- www.kimo.com.tw ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 52.0/59.5/72.2 ms
例如上表中,我们去观察 www.kimo.com.tw 是否有启动,看每一列的最后一行,会告诉你讯息回应的时间大约是 56ms!(10-3 sec.)
nslookup
这是用来查询或反查询 DNS 的指令!例如我们要知道 奇摩 的网路位址,则可以如此查询:
# nslookup www.kimo.com.tw Server: ksdns.seed.net.tw Address: 139.175.10.20 Non-authoritative answer: Name: www.kimo.com.tw Address: 202.1.237.21
系统会告诉你,我们使用的 DNS server 是 ksdns.seed.net.tw,而查询到的网址是 202.1.237.21。如果需要更详细的查询,可以用下面的方式来查!
# nslookup Default Server: ksdns.seed.net.tw Address: 139.175.10.20 > set type=any <==告诉系统我们要详细的资料! > www.kimo.com.tw Server: ksdns.seed.net.tw Address: 139.175.10.20 Non-authoritative answer: www.kimo.com.tw internet address = 202.1.237.21 Authoritative answers can be found from: kimo.com.tw nameserver = ns1.kimo.com.tw kimo.com.tw nameserver = ns1.yahoo.com kimo.com.tw nameserver = ns3.europe.yahoo.com kimo.com.tw nameserver = ns5.dcx.yahoo.com ns1.kimo.com.tw internet address = 210.59.144.1 ns1.yahoo.com internet address = 204.71.200.33 ns3.europe.yahoo.com internet address = 217.12.4.71 ns5.dcx.yahoo.com internet address = 216.32.74.10
talk
这是用来交谈的指令。
traceroute
这是用来追查通讯包传送的情况,例如我们要从 seednet 的网路上查询到成大的代理伺服器的通讯状况,可以使用如下的指令:
# /usr/sbin/traceroute proxy.ncku.edu.tw traceroute to proxy.ncku.edu.tw (163.28.112.100), 30 hops max, 38 byte packets 1 172.16.11.8 (172.16.11.8) 128.378 ms 68.920 ms 118.313 ms 2 139.175.15.1 (139.175.15.1) 54.146 ms 38.557 ms 44.320 ms 3 R58-37.seed.net.tw (139.175.58.37) 61.339 ms 43.177 ms 39.548 ms 4 R56-162.seed.net.tw (139.175.56.162) 66.631 ms 43.182 ms 41.429 ms 5 203.72.191.222 (203.72.191.222) 65.538 ms 61.379 ms 38.887 ms 6 140.116.241.230 (140.116.241.230) 40.159 ms 46.107 ms 46.854 ms 7 proxy.tnrc.edu.tw (163.28.112.100) 38.641 ms 57.286 ms 46.380 ms
系统会告诉你,总共通过了7个路由,并列出了每一个路由的 Internet 位址。这个东西有个好处,可以告诉你,当网路出问题时,问题是在哪一个地方!
mail
这是用来收发信件的指令,详细的流程我们会在 mail 架站中提及。
其他有的没的
date
这是用来察看日期的指令。
# date Fri Aug 3 19:09:31 CST 2001
cal
这是用来叫出日历的指令。
# cal August 2001 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
grep
这是用来搜寻某些特定字元的指令。例如使用 ps -aux 查询系统服务时,我们只需要知道 sendmail 是否有动作,则可以使用管线指令『|』来加入 grep 这个指令同时运作。
# ps -aux|grep sendmail root 443 0.0 1.0 2092 660 ? S Jul26 0:36 sendmail: accepti vbird 8387 0.0 0.7 1240 492 pts/1 S 19:11 0:00 grep sendmail
上表则表示 sendmail 有在运作了
ftp 指令
ftp
FTP 这个功能不用再多谈了吧?这是用来捉取网路上免费档案的一套软体。例如我们要连上交大的 FTP 站捉东西,可以如下:
# ftp linux.cis.nctu.edu.tw Connected to linux.cis.nctu.edu.tw. 220 ProFTPD 1.2.0rc3 Server (Linux.CIS FTP server) Name (linux.cis.nctu.edu.tw:vbird): anonymous <==输入 anonymous 匿名登入 331 Anonymous login ok, send your complete email address as your password. Password: <==输入 name@server.xxx.xxx 型态的 mail-address 密码 230 Anonymous access granted, restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> dir <==检查网站上的目录 200 PORT command successful. 150 Opening ASCII mode data connection for file list. -rw-rw-rw- 1 linux adm 39491400 Aug 3 21:00 00ls-lR -rw-rw-rw- 1 linux adm 3091546 Aug 3 21:01 00ls-lR.gz -rw-r--r-- 1 linux wheel 232 Mar 15 22:00 00mirror.today drwxr-xr-x 5 linux wheel 4096 Oct 29 2000 java drwxr-xr-x 14 linux wheel 4096 Aug 2 19:31 kernel drwxr-xr-x 4 linux wheel 4096 Sep 28 2000 mirrors 226-Transfer complete. 226 Quotas off ftp> cd kernel/v2.4 <==进入 kernel 底下的 v2.4 目录 250 CWD command successful. ftp> get linux-2.4.0.tar.bz2.sign <==捉下 linux-2.4.0.tar.bz.2.sign 这个档 local: linux-2.4.0.tar.bz2.sign remote: linux-2.4.0.tar.bz2.sign 200 PORT command successful. 150 Opening BINARY mode data connection for linux-2.4.0.tar.bz2.sign (248 bytes) . 226 Transfer complete. 248 bytes received in 0.014 secs (17 Kbytes/sec)
ncftp
在使用 FTP 功能的时候,因为只能一次捉一个档案,所以要捉一群档案的时候就会有困扰。这时我们可以使用更容易登入匿名 FTP 站的 ncftp 来执行 FTP 功能!
# ncftp linux.cis.nctu.edu.tw ncftp / > mget -R kernel <==将 kernel 这个目录的东西全捉下来!
加上了 mget -R 目录 这个指令后,就可以将目录下的东西完全捉下来!好用吧!
gftp
这是在 X-Windows 使用的图形介面 FTP 咚咚!这个咚咚的使用方法就跟 CutFTP 很相似!
相关程式设定指令
set
这是用来设定或是观看目前系统的设定的指令,若只打入 set 则仅会列出目前系统的参数。
uname
这是用来观看系统名称的指令,可以打入 -a 参数来列出所有资讯。
# uname -a Linux vbird.adsldns.org 2.2.12-20 #1 Mon Sep 27 10:25:54 EDT 1999 i586 unknown
setup
这个是常常使用来设定系统的一个指令,执行之后会有一个视窗出现,较常使用的是 System services 这一项,可用来设定开机的时候要开放的服务!
lilo
这是用来设定多重开机,或是开机选项的指令,详细的流程请到这里来看看!
Xconfigurator
这是用来简易的设定 X-Windows 的指令,当你的 X-Windows 确定是可以跑的,而你想要改变一些设定,例如:解析度、色彩度等等,就直接使用这个指令啦!
xf86config
这是用来设定 X-Windows 的指令!这个指令会比 Xconfigurato r 麻烦,不过当你的 X-Windows 没有办法跑的时候,这个咚咚是很好用的!
X-Window内的设定指令
startx
这是开始执行 X-Windows 的指令!
netconf
这是网路设定的指令!
netcfg
这也是网路设定的指令!
XF86Setup
这是在 X-Windows 下以图形介面设定 解析度、色彩度 的设定指令。
说明一下,基本上虽然 Linux 目前对于图形界面的使用已经支援的相当的不错,但是对于一些比较细微的设定方面,毕竟是比不上使用传统的文字介面来的有效!并且,使用文字介面来设定对于了解 Linux 有一定的帮助,毕竟 Linux 与 MS 的咚咚是不太相同的!鸟哥特别建议大家使用文字介面来解决问题!
除此之外,使用文字介面登入 Linux 对于系统资源的损耗也比较少,相对的,就有比较多的资源可以做为网路的用途,进而增加 Linux 的效能。尤其,在我们这个网页中,基本上是以一般被淘汰的 586 系列电脑做为主机,因此对于记忆体与 CPU 的效能要求并不高,所以能有效的减少系统资源的浪费就尽量的减少一些容易耗掉系统资源的废物吧!
底下我们会分门别类的将各个比较常用的指令给搬上来,你可以参考一下。另外一个最重要的地方是,在 Linux 主机上,已经内建各个指令的说明内容了,而且是很详细的线上说明,你可以使用:
# man command <=== command 为你欲查询的指令名称
# info command
在上表中,针对 command 这个指令你可以使用 man 或者是 info 来查询他的功能与说明,例如你要查寻 ls 这个指令时,你可以输入: man ls 或 info ls 来查询一下!适当的利用线上查询对于你的英文及相关的指令功能有一定程度的帮助喔!
登入与登出(开机与关机)
telnet
这套软体在 Windows 及 Linux 系统中都存在,只是介面有点不很相同就是了。基本上,这个程式是 user 端用来连线登入远端主机的。例如鸟哥人在台南,但是我可以在台南使用可以连上 Internet 的电脑,经由 telnet 连线上家里的 Linux 主机,而进行设定!感觉上就好象在家里玩自己的 Linux 主机一样!
一般来说,如果你是使用 Winodows 系统,则你可以在『开始』-->『执行』后,输入 telnet xxx.yyy.zzz.qqq ,其中, xxx.yyy.zzz.qqq 为 IP 位址,则可以连上主机(或者是 BBS )啰。当然,如果您是在 Linux 系统下,亦可直接输入 telnet xxx.yyy.zzz.qqq 来连上主机或BBS喔!
语法: telnet 主机位址(或主机名称)
login
登入系统的指令,在远端进入系统时,程式会自动执行。假设你所要登入的系统主机为 sun.os.test.com ,则你可以在 Windows 底下的 Telnet 软体,或其他软体上,执行:
telnet sun.os.test.com
则会出现如下的画面:
SunOS 5.7 login: username Password: sun# _
你只要有 username 及 pass word 就可以登入系统啦!在你登入系统后, sun# 是提示字元,相当于古早的 C:\> 的意思!
exit
这是离开 Linux 系统的指令,相当于 login out 的意思。
sun# exit
shutdown
Linux 用来关机的指令,这个指令只有 root 才有权力下! shutdown 的用法如下:
# shutdown <==系统在两分钟后关机,并传送讯息给在线上的人 # shutdown -h now <==系统立刻关机 # shutdown -r now <==系统立刻重新开机 # shutdown -h 20:30 <==系统在今天的 20:30 分关机 # shutdown -h 10 <==系统在 10 分钟后关机
reboot
这是鸟哥最常用来重新开机的指令(或关机),可以配合写入缓冲资料的 sync 指令动作,如下:
# sync; sync; sync; reboot
Linux 多人多工与背景执行功能
多人多工
Linux 最为人所称道的即是其多人多工的能力,你可以在任何时刻连线上来你的 Linux 主机,并且同时做很多的工作,例如同时执行 http 的 Web 功能,同时进行 fortran 等程式语言的编辑,并同时上网聊天!你会怀疑, Windows 98 也可以做到这样的地步呀!不过,不要忘了,在 Linux 的系统下,你所做的任何工作都是独立的,你可以随时将你所不要的工作给杀掉,而且,当其中某一个程式当掉的时候, Linux 并不会当机,只要你在其他的视窗再开启一个终端介面,然后查出当机的那一个指令的 process (过程),然后将之杀掉就可以了!根本不用再重新开机!也因为这种多人多工的强大能力,因此, Linux 系统一般来说是很少当机的,并且,由于其记忆体的管理功能完善,因此也不容易有 CPU 过热的情况发生(如果只是做为一般伺服器使用)。
在你的 Linux 主机中,可以支援七个终端视窗介面,你可以按 .....来切换不同的终端机介面!所以当其中一个终端机介面当机的时候,你可以在另外一个终端机登入,然后查出错误的所在(使用 ps -aux 的功能),再以 kill 将错误的地方杀掉即可!
背景执行
另外一个功能,就是『背景执行』的功夫了。当你输入
# cp file1 file2 &
这一串指令的时候,表示将 file1 这个档案复制为 file2 ,且放置于背景中执行,也就是说执行这一个命令之后,在这一个终端介面仍然可以做其他的工作!而当这一个指令( cp file1 file2 )执行完毕之后,系统将会在您的终端介面显示完成的消息!很便利喔!
多人多工的问题
多人多工确实有很多的好处,但其实也有管理上的困扰,因为使用者越来越多,将导致你管理上的困扰哩!另外,由于使用者日盛,当使用者达到一定的人数后,通常你的机器便需要升级了,因为 CPU 的运算与 RAM 的大小可能就会不敷使用!
& 与
如前所述,背景执行可以提供你在同一个终端机介面(命令模式)当中同时做很多的事情,你可以使用 & 或 来将指令放置背景中执行。例如执行 find "/" -name httpd & 这一行命令,表示将寻找 httpd 这个档案的指令放置到背景中执行的意思。另外,当你执行一个需要长时间的程式,例如执行 ftp 程式时,在程式进行当中,也可以经由按下 来将程式放置于背景中。那如何由背景中将程式在叫回萤幕上呢?请参考下一个指令 fg。
fg
fg 是将程式再叫回萤幕上显示的一个指令,在终端模式中输入 fg 即可。当然,如果你当时并没有程式在执行的话,系统会告诉你,并无执行中程式(no such job)。
ps -aux
这是察看执行中的程式的一个指令,你可以配合其参数 -aux 来执行,如下:
# ps -aux
则系统将会列出连同系统服务的程式,在输出的第一列中会出现 『PID』字样,在那一栏中的咚咚就是每一个程式执行的代码。例如下面的输出画面。
# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 1324 532 ? S Jul16 0:14 init root 2 0.0 0.0 0 0 ? SW Jul16 0:05 root 3 0.0 0.0 0 0 ? SW Jul16 0:29 root 4 0.0 0.0 0 0 ? SW Jul16 0:00 root 5 0.0 0.0 0 0 ? SW Jul16 0:00
在上图中, init 这个程式的 PID 为 1 。
kill
这是用来杀掉执行中程式的指令,需配合 ps 这个指令,当你执行一个 ftp 程式,但是他有点当当的时候,你可以 ps -aux 这个指令查出 ftp 这个程式的代码(PID),假设其 PID 为 110 ,然后输入:
# kill 110
即可杀掉这个 ftp 程式。
档案与目录管理
cd
这是用来变换工作路径的指令。一登入 Linux 系统后,root 会在 /root 下,至于使用者会在预设的 /home/username 底下,例如鸟哥的 ID 为 vbird ,则以 vbird 的身份登入后,会到 /home/vbird 这个路径下。OK!那回到上一层可以用 cd .. 而到相对路径可到 cd ../bird,至于绝对路径则是 cd /usr/sbin !注意喔,在前面的提示字元会改变路径名称!
# cd .. <== 回到上一层 # cd <== 回到使用者目录 # cd /usr/bin <== 到 /usr/bin 这一个目录 # <== 看吧!到 bin 这个目录下啰!
pwd
这是显示目前所在目录的指令,例如在上个表格最后的目录是 /usr/bin 这个目录,但是提示字元仅显示 bin ,如果你想要知道目前所在的目录,可以输入 pwd 即可:
# pwd /usr/bin <== 显示路径啰! #
ls
这是用来显示档案名称与内容的指令,档案的内容说明已经在 这里 说明过了,在此不再重复! ls 的语法为:
# ls --color 以彩色显示档案资料 # ls -l 详细列出档案系统结构 # ls -a 显示隐藏档(以"."开头的档案) # ls -al 同时显示隐藏档与详细资料 # ls -al|more 将档案内容以一页一页显示
cat
这是将档案内容列出的指令。例如在 /root 下有一个档名为 .bashrc (这是系统预设的档案,是隐藏档),你可以按下 cd 回到 /root 目录后,执行:
# cat .bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias ll='ls -l' alias lm='ls -al|more'
上面显示的就是 .bashrc 这个档案的内容啦!基本上,cat 与 DOS 下的 type 是相同的!
more
是否觉得 cat 在读取较大的档案的时候会有看不到的资讯呢(如果档案太大的话),这时候你可以用 more 来一页页读取喔!另外, more 也可以与其他的程式合并使用,例如 ls !(如下表中,『|』就是分隔号,可以将两个指令放在一起执行!)
# more .bashrc # ls -al|more
mkdir
建立新的目录!例如我们要建立一个 test 的目录,你可以这样下指令:
# mkdir test # ls -l
再执行了 ls -l 之后,你就可以看到 test 这个目录啦!
rm -irf
这是移除的指令,相当于 dos 下的 del 指令!这里要注意的是,通常在 Linux 系统下,为了怕档案被误杀,所以都已经有 -i 这个参数, -i 是指每个档案被杀掉之前都会确认一次。而如果要连目录下的东西都一起杀掉的话,就要使用 -rf 这个参数了!你可以用下面这个例子来试试看有什么不同的现象!
# rm test # rm -rf test
rmdir
mkdir 是建立目录,而 rmdir 就是移除目录的指令。不过,若是欲移除的目录里头有档案或其他目录存在,就无法移除,这时就要用刚刚的 rm -rf 来移除啦!
mv
这是移动档案或目录的指令,例如我们要将 .bashrc 这个档案移动至根目录下,则:
# mv .bashrc / # mv /.bashrc .
而将档案移动至目前的工作目录,则加上 "." 这个字!
语法: mv 来源档(或目录)目的档(或目录)
cp
就是 copy 的意思。例如我们要将 .bashrc 这个档案复制到 /home 底下,可以:
# cp .bashrc /home
语法: cp 来源档 目的档
ln
ln -s 真实目录或档案 连结的目录或档案:这是连结档案或目录的指令,通常我们都会加 -s 这个参数,例如我们将 /usr/bin 这个目录连接到 /root 底下,可以这样输入:
# ln -s /usr/bin bin
不过请注意喔,在你的 /root 底下的 bin 这个目录中的所有档案其实都是 /usr/bin 里面的东西,所以你如果进入 /root/bin 内乱杀东西的话,等于是将 /usr/bin 内的档案杀掉喔!
语法: ln -s 来源档(或目录)目的档(或目录)
find
寻找档案的指令,会将欲寻找的档案找出来,例如下面的例子:
# find / -name bin
上面的意思为:在 / 目录(根目录)下寻找档名(-name)为 bin 的档案,要注意的是,因为 Linux 的档案很多,如果你的电脑比较旧,可能会找很久...
语法: find 路径 -name 档名
whereis
相对于 find ,你也可以使用 whereis 这个指令来下达找寻的档案,whereis 利用曾经找过的系统资讯内的资料去找档案,所以速度会很快,不过,如果 whereis 找不到的话,并不代表该档案真的不存在!这个要小心!
# whereis bin bin: /usr/bin
chmod
这是变更档案属性的指令,通常鸟哥都是以数字作为改变属性的依据;在档案的属性中, r 为4分、w 为2分, x 为1分,如果你想要让你刚建立的一个档案,让大家都看到的话,即你需要『-rw-r--r--』,这是你的三个群组的分数分别是 r w=6, r=4, r=4,所以可以下达:
# chmod 644 .bashrc # ls -al .bashrc -rw-r--r-- 1 root root 216 Apr 8 13:54 .bashrc
chown
记得档案有『拥有人』及『拥有群组』吧,这个 chown 就是在改变拥有者的指令。例如你 copy 一个档案给 vbird ,但是因为你的身份是 root ,所以你 copy 过去的档案 vbird 可能不能使用,因此你需要将档案的拥有人改成 vbird 才可以!如下:
# cp .bashrc /home/vbird # cd /home/vbird # chown vbird .bashrc
那如果想要将整个目录下的档案都改变拥有者与拥有群组呢?可以下达
chown -R username:groupname directory (ex> chown -R root:root /root)
即可喔!
chgrp
作用与 chown 相似,只是在改变档案或目录的『拥有群组』。
df
这是用来察看硬碟空间的指令。由于我们目前将档案都建立在根目录『/』下,所以只要没有空间,则所有档案都无法复制进来系统。不过,若你规划出多的硬碟,则可以察看你的硬碟空间资讯,如下所示:
# df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda5 964312 87648 827680 10% / /dev/hdb5 2150420 745500 1295680 37% /home /dev/hdb1 2016016 1419708 493896 74% /usr /dev/hda1 1022080 349880 672200 34% /win98
上面说,Filesystem 是硬碟所在的划分表, Used 是指使用掉的硬碟空间(KB),Available是剩下空间,Mounted on则是这颗硬碟代表哪一个目录。如上所示,根目录(/)在 hda5 这颗硬碟,总空间有 964312 KB,剩下可用空间为 827680KB,至于 /win98 则在 hda1 中,且全部空间有 1022080 KB。
如果要将资料型态以 MB 数显示的话,可以输入 df -m 来达成。
du
这是用来察看目录内所有档案使用掉的空间的情况,如下所示:
# du -m
其中, du 预设的档案输出资料为 KB,以参数 -m 使档案资料显示为 MB。
磁碟与硬体管理
mount
这是将硬碟或者是光碟、软碟接挂上系统的指令!之前有提过,在 Linux 下面,每一个装置都是一个档案(或目录),而每一种装置的档案型态都不相同,因此对于 mount 后面加的参数就很重要啰:例如:
# mount -t iso9660 /dev/cdrom /mnt/cdrom <=光碟 # mount -t vfat /dev/fd0 /mnt/floppy <=软碟(windows 系统档) # mount -t ext2 /dev/fd0 /mnt/floppy <=软碟(Linux 系统档) # mount -t ext2 /dev/hdc1 /mnt/harddisk <=硬碟
光碟装置档=/dev/cdrom、软碟装置档=/dev/fd0、硬碟装置档=/dev/hdxx。
如上表所示, -t 是参数,至于 iso9660, vfat, ext2则是这些装置的档案型态!后面接的则是这个装置所在的目录!千万记得,这些目录需要是早已存在的,而且最好是空的目录,不然目录里面原本存在的档案会不见去!
另外,注意喔!当你 mount 上光碟机或软碟的时候,请不要轻易的拿出磁片(而且光碟片也不会被你退出),因为会造成系统读取的错误!你应该用 umount 来退出!指令为
umount /mnt/cdrom (umount 装置所在目录)
fdformat
这是用来『低阶格式化』软碟的指令。(注意:软碟的装置档为 /dev/fd0 )不必将软碟 mount 就可以格式化了,指令内容为:
# fdformat /dev/fd0H1440
注意喔!在上面的装置档案为 /dev/fd0H1440 ,其中加在 /fd0 之后的 H1440 为表示 1.44MB 的软碟容量!在低阶格式化之后,还要将软碟的档案格式化为 Linux 的 ext2 之型态,则需要使用 mke2fs 指令!
fdisk
这是对硬碟(也可以对软碟喔)做分割的程式。基本的用法为=> fdisk 装置档案,假设您有一颗硬碟要重新规划,而这颗硬碟为 hdc ,则你可以输入:
# fdisk /dev/hdc
然后,按下 m 会出现 help 的选单,要知道的大概只有两个子指令,一个是删除 partition 按 d ,一个是增加 partition 按 n,假设你要增加一个 primary partition,按下 n 再按 p 再按你要的 primary partition 号码(1-4)就可以了。假设你的 hdc 需要规划成为一个硬碟(即 hdc1)则在输入 fdisk /dev/hdc 后,需要按:
n(增加) -> p(primary partition) -> 1(partition 1) -> w (储存写入) -> q (离开)
同样的,分割完硬碟(或软碟)后,要以 mke2fs 格式化!
mke2fs
这是用来将磁碟格式化成 Linux 系统档的指令。基本上,只要写入对的装置档案就可以了。例如我们要格式化软碟的话,或是新的硬碟 hdc1 ,则可以如此写:
# mke2fs -c /dev/fd0 # mke2fs -c /dev/hdc1
要记得的是,在你做这个格式化的动作时,软碟与硬碟均不可 mount 到 Linux 的系统中。
mkbootdisk
这是制作开机磁片的指令。指令很简单:
# mkbootdisk --device /dev/fd0 `uname -r`
其中, `uname -r` 是目前 Linux 系统所使用的核心版本,如果你有多个核心版本的话,你以可以直接输入核心版本。例如在这个网页中所使用的核心有两个版本,一个是 2.2.12-20,另一个是 2.2.18,若要以 2.2.18 设定开机的话,可以使用: mkbootdisk --device /dev/fd0 2.2.18 !
badblocks
这是用来检查硬碟或软碟有没有坏轨的指令,你可以用底下的方式来下达:
# badblocks -svw /dev/hdc1
fsck
这是用来检查与修正硬碟错误的指令。注意:通常只有身为 root 且你的系统有问题的时候才使用这个指令,否则在正常状况下使用此一指令,可能会造成对档案的危害!
# fsck /dev/hdc1
通常使用这个指令的场合都是在系统出现极大的问题,导致你在 Linux 开机的时候得进入单人单机模式下进行维护的行为时,才必须使用此一指令!
rpm
这是一个安装或者是解安装 RedHat 软体的指令,在 RedHat 中已经有设定了一些有点像 Windows 的软体安装功能,这就是 rpm 这套软体了!而 rpm 所安装的软体又分为两种形式,因此你可以分别使用下面两种参数对不同的档案进行安装:
# rpm -ivh xxxxx.rpm <==将 xxxxx.rpm 档案安装于 Linux 系统中 # rpm -ivh --nodeps xxxxx.rpm <==将 xxxxx.rpm 档案『强制』安装于 Linux 系统中 # rpm -Uvh xxxxx.rpm <==将 xxxxx.rpm 升级 # rpm -e xxxxx.rpm <==将 xxxxx.rpm 解除安装 # rpm -q squid <==察看 squid 这一个软体的版本 # rpm --recompile yyyyy.src.rpm <==安装档名为 .src.rpm 的档案!
这里要注意的是, rpm 的档案主要有两种形式,一种是已经经过编译的 i386.rpm 档案,令一种是未经编译的 .src.rpm 档案,两种档案形式的安装参数是不一样的,请小心注意!
系统管理员
su
这是一个用来转换你身份成为 super user (系统管理员)的指令,任何人只要知道 root 的密码,就可以成为 super user,所以密码可千万不要外流呀!由于 RedHat 在主机之外的终端机上,无法以 root 的身份直接连线,所以你需要以一般身份的 user 连线之后,再以 su 指令来成为 super user:
# su <==输入指令 Password: <==在这里输入 root 的密码 # <==看,使用者名称变啰!
clear
这是用来清除萤幕画面用的,没有什么太大的用处。通常是你觉得画面太乱的时候输入用的!直接输入 clear 就可以了!
dmesg
在开机的时候你会发现有很多的讯息出现吧,例如 CPU 的形式、硬碟、光碟型号及硬碟分割表等等。但是讯息都是『刷』的一声就跑过去了!这些讯息有时候对于系统管理员是很重要的,因为他提供了系统的资讯呀!要看这些讯息你可以用 dmesg 这个指令来观看!
# dmesg|more
加上 |more 的原因是因为讯息太多了,所以可以加入这个管线指令来使画面暂停!
groupadd
这是用来增加群组的指令,通常鸟哥都不用这个指令的,因为有更容易使用的指令 /bin/userconf 可以使用哩(注意,在 RedHat 7.0 以后的版本,就要使用 /sbin/userconf 哩)!
useradd
这是用来增加使用者的指令,鸟哥通常不使用这个指令,你可以使用 /bin/userconf 这个指令,更简单易用喔(是视窗介面的喔!)(注意,在 RedHat 7.0 以后的版本,就要使用 /sbin/userconf 哩)
userconf
这是用来增加使用者、群组等,且以视窗为介面的一个指令!如果你是以远端登入,并使用 su 指令成为 super user 的话,直接输入 userconf 可能会找不到这个指令,你可以输入: /bin/userconf 来启动这个指令!(注意,在 RedHat 7.0 以后的版本,就要使用 /sbin/userconf 哩),由于这个指令的图示较多,请到这里来看看!
passwd
这是用来更改密码的指令,很简单,只要在提示字元下输入 passwd ,然后输入目前的密码,再输入两次欲修改成的新密码,就修改OK了!不过要注意,密码的形式:不能与帐号相同,且需要 8 个字元以上,另外,帐号也不能太简单!否则系统会不接受!
# passwd Changing password for vbird (current) UNIX password: <==这里输入目前的密码 New UNIX password: <==这里输入新的密码 Retype new UNIX password: <==这里再输入新的密码一次 passwd: all authentication tokens updated successfully
who
这是用来视察目前在系统上的使用者指令,你也可以使用 w 这个指令来下达动作。
# who root pts/0 Aug 2 20:43 # w 8:48pm up 4 days, 5:08, 1 user, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.1.2 8:43pm 0.00s 0.38s ? -
基本上,who 与 w 的功能是相同的,只是 who 仅列出使用者名称与登入时间,至于 w 则会列出使用者的
·来源位址(IP):就是 FROM 那一项即是IP;
·登入时间:即是 LOGIN@ 那一项;
·工作项目:就是 WHAT 那一项!
whoami
这是用来确认你目前的身份的指令,由于你可能会有几个身份在你的机器上,所以需要以这个指令来确认你的身份,不过由于 Linux 会将使用者名称写在提示字元上,所以这个指令目前比较少用到了。
top
这是用来指示目前系统的服务项目的动态资料。
# top 10:14pm up 4 days, 6:34, 1 user, load average: 0.01, 0.01, 0.00 40 processes: 39 sleeping, 1 running, 0 zombie, 0 stopped CPU states: 0.5% user, 0.3% system, 0.0% nice, 99.0% idle Mem: 63124K av, 60844K used, 2280K free, 23604K shrd, 35648K buff Swap: 104380K av, 1684K used, 102696K free 10788K cached PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND 3121 root 20 0 1016 1016 820 R 0 0.9 1.6 0:47 top 1 root 0 0 380 368 320 S 0 0.0 0.5 0:04 init 2 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kflushd 3 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kupdate 4 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kpiod 5 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kswapd 6 root -20 -20 0 0 0 SW< 0 0.0 0.0 0:00 mdrecoveryd 366 bin 0 0 308 288 228 S 0 0.0 0.4 0:00 portmap 382 root 0 0 392 376 328 S 0 0.0 0.5 0:00 apmd 435 root 0 0 488 480 388 S 0 0.0 0.7 0:00 syslogd 446 root 0 0 688 676 316 S 0 0.0 1.0 0:00 klogd
输入 top 之后,会出现类似上面的显示情况。上图中说明了你的记忆体有63124K,而下方的面版说明了目前正在执行中的工作内容!
free
这是用来察看记忆体的指令。
# free total used free shared buffers cached Mem: 63124 60732 2392 23136 35648 10796 -/ buffers/cache: 14288 48836 Swap: 104380 1684 102696
如上图中,说明总记忆体容量为 63124K,而使用了 60732K,另外,虚拟记忆体(Swap)共有 104380K(亦即共有 100MB 的虚拟记忆体)。
quotacheck, edquota
这些档案是用来限制使用者在 Linux 主机上的硬碟使用容量。例如,有十个人同时分享一个 2G 的硬碟空间,但是有一个使用者就用了 1.5 GB 的容量,那相对的,其他人可使用的空间就只有剩下 0.5G 啦!不公平对不对,而且也怕被使用者填充大量的垃圾,而使用系统资源被瓜分掉!因此就有 Quota 这个咚咚的出现啦!由于执行的步骤较为繁琐,所以额外写了一个页面,请到这里来看看。
压缩指令
compress
这是用来压缩及解压缩档名为 .Z 的压缩档。要注意的是,用 compress 压缩的时候,会将原档案杀掉而变成档名为 .Z 的档案,例如你压缩一个名为 bird.test 的档案,则压缩完成后只会剩下 bird.test.Z 这个压缩档!当然,解压缩的时候也是一样的,压缩档不见了,只有剩下被解压缩的档案。指令如下:
# compress xxxxx <==将 xxxxx 档案压缩成为 xxxxx.Z 档名 # compress -d xxxxx.Z <==将 xxxxx.Z 解压缩成 xxxxx
上表中,解压缩也可以用 uncompress xxxxx.Z 来达成!
gzip
这个也是一个压缩指令,与 compress 很相似,指令的用法也相同!只是压缩的档名为 .gz 罢了!
# gzip xxxxx <==这是压缩指令 # gzip -d xxxxx.gz <==这是解压缩指令
tar
这是一个很棒的压缩指令,这个指令可以配合 gzip 来进行整个目录的压缩!例如有一个名为 bird 的目录要被你整合成一个档案,你可以使用:tar -xvf *.tar *(其中 * 为你所要整合的目录名称)。
# tar -cvf bird.tar bird <==只有将目录转成一个档案,没有压缩 # tar -zcvf bird.tar.gz bird <==压缩一整个目录成为 .tar.gz 档案
上面这个例子的 bird.tar 只是将 bird 这个目录整个拷贝成为一个档案而已,并没有压缩,而 bird.tar.gz 则是将 bird 这个目录压缩成为一个档案!基本上,我们都是使用 -zxvf 来压缩一整个目录的!而如果是要解压缩呢?由于有没有压缩所下的参数并不相同,所以针对两种档案也是有两种参数的组合:
# tar -xvf bird.tar # tar -zxvf bird.tar.gz
上面则是解压缩的参数!
注意了,用 compress 及 gzip 压缩及解压缩的时候,会将原档案取代掉!而使用 tar 来压缩及解压缩的时候,原档案将会与产生档案同时存在!通常我们都是使用 tar 来进行压缩或解压缩的!(当然,你还是可以使用 compress 及 gzip 来压缩一个大的档案!)
一些网路功能
ifconfig
这是用来查询目前我们这个系统的网路卡的状况的指令,可以查询 IP、子遮罩网路及网路卡的硬体资讯等等。例如:
# ifconfig eth0 Link encap:Ethernet HWaddr 00:50:FC:20:F1:4D inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7651977 errors:0 dropped:0 overruns:0 frame:0 TX packets:7467862 errors:0 dropped:0 overruns:0 carrier:0 collisions:961 txqueuelen:100 Interrupt:10 Base address:0x6100 eth1 Link encap:Ethernet HWaddr 00:80:C8:5A:87:01 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7492497 errors:0 dropped:0 overruns:0 frame:0 TX packet s:7617653 errors:0 dropped:0 overruns:0 carrier:0 collisions:289 txqueuelen:100 Interrupt:9 Base address:0x6200 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:512 errors:0 dropped:0 overruns:0 frame:0 TX packets:512 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 ppp0 Link encap:Point-to-Point Protocol inet addr:211.74.249.38 P-t-P:172.16.11.8 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 RX packets:7469726 errors:0 dropped:0 overruns:0 frame:0 TX packets:7617651 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10
由于上面的例子是使用两张网路卡,因此会有 eth0 及 eth1 两个介面,至于 lo 是系统内设的递回网路,这是一定会有的咚咚,而且其 inet addr(IP)一定是 127.0.0.1!另外, ppp0 则是 ADSL 拨接之后所产生的虚拟介面(对外的介面!)。在这个例子中,鸟哥使用了两张网路卡, eth0 用在内部网路, eth1 用在 ADSL 拨接,所以 eth1 就没有 address。至于第一张网路卡的网路位址是虚拟的 192.168.1.2。而真正的对外联系是 ppp0 这一个拨接介面,其 internet 是 211.74.249.38!
route
这是用来看你的网路通讯包传送的路由情况的指令。由于通信包是藉由一个一个的路由表来传递的,所以观察你的路由表,对于网路除错(debuge)就很重要啦!
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.2 * 255.255.255.255 UH 0 0 0 eth0 172.16.11.8 * 255.255.255.255 UH 0 0 0 ppp0 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 172.16.11.8 0.0.0.0 UG 0 0 0 ppp0
例如上表中,所有的通讯都是藉由 ppp0 这一个介面卡(Iface)并且其通讯闸(Gateway)为 172.16.11.8 这一个!另外,在虚拟 IP (内部网路)则是藉由 eth0 (192.168.1.2)这一块网卡来连线的!
另外,你也可以使用 route 来加入你的路由表,假如你要将一个网路为 192.56.76.XXX 且子网路为 255.255.255.0 的位置加入你的 eth0 这个网路卡的连线处理中,就可以使用如下的语法:
# route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
netstat
这也是用来观察网路状况的指令。
# netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 126 swks249-38.adsl.:telnet 192.168.1.15:1341 ESTABLISHED Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 2 DGRAM 87643 /dev/log unix 0 STREAM CONNECTED 116 @00000012
在上表黄色的部分,由于鸟哥是在另一部电脑连线进入的,所以网路位址就会不同啰!
hostname
这只是用来观看你的主机名称而已。
# hostname tsai.adsldns.org
ping
这是用来察看对方网路是否有动作的指令,这个指令亦可以在 windows 上面执行!
# ping www.kimo.com.tw PING www.kimo.com.tw (202.1.237.21) from 211.74.249.38 : 56(84) bytes of data. 64 bytes from 202.1.237.21: icmp_seq=0 ttl=245 time=56.7 ms 64 bytes from 202.1.237.21: icmp_seq=1 ttl=245 time=58.0 ms 64 bytes from 202.1.237.21: icmp_seq=2 ttl=245 time=58.7 ms 64 bytes from 202.1.237.21: icmp_seq=3 ttl=245 time=52.0 ms 64 bytes from 202.1.237.21: icmp_seq=4 ttl=245 time=72.2 ms --- www.kimo.com.tw ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 52.0/59.5/72.2 ms
例如上表中,我们去观察 www.kimo.com.tw 是否有启动,看每一列的最后一行,会告诉你讯息回应的时间大约是 56ms!(10-3 sec.)
nslookup
这是用来查询或反查询 DNS 的指令!例如我们要知道 奇摩 的网路位址,则可以如此查询:
# nslookup www.kimo.com.tw Server: ksdns.seed.net.tw Address: 139.175.10.20 Non-authoritative answer: Name: www.kimo.com.tw Address: 202.1.237.21
系统会告诉你,我们使用的 DNS server 是 ksdns.seed.net.tw,而查询到的网址是 202.1.237.21。如果需要更详细的查询,可以用下面的方式来查!
# nslookup Default Server: ksdns.seed.net.tw Address: 139.175.10.20 > set type=any <==告诉系统我们要详细的资料! > www.kimo.com.tw Server: ksdns.seed.net.tw Address: 139.175.10.20 Non-authoritative answer: www.kimo.com.tw internet address = 202.1.237.21 Authoritative answers can be found from: kimo.com.tw nameserver = ns1.kimo.com.tw kimo.com.tw nameserver = ns1.yahoo.com kimo.com.tw nameserver = ns3.europe.yahoo.com kimo.com.tw nameserver = ns5.dcx.yahoo.com ns1.kimo.com.tw internet address = 210.59.144.1 ns1.yahoo.com internet address = 204.71.200.33 ns3.europe.yahoo.com internet address = 217.12.4.71 ns5.dcx.yahoo.com internet address = 216.32.74.10
talk
这是用来交谈的指令。
traceroute
这是用来追查通讯包传送的情况,例如我们要从 seednet 的网路上查询到成大的代理伺服器的通讯状况,可以使用如下的指令:
# /usr/sbin/traceroute proxy.ncku.edu.tw traceroute to proxy.ncku.edu.tw (163.28.112.100), 30 hops max, 38 byte packets 1 172.16.11.8 (172.16.11.8) 128.378 ms 68.920 ms 118.313 ms 2 139.175.15.1 (139.175.15.1) 54.146 ms 38.557 ms 44.320 ms 3 R58-37.seed.net.tw (139.175.58.37) 61.339 ms 43.177 ms 39.548 ms 4 R56-162.seed.net.tw (139.175.56.162) 66.631 ms 43.182 ms 41.429 ms 5 203.72.191.222 (203.72.191.222) 65.538 ms 61.379 ms 38.887 ms 6 140.116.241.230 (140.116.241.230) 40.159 ms 46.107 ms 46.854 ms 7 proxy.tnrc.edu.tw (163.28.112.100) 38.641 ms 57.286 ms 46.380 ms
系统会告诉你,总共通过了7个路由,并列出了每一个路由的 Internet 位址。这个东西有个好处,可以告诉你,当网路出问题时,问题是在哪一个地方!
这是用来收发信件的指令,详细的流程我们会在 mail 架站中提及。
其他有的没的
date
这是用来察看日期的指令。
# date Fri Aug 3 19:09:31 CST 2001
cal
这是用来叫出日历的指令。
# cal August 2001 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
grep
这是用来搜寻某些特定字元的指令。例如使用 ps -aux 查询系统服务时,我们只需要知道 sendmail 是否有动作,则可以使用管线指令『|』来加入 grep 这个指令同时运作。
# ps -aux|grep sendmail root 443 0.0 1.0 2092 660 ? S Jul26 0:36 sendmail: accepti vbird 8387 0.0 0.7 1240 492 pts/1 S 19:11 0:00 grep sendmail
上表则表示 sendmail 有在运作了
ftp 指令
ftp
FTP 这个功能不用再多谈了吧?这是用来捉取网路上免费档案的一套软体。例如我们要连上交大的 FTP 站捉东西,可以如下:
# ftp linux.cis.nctu.edu.tw Connected to linux.cis.nctu.edu.tw. 220 ProFTPD 1.2.0rc3 Server (Linux.CIS FTP server) Name (linux.cis.nctu.edu.tw:vbird): anonymous <==输入 anonymous 匿名登入 331 Anonymous login ok, send your complete email address as your password. Password: <==输入 name@server.xxx.xxx 型态的 mail-address 密码 230 Anonymous access granted, restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> dir <==检查网站上的目录 200 PORT command successful. 150 Opening ASCII mode data connection for file list. -rw-rw-rw- 1 linux adm 39491400 Aug 3 21:00 00ls-lR -rw-rw-rw- 1 linux adm 3091546 Aug 3 21:01 00ls-lR.gz -rw-r--r-- 1 linux wheel 232 Mar 15 22:00 00mirror.today drwxr-xr-x 5 linux wheel 4096 Oct 29 2000 java drwxr-xr-x 14 linux wheel 4096 Aug 2 19:31 kernel drwxr-xr-x 4 linux wheel 4096 Sep 28 2000 mirrors 226-Transfer complete. 226 Quotas off ftp> cd kernel/v2.4 <==进入 kernel 底下的 v2.4 目录 250 CWD command successful. ftp> get linux-2.4.0.tar.bz2.sign <==捉下 linux-2.4.0.tar.bz.2.sign 这个档 local: linux-2.4.0.tar.bz2.sign remote: linux-2.4.0.tar.bz2.sign 200 PORT command successful. 150 Opening BINARY mode data connection for linux-2.4.0.tar.bz2.sign (248 bytes) . 226 Transfer complete. 248 bytes received in 0.014 secs (17 Kbytes/sec)
ncftp
在使用 FTP 功能的时候,因为只能一次捉一个档案,所以要捉一群档案的时候就会有困扰。这时我们可以使用更容易登入匿名 FTP 站的 ncftp 来执行 FTP 功能!
# ncftp linux.cis.nctu.edu.tw ncftp / > mget -R kernel <==将 kernel 这个目录的东西全捉下来!
加上了 mget -R 目录 这个指令后,就可以将目录下的东西完全捉下来!好用吧!
gftp
这是在 X-Windows 使用的图形介面 FTP 咚咚!这个咚咚的使用方法就跟 CutFTP 很相似!
相关程式设定指令
set
这是用来设定或是观看目前系统的设定的指令,若只打入 set 则仅会列出目前系统的参数。
uname
这是用来观看系统名称的指令,可以打入 -a 参数来列出所有资讯。
# uname -a Linux vbird.adsldns.org 2.2.12-20 #1 Mon Sep 27 10:25:54 EDT 1999 i586 unknown
setup
这个是常常使用来设定系统的一个指令,执行之后会有一个视窗出现,较常使用的是 System services 这一项,可用来设定开机的时候要开放的服务!
lilo
这是用来设定多重开机,或是开机选项的指令,详细的流程请到这里来看看!
Xconfigurator
这是用来简易的设定 X-Windows 的指令,当你的 X-Windows 确定是可以跑的,而你想要改变一些设定,例如:解析度、色彩度等等,就直接使用这个指令啦!
xf86config
这是用来设定 X-Windows 的指令!这个指令会比 Xconfigurato r 麻烦,不过当你的 X-Windows 没有办法跑的时候,这个咚咚是很好用的!
X-Window内的设定指令
startx
这是开始执行 X-Windows 的指令!
netconf
这是网路设定的指令!
netcfg
这也是网路设定的指令!
XF86Setup
这是在 X-Windows 下以图形介面设定 解析度、色彩度 的设定指令。