标签:学习笔记
1.ping -c1 -W2 2秒没有收到响应报则认为网络不通,默认5秒2.seq 2 3 10(echo {2..10..3}) 3为步进值
3.for num in "/root/bin/*.sh"; do echo the filename is $num; done 支持通配符
4.seq -s + 100 |bc -s 指定连接符号为+
5.if cmd1 &> /dev/null; then if后面判断接命令可以判断命令的执行结果
6.脚本中使用wait,可以直接退出 { if ping -c1 -W1 .... fi ; } & done wait wait 单独一行,补充
for i in {1..254}; do
{ if ping -c1 -W1 $net.$i &> /dev/null; then
echo $net.$i >> hostlist.txt
fi; } & & 表示把执行放到后台
done
wait wait 不加的话需要输入回车后才退出至命令提示符
7.let i++ 返回$? 为1 ,let ++i 返回$? 为 0 所以使用++i会更保险
8.n=10; for i in seq 1 $n
9.eval 可以先扫描后面是否有变量,若有可以替换成值,for i in `eval {1..$n}`; 没有eval变量会有问题
1.colror=$[RANDOM%7+31] 随机取颜色
11.openssl rand -base64 20 | tr -dc '[:alpha:]' |head -c 8
12.echo -e "\033[1;41m \033[0m\033[1;43m \033[0m" 打印背景颜色(象棋背景色)
13.while : ; do
echo task
sleep 420
done
while : 等价于 while true
14.kill(killall) -0 httpd 可以探测服务是否启动成功 -0:表示信号探测,结合sleep 来指定多少秒探测
15.while read line; do ... done </path/to/file
while read -p "Input a number:" num; do echo $num ;sleep 1; done
df | while read disk;do
if $disk |grep "^/dev/sd" > /dev/null; then
usage=`echo $disk |sed -r 's@.* ([[:digit:]]+)%@\1@'`
...
fi
done
16.help for 可以查看for循环的使用方法,其他的都可以使用help 来查看帮助
17.for ((sum=0,i=1;i<=100;i++)); do
let sum+=i
done
echo sum=$sum
18.允许选择的文本块
v 面向字符
V 面向行
ctrl-v 面向块
19.PS3="Please choose the menu(1-4):"
select menu in baoyu yanwo renshen jitang; do \
case $menu in
baoyu)
echo $menu price is 1000
break
;;
yanwo)
echo ...
break
;;
*)
esac
done
用户输入保存在$REPLY中
20.PS2 是多行重定向的提示符,PS1 是prompt 提示符, PS3是select 的提示符
PS3="Please choose a number:"
select num in `seq 3`; do
case $num in
1)
echo "Number 1"
;;
2)
echo "Number 2"
;;
3)
echo "Number 3"
;;
esac
done
21.kill -l 查看信号(trap -l)
22.trap 'echo press ctrl+c' int 可以使用2代替int信号
for ((i=0;i<10;i++)); do
echo $i
sleep 0.5
done
trap -p 打印自定义的-p
trap '' 2 忽略你的ctrl +c 操作
9信号不能被捕获自定义 ,如 trap '' 9,定义后依旧可以使用kill -9 杀掉进程无效
23.压缩文件是看后缀的,所以要先修改后缀才能解压缩,/boot/initramfs... 内核文件要先改后缀,file 查看类型
cpio -tv < file(cpio文件类型)
cpio -idv
initramfs 是放辅助性的驱动模块文件,模拟文件系统较模拟磁盘效率高 intrd(centos 5)
24./boot/grub/grub.conf 加载/boot文件系统的文件,要加载根文件系统使用initramfs,该文件正好在/boot下面
/文件系统需要驱动,而/驱动在 /lib下面
25.md5sum vmlinuz /boot/vmlinuz 比较hash值来判断内容是否相同
26.vmlinuz文件是从光盘文件拷贝过去的,initramfs文件是系统安装完之后生成的,使用mkinitrd来生成
#mkinitrd /boot/initramfs-`username -r`.img `uname -r`
chroot /mnt/sysimage 切换根目录
再次执行 # mkinitrd /boot/initramfs-`username -r`.img `uname -r` 不切换根的话找不到mkinitrd 命令
sync
sync 同步到磁盘,以防万一
实验 破坏/boot/initramfs文件的修复方法
实验 删除/boot/vmlinuz文件的修复方法
删除/boot所有的文件,不包括目录,修复
rm -f /boot/*
标签:学习笔记
原文地址:http://blog.51cto.com/9980200/2114359