操作系统:solaris
1.solaris中不支持 -d这个参数,要如下写得到昨天日期: =`TZ=$TZ+16 date +%Y%m%d` 40为前天,64为三天前,以此类推; 中国的时区是 +8 的
45天后perl -e '@T=localtime(time+86400*45);printf(\
$T[5]+1900, $T[4]+1,$T[3])'
date '+%b' 显示Oct
date '+%a %b %d %H:%M:%S %Y'显示Thu Oct 27 10:33:35 2011
2.
1)数值测试: -eq:等于则为真 -ne:不等于则为真 -gt:大于则为真
-ge:大于等于则为真 -lt:小于则为真
-le:小于等于则为真 (2)字符串测试: =:等于则为真 !=:不相等则为真
-z 字符串:字符串长度伪则为真 -n 字符串:字符串长度不伪则为真 (3)文件测试:
-e 文件名:如果文件存在则为真
-r 文件名:如果文件存在且可读则为真 -w 文件名:如果文件存在且可写则为真 -x 文件名:如果文件存在且可执行则为真
-s 文件名:如果文件存在且至少有一个字符则为真 -d 文件名:如果文件存在且为目录则为真 -f 文件名:如果文件存在且为普通文件则为真
-c 文件名:如果文件存在且为字符型特殊文件则为真 -b 文件名:如果文件存在且为块特殊文件则为真
3.Crontab 按秒运行的方法
20秒执行一次test.sh程序,一定要写3个crontab,用sleep每20秒执行一次 * * * * * cd /home/aiobs6/crontab;./test.sh >> test.log
* * * * * sleep 20;cd /home/aiobs6/crontab;./test.sh >> test.log * * * * * sleep 40;cd /home/aiobs6/crontab;./test.sh >> test.log
4.FTP的参数解释 FTP
# ftp:启动FTP程序 ftp>
open:打开 close:关闭 bye:离开 get:下载 put:上传
mget/mput:多个文件下载/上传 reget:恢复下载
binary:二进制传送文件 ascii:ASCII码传送 cd:改变远程目录 lcd:改变本地目录 mkdir:建目录 rmdir:删除目录 delete:删除文件
mdelete:一次删除多个 rename:重命名 status:显示状态 prompt:交互式
hash:每传送1024字节显示#(hash) size:显示文件大小 reset:重置
.条件变量替换:
Bash Shell可以进行变量的条件替换,既只有某种条件发生时才进行替换,替换 条件放在{}中. (1) ${value:-word}
当变量未定义或者值为空时,返回值为word的内容,否则返回变量的值. (2) ${value:=word}
与前者类似,只是若变量未定义或者值为空时,在返回word的值的同时将 word赋值给value (3) ${value:?message}
若变量以赋值的话,正常替换.否则将消息message送到标准错误输出(若 此替换出现在Shell程序中,那么该程序将终止运行) (4) ${value:+word}
若变量以赋值的话,其值才用word替换,否则不进行任何替换
(5) ${value:offset}
${value:offset:length}
从变量中提取子串,这里offset和length可以是算术表达式. (6) ${#value}
变量的字符个数 (7) ${value#pattern} ${value##pattern}
去掉value中与pattern相匹配的部分,条件是value的开头与pattern相匹配 #与##的区别在于一个是最短匹配模式,一个是最长匹配模式. (8) ${value%pattern} ${value%%pattern}
于(7)类似,只是是从value的尾部于pattern相匹配,%与%%的区别与#与##一样 (9) ${value/pattern/string} ${value//pattern/string}
进行变量内容的替换,把与pattern匹配的部分替换为string的内容,/与//的区 别与上同
注意:上述条件变量替换中,除(2)外,其余均不影响变量本身的值
dev/null 2>&1 解释
crontab内容 :50 18 5-30 * * /script/myscript.sh 1> /dev/null 2>&1 其中 1> /dev/null 2>&1是什么意思?? dev/null 为系统垃圾箱 &为后台运行
但是 myscript 后面的1 和 /null后面的2 还有 &后面的1是什么意思? 1代表标准输出,2代表错误信息输出.
1>/dev/null 就是指将标准输出定向到空设备,
2>&1,的意思是将错误输出定向到和1一样的输出设备,也同样是空. 换句话说,就是不显示该程序执行过程中的任何信息
5、Solaris机器上显示15天前时间的方法 `perl -e '@T=localtime(time+86400*15);printf(\$T[5]+1900, $T[4]+1,$T[3])'`
6、ifconfig –a
7、solaris平台检测系统是64位还是32位,使用isainfo和getconf命令得到不同的结果分析
# isainfo -kv
64-bit sparcv9 kernel modules
# getconf LONG_BIT
32
首先说明下isainfo是solaris系统用来查看系统信息的命令,而getconf是用来查看系统环境配置命令,正常情况下它们的返回应该是一致的,即在64位系统上long整形是64位
getconf返回的是当前默认编译环境的下配置信息,如果getconf LONG_BIT返回的32那么说明当前默认编译环境是32位的应用,通过指定WIDTH_RESTRICTED_ENVS环境,64位环境下返回64,32位环境返回32
$getconf POSIX_V6_WIDTH_RESTRICTED_ENVS ;返回支持的环境 POSIX_V6_ILP32_OFF32 POSIX_V6_ILP32_OFFBIG POSIX_V6_LP64_OFF64 POSIX_V6_LPBIG_OFFBIG
$ getconf -v POSIX_V6_LP64_OFF64 LONG_BIT 64
$ getconf -v POSIX_V6_ILP32_OFF32 LONG_BIT 32
同时也可以查看下getconf是否为32位程序 $ file /usr/bin/getconf
/usr/bin/getconf: ELF-32 executable object file - IA64 明显getconf是一个32位的应用程序
或者看看gcc是否为32位 $file /usr/local/bin/gcc
/usr/local/bin/gcc: ELF-32 executable object file - IA64
所以getconf会受当前默认编译环境影响而返回不同的值,如果用getconf来判断系统是否为64位操作系统是不严谨
8、ps
字段概述:
F十六进制标志,它们加起来表示进程的当前状态。
如下所述:00 进程终止,而且它们在进程表中的空间已释放。01 系统进程,长驻内存02 进程被父进程跟踪04 进程被父进程跟踪而且已被停止08 该进程无
法被信号量唤醒10 该进程当前在内存中,而且被锁定直到一个事件完成20 进程不能被交换出
S 进程当前状态,由以下字母之一显示: O 当前正在处理器上运行 S 睡眠;等待I/O事件完成
R 运行结束I 空闲;进程被创建 Z 僵死。进程已终止 T由于父进程跟踪而停止 X 等待更多的内存
UID进程所有者的用户ID PID进程ID PPID父进程ID
C 进程的CPU使用情况(即进程占CPU时间的百分比) PRI 进程优先权方案。较大的数表示较低的优先权
NI 进程的nice值,该值与优先权方案相关联。使一个进程“nicer”意指降低该进程的优先权,以使它不会用尽CPU的时间
SZ进程请求的虚拟内存量。这是该系统对内存需求的一个好的指标。
TTY 启动进程(或者父进程)的终端。带问号的进程无控制终端(通常为系统进程)
TIME自进程启动以来占CPU时间总量 COMD产生进程的命令 # ps -f
UID PID PPID C STIME TTY TIME CMD
keven 360 358 0 19:19:19 pts/2 0:00 -csh keven 477 360 0 19:28:14 pts/2 0:00 ps -f
9、if [ $? -ne 0 ];then 是什么意思
如果上一条命令执行后的结束代码不是0则执行下面的命令 netstat -an中state含义 LISTEN
:侦听来自远方的TCP端口的连接请求 SYN-SENT
:再发送连接请求后等待匹配的连接请求 SYN-RECEIVED
:再收到和发送一个连接请求后等待对方对连接请求的确认
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库shell学习笔记在线全文阅读。
相关推荐: