全部博文(921)
分类: BSD
2011-01-14 13:03:14
连接文件
【指令名称】:ln
【执行格式】:ln [来源文件] [目地文件]
【说明】:如果在不同目录下,希望拥有相同的文件,你不需在每一个目录下复制相同文件。此功能可以使不同文件名经连接设置,指向同一文件。而当你修改这一个文件内容时,所有连接文件都有相同的更改。另外,如果一个文件位于多层目录下,每次执行此文件,可能要做许多变换目录的工作,这时你可以在根目录下设一连接文件,可以达到windows系统下的快捷方式的效果
【举例】:1. ln file1 file2
2. ln d1/d2/file1 file2
3. ln -s file1 file2
【作用】:1. 不加参数情况下,为强制连接,file1和file2使用同样的数据,file2的文件内容和file1相同。因强制连接是把两个文件设成同一个inode,以及对应于同一数据区块
2. 当你执行file2就等于在执行d1/d2目录下的file1文件
3. 加上参数s制造象征连接,象征连接是一个文件系统的指向文件,file2并不和file1共用同一个inode,而另有一个inode,而此inode所对应的数据区块内容参考到file1的路径,因此file2是以间接方式连接取得file1的数据区块内容
显示或连接数个ASCII文本文件
【指令名称】:cat
【执行格式】:cat 文件
【说明】:cat是concatenate的简写,和dos下的type指令类似,主要用来显示文件内容或是连接文本文件。但cat不具有分页功能,所以在文件内容超过一页的长度时,改用more指令和less指令会比较方便,因more指令可使超过一页的文章暂时停留在屏幕等你按任何键后,才继续显示。而less指令,还可以用方向键往上或往下滚动文章
【举例】:1. more file1
2. cat file1 file2
3. cat file1 file2 > file3
4. cat file1 >> file2
【作用】:1. 以分页方式显示file1的文件内容
2. 可以一次显示多个文件内容
3. 连接两个文件内容,并将结果输出到file3文件,但是如果file3有内容,会被覆盖
4. 利用转向符号可将file1的文件内容拷贝增加到file2,所以file2除了原来的内容外,还会有file1的文件内容
寻找文件
【指令名称】:whereis
【执行格式】:whereis [文件名]
【举例】:whereis ln
【指令名称】:locate
【执行格式】:locate [文件名或目录的关键字符串]
【说明】:locate会将所有文件名及目录名中含有“搜索字符串”的列出
【举例】:locate ln
【指令名称】:find
【执行格式】:find [开始搜索的目录] -name [文件字符串] { -参数 }
【使用者】:虽然系统上的每位user都可以使用,但是有些目录有权限的限制,会出现“Permission denied”的信息,所以只有root才能做地毯式的搜索,其他的user则会遗漏一些
【说明】:find指令让你以文件名称或是文件的其他特征,如:文件的尺寸、文件的属性等,来搜索文件,找到文件后,您可以印出文件路径、文件内容或予以删除。find指令的搜索工作是以你所指定的目录开始寻找,并采用递归的方式,一层层的子目录往下搜索
参数“-print” 显示文件路径
参数“-ls” 显示文件的详细数据
参数“-exec cmd” 对搜索到的文件执行指令
【举例】:1. find /home/mmk -name 'word*' -ls | less
2. find / -name 'test' -print | xargs rm -f
【作用】:1. 在/home/mmk目录下寻找以word开头的所有文件,并分页列出详细数据
2. 从根目录下开始寻找test文件并删除
新增使用者
【指令名称】:adduser
【执行格式】:adduser
【使用者】:root
【说明】:FreeBSD系统新增使用者帐号,可以直接“vipw”编辑密码文件,来建立新的使用者帐号,但笔者不鼓励。反倒是使用指令adduser,系统会出现一连串的提示符号,逐渐引导你建立新的使用者帐号,相当的简单容易,而且如果你不知道adduser指令所出现的提示信息,那么直接按 Enter,也不会差太多
删除使用者
【指令名称】:rmuser
【执行格式】:rmuser username
【使用者】:root
【举例】:rmuser mmk
执行命令后,系统会再次询问,是否要将使用者的设置从系统密码文件中删除,是否要删除使用者根目录,反正通通回答“y”,就可以消除干净
新增或删除组
【文件】:/etc/group
【使用者】:root
【执行格式】:直接编辑/etc/group这个文件
【说明】:/etc/group部分内容如下:
组名称:密码:组ID:属于这个组的使用者
组名称系统管理者可以自定,密码栏位使用“*”即可。因0~99为系统内定值,所以组ID最好大于99,且不和其他组ID相同,大多从10000开始使用。最后标示属于此组的使用者,而各个使用者以逗号分隔
改变使用者所用的shell
【执行格式】:chsh
【说明】:root新增使用者时,即给予使用者一个内定的shell,如以后使用者不满意此内定值,可利用chsh指令来自行更改shell
改变使用者数据
【执行格式】:chfn
【说明】:设定使用者基本数据
压缩、解压缩工具介绍
【指令名称】:gzip & gunzip
【执行格式】:gzip { -参数 } [要压缩的文件名或目录]
gunzip { -参数 } [要解压缩的文件名或目录]
【压缩后的文件格式】:.gz
【说明】:gzip是网络上非常实用的压缩工具,你在网络上常可以看到经gzip压缩过后,以.gz结尾的文件。这时你应马上以gunzip工具来解压缩,参数使用如下:
-1 表示快速压缩
-9 表示以最佳状态压缩
-r 递归的意思,压缩整个目录
-d 解压缩。gzip -d效果和gunzip相同
指令zcat可以在文件未解压缩前查看压缩文件
【用法】:zcat file1.gz
【举例】:1. gzip -1 file1
2. gzip -9 -r t1/
3. gunzip file1.gz
4. gunzip -r t1/
【作用】:1. 快速压缩文件file1,file1文件消失,产生压缩文件file1.gz
2. 压缩t1整个目录
3. 解压缩文件
4. 解压缩目录
【指令名称】:compress & uncompress
【执行格式】:compress { -参数 } 要压缩的文件名
uncompress { -参数 } 要解压缩的文件名
【压缩后的文件格式】:.Z(英文字母大写的Z)
【举例】:1. compress -v file1
2. compress -d file1.Z
3. uncompress -v file1.Z
4. compress -v dr.tar
【作用】:1. 压缩文件,加上参数v会显示压缩比例和压缩后文件名
2. 参数d相对应uncompress解压缩文件
3. 解压缩文件
4. 压缩经过tar归为一个文件的目录
【指令名称】:tar
【执行格式】:tar cvfz [要压缩的文件、目录]
【说明】:在系统上,tar所做的是备份工作,仅仅是将一个目录下的所有文件归为一个文件,或是将某一文件备份到另一个.tar文件中,并不做空间的压缩工作,通常与gzip一起使用
【举例】:1. tar cf book.tar /home/book
2. gzip book.tar
3. tar zcvf book.tar.gz /home/book/
4. tar Zcvf book.tar.Z /home/book/
5. tar rvf book.tar /home/showfun/chp1
【作用】:1. 将/home/book/目录下的文件及子目录归到book.tar里
PS:tar指令的参数不加“-”符号,参数c是产生一个压缩文件的意思,参数f则指定压缩文件名,book.tar是自定的,但最好以.tar结尾
2. 将例1整理后的文件用gzip进行压缩,压缩后的文件名为book.tar.gz
3. 将例1、例2合并一个动作完成
参数“z”当目录归为一个文件时,自动用gzip把文件压缩
参数“v”把压缩的过程显示在屏幕上
4. compress也可以和tar工具一起使用,文件名以.tar.Z结尾,但压缩参数要加上大写的“Z”
5. 加上参数r表示将/home/showfun/chp1这个文件附加到book.tar中
【解压语法】:tar xvfz [压缩文件(以.tar.gz或.tgz结尾)]
【说明】:一般来说解压缩后,会解在当前工作目录下
【举例】:1. tar xvf book.tar
2. tar zxvf book.tar.gz
3. tar Zxvf dr.tar.Z
【作用】:1. 加上参数x还原整理过的文件
2. 加上参数z配合参数x,还原并解压缩文件
3. 利用uncompress解压缩和还原tar过的目录,也可以两道手续,先利用uncompress解压缩,产生dr.tar,再用指令tar还原
变换身份
【指令名称】:su
【执行格式】:su [-] username
【说明】:set uid,重置uid可以转变权限。为了系统安全,系统管理者(root),一般不会以root的身份登入系统,以免有心人士注意root的登入密码,而这时系统管理者,可能故布疑阵,以其他的帐号登入系统,再以指令su,变身为超级使用者,也就是拥有系统管理者的最大权限。
但读者不能以为一般使用者可以通过指令su变身为超级使用者。因为要变身为root,除了在系统中有帐号外,此使用者还需经系统管理者归属于wheel组才能使用su指令成为root,此外,系统会要求你输入root的密码
改变文件拥有者
【指令名称】:chown
【执行格式】:chown { -R } [拥有者或拥有组] [文件或目录名称]
【使用者】:root
【选项】:-R 表示将目录所有的文件、子目录也一起更改
【说明】:chown这个指令在FreeBSD系统中的使用权限,不像Linux系统属于该文件或目录的拥有者和root,在FreeBSD的环境下,文件或目录的拥
有者不可自动放弃权利,更改文件或目录的拥有者,只有root才能。chown不仅可改变拥有者,也可一起改变组
【举例】:chown mmk:adm word
【作用】:将文件word的拥有者改为mmk,拥有组改为adm
改变文件的所属组
【指令名称】:chgrp
【执行格式】:chgrp { -R } [新的组名称] [文件或目录名称]
【执行者】:root
【说明】:这个指令和chown相似,chown改变文件拥有者,chgrp改变文件的所属组,但是chown指令的功能,可以包括chgrp
【举例】:chgrp -R teacher word 或 chown -R mmk:teacher word
【作用】:将文件word的所属组由adm改为teacher
挂上文件系统
【指令名称】:mount
【执行格式】:mount { -t } [文件系统格式] { -o } [选项]
【使用者】:root
文件系统格式:常用的有UFS(FreeBSD自己的文件系统)、MSDOSFS(Dos下的文件系统)、CD9660(光盘的文件系统)、PROCFS(Process文件系统)、NFS(Network File System)等
【选项】:[rw]可读写
[ro]只读
[sync]使用同步模式写入,在写入时,会把必要的信息一并更新,让不正常关机(死机、断电......)的损失降到最低。也因此缺点是I/O频繁,对于大量的文件删写会很慢。这是系统默认值,所以不须指定sync。通常用在重要数据的文件系统,如根目录、/usr等
[async]使用非同步模式写入,这样文件在写入时,只会写入部分信息,等系统有空时,才会将其他的文件信息写入,所以效率较好,但是比较不保险,不正常关机的损失率较高。如果写入动作频繁的分区,就可考虑使用async
[nodev]这个文件系统上的device node没有作用
[noexc]这个文件系统上的文件都不能执行
[nosuid]这个文件系统上的文件都没有setuid、setgid的效果
[userquota groupquota]启动QUOTA限制使用者使用硬盘空间
【举例】:1. mount -t cd9660 /dev/wcd0a /cdrom
2. mount -t cd9660 /dev/cd0a /cdrom
3. mount -o async,userquota /dev/wd0slg /home
【作用】:1. 把wcd0a这个ATAPI CDROM设备的光盘内容mount挂到/cdrom下
2. 把cd0a这个SCSI CDROM设备里的光盘内容mount挂到/cdrom下
3. 把/dev/wd0slg mount到/home,并启动async写入模式,userquota限制
卸下文件系统
【指令名称】:umount
【执行格式】:umount [挂入点]
【使用者】:root
【说明】:要卸下文件系统,并不须加任何参数。如果当你umount时,看到device busy之类的信息,表示有人或程序正在使用该挂入点里的文件,或是你正在该目录下,只有把user或程序排除,或到挂入点之外,才能顺利卸下文件系统
【举例】:umount /cdrom
注意:当你mount你的CDROM设备后,你的光盘是无法取出的,只有正常umount后,才能退出取回
【指令名称】:sync
【执行格式】:sync
【说明】:可以强迫系统将临时内存写回硬盘中
【指令名称】:reboot
【执行格式】:reboot
【说明】:一旦执行reboot后,系统会立刻关机重新启动。虽说reboot也会呼叫sync,但是最好在关机前,再多下几次sync指令
【举例】:sync;sync;sync;reboot
【指令名称】:shutdown
【执行格式】:shutdown { -参数 } [时间] [警告信息]
【使用者】:root
【说明】:FreeBSD系统和win95操作系统相同,关机动作要遵守一定的程序,不能随意将电源关闭,因为核心通常会把硬盘输出输入的数据存在主内存的缓冲区中,按正常关机手续,核心会把缓冲区的数据写回硬盘,如突然的重新开机,你的文件可能就会受损。此外系统管理者要在系统关机或者重新启动的同时需通知系统使用者,系统使用者才有充裕的时间,按正常手续离开系统
【举例】:1. shutdown -h 21:00
2. shutdown -h now
3. shutdown -r now
4. shutdown -h +10
【作用】:1. 设置在晚上9点关机,但并不会重新启动
2. 系统即刻关机,但并不会重新启动
3. 加上参数r表示关机后会再重新开机
4. 系统在十分钟后关机
【指令名称】:top
【执行格式】:top [参数]
【说明】:显示系统中使用CPU资源的Process排名、CPU当前的使用情况、内存当前的使用情况,而且会持续更新
【举例】:top 3
【作用】:显示显示CPU资源最多的前三名Process
监督进程
【指令名称】:ps
【执行格式】:ps { -参数 }
【说明】:ps指令可以用来监视、查看进程的状态
【举例】:直接执行ps不加任何参数,只会显示属于自己的进程。虽说出现的信息很少,但重要的是,可显示属于自己所拥有进程的id号码
执行ps -aux则会显示所有进程的详细数据
[-u]:将进程的相关数据以较详细的方式显示出来
[-a]:除了显示自己的进程,将其他人在tty所执行的进程也列出来
[-x]:将不在tty中启动的进程也列出来,即显示tty为??的进程
ps -aux栏位说明
USER:进程的拥有者
PID:进程的代码
%CPU:进程占用CPU时间的百分比
%MEM:进程使用实际内存的百分比
VSZ:进程的虚拟大小(单位KB)
RSS:进程常驻内存的空间大小(单位KB)
TT:进程在编号为几的控制客户机上执行
STAT:进程当前的状态 R=可执行 D=在驱动器中等待置换 I=睡眠中(<20秒) S=睡眠中(>20秒) T=停止 Z=结束
常见的附加标志 +=属于控制客户机的前景程序 E=进程尝试离开 L=有页面被锁住 s=进程是此控制客户机的主人 W=进程被置换出去
STARTED:进程开始的时间
TIME:进程已耗用的CPU时间
COMMAND:所执行的命令名称和参数
停止进程
【执行格式】:kill
【说明】:将process从系统中删除,或送一个信号给Process,例如重新读取设置文件。但是只有Process的拥有者,才能对其拥有的Process下
kill命令,你可以使用“ps”,找出要进行处理的Process
【举例】:1. kill -l
2. kill -HUP 228
3. kill -9 928
【作用】:1. 列出所有的参数
2. 将Process Id为228的程序重run
3. 将Process Id为928的程序,从系统中强迫删除
控制Process
在FreeBSD系统中,工作控制允许你将process做前景和背景的切换,一般我们需花费较长时间完成的工作,切换到背景执行,此时背景执行的工作,并不接受来自键盘的输入命令,也就是此process静静的执行,不需要作任何交谈。这样我们就可以不受影响的继续和前景工作交谈但在同一时间中,只能有一个job和你当前所使用的键盘和屏幕做沟通
1. 在指令后面加上&:在背景执行指令
如:gzip -9 -r test/ & //在背景执行压缩整个test目录的工作
2. jobs:列出背景Process
3. %n:参考第n号背景工作
4. fg:把背景process切换到前景
如:fg % 1 //将1号工作放置前景
5. bg:重新开始停止的背景Process
如:bg % 3 //在背景执行第三个Process
6. kill:结束Process
如:kill 132 //结束Process ID为132的Process
7. [Ctrl+Z]:停止前景process
注:指令ps可列出PID,指令jobs可看到临时编号的背景Process
工作安排
【指令名称】:crontab
【执行格式】:crontab { -参数 }
【说明】:crontab文件列出在某一个时间要采取的动作
【举例】:1. crontab -e
2. crontab -d
3. crontab -l
【作用】:1. 编辑crontab文件
2. 删除crontab文件中定义的工作
3. 列出crontab文件定义的工作
crontab编写格式
分 时 日 月 星期 由谁来做 所要执行的工作
例:1 0 * * * root /home/word.sh //每天凌晨1点,由root执行/home/word.sh
【指令名称】:ping
【执行格式】:ping { -参数 } [Hostname | IP-Address]
【说明】:使用ping可以检测网络上的机器连接情况,可以使用参数“-s”来指定送出Package的信息大小(bytes),使用参数“-c”来指定要连接送出几次
【举例】:1. ping 140.131.41.10\
2. ping -c 10 -s 1200 whyno.org
【指令名称】:traceroute
【执行格式】:traceroute [Hostname | IP-Address]
【说明】:使用traceroute可以显示到网络上某台主机所经过的router,以检测发生问题的router路径
【举例】:traceroute whyno.org
【指令名称】:ifconfig
【说明】:使用“ifconfig -a”可以查看所有网络接口的参数
【指令名称】:netstate
【说明】:显示网络状态
【举例】:netstate -r
【作用】:显示routing table
【指令名称】:arp
【说明】:显示Hostname(或IP-Address)与MAC Address的对照表
【举例】:arp -a
【指令名称】:fetch
【执行格式】:fetch { -参数 } [来源文件地址]
【说明】:使用指令fetch来传送远端文件,比指令ftp要来得便捷许多,你只要知道文件的正确位置,以ftp或http的通讯协议,一个动作就可以获取回你所需要的文件,无需登入匿名FTP站
【举例】:1. fetch
2. fetch -o test
【作用】:1. 复制1225.gif到使用者当前所在目录
2. 参数o加文件名,远端取回的文件由原有文件名1225.gif变为使用者自定的文件名test
将man page转成文本文件
【执行格式】:man manfile | col -b > (testfile name)
【说明】:由于man page加上了一些彩色控制码,所以使用一般方法直接转成文本文件会有乱码
【举例】:man fetch | col -b > fetch.txt
【作用】:将fetch的man page转成正常的文本文件,文件名为fetch.txt
搜索文件中的字符串
【指令名称】:grep
【执行格式】:grep [要寻找的字符串] [要搜索的文件]
【说明】:搜索文件内容中的字符串
【举例】:grep whyno.org *
【作用】:搜索当前目录下,哪些文件含有whyno.org的字符串
指令合并
如果想让数个指令合并在一行写完,让他们可以按顺序执行,可以利用“;”将数个指令串连在一起
例如:command A;command B;command C;......
【作用】:指令A完成后,接着完成指令B,然后陆续完成C.......
指令过长
如果指令与参数超过一行时,可用“\”将命令分为数行,当命令到行末时,输入“\”按Enter跳到下一行,继续输入命令,最后输入完成按Enter执行
例如:pkg_add ftp://whyno.org/freebsd/packages/net/\
ncftp-2.4.3.tgz