问题
判断用户是否存在
id user
id $user
变量
判断vsftpd软件包被安装
rpm -q vsftpd
rpm -ql vsftpd >& null
[root@web ~]# rpm -ql vsftpd >/dev/null 2>&1
您在 /var/spool/mail/root 中有邮件
yum install vsftpd
内核主版本判断
uname -r
cut -d
[root@web ~]# uname -r
3.10.0-1160.el7.x86_64
您在 /var/spool/mail/root 中有邮件
[root@web ~]#
cut -d . f1
if
[root@web ~]# $[ uname -r ]
bash: 0: 未找到命令...
您在 /var/spool/mail/root 中有邮件
[root@web ~]#
sheel 中 [] () {} 区别
a=$( uname -r)
[root@web ~]# cat uname.sh
# discription:setence the numuber of the linux`s type
a=$( uname -r )
b=$( cut -d. 1 $a )
echo $a
echo $b
您在 /var/spool/mail/root 中有邮件
[root@web ~]# ./uname.sh
cut: 您必须指定一组字节、字符或域的列表
Try 'cut --help' for more information.
3.10.0-1160.el7.x86_64
[root@web ~]# cat uname.sh
# discription:setence the numuber of the linux`s type
a=$( uname -r )
b=$( echo $a||cut -d. f1 )
echo $a
echo $b
[root@web ~]# ./uname.sh
3.10.0-1160.el7.x86_64
3.10.0-1160.el7.x86_64
[root@web ~]# cat uname.sh
# description:setence the number of the linux`s type
a=$( uname -r )
b=$( echo "$a" |cut -d. -f1 )
c=$( echo "$a" | cut -d. -f2 )
if $b=2 && $c>=6;then
echo $a
else
fi
[root@web ~]# ./uname.sh
./uname.sh:行8: 未预期的符号 `fi' 附近有语法错误
./uname.sh:行8: `fi'
[root@web ~]#
记录
root@192.168.235.20's password:
┌────────────────────────────────────────────────────────────────────┐
│ • MobaXterm 20.0 • │
│ (SSH client, X-server and networking tools) │
│ │
│ ➤ SSH session to root@192.168.235.20 │
│ • SSH compression : ✘ │
│ • SSH-browser : ✔ │
│ • X11-forwarding : ✔ (remote display is forwarded through SSH) │
│ • DISPLAY : ✔ (automatically set on remote server) │
│ │
│ ➤ For more info, ctrl+click on help or visit our website │
└────────────────────────────────────────────────────────────────────┘
Last login: Mon Aug 4 19:19:08 2025 from 192.168.235.1
[root@web ~]# read -p "请输入用户名:" user
请输入用户名:xiacao
您在 /var/spool/mail/root 中有新邮件
[root@web ~]# id $user &> /dev/null
[root@web ~]# test $? -eq 0
您在 /var/spool/mail/root 中有邮件
[root@web ~]# $?
bash: 1: 未找到命令...
[root@web ~]# vim user.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat user.sh
read -p "请输入用户名:" user
id $user &> /dev/null
test $? -eq 0 && echo "该用户存在" || echo "不存在"
[root@web ~]# chmod +x user.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# ./user.sh
请输入用户名:caozx26
该用户存在
您在 /var/spool/mail/root 中有邮件
[root@web ~]#
[root@web ~]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
/etc/vsftpd/vsftpd_conf_migrate.sh
/usr/lib/systemd/system-generators/vsftpd-generator
/usr/lib/systemd/system/vsftpd.service
/usr/lib/systemd/system/vsftpd.target
/usr/lib/systemd/system/vsftpd@.service
/usr/sbin/vsftpd
/usr/share/doc/vsftpd-3.0.2
/usr/share/doc/vsftpd-3.0.2/AUDIT
/usr/share/doc/vsftpd-3.0.2/BENCHMARKS
/usr/share/doc/vsftpd-3.0.2/BUGS
/usr/share/doc/vsftpd-3.0.2/COPYING
/usr/share/doc/vsftpd-3.0.2/Changelog
/usr/share/doc/vsftpd-3.0.2/EXAMPLE
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/hosts.allow
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_HOSTS
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_HOSTS/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/logins.txt
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS_2
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS_2/README
/usr/share/doc/vsftpd-3.0.2/FAQ
/usr/share/doc/vsftpd-3.0.2/INSTALL
/usr/share/doc/vsftpd-3.0.2/LICENSE
/usr/share/doc/vsftpd-3.0.2/README
/usr/share/doc/vsftpd-3.0.2/README.security
/usr/share/doc/vsftpd-3.0.2/REWARD
/usr/share/doc/vsftpd-3.0.2/SECURITY
/usr/share/doc/vsftpd-3.0.2/SECURITY/DESIGN
/usr/share/doc/vsftpd-3.0.2/SECURITY/IMPLEMENTATION
/usr/share/doc/vsftpd-3.0.2/SECURITY/OVERVIEW
/usr/share/doc/vsftpd-3.0.2/SECURITY/TRUST
/usr/share/doc/vsftpd-3.0.2/SIZE
/usr/share/doc/vsftpd-3.0.2/SPEED
/usr/share/doc/vsftpd-3.0.2/TODO
/usr/share/doc/vsftpd-3.0.2/TUNING
/usr/share/doc/vsftpd-3.0.2/vsftpd.xinetd
/usr/share/man/man5/vsftpd.conf.5.gz
/usr/share/man/man8/vsftpd.8.gz
/var/ftp
/var/ftp/pub
您在 /var/spool/mail/root 中有邮件
[root@web ~]# rpm -ql vsftpd >& null
[root@web ~]# rpm -ql vsftpd &> null
您在 /var/spool/mail/root 中有邮件
[root@web ~]# rpm -ql vsftpd >/dev/null 2>&1
您在 /var/spool/mail/root 中有邮件
[root@web ~]# test $? -eq 0
您在 /var/spool/mail/root 中有邮件
[root@web ~]# vim vsftpd.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat vsftpd.sh
rpm -ql vsftpd >/dev/null 2>&1
if [$? -eq 0];then
"already installed "
else
"not be installed"
fi
[root@web ~]# chmod +x vsftpd.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# ./vsftpd.sh
./vsftpd.sh:行2: [0: 未找到命令
./vsftpd.sh:行5: not be installed: 未找到命令
[root@web ~]# vim vsftpd.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat vsftpd.sh
rpm -ql vsftpd >/dev/null 2>&1
if [$? -eq 0];then
echo "already installed "
else
echo "not be installed"
fi
[root@web ~]# ./vsftpd.sh
./vsftpd.sh:行2: [0: 未找到命令
not be installed
您在 /var/spool/mail/root 中有邮件
[root@web ~]# vim vsftpd.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat vsftpd.sh
rpm -ql vsftpd >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "already be installed"
else
echo "not be installed"
fi
[root@web ~]# ./vsftpd.sh
already be installed
您在 /var/spool/mail/root 中有邮件
[root@web ~]# vim vsftpd1.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat vsftpd1.sh
rpm -ql vsftpd >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "already be installed"
else
echo "not be installed,will install"
yum install vsftpd >/dev/null 2>&1
if [ $? -eq 0 ];then
echo " be successfullly installed"
else
echo "fail to installed"
fi
fi
[root@web ~]# chmod +x vsftpd.sh
[root@web ~]# chmod +x vsftpd1.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# ./vsftpd1.sh
already be installed
您在 /var/spool/mail/root 中有邮件
[root@web ~]# uname -r
3.10.0-1160.el7.x86_64
您在 /var/spool/mail/root 中有邮件
[root@web ~]# uname
Linux
您在 /var/spool/mail/root 中有邮件
[root@web ~]# $[ uname -r ]
bash: 0: 未找到命令...
您在 /var/spool/mail/root 中有邮件
[root@web ~]# a=$( uname -r )
您在 /var/spool/mail/root 中有邮件
[root@web ~]# b=$( cut a -d .1 )
cut: 分界符必须是单个字符
Try 'cut --help' for more information.
[root@web ~]# b=$( cut -d . 1 a)
cut: 您必须指定一组字节、字符或域的列表
Try 'cut --help' for more information.
您在 /var/spool/mail/root 中有邮件
[root@web ~]# b=$( cut -d. 1 a)
cut: 您必须指定一组字节、字符或域的列表
Try 'cut --help' for more information.
[root@web ~]# c=$( cut -d. 2 a)
cut: 您必须指定一组字节、字符或域的列表
Try 'cut --help' for more information.
您在 /var/spool/mail/root 中有邮件
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# discription:setence the numuber of the linux`s type
a=$( uname -r )
echo $a
[root@web ~]# chmod +x uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# ./uname.sh
3.10.0-1160.el7.x86_64
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# discription:setence the numuber of the linux`s type
a=$( uname -r )
b=$(cut -d . 1 $a)
echo $a
echo $b
[root@web ~]# ./uname.sh
cut: 您必须指定一组字节、字符或域的列表
Try 'cut --help' for more information.
3.10.0-1160.el7.x86_64
[root@web ~]# vim uname.sh
[root@web ~]# cat uname.sh
# discription:setence the numuber of the linux`s type
a=$( uname -r )
b=$( cut -d. 1 $a )
echo $a
echo $b
您在 /var/spool/mail/root 中有邮件
[root@web ~]# ./uname.sh
cut: 您必须指定一组字节、字符或域的列表
Try 'cut --help' for more information.
3.10.0-1160.el7.x86_64
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# discription:setence the numuber of the linux`s type
a=$( uname -r )
b=$( echo $a||cut -d. f1 )
echo $a
echo $b
[root@web ~]# ./uname.sh
3.10.0-1160.el7.x86_64
3.10.0-1160.el7.x86_64
[root@web ~]# vim /uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# description:setence the number of the linux`s type
a=$( uname -r )
b=$( echo "$a" |cut -d. -f1 )
echo $a
echo $b
[root@web ~]# ./uname.sh
3.10.0-1160.el7.x86_64
3
您在 /var/spool/mail/root 中有邮件
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# description:setence the number of the linux`s type
a=$( uname -r )
b=$( echo "$a" |cut -d. -f1 )
c=$( echo "$a" | cut -d. -f2 )
if $b=2,$c>=6
echo $a
else
fi
[root@web ~]# ./uname.sh
./uname.sh:行7: 未预期的符号 `else' 附近有语法错误
./uname.sh:行7: `else '
[root@web ~]# vim uname
您在 /var/spool/mail/root 中有邮件
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# description:setence the number of the linux`s type
a=$( uname -r )
b=$( echo "$a" |cut -d. -f1 )
c=$( echo "$a" | cut -d. -f2 )
if $b=2 && $c>=6;then
echo $a
else
fi
[root@web ~]# ./uname.sh
./uname.sh:行8: 未预期的符号 `fi' 附近有语法错误
./uname.sh:行8: `fi'
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# description:setence the number of the linux`s type
a=$( uname -r )
b=$( echo "$a" | cut -d. -f1 )
c=$( echo "$a" | cut -d. -f2 )
if [$b -eq 2] && [$c -ge 6];then
echo $a
else
echo "wrong"
fi
[root@web ~]# ./uname.sh
./uname.sh:行5: [3: 未找到命令
wrong
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# description:setence the number of the linux`s type
a=$( uname -r )
b=$( echo "$a" | cut -d. -f1 )
c=$( echo "$a" | cut -d. -f2 )
if [ $b -eq 2 ] && [ $c -ge 6 ];then
echo $a
else
echo "wrong"
fi
[root@web ~]# ./uname.sh
wrong
[root@web ~]#