shell脚本点滴

来源:互联网 发布:手机淘宝店铺收藏地址 编辑:程序博客网 时间:2024/06/03 14:31

1. 获取脚本当前路径:

FILE_DIR=`echo $(cd $(dirname $0); pwd)`

2. shell整数计算可用expr,非整数计算可用awk内置函数实现:

四舍五入: 

awk BEGIN'{printf("%d", 1.7+0.5)}'

保留小数:

awk BEGIN'{printf "%.2f\n", 2/3}'

3. (())

while read line
do
   ((lineNum++))
done < inputfile 

4.  在文件中查找关键字时,用grep -c XXX 比grep XXX | wc -l 的效率要高,

但是查找进程时,ps -ef | grep XXX | grep -v grep |wc -l 才是对的,因为要过滤掉grep进程

5.  grep -A4 '#!/bin/bash' dir.sh   #-A4 代表显示前四行

6. cut命令

linux-0xvi:/opt/Program # echo abcdefghi | cut -b2-5
bcde
linux-0xvi:/opt/Program # echo abcdefghi | cut -c2-5
bcde
linux-0xvi:/opt/Program # echo abc:def:hij:kmn | cut -d: -f2-3
def:hij 

7.linux捕获信号:

linux-0xvi:/opt/Program # cat signal.sh
#!/bin/bash
function handle
{      
 echo "received a signal"
}
trap 'handle' HUP INT QUIT TSTP
sleep 5

8.用stty和dd实现暂停

linux-0xvi:/opt/Program # cat press.sh
#!/bin/sh
function char
{      
 settty=$(stty -g)      
 stty raw       
 stty -echo      
 dd if=/dev/tty bs=1 count=1 2> /dev/null       
 stty echo      
 stty -raw      
 stty $settty
}
echo -n "press any key to continue..."
input=`char` 

9. perl -e 'print time'

10. 一条命令建立目录树: mkdir -p test/{inc,src,help/{html,pdf,doc}}

11. 命令行下:ctrl+a 跳到行首,ctrl+e 跳到行尾

12. rm命令前面的两个单引号,或者一个反斜线\是什么含义?
有的系统会默认对一些常用命令做别名处理,例如alias ll='ls -l', alias rm='rm -rf'等等。如果用户不想使用别名,同时也不希望改变系统的别名设置,就可以在命令前面加上两个单引号,或者一个反斜线,表示取消别名.    
$ alias rm='rm -rf'
$ ''rm foo.c
rm: remove write-protected regular file 'foo.c'? n
$ \rm foo.c
rm: remove write-protected regular file 'foo.c'? y

13. 如何处理一个以短横线-作为首字母命名的文件
有两种方式处理一个以短横线-作为首字母命名的文件,其一是在文件名之前加上两个短横线作为参数,其二是在文件名之前指定绝对路径或相对路径。
$ touch -- -foo.c    #创建以短横线开头的测试文件
$ rm ./-foo.c        #利用相对路径删除以短横线开头的测试文件

14. 如何添加指定用户的属组
usermod命令的-G选项是创建指定用户的属组列表,以前的属组列表会被删除。如果想要保留以前的属组列表,需要同时指定-aG选项。
$ sudo usermod -aG group_name user_name

15. () 使用子shell
比如 (cd ../../commlib/; make)

16. 脚本修改用户密码
useradd asgdbg -d /home/asgdbg
echo asgdbg:123456 |chpasswd
or
echo '123456'|passwd --stdin asgdbg

16. Makefile中创建目录:   $(shell [ ! -d obj ] && mkdir obj)

 

原创粉丝点击