零散命令

特殊变量

$0 当前脚本的文件名。

$n 传递给脚本或函数的参数。第一个参数是$1。

$? 上一个命令的退出状态或函数的返回值。成功为0,失败为1。

$*与$@的区别

相同点:都是引用所有参数

不同点:假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。

运算符

[[ $? -ne 0 ]] && echo "test"  //如果上一个命令退出状态不等于0,回显test。-ne,不等于

if [ -n "$a" ]; then  //字符串长度不为0。

fi

if [ -z "$os" ]; then  //字符串长度为0。

fi

[ -f /run/keepalived.pid ]  && return 0 || return 1  //文件是普通文件。

[ ! -s test.sh ]  || sh test.sh  //文件不为空。

if [ -e file ]; then  //文件/目录是否存在。

fi

cd `dirname $0`

echo `pwd`  //进入到当前脚本执行目录,显示当前目录路径。

ln -s test.sh testlink  //为文件创建软连接。

重定向

who > users  //将who命令的输出重定向到users文件。覆盖方式。

echo "append string" >> users  //追加输出

wc -l file  //统计文件行数

wc -l < file  //文件作为命令输入

wc -l >> users << EOF  //将EOF中的片段作为命令输入,并将输出追加到users文件

the first line

the second line

EOF  //顶格写,前后不能有任何字符

command > /dev/null 2>&1  //屏蔽输出结果,即将stdout重定向到null设备,再将stderr重定向到stdout。

0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

放在>后面的&,表示重定向的目标不是一个文件,而是一个文件描述符。

普通用户提权

ssh root@localhost

vi /etc/sudoers.d/sudoers.pass

添加xxx ALL=(ALL) NOPASSWD: /usr/bin/su

exit

sudo su

BASE64

echo -n test | base64

echo -n dGVzdA== | base64 --decode

原文地址:https://www.cnblogs.com/aaroncnblogs/p/8981310.html