Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103236389
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-03-28 13:14:49

  出处:Unix爱好者家园unix-cd.com   
1、$#,$?,$$,$!这几个特殊变量含义都知道,但是不知道具体怎么使用?! $#,定位参数个数 
例子: 
$ set a b c d 
$ print $* (显示定位参数) 
$ a b c d 
$ print $# (显示定位参数个数) 
$ 4 (参数个数为4) 

$?, 执行最后一个命令的退出值,0 为成功, 非零为失败 
例子: 
$ grep abc *.* (搜索串abc 在所有文件中) 
$print $? (显示命令执行状态) 
$1 (为1,表示搜索失败了) 


$$,当前shell的PID值 
例子: 
$ print $$ 
$ 4755 

$!,最后一个放在后台的作业的PID 
例子:把sleep命令放在后台执行 
$sleep 10& 
[1] 500 
$print $! 
500 

2、如何在shell中屏蔽delete这个键 
我想在程序运行时候,按delete键不起什么作用,只有通过程序中的退出才起作用,不知道该如何操作? 
答: 
trap "" 2 3 
可以屏蔽掉 delete 和 ctrl-\ 两个中断键 
或者在程序中加入 signal(SIG_IGN,2);signal(SIG_IGN,3);也可以。

3、unix文件和dos文件的相互转换
unix to dos
xtod -- change file format from UNIX to MS-DOS 

Syntax 
====== 
xtod [ filename ] > [ output.file ] 

dos to unix

dtox -- change file format from MS-DOS to UNIX 

Syntax 
====== 
dtox filename > output.file 

4、shell执行方法 
有三种: 
程序名直接执行:启动新的子shell执行; 
sh+程序名:启动新的子shell执行 
“.”+程序名:当前shell执行 
能告知其中区别嘛? 
答: 
1)、文件具有可执行权限,并在环境变量PATH定义的目录下。 
2)、sh shell_program arguments 
这种方式激活一个子shell并且指定这个子shell为执行这个程序的命令解释器。这个程序文件的属性不一定必须为可执行。这种方式的用途在:你正在在一种shell下工作,同时想要执行用其他shell命令语言写的shell程序十分有用。 
虽然shell程序没有调试器,命令: 
sh –x shell_program arguments 
会在执行每一行时,先在屏幕上打印出shell程序的每一行。这允许你看到shell如何进行文件名产生,变量替代,和命令替代。 
3)、一般是“./”+程序名,表示在当前目录下执行; 
"."+空格+程序名(一般只能用于shell脚本), 表示在当前shell环境直接执行后面的程序,不再fork子shell,这个程序文件的属性不一定必须为可执行。

5、exec命令可以用来替代当前shell;换句话说,并没有启动子shell。
使用这一命令时任何现有环境都将会被清除,并重新启动一个shell。它的一般形式为: 
exec command 
其中的command通常是一个shell脚本。 
我所能够想像得出的描述exec命令最贴切的说法就是:它践踏了你当前的shell。 当这个脚本结束时,相应的会话可能就结束了。exec命令的一个常见用法就是在用户的.profile最后执行时,用它来执行一些用于增强安全性的脚本。如果用户的输入无效, 该shell将被关闭,然后重新回到登录提示符。exec还常常被用来通过文件描述符打开文件。 
记住, exec在对文件描述符进行操作的时候(也只有在这时),它不会覆盖你当前的 
shell。 

6、在SCO下一个目录最大可以建立的文件数是多少? 
答: 
一个目录又是由一个个目录项组成,一个目录项是由16B组成,其中前两位是i节点号,后14位是文件名(大于14字节的文件名就暂且不讨论).可以看到64个目录项的长度为16B*64=1024B,刚好是一个盘块的空间.一个目录中除掉"."".."目录项,就是62个了!!!!!所以,62个目录项可以提高文件系统的效率!!! 

7、SCO OPENSERVER 安装8139网卡步骤 
1. 将8139.vol 拷贝成 /tmp/VOL.000.000 
插入软盘 
doscp a:/8139.vol /tmp/VOL.000.000 
2.安装驱动程序 
运行 custom 
-> Software 
-> Install New... 
-> <*> From (本机hostname) 
-> *Media Images 
-> Image Directory: /tmp 
开始安装 
安装完成后在custom 可以看到有 
RTL8139 PCI Fast Ethernet Adapter (8139网卡驱动程序) 
3.安装网卡 
运行netconfig 
-> Hardware 
-> Add new LAN adapter 
-> RTL8139 PCI Fast Ethernet Adapter 
-> SCO TCP/IP 
relink 重连内核,启动机器 

网卡配置完成,ping不通的可能原因 
1.查看网线是否好用 
2.执行 hw -r pci 
查找Ethernet controller 
记录DeviceNum: 
Function: 
Bus: 
的值 
执行netconfig 修改网卡的这三项参数值 
3. 执行 netconfig 
修改 Set speed and duplex mode:: 的值,(建议改为 auto) 
4. 查看网卡设置中Netmask是否正确 
5.下载新的网卡驱动程序 

Realtek官方网站驱动下载 



8、调大oracle的process数,SCO相应参数的调整 
SCO openserver 5.0.5 的 oracle7.3.4 
调大 oracle的 process 如果报以下错误 
ORA-07252: spcre: semget error, could not allocate semaphores. 
SCO System V/386 Error: 28: No space left on device 
Additional information: 2 

1. scoadmin -> Hardware/Kernel Manager 
-> Tune Parameters... 
7.User and group configuration 
MAXUP: maximum number of processes available to user. 

15.Semaphores 
SEMMAP: number of entries in the semaphore map. 
SEMMNI: number of semaphore identifiers. 
SEMMNU: number of semaphore undo structures. 

16. Shared data 
SHMMAX: maximum shared memory segment size (bytes). 
此处的数值为 2的n次方 

Relink Kernel 
2. /etc/conf/bin/idtune -f SEMMNS  
3. relink 
4. 重起机器,oracle启动成功 


9、关于/etc/inittab
任何对 /etc/inittab文件的 修改都是暂时的 ,每当系统重新连接内核,都会重新 
建立/etc/inittab文件 , 
首先/etc/inittab将被替换为 /etc/conf/cf.d/init.base(系统缺省的 inittab) 
然后再附加保存在 /etc/conf/init.d目录中的 有关设备驱动的 初始化文件的内容 

/etc/inittab文件内容的结构 ,共分为以冒号分隔的4个字段 
indetifier:run_level:action:process 
indetifier : 标识符,最多为4个字符 
run_level : 运行级,制定相应在哪个运行级执行 
action : 动作关键字 
主要有 once,respawn等 
once : 启动进程,但不等待进程结束便继续处理inittab中下一项 
该进程死亡,init也不再重新启动该进程 
respawn : 启动进程,但不等待进程结束便继续处理inittab中下一项 
该进程死亡,init重新启动该进程 
process : 所要执行的 SHELL 

系统启动阶段步骤 
1)有引导程序boot加载unix核心(/stand/unix) 
2) 启动成为init的初始化进程 
3) 由init 启动 /etc/inittab文件中所列的 有关进程 
启动期间涉及的文件目录主要有 /etc/default/boot,/etc/inittab 
/etc/rc#, etc/rc#.d 

10、unixware下系统不能正常启动,如何init s?????? 
Before you reinstall the OS you might try booting the UnixWare into single user. To do this, when you see the UnixWare splash screen press the space bar. If successful you will get a [boot] prompt where you will need to type: 

[boot] INITSTATE=s 
[boot] go 
阅读(380) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~