1、删除Linux远程用户连接会话
[root@tradx24 logs]# w10:45:28up15days,16:23,4users, load average:0.00,0.00,0.00USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot tty1- Sun21 4days.00s.00s -bashroot pts/192.168.1.209:11.00s.07s.00s wroot pts/2192.168.1.209:4530:53.07s.07s -bashroot pts/3192.168.1.810:2022:05.02s.00s vi operation.log[root@tradx24 logs]# skill-KILL -v pts/3pts/3root21217vi pts/3root24331bash
2、通过ssh远程执行命令
[root@tradx24 bin]# iip="192.168.1.10"[root@tradx24 bin]# ssh $iip w10:54:13up125days,20:17,1user, load average:0.00,0.00,0.00USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot tty1- 21Mar14 4days.09s.09s -bash
4、通过svn下载war包
#list第五行为下载地址list=(`cat ../tools/list | awk''| sed"1,1d"`)for((i=;i
5、解压war包到指定目录
ssh $ unzip $/webapps/$.war -d $/webapps/$
6、多Linux服务器建立信任关系
ssh-keygen -t rsacd~/.sshscp-r id_rsa.pub $ip:/root/.ssh/$ipssh $ip'touch ~/.ssh/authorized_keys && chmod 644 ~/.ssh/authorized_keys'ssh $ip"cat ~/.ssh/$ip >> ~/.ssh/authorized_keys"
7、删除某目录下空文件
find ../new/$serve/properties -type f -size-exec rm -f {} \;
8、删除某目录下小于10b的文件
#Delete the files smaller than 10Bforiin`ls -l ../new/$serve/properties/ | sed -e'1d'| awk'$5
9.引用其他shell脚本方法
## ====================================================#### auth:wonter #### date:2014-06-12#### path:javame.cnblogs.com ####====================================================###!/bin/sh#引用tool.sh脚本中方法. ../tools/tool.sh#Parameterspar#Capture ip#Capture pathconfig
10、获取脚本自身名称
#Automatically obtain configuration filesname=`echo $`uname=`echo $name | awk -F"/"''| awk -F"."''`#Uniform configurationserve="$uname"
11、检查是否存在文件夹,没有则新建文件夹bak_mk="../bak/$serve"new_mk="../new/$serve"if[ ! -d $bak_mk ]; then
mkdir $bak_mkfiif[ ! -d $new_mk ]; thenmkdir $new_mkfi
判断文件是否为空
if [[ -s $file ]]; then
echo "not empty"
fi
12、统计脚本执行时间
st=`date +"%Y-%m-%d %H:%M:%S"`
#执行方法start en=`date +"%Y-%m-%d %H:%M:%S"` st_c=`date -d"$st"+%s` en_c=`date -d"$en"+%s` interval=`expr $en_c -$st_c`echo"Start start-up time :$"echo"Start end time :$"echo"total consuming time :$ 秒"
13、shell定义集合
#namelist1=(`cat ../tools/list | grep -v \# | awk''| sed"1,1d"`)#iplist2=(`cat ../tools/list | grep -v \# | awk''| sed"1,1d"`)#servelist3=(`cat ../tools/list | grep -v \# | awk''| sed"1,1d"`)for((i=;i
14、记录脚本执行者用户与IP
#Perform operationecho"operator:"read mea=`tty | awk -F"/dev/"''`date"+%Y-%m-%d %H:%M:%S">> ../logs/operation.logecho `w| grep $a | awk''`"$ > Perform operation: one">> ../logs/operation.log
15、shell中的正则语句
foriin`cat ../conf/$confs | grep start | awk -F">>"''| awk -F"_"''`doif[["$"=="shiro"]] then sed-n -e'/>>shiro/,/>>shiro/p'$confs |grep -v'>>shiro'>$pro_shi cat $pro_shi| col -b > ../temp/m1 cat ../temp/m1 >$pro_shielif [["$"=="jdbc"]] then sed-n -e'/>>jdbc/,/>>jdbc/p'$confs |grep -v'>>jdbc'>$pro_jdbc cat $pro_jdbc| col -b > ../temp/m1 cat ../temp/m1 >$pro_jdbc fi
done
19、终端发送回会话给其他用户 限root用户
echo "输入您想说的话吧:"
read spkecho $spk>/dev/stdin >/dev/pts/2
20、某目录下所有文件统一批量修改ip
sed -i"s/10.0.0.1/10.0.1.2/g"`grep"10.0.0.1"-rl /opt/uer/wy`
21、链接数与进程数
#链接数netstat-n | awk'/^tcp/ {++y[$NF]} END'#统计httpd协议连接数进程数ps-ef|grep httpd|wc -lps aux|grep httpd|wc -l#句柄数lsof-n|awk''|sort|uniq -c|sort -nr|more #查看进程占用内存ps aux|awk'($1 ~apache) && ($6>50)'
22、Linux查看线程的三种方法
1、top -H手册中说:-H : Threads toggle加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。2、ps xH手册中说:H Show threadsasifthey were processes这样可以查看所有存在的线程。3、ps -mp
手册中说:m Show threads after processes这样可以查看一个进程起的线程数。
23、查看连接某服务端口最多的的IP地址
netstat -nat | grep"192.168.1.20:8443"|awk''|awk -F:''|sort|uniq -c|sort -nr|head -20
24、常见压缩解压命名
.tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!).gz解压1:gunzip FileName.gz解压2:gzip-d FileName.gz压缩:gzip FileName.tar.gz 和 .tgz解压:tar zxvf FileName.tar.gz压缩:tar zcvf FileName.tar.gz DirName.bz2解压1:bzip2-d FileName.bz2解压2:bunzip2 FileName.bz2压缩: bzip2-z FileName.tar.bz2解压:tar jxvf FileName.tar.bz2压缩:tar jcvf FileName.tar.bz2 DirName.bz解压1:bzip2-d FileName.bz解压2:bunzip2 FileName.bz压缩:未知.tar.bz解压:tar jxvf FileName.tar.bz压缩:未知.Z解压:uncompress FileName.Z压缩:compress FileName.tar.Z解压:tar Zxvf FileName.tar.Z压缩:tar Zcvf FileName.tar.Z DirName.zip解压:unzip FileName.zip压缩:zip FileName.zip DirName.rar解压:rar x FileName.rar压缩:rar a FileName.rar DirName
3.打印指定行一下
4.sed用法
在第一行插入数据sed-i1"i\\$icare_ip"file只打印第三行sed-n'3p'datafile只查看文件的第100行到第200行sed-n'100,200p'file删除第二到第五行sed'2,5d'datafile删除包含"2014-10-19"的行到包含"2014-10-29"的行之间的行sed'/2014-10-19/,/2014-10-29/d'datafile删除包含"My"的行到第十行的内容sed'/My/,10d'datafile
sed选项-e用于进行多重编辑
sed -e '1,10d' -e 's/My/Your/g' datafile
5.交互式输入
| ssh192.168.48.73
6.shell中的集合
list1=(`cat ../tools/list | grep -v \# | awk''| sed"1,1d"`)for((i=;i
7.判断是否存在
if[ ! -d $bak_mk ]; thenmkdir $bak_mkfi
8.针对^M
dos2unix
9.获取最后登录系统的ip
last -n 5
10.AWK统计某个文件夹下的文件占用的字节数
ls -l |awk'BEGIN END'[end]sizeis8657198ls-l |awk'BEGIN END'[end]sizeis8.25889M
关于find搜索定位:
11.文件名 搜索文件
locate one.sh
12.查找后执行
find ./ -name 192.168.48.154 -execcat > 1 {} \;
13.删除空文件
find ./ -type f -size 0 -execrm -rf {} \;
14.查找大小为0的文件或空目录
find ./ -empty -type f / d
15.查大于512k的文件
find /home -size +512k
16.将多个文件打印到一个文件中
find ./ -name"[1-9].sh"-execcat > 3 {} \;
17.目录下过滤文件夹
find ./ ! -type f
18.批量修改
find ./ -name"[1-9].sh"-execsed -i s/0/9/g {} \;
19.-o 相当于且
find ./ -name"1.sh"-o -name"2.sh"
20.两天内改动
find /home -mtime -2
21.两分钟内改动
find /home -mmin -2
22.10分钟内访问的文件
find /home -amin -10
23.2小时内访问的文件
find /home -atime -2
24.将find出来的东西拷到另一个地方
find *.c -execcp'{}'/tmp';'
25.检查/root目录挂载在那个磁盘分区上
df -h /root
26.软连接、硬链接
ln -s /home /root/homeln-b /home/run.sh /root/run.sh
27.解压到指定目录
tar zxvf /filename.tar.zip -C /home
28.vi文书
gg第一行G最后一行d1G删除光标所在行到第一行dG删除光标所在行到最后一行yy复制光标所在一行A在光标所在最后字符处开始插入ZZ保存退出
29.^M 乱码
yum install dos2unix
30.修改linux登录后信息
vi /etc/motd
31.定时任务脚本
cmd="cd /root/polling/bin/ && /root/polling/bin/run.sh"echo-n"*">> /var/spool/cron/rootecho-n"6">> /var/spool/cron/rootecho-n"*">> /var/spool/cron/rootecho-n"*">> /var/spool/cron/rootecho-n"*">> /var/spool/cron/rootecho $cmd>> /var/spool/cron/root
32.组网信任
| ssh-keygen -t rsa -P''cp-r ~/.ssh/id_rsa.pub ~/.ssh/authorized_keyscd~/.sshscp-r id_rsa.pub $ip:/root/.ssh/$ipssh $ip'touch ~/.ssh/authorized_keys && chmod 644 ~/.ssh/authorized_keys'ssh $ip"cat ~/.ssh/$ip >> ~/.ssh/authorized_keys"
33.关于shell入参处理
$0 脚本名字 $1 位置参数#1$2 - $9 位置参数#2 - #9$ 位置参数#10$#位置参数的个数"$*"所有的位置参数(作为单个字符串) *"$@"所有的位置参数(每个都作为独立的字符串) ${#*} 传递到脚本中的命令行参数的个数${#@} 传递到脚本中的命令行参数的个数$? 返回值 $$ 脚本的进程ID(PID) $-传递到脚本中的标志(使用set) $_ 之前命令的最后一个参数 $! 运行在后台的最后一个作业的进程ID(PID)
34.使用cut切分
echo 1:2:3 | cut -d':'-f 2echo1:2:3 | awk -F':'{'print $2'}
35.egrep扩展
cat1.sh|grep-v5|grep-v8cat1.sh|egrep-v'5|8'ls|egrep'lsit1.sh|tools.sh'#可以同时查找多个egrep"go?d"tools.sh#?一个字符 * 多个字符
36.read命令带描述
read -p"uname:"name
37.test命令
#判断是否存在目录/文件test-e /home &&echook ||echono["a"=="ad"] &&echoyes ||echono#判断参数是否相等test $a-eq $b &&echoyes ||echonotest $a!= $b &&echoyes ||echono-eq 相等-ne 不相等test"d"="d"-o"a"="d"&&echoyes ||echono-o 并-a 且
38.进程树
ps-axjf
领取专属 10元无门槛券
私享最新 技术干货