<configuration>
</artifactItem>
<artifactItem>
</artifactItem>
<!-- </artifactItem> <groupId>some groupId</groupId> <
</configuration>
#!/bin/bash
grep -n 'artifactItem>' 2.txt |awk '{print $1}' |sed 's/://' > /tmp/line_number.txt
n=`wc -l /tmp/line_number.txt|awk '{print $1}'`
get_value(){
x=`sed -n "$i"p /tmp/value.txt|awk '{print $1}'`
}
n2=$[$n/2]
for j in `seq 1 $n2`
do
done
10.111.11.1,root,xyxyxy
10.111.11.1,root,xzxzxz
10.111.11.1,root,123456
10.111.11.1,root,xxxxxx
#!/usr/bin/expect
set passwd [lindex $argv 0]
set host [lindex $argv 1]
spawn ssh root@$host
expect {
"yes/no" { send "yes\r"; exp_continue}
"password:" { send "$passwd\r" }
}
expect "]*"
send "killall java\r"
expect "]*"
send "exit\r"
#!/bin/bash
n=`wc -l ip-pwd.ini`
for i in `seq 1 $n`
do
done
grep 'aaa$'
“*test*”
cd /home/imix
mkdir testing
cp -r testing /tmp/
rm -rf /home/imix/testing
‘{print $9}’ |grep ‘agent’
chown g+r,o+r check.sh
df -h > /tmp/disk.txt
date +%Y%m%d-%H:%M:%S
#!/bin/bash
f_judge (){
}
统计ip访问情况,要求分析nginx访问日志,找出访问页面数量在前十位的ip
cat access.log | awk '{print $1}' | uniq -c | sort -rn | head -10
使用tcpdump监听主机为192.168.1.1,tcp端口为80的数据,同时将输出结果保存输出到tcpdump.log
tcpdump 'host 192.168.1.1 and port 80' > tcpdump.log
如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.2.1
iptables -A PREROUTING -d 192.168.2.1 -p tcp -m tcp -dport 80 -j DNAT-to-destination 192.168.2.1:8080实时抓取并显示当前系统中tcp 80端口的网络数据信息,请写出完整操作命令
tcpdump -nn tcp port 80
查看http的并发请求数与其TCP连接状态
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
还有ulimit -n 查看linux系统打开最大的文件描述符,这里默认1024 不修改这里web服务器修改再大也没用,若要用就修改很几个办法,这里说其中一个: 修改/etc/security/limits.conf soft nofile 10240 hard nofile 10240 重启后生效用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}'| sort | uniq -c | sort -nr |head -20写一个脚本,实现判断192.168.1.0/24网络里,当前在线的IP有哪些,能ping通则认为在线
#!/bin/bash for ip in seq 1 255 do { ping -c 1 192.168.1.$ip > /dev/null 2>&1 if [ $? -eq 0 ]; then echo 192.168.1.$ip UP else echo 192.168.1.$ip DOWN fi }& done wait
已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张
现在要求只能保留最近 7 天的访问日志!请问如何解决? 请给出解决办法或配置或处理命令
创建文件脚本: #!/bin/bash for n in seq 14 do date -s "11/0$n/14" touch accesswww(date +%F).log done
解决方法:
pwd/application/logs
也可以使用-exec rm -f {} \;进行删除请执行命令取出 linux 中 eth0 的 IP 地址(请用 cut,有能力者也可分别用 awk,sed 命令答)
cut方法1: ifconfig eth0|sed -n '2p'|cut -d ":" -f2|cut -d " " -f1 192.168.20.130 awk方法2: ifconfig eth0|awk 'NR==2'|awk -F ":" '{print $2}'|awk '{print $1}' 192.168.20.130 awk多分隔符方法3: ifconfig eth0|awk 'NR==2'|awk -F "[: ]+" '{print $4}' 192.168.20.130 sed方法4: ifconfig eth0|sed -n '/inet addr/p'|sed -r 's#^.ddr:(.)Bc.*$#\1#g' 192.168.20.130
1) 如何向脚本传递参数 ?
./script argument
例子: 显示文件名称脚本
./show.sh file1.txt cat show.sh #!/bin/bash echo $1
(LCTT 译注:谢谢某匿名访客的提醒,原题有误,修改之。)
2) 如何在脚本中使用参数 ?
第一个参数 : $1,第二个参数 : $2
例子 : 脚本会复制文件(arg1) 到目标地址(arg2)
./copy.sh file1.txt /tmp/ cat copy.sh #!/bin/bash cp $1 $2
3) 如何计算传递进来的参数 ?
$#
4) 如何在脚本中获取脚本名称 ?
$0
5) 如何检查之前的命令是否运行成功 ?
$?
6) 如何获取文件的最后一行 ?
tail-1
7) 如何获取文件的第一行 ?
head-1
8) 如何获取一个文件每一行的第三个元素 ?
awk'{print $3}'
9) 假如文件中每行第一个元素是 FIND,如何获取第二个元素
awk'{ if ($1 == "FIND") print $2}'
10) 如何调试 bash 脚本
-xv
#!/bin/bash
例子:
11) 举例如何写一个函数 ?
function example { echo "Hello world!" }
12) 如何向连接两个字符串 ?
V1="Hello" V2="World" V3=${V1}${V2} echo $V3
输出
HelloWorld
13) 如何进行两个整数相加 ?
V1=1 V2=2 let V3=$V1+$V2 echo $V3
输出
3
据 @kashu 的意见,本题的更佳回答为:
两个整数相加,还有若干种方法实现:
A=5 B=6 echo $(($A+$B)) # 方法 2 echo $[$A+$B] # 方法 3 expr $A + $B # 方法 4 echo $A+$B | bc # 方法 5 awk 'BEGIN{print '"$A"'+'"$B"'}' # 方法 6
14) 如何检查文件系统中是否存在某个文件 ?
if [ -f /var/log/messages ] then echo "File exists" fi
15) 写出 shell 脚本中所有循环语法 ?
for 循环 :
foriin$(ls);do echo item:$i done
while 循环 :
#!/bin/bash COUNTER=0 while [ $COUNTER -lt 10 ]; do echo The counter is $COUNTER let COUNTER=COUNTER+1 done
until 循环 :
#!/bin/bash COUNTER=20 until [ $COUNTER -lt 10 ]; do echo COUNTER $COUNTER let COUNTER-=1 done
#!/bin/sh
#!/bin/bash
shell
。#!/bin/bash
/bin/bash
。对于 python 脚本,就是#!/usr/bin/python
。
17) 如何获取文本文件的第 10 行 ?
head -10 file|tail -1
18) bash 脚本文件的第一个符号是什么
#
19) 命令:[ -z "" ] && echo 0 || echo 1
0
“export”
shell
21) 如何在后台运行脚本 ?
“&”
。
据 @kashu 的意见,更好的答案是:
nohup command&
大部分时间我们可能是远程使用Linux,我碰到过由于网络断线使得在后台运行的command &
没了...
"chmod 500 script"
使脚本所有者拥有可执行权限。
">"
重定向输出流到文件或另一个流。
&
&&
&
&&
[ condition ]
“if”
当条件满足时需要运行多条命令的时候。
name=John && echo 'My name is $name'
variable
bash shell
#
echo ${new:-variable}
variable
'
"
'
"
log.txt
"exec >log.txt 2>&1"
echo
echo ${variable:x:y} x - 起始位置 y - 长度
例子:
variable="My name is Petras, and I am developer." echo ${variable:11:6} # 会显示 Petras
variable="User:123:321:/home/dir"
,如何只用echo
home_dir
echo ${variable#*:*:*:}
或
echo ${variable##*:}
“User”
echo ${variable%:*:*:*}
或
echo ${variable%%:*}
awk
awk -F: '$3<100' /etc/passwd
35) 写程序为用户计算主组数目并显示次数和组名
cat /etc/passwd|cut -d: -f4|sort|uniq -c|while read c g do { echo $c; grep :$g: /etc/group|cut -d: -f1;}|xargs -n 2 done
bash shell
":"
IFS=":"
37) 如何获取变量长度 ?
${#variable}
38) 如何打印变量的最后 5 个字符 ?
echo ${variable: -5}
${variable:-10}
${variable: -10}
${variable:-10}
${variable: -10}
echo
echo ${variable//pattern/replacement}
41) 哪个命令将命令替换为大写 ?
tr '[:lower:]' '[:upper:]'
42) 如何计算本地用户数目 ?
wc -l /etc/passwd|cut -d" " -f1 或者 cat /etc/passwd|wc -