常用shell命令参数(高级)
原创
©著作权归作者所有:来自51CTO博客作者270175100的原创作品,请联系作者获取转载授权,否则将追究法律责任
date命令
date +%s
1252591191
date -d @1252591191 +%F
2009-09-10
date --date="2009-10-01 yesterday" +%F ==> 2009-09-30
date --date="2009-10-01 tomorrow“ +%F ==> 2009-10-02
date --date="2009-10-01 -20 days” +%F ==> 2009-09-11
!$ 显示系统最近的一条参数
这个比较有用,比如我先用cat /etc/sysconfig/network-scripts/ifconfig-eth0,然后我想用vim编辑。一般的做法是先用↑ 显示最后一条命令,然后用Home移动到命令最前,删除cat,然后再输入vim命令。其实完全可以用vim !$来代替
ping命令:
-n:只输出数值。
-c:设置完成要求回应的次数。
-W:timeout 指定超时间隔,单位为毫秒。
if ping -n -c 1 -W 4 10.10.10.10 &> /dev/null; then
SERVERURL="10.10.10.10"
grep命令:
可以进行2个文件的对比,比如找出文件2 和 文件1 不一样的地方
grep -Fvf 1 2
F=当成字符串来进行匹配
f=file
wget命令:
-q: --quiet 安静模式(没有输出)
-c: --continue 接着下载没下载完的文件(断点续传)
-nc: --no-clobber 不要覆盖存在的文件(有重复文件拒绝下载)
-t number --tries=number 默认为20次 t0代表无限次重试
-r: --recursive 递归下载
-o: --output-file=FILE 把log写到FILE文件中
-O --output-document=FILE 把文档写到FILE文件中
--spider 不下载任何东西
WGET="wget -q -nc -t0"
sed命令
插入内容到指定行数后面(插入“2009-9-8” 到 文件 test 的第三行后面)
sed '3a 2009-9-8' test
echo命令
例子:
-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\33[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
\33[30m -- \33[37m 设置前景色
\33[40m -- \33[47m 设置背景色
\33[2J 清屏
\33[K 清除从光标到行尾的内容
\33[s 保存光标位置
\33[u 恢复光标位置
\33[?25l 隐藏光标
\33[?25h 显示光标
让字体变为红色并且不停的闪烁
#echo -e "\033[31m \033[05m 请确认是否要停止当前的squid进程,输入 [Y/N] \033[0m"
例子:
echo -e "\E[1;31mERROR:\E[0m Please check network connection"; exit 1
输出效果:ERROR: Please check network connection
select命令
#!/bin/sh
echo
"请选择:"
xx=
"你好 大家好 退出"
select a
in $xx;
do
if [
"$a" =
"你好" ];then
echo 你好
elif [
"$a" =
"大家好" ];then
echo 大家好
elif [
"$a" =
"退出" ];then
exit
else
echo 错误的选项
fi
done