1
97
条Unix
命令
1、永久更改ip ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip
2、从Linux上远程显示Windows桌面
安装rdesktop包
3、手动添加默认网关以root用户,
执行: route add default gw 网关的IP 想更改网关
vi /etc/sysconfig/network-scripts/ifcfg-eth0 更改GATEWAY
/etc/init.d/network restart
4、查出22端口现在运行什么程序
lsof -i :22
5、查看本机的IP,gateway, dns
IP: 以root用户登录,执行ifconfig。
其中eth0是第一块网卡,lo是默认的设备
Gateway: 以root用户登录,执行netstat -rn,
以0.0.0.0开头的一行的Gateway即为默认网关
也可以查看/etc/sysconfig/network文件,里面有指定的地址!
DNS: more /etc/reslov.conf,内容指定如下: nameserver 202.206.32.1 nameserver 202.206.32.1
6、RH8.0命令行下轻松改变ping 的TTL值
#sysctl -w net.ipv4.ip_default_ttl=N (N=0~255),若N>255,则ttl=0
7、RH8.0命令行下轻松改变系统配置默认值
编辑/etc/sysctl.conf, 例如,将net.ipv4.ip_forward = 0 变为net.ipv4.ip_forward = 1 重启后生效,
用sysctl -a查看可知
8、mount局域网上其他windows机器共享出的目录
mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom
9、允许|禁止root通过SSH登陆
修改sshd_config:PermitRootLogin no|yes
10、让root直接telnet登陆
编辑/etc/pam.d/login,去掉auth required /lib/security/pam_securetty.
11、改变telnet 的端口
2
/etc/services这个文件里可修改想要的端口号.重启守护进程
12、终端模式有问题
export TERM=vt100
13、模仿超级终端,LINUX里什么程序连接路由器和交换机(alstone) minicom
14、ssh上来能不能不自动断线
那是timetou的设置,修改TMOUT变量值
15、用什么工具做入侵检测
snort
16、Linux下检测程序内存泄漏的工具
cchecker或是efence库都可以
17、linux下如何监视所有通过本机网卡的数据
tcpdump iptraf
18、为什么root执行好多命令都说command not found 一定是telnet上来的,然后su成root的,修
改su命令格式,应该是su - root 0025 关闭用户的POP3权限(tiansgx) 把POP3的端口关了就可以
了。在文件/etc/services中找到这一行pop-3 110/tcp 把这一行前加个'#',把它注释掉就可以了。
19、锁定wu-ftp用户目录(wangla) 编辑ftpaccess文件restricted-uid * 这一句很重要,限制了ftp
用户在自己的目录里。
20、服务器怎么不让telnet
服务器上必须启动telnet服务&& 服务器的防火墙优先级应该设为低
21、防止任何人使用su命令成为root
vi /etc/pam.d/su auth sufficient /lib/security/pam_rootok.so debug auth required
/lib/security/pam_wheel.so group=wheel
在/etc/pam. d/su配置文件中定义了wheel组.
22、网卡激活了,却上不了网,怎么办?
trace一下,看看到底是在那一块被阻住的。
Ping自己
Ping网关
Ping DNS
trace DNS If All=ok then nslookup [url]www.sina.com.cn[/url]
Ping sina's address Tra sina' address 基本上就可以知道结果了
3
23、在redhat9下配samba,win2000能访问,win98不能访问?
如果是wind98必需修改注册表:
HKEY_LOCAL_MACHINE/system/correntcontrolset/services/Vxd/VNETSUP 下建个D 值:
EnablePlainTextpasswd,键值1
24、如何得到网卡的MAC地址
arp -a | awk '{print $4}'
25、如何得到网卡的IP地址
ifconfig eth0 |awk '/inet addr/ {split($2,x,":");print x[2]}'
26、如何全面卸载Linux?如何删除它的分区?
进入linux, 用fdisk删除linux分区和swap区。
重新启动,在dos下运行fdisk /mbr,恢复主引导记录。
27、修改主机名
vi /etc/sysconfig/network,
修改HOSTNAME一行为HOSTNAME=主机名,重启后也能生效
28、启动环境设置
Ret Hat Linux启动到文字界面(不启动xwindow)
将/etc/inittab中id:5:initdefault: 一行中的5改为3
29、redhat的自动升级更新问题
在 [url]www.redhat.com/corp/support/errata/[/url]找到补丁,6.1以后的版本带有一个工具up2date,它能够测
定哪些rpm包需要升级,然后自动从redhat的站点下载并完成安装。升级除kernel外的rpm:
up2date -u 升级包括kernel在内的rpm: up2date -u -f
30、windows下看linux分区的软件
Paragon.Ext2FS.Anywhere.2.5.rar和explore2fs-1.00-pre4.zip
31、mount用法
fat32的分区
mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom
ntfs的分区
mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom
iso文件
mount -o loop /abc.iso /mnt/cdrom
软盘
mount /dev/fd0 /mnt/floppy
4
USB闪存
mount /dev/sda1 /mnt/cdrom
所有/etc/fstab内容
mount -a 可以指定文件格式"-t 格式", 格式可以为vfat, ext2, ext3等.
32.a 删除名为-a的文件
rm ./-a
rm -- -a 告诉rm这是最后一个选项,
参见getopt ls -i 列出inum,
然后用find . -inum inum_of_thisfile -exec rm '{}' ;
32.b 删除名为a的文件
rm \a
32.c 删除名字带的/和‘'文件
这些字符是正常文件系统所不允许的字符,但可能在文件名中产生,如unix下的NFS文件系统在
Mac系统上使用1.解决的方法,把NFS文件系统在挂到不过滤'/'字符的系统下删除含特殊文件名
的文件。2.也可将错误文件名的目录其它文件移走,ls -id 显示含该文件目录的inum,umount 文
件系统, clri清除该目录的inum,fsck,mount,check your lost+found,rename the file in it. 最好
是通过WINDOWS FTP过去就可以删除任何文件名的文件了!
32.d 删除名字带不可见字符的文件
列出文件名并转储到文件:ls -l >aaa 然后编辑文件的内容加入rm命令使其内容成为删除上述文
件的格式:
vi aaa [rm -r ******* ]
把文件加上执行权限chmod +x aaa 执行$aaa
32.e 删除文件大小为零的文件
rm -i `find ./ -size 0` find ./ -size 0 -exec rm {} ; find ./ -size |xargs rm -f
&非常有效for file in *
#自己定义需要删除的文件类型do if [ ! -s ${file} ] then rm ${file} echo "rm $file Success!" fi
done
33、加装xwindow
用linux光盘启动,选择升级,然后单独选择包,安装即可
34、删除linux分区
做一张partition magic的启动软盘,启动后删除. 或者用win2000的启动光盘启动,然后删除.
35、如何退出man
q
5
36、找回忘记了的root口令(lilo/grub) 三种办法:
1.在系统进入单用户状态,直接用passwd root去更改
2.用安装光盘引导系统,进行linux rescue状态,将原来/分区挂接上来,作法如下: cd /mnt mkdir hd
mount -t auto /dev/hdaX(原来/分区所在的分区号) hd cd hd chroot ./ passwd root 这样可以搞定
3.将本机的硬盘拿下来,挂到其他的linux系统上,采用的办法与第二种相同rh8中
一. lilo
1. 在出现lilo: 提示时键入linux single 画面显示lilo: linux single
2. 回车可直接进入linux命令行
3. #vi /etc/shadow 将第一行,即以root开头的一行中root:后和下一个:前的内容删除, 第一行将
类似于root::...... 保存
4. #reboot重启,root密码为空
二. grub
1. 在出现grub画面时,用上下键选中平时启动linux的那一项(别选dos),然后按e键2. 再次用上
下键选中平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后
按e键
3. 修改现在见到的命令行,加入single ,结果如下: kernel /boot/vmlinuz-2.4.18-14 single ro
root=LABEL=/
4. 回车返回,然后按b键启动,即可直接进入linux命令行
5. #vi /etc/shadow 将第一行,即以root开头的一行中root:后和下一个:前的内容删除, 第一行将
类似于root::...... 保存
6. #reboot 重启, root 密码为空0015 使ctrl + alt + del 失效vi /etc/inittab 将
ca::ctrlaltdel:/sbin/shutdown -t3 -r now这行注释掉,就可以了
37、如何看出redhat的版本是7还是8
cat /proc/version或者cat /etc/redhat-release或者cat /etc/issue
38、文件在哪个rpm中
上 [url]http://www.rpmfind.net/[/url]上搜,或者rpm -qf 文件名得到
39、把man或info的信息存为文本文件
以tcsh 为例: man tcsh | col -b > tcsh.txt info tcsh -o tcsh.txt -s
40、利用现存两个文件,生成一个新的文件
1. 取出两个文件的并集(重复的行只保留一份)
2. 取出两个文件的交集(只留下同时存在于两个文件中的文件)
3. 删除交集,留下其他的行
1. cat file1 file2 | sort | uniq
6
2. cat file1 file2 | sort | uniq -d
3. cat file1 file2 | sort | uniq -u
41、设置com1口,让超级终端通过com1口进行登录确认有/sbin/agetty,编辑/etc/inittab,添加
7:2345:respawn:/sbin/agetty /dev/ttyS0 9600 9600bps是因为联路由器缺省一般都是这种速率,也可
以设成19200、38400、57600、115200 修改/etc/securetty,添加一行:ttyS0,确保root用户能登
录重启机器,就可以拔掉鼠标键盘显示器(启动时最好还是要看看输出信息)了
42、删除目录下所有文件包括子目录
rm -rf 目录名
43、查看系统信息
cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)
cat /proc/interrupts - 中断
cat /proc/ioports - 设备IO端口
cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size)
cat /proc/partitions - 所有设备的所有分区
cat /proc/pci - PCI设备的信息
cat /proc/swaps - 所有Swap分区的信息
cat /proc/version - Linux 的版本号相当于uname -r uname -a - 看系统内核等信息
44、去掉多余的回车符sed 's/^M//' test.sh > back.sh, 注意^M是敲ctrl_v ctrl-m得到的或者
dos2unix filename
45、切换X桌面
switchdesk KDE或者switchdesk GNOME
46、通用的声卡驱动程序
OSS [url]www.opensound.com/[/url] ALSA [url]www.alsa-project.org/[/url]
47、改变redhat的系统语言/字符集
修改/etc/sysconfig/i18n 文件, 如LANG="en_US" , xwindow 会显示英文界面,
LANG="zh_CN.GB18030",xwindow会显示中文界面。
还有一种方法cp /etc/sysconfig/i18n $HOME/.i18n 修改$HOME/.i18n 文件, 如
LANG="en_US",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文
界面。这样就可以改变个人的界面语言,而不影响别的用户
48、把屏幕设置为90列
stty cols 90
49、使用md5sum文件md5sum isofile > hashfile, 将md5sum 档案与hashfile 档案内容比对, 验
证杂凑值是否一致md5sum �Cc hashfile
7
50、一次解压多个zip文件
unzip "*",注意引号不能少
51、看pdf文件
使用xpdf或者安装acrobat reader for linux
52、查找权限位为S的文件
find . -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} ;
53、装中文输入法以redhat8为例
xwindow及其终端下的不用说了吧,缺省就安装了,用ctrl-space呼出。现在讨论纯console,请下载
zhcon.gnuchina.org/download/src/zhcon-0.2.1.tar.gz , 放在任一目录中,tar xvfz zhcon-0.2.1.tar.gz,
cd zhcon-0.2.1, ./configure, make, make install。安装结束,要想使用,请运行zhcon,想退出,运
行exit。
54、把弹出的光盘收回来
#eject -t
55、cd光盘做成iso文件
cp /dev/cdrom xxxx.iso
56、快速观看开机的硬件检测
dmesg | more
57、查看硬盘的使用情况
df -k 以K为单位显示
df -h 以人性化单位显示,可以是b,k,m,g,t..
58、查看目录的大小
du -sh dirname -s 仅显示总计-h 以K、M、G为单位,提高信息的可读性。KB、MB、GB是以
1024为换算单位, -H以1000为换算单位。
59、查找或删除正在使用某文件的进程
fuser filename fuser -k filename
60、安装软件
rpm -ivh aaa.rpm
tar xvfz aaa.tar.gz;
cd aaa;
./configure;
make;
make install
8
61、字符模式下设置/删除环境变量
bash下
设置:export 变量名=变量值
删除:unset 变量名
csh下
设置:setenv 变量名变量值
删除:unsetenv 变量名
62、ls如何看到.开头的文件
ls -a
63、rpm中的文件安装到哪里去了
rpm -qpl aaa.rpm
64、使用src.rpm rpmbuild --rebuild *.src.rpm
65、vim中显示颜色或不显示颜色vi ~/.vimrc; 如果有syntax on,则显示颜色,syntax off,则不
显示颜色
66、linux是实时还是分时操作系统
分时
67、make bzImage -j的j是什么意思
-j主要是用在系统硬件资源比较大的时候,比较富裕的时候,用这个可以来加快编译的速度,如
-j 3
68、源码包怎么没有
没有安装源代码,把光盘上rpm -i *kernel*source*.rpm装上,就可以看到源代码了。
69、修改系统时间
date -s “2003-04-14 cst”,cst指时区,时间设定用date -s 18:10
70、开机就mount上windows下的分区
自动将windows的d盘挂到/mnt/d上,用vi打开/etc/fstab,加入以下一行/dev/hda5 /mnt/d vfat
defaults,codepage=936,iocharset=cp936 0 0 注意,先得手工建立一个/mnt/d目录
71、linux怎么用这么多内存
为了提高系统性能和不浪费内存,linux把多的内存做了cache,以提高io速度
72、FSTAB 最后的配置项里边最后两个数字是什么意思
第一个叫fs_freq,用来决定哪一个文件系统需要执行dump操作,0就是不需要;
第二个叫fs_passno,是系统重启时fsck程序检测磁盘的顺序号1 是root文件系统,2 是别的文件
系统。fsck按序号检测磁盘,0表示该文件系统不被检测dump 执行ext2的文件系统的备份操作
9
fsck 检测和修复文件系统
73、linux中让用户的密码必须有一定的长度,并且符合复杂度(eapass) vi /etc/login.defs,改
PASS_MIN_LEN
74、linux中的翻译软件
星际译王xdict
75、不让显示器休眠
setterm -blank 0 setterm -blank n (n为等待时间)
76、用date查询昨天的日期
date --date='yesterday'
77、xwindow下如何截屏
Ksnapshot或者gimp
78、解压小全
tar xvfj example.tar.bz2
tar xvfz example.tar.gz
tar xvfz example.tgz
tar xvf example.tar
unzip example.zip
79、在多级目录中查找某个文件的方法
find /dir -name filename.ext du -a | grep filename.ext locate filename.ext
80、不让普通用户自己改密码
[root@xin_fc etc]# chmod 511 /usr/bin/passwd
又想让普通用户自己改密码
[root@xin_fc etc]# chmod 4511 /usr/bin/passwd
81、显卡实在配不上怎么办
去 [url]http://www.redflag-linux.com/[/url],下了xfree86 4.3安装就可以了.
82、超强删除格式化工具
比PQMagic 安全的、建立删除格式化的小工具:
sfdisk.exe for msdos [url]http://www.wushuang.net/soft/sfdisk.zip[/url]
83、如何让xmms播放列表里显示正确的中文
-*-*-*-*-*-iso8859-1,-misc-simsun-medium-r-normal--12-*-*-*-*-*-gbk-0,*-r-
把这个东西完全拷贝到字体里面
10
操作方法: 右键单击xmms播放工具的任何地方会看到一个"选项",然后选择"功能设定"选择
"fonts" 然后把上面的字体完整的拷贝到"播放清单"和"user x font
84、linux下听MP3
redhat 光盘原带的xmms 不能播放MP3( 无声), 要下载安装一个RPM 包:xmms-mp3-1.2.7-
13.p.i386.rpm安装即可.
打开xmms,ctl-p,在font栏中先在上半部的小框内打勾,再选择“fixed(misc) gbk-0 13”号字体即
可显示中文歌曲名。在音频输出插件中选择"开放音频系统驱动程序1.2.7 [lioOSS.so]即可正
常播放MP3文件.
85、安装中文字体
先下载 [url]http://freshair.netchina.com.cn/~George/sm.sh[/url]
(参考文献: [url]http://www.linuxeden.com/edu/doctext.php?docid=2679[/url] )
SimSun18030.ttc在微软网站可下载,
[url]http://www.microsoft.com/china/windows2000/downloads/18[/url] 030.asp 它是个msi 文件, 在
mswindows中安装,装好后在windows目录下的fonts 目录里面就可以找到它。把simsun.ttc,
SimSun18030.ttc,tahoma.ttf,tahomabd.ttf 拷贝到/usr/local/temp,然后下载的shell文件也放到这
个目录里,然后打开终端cd /usr/local/temp chmod 755 sm.sh ./sm.sh
86、装载windows分区的FAT32、FAT16文件系统
以root身份进入KDE,点击桌面上的“起点”图标,在/mnt目录下建立如下文件夹: c,d,e,f,g,usb.
分别用作windows下各分区和usb闪盘。
用文本编辑器打开/etc/fstab 文件.加入如下:
/dev/hda1 /mnt/c vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/hda5 /mnt/d vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/hda6 /mnt/e vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/hda7 /mnt/f vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/hda8 /mnt/g vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,iocharset=gb2312,owner,kudzu,ro 0 0
/dev/sda1 /mnt/usb vfat iocharset=gb2312,umask=0,codepage=936 0 0
存盘退出. 重新启动后即可正常访问FAT32或FAT16格式分区,解决显示WINDOWS分区下和光
盘中文文件名乱码问题.其中共六列,每列用Tab键分开。注意此方法只能mount上Fat 分区格
式.sda1是闪盘。
87、在X下使用五笔和拼音,区位输入法
从 [url]http://www.fcitx.org/[/url] 上下载fcitx的rpm包安装即可
87、在Linux下如何解压RAR文件
[url]http://www.linuxeden.com/download/softdeta....php?softid=883[/url] 下载RAR for Linux 3.2.0,解压后
11
make 然后可以用unrar e youfilename.rar解压rar文件
88、硬盘安装后怎么添加/删除rpm包
redhat-config-packages --isodir= 可以指定iso文件所在的目录
89、字符下控制音量
aumix
90、用dd做iso
dd if=/dev/cdrom of=/tmp/aaa.iso
91、删除几天以前的所有东西(包括目录名和目录中的文件)
find . -ctime +3 -exec rm -rf {} ; 或find ./ -mtime +3 -print|xargs rm -f -r
92、用户的crontab在哪里
/var/spool/cron/下以用户名命名的文件
93、以不同的用户身份运行程序
su - username -c "/path/to/command" 有时候需要运行特殊身份的程序, 就可以让su来做
94、如何清空一个文件
> filename
95、为什么OpenOffice下不能显示中文
更改字体设置tools->options->font replacement Andale Sans UI -> simsun
96、如何备份Linux系统
Symantec Ghost 7.5以后的版本支持Ext3 native复制
97、linux上的partition magic
Linux下一个有用的分区工具: parted 可以实时修改分区大小, 删除/建立分区.
常用命令集(DOS,FTP,UNIX NOVEL...)
一.FTP命令集
ascii: 设定以ASCII方式传送文件(缺省值)
bell: 每完成一次文件传送,报警提示.
binary:设定以二进制方式传送文件.
bye:终止主机FTP进程,并退出FTP管理方式.
case: 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母.
cd: 同UNIX的CD命令.
12
cdup: 返回上一级目录.
chmod: 改变远端主机的文件权限.
c l o s e: 终止远端的FTP进程,返回到FTP命令状态,所有的宏定义都被删除.
delete: 删除远端主机中的文件.
dir [remote-directory] [local-file]列出当前远端主机目录中的文件.如果有本地文件,
就将结果写至本地文件.
get [remote-file] [local-file]从远端主机中传送至本地主机中.
help [command]输出命令的解释.
lcd: 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录.
ls [remote-directory] [local-file]同DIR.
macdef: 定义宏命令.
mdelete [remote-files]删除一批文件.
mget [remote-files 从远端主机接收一批文件至本地主机.
mkdir directory-name 在远端主机中建立目录.
mput local-files 将本地主机中一批文件传送至远端主机.
o p e n host [port] 重新建立一个新的连接.
prompt: 交互提示模式.
put local-file [remote-file] 将本地一个文件传送至远端主机中.
pwd: 列出当前远端主机目录.
quit: 同BYE.
recv remote-file [local-file]同GET.
rename [from] [to] 改变远端主机中的文件名.
rmdir directory-name 删除远端主机中的目录
send local-file [remote-file]同PUT.
status: 显示当前FTP的状态.
system: 显示远端主机系统类型.
user user-name [password] [account] 重新以别的用户名登录远端主机.
?: 同HELP.
二.8086/8088汇编语言指令集
13
一,数据传送指令集
1.MOV
功能: 把源操作数送给目的操作数
语法: MOV 目的操作数,源操作数
格式: MOV r1,r2
MOV r,m
MOV m,r
MOV r,data
2.XCHG
功能: 交换两个操作数的数据
语法: XCHG
格式: XCHG r1,r2 XCHG m,r XCHG r,m
3.PUSH,POP
功能: 把操作数压入或取出堆栈
语法: PUSH 操作数POP 操作数
格式: PUSH r PUSH M PUSH data POP r POP m
4.PUSHF,POPF,PUSHA,POPA
功能: 堆栈指令群
格式: PUSHF POPF PUSHA POPA
5.LEA,LDS,LES
功能: 取地址至寄存器
语法: LEA r,m LDS r,m LES r,m
6.XLAT(XLATB)
功能: 查表指令
语法: XLAT XLAT m
二,算数运算指令
1..ADD,ADC
功能: 加法指令
语法: ADD OP1,OP2 ADC OP1,OP2
格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data
影响标志: C,P,A,Z,S,O
2..S U B,SBB
功能:减法指令
语法: S U B OP1,OP2 SBB OP1,OP2
格式: S U B r1,r2 S U B r,m S U B m,r S U B r,data S U B m,data
影响标志: C,P,A,Z,S,O
3.INC,DEC
功能: 把OP的值加一或减一
语法: INC OP DEC OP
格式: INC r/m DEC r/m
14
影响标志: P,A,Z,S,O
4.NEG
功能: 将OP的符号反相(取二进制补码)
语法: NEG OP
格式: NEG r/m
影响标志: C,P,A,Z,S,O
5.MUL,IMUL
功能: 乘法指令
语法: MUL OP IMUL OP
格式: MUL r/m IMUL r/m
影响标志: C,P,A,Z,S,O(仅IMUL会影响S标志)
6.DIV,IDIV
功能:除法指令
语法: DIV OP IDIV OP
格式: DIV r/m IDIV r/m
7.CBW,CWD
功能: 有符号数扩展指令
语法: CBW CWD
8.AAA,AAS,AAM,AAD
功能: 非压BCD 码运算调整指令
语法: AAA AAS AAM AAD
影响标志: A,C(AAA,AAS) S,Z,P(AAM,AAD)
9.DAA,DAS
功能: 压缩BCD 码调整指令
语法: DAA DAS
影响标志: C,P,A,Z,S
三,位运算指令集
1.AND,OR,XOR,NOT,TEST
功能: 执行BIT与BIT之间的逻辑运算
语法: AND r/m,r/m/data OR r/m,r/m/data XOR r/m,r/m/data TEST r/m,r/m/d
ata NOT r/m
影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0) NOT指令不影响任何标志位
2.SHR,SHL,SAR,SAL
功能: 移位指令
语法: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL
影响标志: C,P,Z,S,O
3.ROR,ROL,RCR,RCL
功能: 循环移位指令
语法: ROR r/m,data/CL ROL r/m,data/CL RCR r/m,data/CL RCL r/m,data/CL
影响标志: C,P,Z,S,O
15
四,程序流程控制指令集
1.CLC,STC,CMC
功能: 设定进位标志
语法: CLC STC CMC
标志位: C
2.CLD,STD
功能: 设定方向标志
语法: CLD STD
标志位: D
3.CLI,STI
功能: 设定中断标志
语法: CLI STI
标志位: I
4.CMP
功能: 比较OP1与OP2的值
语法: CMP r/m,r/m/data
标志位: C,P,A,Z,O
5.JMP
功能: 跳往指定地址执行
语法: JMP 地址
6.JXX
功能: 当特定条件成立则跳往指定地址执行
语法: JXX 地址
注:
A: ABO VE,当C=0,Z=0时成立
B: BELOW,当C=1时成立
C: CARRY,当弁时成立CXZ: CX寄存器的值为0(ZERO)时成立
E: EQUAL,当Z=1时成立
G: GREATER(大于),当Z=0且S=0时成立
L: LESS(小于),当S不为零时成立
N: NOT(相反条件),需和其它符号配合使用
O: OVERFLOW,O=1时成立
P: PARITY,P=1时成立
PE: PARITY EVEN,P=1时成立
PO: PARITY ODD,P=0时成立
S: SIGN,S=1时成立
Z: ZERO,Z=1时成立
7.LOOP
功能: 循环指令集
语法: LOOP 地址
8.LOOPE(Z)
16
地址LOOPNE(Z) 地址
标志位: 无
9.CALL,RET
功能: 子程序调用,返回指令
语法: CALL 地址RET RET n
标志位: 无
10.INT,IRET
功能: 中断调用及返回指令
语法: INT n IRET
标志位: 在执行INT时,CPU会自动将标志寄存器的值入栈,在执行IRET时则会将堆
栈中的标志值弹回寄存器
五,字符串操作指令集
1.MOVSB,MO VSW,MOVSD
功能: 字符串传送指令
语法: MOVSB MOVSW MOVSD
标志位: 无
2.CMPSB,CMPSW,CMPSD
功能: 字符串比较指令
语法: CMPSB CMPSW CMPSD
标志位: C,P,Z,S,O
3.SCASB,SCASW
功能: 字符串搜索指令
语法: SCASB SCASW
标志位: C,P,Z,S,O
4.LODSB,LODSW,STOSB,STOSW
功能: 字符串载入或存贮指令
语法: LODSB LODSW STOSB STOSW
标志位: 无
5.REP,REPE,REPNE
功能: 重复前缀指令集
语法: REP 指令S REPE 指令S REPNE 指令S
标志位: 依指令S而定
三.D O S命令集
一、DIR 命令的格式:
dir [D:][PATH][NAME][/A][:attrib][/o:[sorted][/s][/b][/l][/c[h]
(1)dir /a:attrib 缺省包含所有文件(系统文件.隐含文件)
attrib[:][h/-h]只显示隐含文件或非隐含文件.
[r/-r]只显示只读文件或非只读文件
17
[s/-s]只显示系统文件或非系统文件
[a/-a]只显示要归档文件或非归档文件
(2)/o[:]sorted:缺省完全按字母顺序,子目录显示在文件之前
/o[n/-n]:按字母顺序或按文件名顺序/反向显示
[e/-e]:按扩展名字母顺序/反向显示
[d/-d]:按时间顺序/反向显示
[s/-s]:按大小从大到小或/反向显示
[g/-g]:按子目录先于文件或文件先于子目录
(3)/s 参数:对当前目录及其子目录中所有文件进行列表
列名:dir /s/a/o:n c:\>PRN
将c盘上的所有子目录和文件按隶属关系并根据子目录和文件字母顺序打印输出
(4)/B 参数:将只显示文件名与扩展名
(5)/L 参数:将全部用小写字母对文件或子目录进行列表
训练:
dir /a 列当前目录所有文件(含隐含及系统文件)
dir /ah 列隐含文件(包含子目录(隐含的) dir /a-h
dir /as 列系统文件dir /a-s
dir /ad 列子目录dir /a-d
dir /o 按字母顺序
dir /B 只显示文件名与扩展名
二、attrib [+r|-r] [+a|-a] [+s|-s] [+h|-h] [d: ] [name] [/s]
缺省attrib name 显示文件的(文件)属性
attrib io.sys (或子目录)
shr c:\ io.sys 指定为系统(s) 隐含(h) 只读(r)文件
也可以attrib *.sys 显示扩展名为sys的文件属性
参数[+r|-r] 将文件属性设置或解除只读属性
[+a|-a] 将文件属性设置或解除归档属性
[+h|-h] 将文件属性设置或解除隐含属性(尤其对子目录也起作用)
/s 参数将当前及当前子目录下的所有文件均起作用
可以用来查找文件
例子:
attrib news86 列news86的文档属性
attrib +r report.txt 设置为只读attrib -s -h record.txt
attrib +a a:*.*
attrib -a a:*.bak
xcopy a: b: /a 将A盘上的所有标志为"归档"属性的文件拷到B盘
xcopy a: b: /m 将A盘上的所有文件拷到B盘后并移去归档属性
三、cd 介绍: cd...返回上二级目录"."代表当前目录"."代表父目录
cd ..\..返回到上级目录的父目录(祖目录)
cd A:\ 将A盘的当前目录改为根目录
cd A:\xx 将A盘的当前目录改为子目录xx下
18
cd ..\98 先返回父目录,再进入父目录下的98子目录
cd ..返回到父目录
cd\98 进入根目录下的98子目录
四、copy [/y][/-y][/v][ /B]
copy /y 不加提示,对所有文件加以覆盖
/-y 加以提示,对所有文件(yes或no提问)
/v 拷贝以后加以校验
/B 按二进制进行显示
copy w1.wps C O N/b 可以将wps文件在屏幕上显示,而不必进入wps状态
copy ..\98 将父目录下的98子目录下的所有文件全拷到当前子目录
copy .\97 当当前目录下的97子目录下文件全部拷到当前目录
copy . c:\ 将当前目录下的所有文件拷到c盘根目录
. 意味着*.* 文件
copy N U L a.abc 将a.abc 文件清空(文件长度改为0)
copy 文件名+C O N 向文本文件中追加命令或内容
copy C O N 文件名创建文本文件(F6存盘退出)
copy C O N prn 检测打印机的开关
五、xcopy命令
xcopy [source] [d:date] [/p] [/s] [/e] [/v] [/y]
xcopy [d:date] xcopy a:b:\ /d:08/18/98/s/v 拷贝98.08.18年后的文件
xcopy [/p] 提示创建子目录
xcopy [/s] 连带子目录一起拷贝. 注意:若目标盘上不存在此子目录,而在目标
盘的结束符又不以"\"为结束,则将提示:
does destination specify a file name or directory name on the target
[f=file,d=directory]?
在目标盘上创建文件[按下]还是创建子目录[按下d] ?应选择d键
xcopy[/v] 带较验
*:(1) xcopy 不拷贝系统和隐含文件,应先予以修改属性再拷贝
xcopy [/y] 覆盖时是否有提示, /y 不带提示
若省略目标盘或子目录名,则拷贝到当前目录下
六、del /p
加/p 可以在删除前是否提示
如del后加子目录名,则将子目录下所有文件(隐含.系统.只读文件除外)全删除,
加/p则可以确认.
七、undelete [name] /au
不加提示地将所有满足条件的文件恢复(能够恢复的),并将首字母置成"#",若已
存在,则按"# % & 0 1 2-9 a-z"顺序加上.
如:undelete *.dbf/au 将扩展名为"dbf"的文件全恢复,并以"#"开头,作为文件
名, /list 仅列出可恢复的文件,而不恢复
undelete /load 将undelete 装入内存
/unload 将undelete卸出内存
19
/s[drive]对指定驱动器进行监测管理
undelete/sc
将undelete驻留内存,?并创建一个隐含的sentry 子目录对c盘删除的文件进行
管理undelete/ds 恢复
相应恢复命令可以用undelete即可完整恢复出文件名(非常完整)
最常用undelete *.*
deltree /y [drive:path]
deltree 删除子目录及文件,尽管有些文件是系统文件或隐含文件
它可以带有通配符,带有通配符时,它将删除符合条件的文件及子目录
如:?undelete *.dbf/au 将扩展名为"dbf"的文件全恢复,并以"#"开头作为文件
名.
/list 仅列出可恢复的文件,而不作恢复操作.
undelete/load 将undelete 装入内存.
/unload将undelete 卸出内存.
/s[drive] 对指定的驱动器进行监视管理.
undelete/sc 将undelete 驻留内存,并创建一个隐含的sentry子目录对C盘删除
的文件进行管理.相应恢复命令可以用undelete/ds 即可完整恢复出文件名(很完善).
最常用的是undelete *.*
八、deltree /y [drive:path]
deltree 删除子目录及文件,尽管有些文件是系统或隐含的.
它可以带有通配符,这时它将删除符合条件的文件或子目录.
如:存在L1文件,L2子目录,L3文件,L4子目录
deltree L*.* 将删除以上所有的文件和子目录,但在删除前加以确认,若不删除,
可以输入"N".
/y 参数是在删除时不加以确认就进行操作的.
它删除的文件可以用undelete恢复,?但不能恢复子目录及其下的文件,可以用特
殊工具.如NORTON 8.0 等.
若提前使用了undelete/s,?则可以在sentry子目录下找到完整的文件,但名已经
改变了.
九、d o s=high[|low[umb|noumb]
d o s=high,umb 则d o s将自身装入高端内存(high)并能管理上位内存(umb).
noumb 则不管理上位内存.
在写入d os =high及umb 前应装入device=himem.sys
为了将程序或驱动程序装入上位内存,必须使用d o s=umb,可省出大部分常规内存.
可以在c onfig.sys的任何位置写上d o s =high,umb
若显示hma not avoiable 或load down low 则表明不能使用高端内存.
十、d o skey 记录以前敲过的d o s 命令,可以用F7来显示,用"↑↓"来选择,用F9来输入
选择的命令号.
d o skey /restall 重新装入一次,以前的命令行撤消.
d o skey /history 显示内存中所有的命令,可以">"显示到其它文件中,缩写"/H".
d o skey dir=cls 则击入dir等同于cls一样.
20
d o skey /macros 可显示所有的宏定义,可使用">"重定义到文件中,可缩写"/M".
d o skey dir= 可撤消对dir 的宏定义.
d o skey p=dir$tdir*.exe/p$tdir c:\t$tdir c:\t$*
$t为命令的区分符,而$*为命令的结束符
d o skey /insert(overstrike)?在重新输入命令时,对旧命令的修改是插入还是覆
盖状态(默认).
十一、emm386.exe
提供对扩展内存的管理,使应用程序象使用常规内存一样能够使用它.
常见的用法是在这个字眼被禁止!fig.sys 中
device=c:\d o s\himem.sys
device=c:\d o s\emm386.exe ram
d=64 将DMA 内存数量设置为64K
noems 提供对上位内存的访问,但不提供对扩展内存的访问.
应注意的是在windows中最好不要用它,因为windows本身有对扩展内存进行管理
的程序.应采用windows中的管理器.
十二、fc 命令fc/b dt.dat dt2.dat>b (作二进制代码比较)
比较两个文件,一般用作存取进度,修改游戏存储文件用.
实际代码位置应加上0100 如:0000 05E4:00 67
实际用debug -e 修改时应加上0100 即0000 06E4:00 67
后面加上重定向文件">P" 可以将比较结果输出到p文件中.
十三、format /q /u /s /n:sectors /f:size /c
/q参数:快速格式化,仅扫描文件分配表和根目录区,仅对格式化过的磁盘有效.
使用时应确保格式化过后没有增加新的坏道.
/u参数:无条件格式化,并且不保存原来盘上的信息,可以防止"unformat".
/s参数:格式化为系统盘,也可以使用"sys"命令.
/f:size size 可以为160 180 320 360 720 1200 1440 2800
/n:sector n可以为1 格式为单面盘,容量为160k 180k
可以为4 可以在5寸高密驱动器上格式化360k磁盘
可以为8 可以在5寸高密驱动器上进行8个扇区的格式化.
/c 重新测试坏扇区,缺省时如果一个扇区标记为"坏",以后格式时就不在从新测
试,仅作标记,使用"/C"时可以从新测试.
十四、unformat 命令
对用format 格式过,且未用"/u"参数的命令起作用,用它可以来重新修复已经损
坏的硬盘分区表,但对网络盘不起作用.
unformat drive:[/l][/test][/p]
/l 显示每一个被unformat发现的文件和子目录,如果没有这个开关,只显示那些
破碎的文件和子目录,可以用ctrl+s 暂停,按任意键继续.
/test 仅作一个测试,不作实际的修复工作,作模拟过程.
/p 一边测试一边打印.
注:这种方法不能保证修复所有的文件,尤其是格式化后又添加过数据的磁盘.
恢复后的文件依次存放在s ubdir1....2....3等子目录中.
21
十五、interlnk
语法interlnk g=e ,它可以通过串口或并口在两机间进行通讯.
将服务器端上的e驱动器映射为客户端的g驱动器,以后对客户端而言,所有对g的
操作都意味着对服务器的访问,取消映射的办法为interlnk g=
单独输入interlnk 则显示所有的映射情况.
注意:interlnk 必须在装入interlnk.exe 设备驱动程序才可以使用.
所用的驱动器符号与c onfig.?sys中lastdrv.exe设置的数目有关.可以作一个一
端为25针,另一端为9针的串行线实现,具体接线方式如下:
5 - 7 2 - 15
3 - 2 3 - 13
7 - 4 4 - 12
6 - 6 5 - 10
3 - 3 6 - 11
8 - 5 15 - 2
4 - 20 13 - 3
9针25针12 - 4
10 - 5
11 - 6
25 - 25
25针25针
十六、interlnk.exe 与intersvr.exe
interlnk.exe 重新定向对于客户驱动器或打印接口的请求到另外的服务器驱动
器或打印机.
语法:c o nfig.sys 中加入:
device=c:\d o s\interlnk.exe [drive:n][/noprinter][com][lpt]
十七、memmaker[/b][/batch][session][/swap:drive]
使用memmaker能够优化内存配置,?并将配置写入auto e x e c.bat和c o nfig.sys中.
在这一过程中,需要重新启动几次机器.
十八、memitem memcolor memdefault s u bmenu 菜单选项include
autoe xec.bat 中如下: c onfig.sys中如下:
path c:\d o s;c:\u c d o s [menu]
d o s k e y menucolor=15,1(前景色15,背景色1)
\mouse\mouse menuitem=base_c o nf i g,this is a base
goto %c o n f i g% ->选择项menuitem=cced_c o nfig,this is a cced
选项提示
:base_c o nfig menudefault=base_c o nfig,5
goto exit ->跳出缺省为base_c o nfig,延迟时间5秒
:cced_c o nfig [common]
c:\d o s\smartdrv.exe /l device=c:\d o s\himem.sys
goto exit 各项都包含的共同部分
22
:exit ->结束[base_c o nfig]
device=c:\d o s \emm386.exe ram
d o s=high,umb
[cced_c o nf i g]
device=c:\d o s \smartdrv.exe/double_buffer
include=base_c o nf i g 包含base_c o n f i g设置
可以根据计算机的在不同情况下的配置要求来选择.
十九、mscdex.exe 提供对光驱进行读写的程序
mscdex/d:drive [/D:drive][/e][/k][/s][/l:letter]
典型:这个c o nfig.sys 中device=c:\cdrom\cdrom.sys /d:mscd000
a u t o e x e c.bat中c:\d o s\mscdex /d:mscd000 /l:g
配置了一个光驱,符号为g
参数/d:drive1 为光驱身份号,须与c o n f i g.sys中的符号一致,可有多个
/d:mscd000 /d:mscd001
/e:使用扩展内存装入光驱驱动程序.
/s:使光驱在ms_net或windows是否设置为共享光驱
/V是否在加载时显示内存.
/L:letter 分配给光驱的盘符
/m:number 指定缓冲器的数目
应该注意的是:?如果用smartdrv.exe 加速对光驱的读写能力,应该在a u t o e x e c.
bat中将mscdex.?exe 写在smartdrv.exe 之前,smartdrv.exe的使用可大幅提高
对驱动器的读写能力.
二十、msd的使用
使用msd 可以整体检查计算机配置及系统信息
包括:?驱动器参数,计算机cpu参数,内存大小参数,显示器类型,串.并口情况,以
及各个IRQ占用情况,据此可以分析新增设备是否与原来设备有冲突.
同时也可以通过分析内存驻留程序,判断内存中是否有病毒,有则标为"???".
二十一、prompt d o s提示符
$q 等于号$t 当前时间$d 当前日期$p 当前驱动器符号
$$ $号提示$n当前驱动器$g 大于号$l小于号$b 显示"|"管道号
$h 隐去提示符$E显示"<-"号
对于其它文字,则直接显示文本本身prompt ljw,则显示为ljw提示符
prompt 则仅显示当前驱动器号及大于号.
二十二、ramdrive.sys 使用内存当做虚拟盘来使用
应注意,所有数据都存在于内存中,应及时将其存到硬盘中,否则掉电后或者死机
后将丢失全部数据,优点是运行速度快,但不能在windows中使用.
示例:这个字眼被禁止!fig.sys: device=c:\这个字眼被禁止!\ramdrive.sys /size[/e|a]
size为以k为单位的字节数,即建立的虚拟盘的大小.
/e或/a 都是使用扩展内存来建立虚拟盘,?加参数的前提是必须先加载内存管理
器himem.sys及emm386.exe.
二十三、这个字眼被禁止!st 将一个驱动器与一个子目录联接
23
如:将对A:\l1\l2 子目录的请求映射为S盘,则输入
这个字眼被禁止!st s: a:\l1\l2 即可
这样使用dir s:?等命令则显示的是a:\l1\l2子目录下的内容,其它copy del 一样
可以用这个字眼被禁止!st s: d 来取消这种映射.
可以用这个字眼被禁止!st 来显示各种联接情况
注意:?可以采用这个字眼被禁止!st a: c:a 来建立一个对于A的读写盘.对于某些安装软件
来说,?必须使用A盘来安装,就可以使用先将所要安装的软件全部拷贝到C:a 子
目录中,然后输入这个字眼被禁止!st a: c:a,再转到A:,就可以进行软件的安装了.
二十四、mem /c /m /p /d 常规内存显示程序
/c显示所有内存驻留程序的占用情况,分为这个字眼被禁止!ventional常规内存和uppermemory
高端内存占用,并显示总的占用情况(常规高端保留扩展内存)
/p分页显示,页间暂停
/m后加模块名如:/m ms这个字眼被禁止! 显示这个字眼被禁止!系统内存的占用.
/d对常规高端保留扩展内存加以详细例表说明
通过分析,可以看出内存占用是否合理,以及各种程序是否正常加载,从而在此基
础上使用内存优化工具memmaker进行各种管理,同时又可以分析出一些程序死机
的原因,若有的地方显示"???",则可以断定内存中有病毒的存在,有利于发现及消灭.
二十五、各种管道工具的使用"> < >> <<"
将各种命令造成的输出或所需要的输入重新定向
如:dir *.bat /b>p 可以将dir *.bat 例出的文件名输出到p文件中.
time<p>>p.bat
p文件中仅存在一个回车符,则可以将时间追加进p.bat文件中
"> >>" 是将命令产生的输出重新定向,比如到文件或打印机中.
>>产生的内容将追加进文件中,>则将原文件内容覆盖.
"< <<" 是将命令所需要输入的内容重新定向.
如:time<p 在批中可以是时间代码或回车符,可以以此改变时间.
需要说明的是"prn "为打印机, "这个字眼被禁止!l"为空设备
这个字眼被禁止! 为显示器
type p.bat>prn 可将p.bat打印出来.
copy 这个字眼被禁止!l p 可将p文件删除掉
copy 这个字眼被禁止! p 可以在屏幕上编辑p文件,F6可以存盘退出
type p>pp 完成p文件到pp 的复制
type p|more 可在屏满时暂停显示
二十六、move 命令
move [y/-y] filename1 filename2
将文件1移动到文件2处
如:move c:\这个字眼被禁止!\*.* c:\cced
将这个字眼被禁止!子目录下的所有文件全部移动到cced 子目录下
/y|-y参数在目标目录不存在需要创建时,是否出现提示
可以使用该命令修改子目录名称,如move 这个字眼被禁止! cced
将这个字眼被禁止!目录名改为cced
24
二十七、append 指定一些特殊数据文件的存放位置,如user.dat pe2.pro等一些非*.
exe *.com *.bat 文件
格式:append [:]终止以前存在的指定目录append 显示指定情况
append [path] append c:\user 等
二十八、
call 在一个批处理命令中调用另外一个批处理文件
(1)不终止现有文件的运行,执行完掉用程序后立即返回.
(2)被调用批处理命令必须以bat 为扩展名
(3)调用批处理文件时,可以加上参数(%1-%9)以及环境变量如%baud%
(4)不能使用管道工具及重定向工具
二十九、device devicehigh loadhigh
device 将指定的设备驱动程序装入内存中
devicehigh将指定的设备驱动程序装入高端内存中
loadhigh 将指定的设备驱动程序装入高端内存中
三十、defrag 优化磁盘
legend(传奇) optimize(优化) elapse(逝去) fragment(碎片)
该命令执行对指定的盘进行优化处理(包括检查文件分配表,各文件状态,纠正错
误),在执行时,可按照文件名大小,时间,扩展名对文件进行排序.
四.UNIX 常用的指令
以下只说明各指令的基本用法, 若需详细说明, 请用man 去读详细的manual.
1. ls
这是最基本的档案指令。ls 的意义为"list",也就是将某一个目录或是某一个档案的内容显示
出来。如果你在下ls 指令後头没有跟著任何的档名,它将会显示出目前目录中所有档案。也
可以在ls 後面加上所要察看的目录名称或档案的名称,如
% ls /etc
ls 有一些特别的参数,可以给予使用者更多有关的资讯,如下:
-a : 在UNIX 中若一个目录或档案名字的第一个字元为"." , 则使用ls
将不会显示出这个档案的名字,我们称此类档案为隐藏档。如tcsh的初设档.tcshrc;如果我们
要察看这类档案,则必须加上参数-a 。
-l : 这个参数代表使用ls 的长( long )格式,可以显示更多的资讯,如档案存取权,档案拥有者
( owner ),档案大小,档案最後更新日期,甚而symbolic link 的档案是link 那一个档等等。如
下
% ls -l
2. cp
cp 这个指令的意义是复制("COPY") , 也就是将一个或多个档案复制成另一个档案或者是将其
复制到另一个目录去。
-i : 此参数是当已有档名为f2 的档案时,若迳自使用cp 将会将原来f2
的内容掩盖过去,因此在要盖过之前必须先询问使用者一下。如使用者
的回答是y(yes)才执行复制的动作。
25
-r : 此参数是用来做递回复制用,可将一整颗子树都复制到另一个
目录中。
3. mv
mv 的意义为move , 主要是将一档案改名或换至另一个目录。如同cp ,它也有三种格式:
mv 的参数有两个,-f 和-i , 其中-i 的意义与cp 中的相同,均是interactive
询问之意。而-f 为强迫( force ) , 就是不管有没有同名的档案,反正我就是要
搬过去,所有其他的参数遇到-f 均会失效
4. rm
rm 的意义是remove ,也就是用来杀掉一个档案的指令。在UNIX 中一
个被杀掉的档案除非是系统恰好有做备份,否则是无法像这个字眼被禁止! 里面一样还能够
救回
来的。所以在做rm 动作的时候使用者应该要特别小心。
-f : 将会使得系统在删除时,不提出任何警告讯息。
-i : 在除去档案之前均会询问是否真要除去。
-r : 递回式的删除。
5. mkdir
mkdir 是一个让使用者建立一个目录的指令。你可以在一个目录底下使用
midir 建立一个子目录,使用的方法就不用多说了吧!
6. chdir ( cd )
这是让使用者用来转移工作目录用的。
chdir dirname
如此你就可以将目前的目录转移到dirname 这一个目录去。或使用"chdir .." 来转移到上一层
目录。
7. rmdir
相对於mkdir ,rmdir 是用来将一个"空的"目录杀掉的。如果一个目录下面没有任何档案,你
就可以用rmdir 指令将其除去。rmdir 的使用法如下:
rmdir dirname1 [ dirname2 .... ]
如果一个目录底下有其他的档案, rmdir 将无法将这个目录杀掉,除非使用rm 指令的-r 选
项。
8. pwd
pwd 会将目前目录的路径( path )显示出来,例如:
9. cat/more/less
以上三个指令均为察看档案内容的指令。cat 的意义是猫....不不不,是这个字眼被禁止!catenate
,在字典上的意思是"连结,将…串成锁状"( 语出资工电子词典cdict ),其实就是把档案的内容
显示出来的意思。cat 有许多奇怪的参数,较常为人所使用的是-n 参数,也就是把显示出来
的内容加上行号。cat 的用法如下:
cat [-n] :自标准输入读进内容,你可以用pipe 将别的程式的输出转向
给cat .
cat [-n] filename : 将filename 的内容读进来,显示在标准输出上。问题在於cat 它是不会停下
来的,因此并不好用( 试想如果一个萤幕二十四行,而一个档案四百行,cat 一出来将会劈哩啪
啦不断的卷上去,使用者很难据此得到他们所需的资讯。) 所以才有人又写了more 出来。
26
more ,可以将所观察的档案跟据终端机的形态一页页的显示出来,再根据使用者的要求换页或卷
行。如果使用者要在某一个档案中搜寻一个特定的字串,则按/ 然後跟著打所要搜寻的单字即
可进行搜寻。more 也可以找得到。more 的使用法如下:
more filename
如果你在使用中觉得已经看到了所要看的部份,可以按'q'离开more 的使用。在使用中按'v' 亦
可以使用编辑器来编辑所观看的档案。less 的用法与more 极类似,原先它就是为了弥补more
只能往前方卷页的缺点而设计。less 的用法如下:
less filename
其与more 不同的是它可以按y 来往上卷一行,并且可以用"?"来往回搜寻你所要找的单字。
10. chmod
chmod 为变更档案模式用( change mode ) . 这个指令是用来更改档案的存取模式( access mode )。
在UNIX 一个档案上有可读(r)可写(w)可执行(x)三种模式,分别针对该档案的拥有者( onwer )、
同群者( group member )( 你可以ls -lg来观看某一档案的所属的group ),以及其他人( other )。
一个档案如果改成可执行模式则系统就将其视为一个可执行档,而一个目录的可执行模式代表
使用者有进入该目录之权利。chmod 就是用来变更一些档案的模式,其使用方式如下:
chmod [ -fR ] mode filename ...
其参数的意义如下:
-f Force. chmod 不会理会失败的动作。
-R Recurive. 会将所有子树下的所有子目录及档案改为你所要改成的模式。
mode 可以为一个三位或四位的八进位数字,来表示对某些对象的存取权。详情可参阅chmod(1)
的manual page 中有关Absolute Modes 的说明。或是用一个字串来表示,请参考chmod(1) 的
说明。
二. 关於Process 处理的指令:
1. ps
ps 是用来显示目前你的process 或系统processes 的状况。
以下列出比较常用的参数:
其选项说明如下:
-a 列出包括其他users 的process 状况。
-u 显示user - oriented 的process 状况。
-x 显示包括没有terminal 控制的process 状况。
-w 使用较宽的显示模式来显示process 状况。
我们可以经由ps 取得目前processes 的状况,如pid , running state 等。
2. kill
kill 指令的用途是送一个signal 给某一个process 。因为大部份送的都是
用来杀掉process 的SIGKILL 或SIGHUP ,因此称为kill 。kill 的用法
为:
kill [ -SIGNAL ] pid ...
kill -l
SIGNAL 为一个singal 的数字,从0 到31 ,其中9 是SIGKILL ,也就是一
般用来杀掉一些无法正常terminate 的讯号。其馀讯号的用途可参考sigvec(2)
27
中对signal 的说明。
你也可以用kill -l 来察看可代替signal 号码的数目字。kill 的详细情形
请参阅man kill。
三. 关於字串处理的指令:
1. echo
echo 是用来显示一字串在终端机上。□ echo -n 则是当显示完之後不会有跳行的动作。
2. grep/fgrep
grep 为一过滤器,它可自一个或多个档案中过滤出具有某个字串的行,或是
自标准输入过滤出具有某个字串的行。
fgrep 可将欲过滤的一群字串放在某一个档案中,然後使用fgrep 将包含有
属於这一群字串的行过滤出来。
grep 与fgrep 的用法如下:
grep [-nv] match_pattern file1 file2 ....
fgrep [-nv] -f pattern_file file1 file2 ....
-n 把所找到的行在行前加上行号列出
-v 把不包含match_pattern 的行列出
match_pattern 所要搜寻的字串
-f 以pattern_file 存放所要搜寻的字串
四. 网路上查询状况的指令:
1. man
man 是手册( manual ) 的意思。UNIX 提供线上辅助( on-line help )的功能,
man 就是用来让使用者在使用时查询指令、系统呼叫、标准程式库函式、各种表
格等的使用所用的。man 的用法如下:
man [-M path] [section] title ] .....
man [-M path] -k keyword ...
-M path man 所需要的manual database 的路径。
我们也可以用设定环境变数MANPATH 的方式来取代-M 选项。
title 这是所要查询的目的物。
section 为一个数字表示manual 的分类,通常1 代表可执行指令,
2 代表系统呼叫( system call ) ,3 代表标准函数,等等。
我们如要参考eqnchar(7) 的资料,则我们就输入man 7 eqnchar ,
便能取得我们所要的辅助讯息。
-k keyword
用来将含有这项keyword 的title 列出来。
man 在UNIX 上是一项非常重要的指令,我们在本讲义中所述之用法均仅只是一个大家比较
常用的用法以及简单的说明,真正详细的用法与说明还是要请你使用man 来得到。
2. who
who 指令是用来查询目前有那些人在线上。
3. w
w 指令是用来查询目前有那些人在线上,同时显示出那些人目前的工作。
4. ku
28
ku 可以用来搜寻整个网路上的user ,不像w 跟who 只是针对local host 的查询. 而且ku
提供让使用者建立搜寻特定使用者名单的功能。你可以建立一个档案information-file 以条列的
方式存放你的朋友的资料,再建立一个档案hosts-file 来指定搜寻的机器名称。ku 的指令格
式可由ku -h 得到。
五. 网路指令:
UNIX 提供网路的连接,使得你可以在各个不同的机器上做一些特殊的事情,如你可以在系上
的iris 图形工作站上做图形的处理,在系上的Sun 上读News ,甚至到学校的计中去找别系
的同学talk 。这些工作可以利用UNIX 的网路指令,在你的位子上连到各个不同的机器上工
作。如此一来,即使你在寝室,也能轻易的连至系上或计中来工作,不用像以前的人必须泡在
冷冰冰的机房面。
这些网路的指令如下所述:
1. rlogin 与rsh
rlogin 的意义是remote login , 也就是经由网路到另外一部机器login 。
rlogin 的格式是:
rlogin host [ -l username ]
选项-l username 是当你在远方的机器上的username 和local host 不同的时後,必须输入的选
项,否则rlogin 将会假设你在那边的username 与localhost 相同,然後在第一次login 时必
然会发生错误。
rsh 是在远方的机器上执行某些指令,而把结果传回local host 。rsh 的格式
如下:
rsh host [ -l username ] [ command ]
如同rlogin 的参数-l username , rsh 的-l username 也是指定remote host的username 。而
command 则是要在remote host 上执行的指令。如果没有指定command ,则rsh 会去执行
rlogin ,如同直接执行rlogin 。
不过rsh 在执行的时候并不会像一般的login 程序一样还会问你password , 而是如果你没有
设定trust table , 则remote host 将不会接受你的request 。
rsh 须要在每个可能会做为remote host 的机器上设定一个档案,称为.rhosts。这个档案每一行
分为两个部份,第一个是允许login 的hostname , 第二个部份则是允许login 的username 。
例如,在ccsun7.csie.nctu.edu.tw 上头你的username 为QiangGe , 而你的home 下面的.rhost
有以下的一行:
ccsun6.cc.nctu.edu.tw u8217529
则在ccsun6.cc.nctu.edu.tw 机器上的user u8217529 就可以用以下的方法来执行rsh 程式:
% rsh ccsun7.csie.nctu.edu.tw -l ysjuang cat mbox
将ysjuang 在ccsun7.csie.nctu.edu.tw 上的mbox 档案内容显示在local host
ccsun6.cc.nctu.edu.tw 上。
而如果.rhost 有这样的一行,则ccsun6.cc.nctu.edu.tw 上的user u8217529
将可以不用输入password 而直接经由rsh 或rlogin login 到
ccsun7.csie.nctu.edu.tw 来。
注意:
.rhost 是一个设定可以信任的人login 的表格,因此如果设定不当将会让不法之徒有可以乘机
29
侵入系统的机会。如果你阅读man 5 rhosts ,将会发现你可以在第一栏用+ 来取代任何
hostname ,第二栏用+ 来取代任何username 。
如一般user 喜欢偷懒利用" + username " 来代替列一长串hostname ,但是这样将会使得即使
有一台PC 上跑UNIX 的user 有与你相同的username , 也可以得到你的trust 而侵入你的
系统。这样容易造成系统安全上的危险。因此本系禁止使用这样子的方式写你的.rhost 档,如
果
发现将予以停机直到你找中心的工作人员将其改正为止。同理,如果你的第二个栏位为+ ,
如" hostname + " ,则你是允许在某一部机器上的"所有"user 可以不用经由输入password 来进
入你的帐号,是壹种更危险的行为。所以请自行小心。
2. telnet
telnet 是一个提供user 经由网路连到remote host。
telnet 的格式如下:
telnet [ hostname | ip-address ] [ port ]
hostname 为一个像ccsun1 或是ccsun1.cc.nctu.edu.tw 的name address,ip-address 则为一个由
四个小於255 的数字组成的ip address ,如ccsun1 的ip-address 为140.113.17.173 ,
ccsun1.cc.nctu.edu.tw 的ip-address 为140.113.4.11 。你可以利用telnet ccsun1 或telnet
140.113.17.173 来连到ccsun1。
port 为一些特殊的程式所提供给外界的沟通点,如资工系的MUD 其server 便提供一些port
让user 由这些port 进入MUD 程式。详情请参阅telnet(1)的说明。
3. ftp
ftp 的意义是File Transfer Program ,是一个很常应用在网路档案传输的
程式。ftp 的格式如下:
ftp [ hostname | ip-address ]
其中hostname | ip-address 的意义跟telnet 中的相同。
在进入ftp 之後,如果与remote host 连接上了,它将会询问你username 与密码,如果输入对
了就可以开始进行档案传输。
在ftp 中有许多的命令,详细的使用方式请参考ftp(1) ,这里仅列出较常用的cd , lcd , mkdir ,
put , mput , get , mget , binary , ascii , prompt , help 与quit 的使用方式。
ascii 将传输模式设为ascii 模式。通常用於传送文字档。
binary 将传输模式设为binary 模式,通常用於传送执行档,压缩档与影像档等。
cd remote-directory 将remote host 上的工作目录改变。
lcd [ directory ] 更改local host 的工作目录。
ls [ remote-directory ] [ local-file ] 列出remote host 上的档案。
get remote-file [ local-file ] 取得远方的档案。
mget remote-files 可使用通用字元一次取得多个档案。
put local-file [ remote-file] 将local host 的档案送到remote host。
mput local-files 可使用通用字元一次将多个档案放到remote host 上。
help [ command ] 线上辅助指令。
mkdir directory-name 在remote host 造一个目录。
prompt 更改交谈模式,若为on 则在mput 与mget 时每作一个档案之传输时均会询问。
quit/bye 离开ftp .
30
利用ftp ,我们便可以在不同的机器上将所需要的资料做转移,某些特别的机器更存放大量的
资料以供各地的使用者抓取, 本校较著名的ftp server 有NCTUCCCA 与系上的
ftp.csie.nctu.edu.tw 。这些ftp server 均有提供一个user 称为anonymous ,一般的"外来客"可
以利用这个username 取得该server 的公共资料。不过anonymous 在询问password 时是要求
使用anonymous 的使用者输入其email address,以往有许多台湾的使用者在使用国外的ftp
server 时并没有按照人家的要求输入其email address,而仅是随便打一些字串,引起许多
internet user 和管理者的不满,对台湾的使用者的风评变得很差,因此遵循各ftp server 的使用
规则也是一件相当重要的事。
六. 关於通讯用的指令:
1. write
这个指令是提供使用者传送讯息给另一个使用者,使用方式:
write username [tty]
2. talk/ytalk/cytalk/ctalk
UNIX 专用的交谈程式。会将萤幕分隔开为你的区域和交谈对象的区域,同时也可和不同机器
的使用者交谈。使用方式:
talk username[@host] [tty]
3. mesg
选择是否接受他人的messege , 若为messege no 则他人的messege 将无法传送给你,同时他
也无法干扰你的工作。使用方法:
mesg [-n|-y]
4. mail/elm
在网路上的email 程式,可经由此程式将信件mail 给他人。使用方式:
mail [username]
mail -f mailboxfile
如有信件,则直接键入mail 可以读取你的mail .
elm 提供较mail 更为方便的介面,而且可做线上的alias . 你可以进入elm
使用上下左右键来选读取的信件,并可按h 取得线上的help 文件。
使用方式:
elm [usernmae]
elm -f mailboxfile
七. 编译器( Compiler ):
Compiler 的用处在於将你所撰写的程式翻译成一个可执行档案。在资工系常用的程式语言是C
, pascal , FORTRAN 等。你可以先写好一个C 或Pascal 或FORTRAN 的原始程式档,再用
这些compiler 将其翻成可执行档。你可以用这个方法来制造你自己的特殊指令。
1. cc/gcc (C Compiler)
/usr/bin/cc
/usr/local/bin/gcc
语法: cc [ -o 这个字眼被禁止!file ] source
gcc [ -o 这个字眼被禁止!file ] source
这个字眼被禁止!file 是你所希望的执行档的名称,如果没有加上-o 选项编译出来的可执行档
会以a.out 做为档名。source 为一个以.c 做为结尾的C 程式档。请参阅cc(1) 的说明。
31
2. pc (Pascal Compiler)
/usr/local/bin/pc
语法: pc [ -o 这个字眼被禁止!file ] source
这个字眼被禁止!file 是你所希望的执行档的名称,如果没有加上-o 选项编译出来的可执行档
会以a.out 做为档名。source 为一个以.p 做为结尾的Pascal 程式档。请参阅
/net/home5/lang/man 中pc(1) 的说明。
3. f77 (Fortran Compiler)
/net/home5/lang/f77
语法: f77 [ -o 这个字眼被禁止!file ] source
这个字眼被禁止!file 是你所希望的执行档的名称,如果没有加上-o 选项编译出来的可执行档
会以a.out 做为档名。source 为一个以.p 做为结尾的FORTRAN 程式档。
八. 有关列印的指令:
以下为印表所会用到的指令,在本系的印表机有lp1 , lp2 ( 点矩阵印表机),
lw , sp , ps , compaq ( 雷射印表机),供使用者使用。
1. lpr
lpr 为用来将一个档案印至列表机的指令。
用法:
lpr -P[ printer ] file1 file2 file3 ....
或
lpr -P[ printer ] < file1
例子:
lpr -Plp1 hello.c hello.lst hello.map
lpr -Plp1 < hello.c
前者以参数输入所要印出的档案内容,後者列印标准输入档案(standard input)的内容,因已将
hello.c 转向到标准输入,故会印出hello.c 的档案内容。
2. lpq
lpq 是用来观察printer queue 上的Jobs 。
用法:
lpq -P[ printer ]
3. lprm
lprm 是用来取消列印要求的指令。通常我们有时会印错,或是误送非文字档资料至printer , 此
时就必须利用lprm 取消列印request ,以免造成资源的浪费。
用法:
lprm -P[ printer ] [ Jobs id | username ]
lprm 用来清除printer queue 中的Jobs , 如果你使用Job Id 作为参数,则它将此Job 自printer
queue 清除,如果你用username作为参数,则它将此queue中所有Owner 为此username 的
Jobs 清除。
九. 更改个人使用资料:
1. passwd
passwd 是用来更改你的使用密码,用法为:
passwd [ username ]
32
在使用passwd 的时候,它会先问你的旧密码,然後询问两次要更改的密码,确定无误後才将
你的密码改掉。
2. chsh
chsh 是提供使用者更换login shell 的指令,你可经由此更换自己使用的shell 。
五.Novell网络命令集
1,A这个字眼被禁止!SOLE
用来接收可传送远端文件服务器的屏幕和键盘数据的管理程序。
2,ALLOW
查看或修改目录或文件的继承权(Inheriter rights).
3,CASTOFF
作用是使接收消息的功能失效。目的是防止当前进行的工作被干扰可打断。
4,CASTON
恢复接收消息的能力。
5,CHKDIR
用来查看某个目录所占用的空间。
6,CHKVOL
用来查看卷的磁盘空间。
7,COLORPAL
用来改变各通用程序的颜色,建议使用缺省值。
Color Palette 0:改变菜单的底色,菜单中的字样光标及外框的颜色。
Color Palette 1:改变屏幕的背景颜色和主标题的颜色。
Color Palette 2:改变帮助窗口的颜色。
Color Palette 3:改变错误信息的颜色。
Color Palette 4:改变退出与警告的画面颜色。
8,DSPACE
与SYS这个字眼被禁止!的“volume/Disk Pestnetions ”的功能相同,如果是SUPERVISOR则可设
置其它用户的磁盘空间,如果是用户本身则只能查看自己的磁盘空间,另一功能是列出和改变
连接到其他的FILE SERVER。
9,F这个字眼被禁止!SOLE
可作为广播消息。
改变到其他的FILE SERVER。
连接到FILE SERVER的信息。
关闭FILE SERVER。
查看FILE SERVER的版本等。
10,FLAG
属性可以在网络中提供目录或文件的安全性更多一层人保障,它有下列功能:
1,防止文件被写入
2,防止文件被拷贝。
3,防止目录/文件被误删。
33
4,防止目录/文件内容被查看。
以上功能与d o s 的ATTRIB的功能相当,但其余的功能在网络上具有特殊的用途。
1,加上SHARABLE属性,则在同一时间内可让多位用户使用。
2,加上ARCHI VE NEEDED,经跟踪的文件能被自动自制。
11,FLAGDIR
用来查阅可改变目录/文件属性,也可用FILER设置文件属性。
12,GRANT
赋予用户成为某目录/文件的使用者。
13,LISTDIR
1,查看某目录下的子目录。
2,查看每一个子目录的继承权限屏蔽。
3,查看每一个子目录的有效权限。
4,查看每一个子目录的建立日期与时间。
5,查看子目录其所属的子目录。
14,NCOPY
除具备d o s的COPY功能外,还可以在网络中不同的FILE SERVER的卷与目录间相互拷贝,并保
留原先的文件属性。
15,NDIR
除具备d o s的DIR相同的功能外,还能查询文件属性,有效权限,继承权限,拥有者等信息。
16,NVER
它包含以下内容:Net BIOS,IPX,SPX,LAN driver,shell,d o s 版本,FILER SERVER版本。
17,PURGE与SALVAGE
PURGE是永久删除文件,而SALVAGE可恢复非永久删除文件。
18,REMOVE
用REMOVE可从文件或目录中的继承权列表中删除一个用户或一个组。即文件或目录的用户或
组将被删除。
19,RENDIR
更改目录的名称。
20,REVOKE
用它可删除用户可组中对文件或目录的受托者权限,即用户或组所使用的文件或目录将被删除。
21,SEND
用它可传送一个消息给所有已登录的用户,可列出用户列表,或连接号码列表。
22,SESSION
1,连接到其他的FILE SERVER。
2,磁盘映象。
3,查看网络上的组或传送一些消息给组。
4,暂时地建立,改变或删除搜索磁盘驱动器。
5,选择缺省。
6,列出用户信息并传送消息给用户。
23,SETPASS
可建立可修改一个可多个FILE SERVER的密码,也可使多重FILE SERVER 上的password同步
34
化。
24,SETTTS
使用它可保证事务跟踪系统的有效使用。
25,SLIST
它是用来查处在多重网络上的FILE SERVER列表及关于这此FILE SERVER的信息。
26,SMODE
它是用来指定一个程序在寻找一数据文件时如何使用搜索磁盘驱动器。
27,SYSTIME
它可用来查处在网络或多重网络上的FILE SERVER的日期及时间。
28,TLIST
它可用来查看某目录可文件的受托者权限列表。
29,USERDEF
系统管理员可用它来完成下列工作:
1,建立我重用户。
2,提供简单的登录原稿。
3,设置原始目录区。
4,设置最小的登录/密码安全性。
5,指定帐户及限制磁盘空间。
6,设置打印工作选项。
30,USERLIST
1,查看一已知的FILE SERVER当前用户列表。
2,查看每一个用户的连接号码。
3,查看登录时间。
4,查看网络地址和节点地址。
5,查看所连接的FILE SERVER的类型。
31,VERSION
它是用来查看FILE SERVER的版本及版权须知。
32,VILINFO
它可用来查看FILE SERVER上每个卷的信息。