三、shell高级
1.重定向
>覆盖
>>追加
管道符
netstat -ano | grep 22
2.其他符号
&就是将一个命令从前台转到后台执行
3.信息符号
1 表示正确输出的信息
2 表示错误输出的信息
2>&1表示所有输出的信息
root@ou-virtual-machine:~# cat a.txt 1>> zhengque.txt root@ou-virtual-machine:~# cat zhengque.txt
root@ou-virtual-machine:~# asdasfad 2>> errfile.txt root@ou-virtual-machine:~# cat errfile.txt
写一个shell文件里面有正确的shell语句和错误的
root@ou-virtual-machine:~# bash shell.exe 1>zhengque.txt 2>cuowu.txt root@ou-virtual-machine:~# cat zhengque.txt asdsad root@ou-virtual-machine:~# cat cuowu.txt shell.exe: line 3: asdlkalsf: command not found
/dev/zero #输出无数个0
/dev/null #垃圾桶文件
所有信息进入垃圾桶文件,所有进程后台运行
cat cuowu.txt >> /dev/null 2>&1 &
4.if语句
#!/bin/bash if [ $1 == 'nan' ] then echo "your sex is man" fi
5.else
#!/bin/bash if [ $1 == 'nan' ] then echo "your sex is man" else echo "error!" fi ~
6.case语句
#!/bin/bash case "$1" in "start") echo "server running start..." ;; "stop") echo "server stop..." ;; "restart") echo "server restarting..." ;; *) echo "*******************" ;; esac
7.for语句
遍历文件
#!/bin/bash for i in $(ls /root) do echo "${i}" done
遍历数组
#!/bin/bash arr=(1 2 3 11 421 1424124123 13213 1231 2312 412 11111) for i in ${arr[*]} do echo "${i}" done
8.while语句
#!/bin/bash arr=(1 2 3 11 421 1424124123 13213 1231 2312 412 11111) a=0 while [ ${a} -lt 11 ] do echo "${arr[${a}]}" a=$((${a} + 1)) done
9.break语句
#!/bin/bash arr=(1 2 3 11 421 1424124123 13213 1231 2312 412 11111) a=0 while [ ${a} -lt 11 ] do echo "${arr[${a}]}" read num if [ $num == 'a' ] then break fi a=$((${a} + 1)) done
break n 跳出第n个循环(由内向外)
#!/bin/bash for var1 in {1..5} do for var2 in {10..14} do if [ $var1 -eq 2 ] && [ $var2 -eq 10 ] then break 2 else echo "$var1 $var2" fi done done
还有两个简单的我就不演示了
10.函数
#!/bin/bash #define a function hanshu(){ echo "hello i am a func!" } #use function hanshu
简单传参
#!/bin/bash #define a function hanshu(){ n=$1 echo "hello i am a func! ${n}" } #use function hanshu aaa hanshu bbb hanshu ou
三、核心命令
1.grep命令
-c 匹配内容 文件名 #计算匹配内容在文件里面有多少次出现
root@ou-virtual-machine:~# grep -c aaaa a.txt root@ou-virtual-machine:~# cat a.txt
2.正则数组
{数组开头..数组结尾..步长}
echo {1..10..2} echo {001..100..2} echo {01..100..2}
3.一些常用的命令
alias
unalias
history查看命令输入记录
!行号
使用history里面对应的命令
!!上一次输入的命令
快捷键
结语
最近可能比较多的会更新linux和网络相关的博客,希望大家多支持我,多多关注、点赞。