标签:tco tail 追踪 chmod none timeout serve 等于 group
env | set | declare | export |
显示用户的环境变量 | 显示当前shell定义的变量,包括环境变量 | 显示shell中的所有变量 | 显示当前导出的shell为环境变量的变量 |
?
环境变量 | 含义 | 用于场景 |
LANG | 记录字符集信息(LANG=zh_CN.UTF-8) | centos6:/etc/sysconfnig/i18n centos7:/etc/locale.conf |
PS1 | 记录命令提示符 | ? |
PATH | 记录命令路径,执行命令的时候会调用此环境变量查看是否有相关的命令路径信息 | 执行命令 |
UUID | 记录用户的UUID信息 | 判断ID是不是root |
HOSTNAME | 主机名信息 | ? |
历史相关的 | ? | ? |
HISTSIZE | 命令记录的最多条数 | vim /etc/profile 46 HISTSIZE=1000 |
HISTFILESIZE | 文件记录的最多条数 | ~/.bash_profile |
HISTFILE | 指定历史记录的文件名字 | ~/.bash_profile |
TIMEOUT | 不进行操作,自动断开时间 | ? |
HISTCONTROL | 记录history命令是否记录以空格开头的命令 | [root@m01 ~] # vim ~/.bashrc HISTCONTROL=ignorespace |
PROMPT_COMMAND | 存放的脚本命令会在下一个命令运行前执行 | 用户行为审计项目 |
export PROMPT_COMMAND=‘echo `history 1 `########`date +%F_%T`###`who am i | cut -d" " -f1` >> /var/log/audit.log‘
[root@m01 ~] # ll /var/log/audit.log
-rw-r--r-- 1 root root 6676 Jan 6 15:37 /var/log/audit.log
[root@m01 ~] # chmod o+w /var/log/audit.log
[root@m01 ~] # chattr +a /var/log/audit.log
[root@m01 ~] # su - lyx
Last login: Mon Jan 6 15:36:57 CST 2020 on pts/0
?
位置信息 | 含义 | 例子 |
$0 | 表示当前的shell脚本名称 | [root@m01 test_init] # cat para_0.sh #!/bin/bash ? echo $0 [root@m01 test_init] # sh para_0.sh para_0.sh |
$n(1..n) | 表示脚本的第几个参数信息 | [root@m01 test_init] # cat para_0.sh #!/bin/bash ? echo $1 [root@m01 test_init] # sh para_0.sh oldboy oldboy [root@m01 test_init] # |
$# | 表示一共有几个参数 | [root@m01 test_init] # cat para_0.sh #!/bin/bash ? echo $1 $2 $3 echo $# [root@m01 test_init] # sh para_0.sh oldboy oldgilr oldbaby oldboy oldgilr oldbaby 3 [root@m01 test_init] # |
$* | 返回脚本所有的参数信息 | [root@m01 test_init] # cat para_0.sh #!/bin/bash ? echo $1 $2 $3 echo "################################" echo $* echo "#################################" echo $@ [root@m01 test_init] # sh para_0.sh oldboy oldgilr oldbaby oldboy oldgilr oldbaby ################################ oldboy oldgilr oldbaby ################################# oldboy oldgilr oldbaby [root@m01 test_init] # |
$@ | 返回脚本所有的参数信息 | [root@m01 test_init] # cat para_0.sh #!/bin/bash ? echo $1 $2 $3 echo "################################" echo $* echo "#################################" echo $@ [root@m01 test_init] # sh para_0.sh oldboy oldgilr oldbaby oldboy oldgilr oldbaby ################################ oldboy oldgilr oldbaby ################################# oldboy oldgilr oldbaby [root@m01 test_init] # |
?
[root@m01 test_init] # vim para_0.sh
#!/bin/bash
?
?
echo "nomarl"
for i in $*
do
echo $i
done
?
?
for m in $@
do
echo $m
done
?
echo "##################################"
?
echo "unnomarl"
for i in "$*"
do
echo $i
done
?
for m in "$@"
do
echo $m
done
状态 | 含义 | 例子 |
$? | 对上一个命令执行的返回值进行判断,0为成功,非0为不成功 | [root@m01 test_init] # cat aa cat: aa: No such file or directory [root@m01 test_init] # echo $? 1 [root@m01 test_init] # cat /etc/passwd | tail -1 lyx:x:1032:1035::/home/lyx:/bin/bash [root@m01 test_init] # echo $? 0 [root@m01 test_init] # |
$$ | 表示当前脚本的pid值 | [root@m01 test_init] # echo $$ 2859 [root@m01 test_init] # |
$! | 表示上一个脚本运行的pid值 | [root@m01 test_init] # echo $! ? [root@m01 test_init] # |
$_ | 返回上一个脚本或者命令最后参数的信息(相当于esc+.) | [root@m01 test_init] # cat /etc/hosts [root@m01 test_init] # echo $_ /etc/hosts [root@m01 test_init] # |
[root@m01 test_init] # vim para_0.sh
#!/bin/bash
?
?
touch /server/scripts/test_init/1.txt
echo aa | tee -a /server/scripts/test_init/1.txt
变量子串 | 含义 | 例子 |
${parameter} | 返回变量的内容 | [root@m01 ~] # aa=123456 [root@m01 ~] # echo $aa 123456 [root@m01 ~] # |
${#parameter} | 返回变量$parameter的长度 | [root@m01 ~] # aa=123456 [root@m01 ~] # echo ${#aa} 6 [root@m01 ~] # |
${parameter:offset:length} | 返回变量值parameter中,从offset这个位置开始截取,一共截取length的长度 | [root@m01 ~] # aa=123456 [root@m01 ~] # echo ${aa:2:3} 345 [root@m01 ~] # |
${parameter#word} | 以变量值parameter开头,删除最短匹配word的变量 | [root@m01 ~] # aa=word123word [root@m01 ~] # echo ${aa#*ord} 123word |
${parameter##word} | 以变量parameter开头,删除最长匹配word的变量 | [root@m01 ~] # [root@m01 ~] # aa=word123word [root@m01 ~] # echo ${aa#*ord} 123word [root@m01 ~] # echo ${aa##*ord} |
${parameter%word} | 以变量parameter结尾,删除最短匹配word的变量 | [root@m01 ~] # aa=123word123word [root@m01 ~] # echo ${aa%*ord} 123word123w [root@m01 ~] # |
${parameter%%word} | 以变量parameter结尾,删除最长匹配word的变量 | [root@m01 ~] # aa=123word123word [root@m01 ~] # echo ${aa%*ord} 123word123w [root@m01 ~] # echo ${aa%%*ord} |
${parameter/find comments/replace parameter} | 使用replace parameter来替换匹配到的第一个find comments | [root@m01 ~] # aa=123word123word [root@m01 ~] # echo ${aa/123/456} 456word123word [root@m01 ~] # |
${parameter//find comments/replace parameter} | 使用replace parameter来替换匹配到的所有find comments | [root@m01 ~] # [root@m01 ~] # aa=123word123word [root@m01 ~] # echo ${aa//123/456} 456word456word [root@m01 ~] # |
[root@m01 test_init] # vim para_0.sh
#!/bin/bash
?
str=`echo "I am oldboy linux,welcome to our training."| sed -r ‘s#[ ,.]# #g‘`
for i in $str
do
if [ ${#i} -ge 6 ]
then
echo $i
fi
done
[root@m01 test_init] # echo "I am oldboy linux,welcome to our training." | awk -F"[ ,.]+" ‘{for(i=1;i<=NF;i++) if(length($i)>6) print $i}‘
welcome
training
[root@m01 test_init] # echo "I am oldboy linux,welcome to our training." | awk -vRS="[ ,.]+" ‘length()>6‘
welcome
training
[root@m01 test_init] #
变量 | 含义 | 例子 |
${parameter:-word} | 如果变量是空值,假装将word赋值给parameter变量,但是返回值还是空的 | [root@m01 test_init] # echo ${aa} ? [root@m01 test_init] # echo ${aa:-word} word [root@m01 test_init] # echo ${aa} |
${parameter:-word} | 如果变量是空值,将word赋值给parameter变量,返回值为word | [root@m01 test_init] # echo ${aa:=word} word [root@m01 test_init] # echo ${aa} word [root@m01 test_init] # |
${parameter:?word} | ? ? 如果变量是空值,那么就把word值作为错误值输出出来 | [root@m01 test_init] # echo ${aa} ? [root@m01 test_init] # echo ${aa?word} -bash: aa: word [root@m01 test_init] # |
? ${parameter:+word} | ? ? ? 如果变量值是有的,则把值替换成word值,如果变量没有值,则不进行替换 | [root@m01 test_init] # aa=123 [root@m01 test_init] # echo ${aa} 123 [root@m01 test_init] # echo ${aa:+word} word [root@m01 test_init] # echo ${aa} 123 [root@m01 test_init] # |
?
标签:tco tail 追踪 chmod none timeout serve 等于 group
原文地址:https://www.cnblogs.com/liangyuxing/p/12160858.html