-------------------------------------------------------------------------------------------
$0: 脚本中时,代表执行文件的名字,注意不包含参数
$0: 命令行时,代表当前shell的名字
$0: awk时,代表当前的一整行
--------------------------------------------------------------------------------------------
在Vim 中可以直接查看文件编码
:set fileencoding
:set fileencoding即可显示文件编码格式。
----------------------------------------------------------------
命令:chpasswd用来更改用户的密码,/usr/sbin/chpasswd
echo "ads1222:ads1222" | chpasswd
AIC2 /root# chpasswd p.txt
p.txt的内容必须为: 用户名:密码
-------------------------------------------------------------------------------------------
向文件写内容:
echo "LANGUAGE=CN" >> .profile
echo "export LANGUAGE" >> .profile
echo "JAVA_HOME=/usr/lib/java" >> .profile
echo "export JAVA_HOME" >> .profile
-------------------------------------------------------------------------------------------
expr:表达式
#!/bin/bash
var=abc
typeset testV=`expr length $var`
echo $testV
typeset len=`expr $testV - 1`
#另一种更好的方法
typeset len2=$((testV-1))
echo $len
-------------------------------------------------------------------------------------------
awk命令:
//搜索匹配项
awk '/a+/ {print $0}' awk.txt
//从1开始,左包括,取2个字符
echo 'abccdd' | awk '{print substr($0,3,2)}'
显示匹配的最后的字符串
awk '{ print $NF}' filename
echo "2.3.tar" | awk -F "." '{print $NF}'
//竖排变横排
awk '{ printf("%s,",$1) }' 文件名
//横排变竖排
awk -F= 和awk -F = 等价
//NR代表当前是第几行
cat /etc/passwd | awk 'FS=":" {print $1, NR}'
awk 条件 {动作}, 这里的条件可以是模式//
//这里的-v用于给一个变量赋值
echo a=b | awk -F= -v name=xuxu '{ if ($1 == name) print $2}'
-------------------------------------------------------------------------------------------
sed:
//变量进行替换,变量必须为''括起来
ftp1204@AIC2:~/.dd> echo xx.yy | sed 's/xx/$B/g'
$B.yy
ftp1204@AIC2:~/.dd> echo xx.yy | sed 's/xx/'$B'/g'
bb.yy
------------------------------------------------------------------------------------------
bash中只能函数才支持return
ksh则任意处都可以使用
-------------------------------------------------------------------------------------------