linux 脚本竖线表示,常用SHELL脚本汇总

当一个文件中的文件数过多,在执行rm * 删除的时候会提示:

ksh: /user/bin/rm: 0403-027 The Parameter list is too long.

这个错误的根本原因是因为 /usr/include/limits.h 定义系统核心 LINE_BUFSZ 限制.

如果有大量文件数需要删除,

可以考虑用 xargs 的 -n 参数进行批量删除.参考如下示例:

find /backup/ -ctime 1 -print | xargs -n 10 rm -rf {} \;

find ./ -ctime 1 -exec rm -rf {} \;

-atime 1 (1天前被accessed)

-ctime 1 (1天前被changed)

6.每隔1秒显示AIX的剩余内存

#!/usr/bin/ksh

while [ 1 -eq 1 ]

do

x=`svmon -G | grep memory | awk '{print $4}'`

y=`expr $x \* 4 \/ 1024`

echo '剩余'$y'M'

echo `date +%T'

sleep 1

done

7.通过进程名来kill进程

这样的命令当然也是有的

#pkill 进程名

#killall 进程名

来完成这个kill的任务

8.Shell脚本实现统计进程的CPU占用率

#!/bin/sh

pid=`ps -e|egrep "\b$1$" | awk '{print $1}'`#获取进程id

echo $pid

cpu=`top -n 1 -p $pid|tail -2|head -1|awk '{ssd=NF-4} {print $ssd}'`

#获取进程cpu占用

#echo $cpu

declare -i cpuall=0

declare -i time=0

while [ 1 ]

do

cpu=`top -n 1 -p $pid|tail -2|head -1|awk '{ssd=NF-4} {print $ssd}'`

cpuall=cpuall+cpu

time=time+1

average=`echo "scale=3;$cpuall/$time" |bc -l`

#declare -i average=$cpuall/$time

echo $average

sleep 1

done

运行:

$./this.sh process

9.查看AIX操作系统版本

oslevel -s

10.获取之前某天时间脚本

linux平台上:mydate=`date  -1d +%Y%m%d`

unix平台上:mydate=`TZ=GMT+16;export   TZ;date   +%Y%m%d`

echo ${mydate}

11.aix上ftp获取文件脚本

getfile()

{

ftp -niv 127.0.0.1

cd $1

lcd $HOME/spool/$filedate

bin

prompt

mget $2

bye

!

}

12.设置输入模式

set -o vi 表示编辑命令行用 vi 模式,默认状态是 vi 的 编辑状态,可以输入、修改,用 ESC 退出编辑状态后,可以用 h,l 来前进后退, j,k 来翻看历史命令,^光标到行首,$光标至行尾,dd 删除该行...等等,和 vi 的用法是一样的。习惯用 vi 的人可以用 set -o vi 这种模式加快命令行编辑。

此外,还有 set -o emacs,表示编辑命令行用 emacs 模式,不分编辑状态和控制状态。 可以直接输入,也可以用 [CTRL]-a 至行首,[CTRL]-e 至行尾,[CTRL]-k 删除光标处到末尾...等等,这和 emacs 的编辑方式是一样的。这是默认模式,也是最常见和大多数人习惯的方式。

13.查看文件中以'|'分隔的第二列出现重复的值

awk -F"[/|]+" '{print $2}' tbl_map.dat | sort | uniq -c

14.统计文本中所有行数值相加

#!/usr/bin/ksh

count=0

num=0

for n in `cat /app/bcmsfile/tmp/1`

do

count=`expr $count + $n`

num=`expr $num + 1`

echo $num

done

x=`expr $count \/ $num`

echo '平均值=' $x

15.SHELL如何实现判断FTP GET到的文件与源端大小是否一致

putfile()

{

ftp -niv 127.0.0.1

user ftppub ftppub

cd ${LDIR}

lcd ${LDIR}

bin

mput *

ls -l

bye

!

}

for file in `ls ${LDIR}`

do

size_l=`ls -e ${LDIR}/$file | awk {'print $5'}`

size_f=`grep $file ftp.log | awk {'print $5'}`

if [ ${size_l} -eq ${size_f} ];then

echo "${file}: sizes ${size_l} ok"

else

echo "${file}: sizes ${size_l} ${size_f} not equal"

fi

done

16.修改文件访问时间

touch -a -m MMDDHHMM[YY] FILENAME

17.通过进程查找对应的程序

ps -ef 进程名

cd /proc/进程ID

$ ls -l /proc/18283

lrwxrwxrwx 1 qhkf qhkf 0 01-06 11:14 cwd -> /v8t/qhkf/risk_b/kssmdb

-r-------- 1 qhkf qhkf 0 01-06 11:14 environ

lrwxrwxrwx 1 qhkf qhkf 0 01-06 11:14 exe -> /v8t/qhkf/risk_b/kssmdb/A

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值