你的位置:首页 > 脚本语言

Linux Shell 小脚本经典收藏-2

2016-04-23 浏览:(6637) 脚本语言 评论(0)

1.gzexe -d 解密

2.Address 192.168.3.202 maps to bogon, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!

解决方法:vim /etc/ssh/ssh_config 修改GSSAPIAuthentication 值为 no

3.打印指定行一下

sed -n -i '/PID/,+600000000 p' file

4.sed用法

在第一行插入数据
sed -i 1"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.交互式输入

{
echo "who"} | ssh 192.168.48.73

6.shell中的集合

list1=(`cat ../tools/list | grep -v \# | awk '{print $1}' | sed "1,1d"`)for((i=0;i<${#list1[@]};i++));dosh ./${list1[i]}.wy
done

7.判断是否存在

if [ ! -d $bak_mk ]; then
mkdir $bak_mk
fi

8.针对^M

dos2unix

9.获取最后登录系统的ip

last -n 5

10.AWK统计某个文件夹下的文件占用的字节数

ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size}'
[end]size is 8657198
ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size/1024/1024,"M"}' 
[end]size is 8.25889 M

关于find搜索定位:

11.文件名 搜索文件

locate one.sh

12.查找后执行

find ./ -name 192.168.48.154 -exec cat > 1 {} \;

13.删除空文件

find ./ -type f -size 0 -exec rm -rf {} \;

14.查找大小为0的文件或空目录

find ./ -empty -type f / d

15.查大于512k的文件

find /home -size +512k

16.将多个文件打印到一个文件中

find ./ -name "[1-9].sh" -exec cat > 3 {} \;

17.目录下过滤文件夹

find ./ ! -type f

18.批量修改

find ./ -name "[1-9].sh" -exec sed -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 -exec cp '{}' /tmp ';'

25.检查/root目录挂载在那个磁盘分区上

df -h /root

26.软连接、硬链接

ln -s /home /root/home
ln -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/root
echo -n "6 " >> /var/spool/cron/root
echo -n "* " >> /var/spool/cron/root
echo -n "* " >> /var/spool/cron/root
echo -n "* " >> /var/spool/cron/root
echo $cmd >> /var/spool/cron/root

32.组网信任

{
echo -e "\n"
} | ssh-keygen -t rsa -P ''
cp -r ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
cd ~/.ssh
scp -r id_rsa.pub $ip:/root/.ssh/$ip
ssh $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} 位置参数 #10 
$# 位置参数的个数 
"$*" 所有的位置参数(作为单个字符串) * 
"$@" 所有的位置参数(每个都作为独立的字符串) 
${#*} 传递到脚本中的命令行参数的个数 
${#@} 传递到脚本中的命令行参数的个数 
$? 返回值 
$$ 脚本的进程ID(PID) 
$- 传递到脚本中的标志(使用set) 
$_ 之前命令的最后一个参数 
$! 运行在后台的最后一个作业的进程ID(PID)

34.使用cut切分

echo 1:2:3 | cut -d ':' -f 2
echo 1:2:3 | awk -F ':' {'print $2'}

35.egrep扩展

cat 1.sh | grep -v 5 | grep -v 8
cat 1.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 && echo ok || echo no
[ "a" == "ad" ] && echo yes || echo no
#判断参数是否相等
test $a -eq $b && echo yes || echo no
test $a != $b && echo yes || echo no
-eq 相等
-ne 不相等
test "d" = "d" -o "a" = "d" && echo yes || echo no
-o 并
-a 且

38.进程树

ps -axjf

文章来源:https://www.cnblogs.com/Javame/p/3867686.html

  • 发表评论
  • 查看评论
【暂无评论!】

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。