今天看到51CTO正在搞Linux Shell 脚本大赛,特地将自己的处女作发出来,希望能够得到分享。

这里说一下这个脚本的功能,这个脚本主要用来实现VSFTPD服务器的基础管理,主要用于方便运维管理。代码不是很美,还请各位多多指教。

这个代码主要基于本地用户管理、有需求基于LDAP认证管理的朋友,可以联系我,LDAP认证的功能上将更强大了些。

管理界面:

代码部份:

read -p "请选择您要做的操作:" caozuo  
case $caozuo in    
   0) read -p "请输入您要修改密码的用户名: " selectuser    
       while [ ! "$selectuser" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $selectuser` ]    
       do    
       read -p "对不起,您输入的用户名$selectuser不存在,请重新输入要查询的用户名,退出请按q键: " selectuser    
       if [ "$selectuser" ] && [ "$selectuser" == "q" ];then    
       exit    
       fi    
       done    
       passwd $selectuser    
       echo "记录: 管理员$adminroot于$timedate1修改用户$selectuser密码" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"    
       read -p "您已经成功修改用户$selectuser的密码,按回车键继续操作" var    
;;    
   1) read -p "请输入您要查询的用户名: " selectuser    
       while [ ! "$selectuser" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $selectuser` ]    
       do    
       echo "记录: 管理员$adminroot于$timedate1查询用户$selectuser" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"    
       read -p "对不起,查询的用户名$selectuser不存在,请重新输入要查询的用户名,退出请按q键: " selectuser    
       if [ "$selectuser" ] && [ "$selectuser" == "q" ];then    
       exit    
       fi    
       done    
       echo "记录: 管理员$adminroot于$timedate1查询用户$selectuser" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"    
       read -p "您查询的用户$selectuser为FTP用户,按回车键继续" var    
;;    
   2) read -p "请输入您需要添加的用户名: " adduser    
       while [ ! "$adduser" ] || ( [ "$adduser" ] && [ `more /etc/vsftpd/chroot_list | grep -w $adduser` ] )    
       do    
       read -p "对不起,您的操作有误,用户名不能为空,或您添加的用户已经存在,请重新输入要查询的用户名,退出请按q键: " adduser    
       if [ "$adduser" ] && [ "$adduser" == "q" ];then    
       exit    
       fi    
       done    
       useradd $adduser -d /opt/vsftp/$adduser -s /sbin/nologin    
       chmod -R 777 /opt/vsftp/$adduser    
       echo $adduser@123 | passwd --stdin $adduser    
       echo "$adduser" >> /etc/vsftpd/chroot_list    
       setquota -u $adduser  512000 614400 0 0 /opt    
       cp /etc/vsftpd/vconf/moban /etc/vsftpd/vconf/$adduser

echo "记录: 管理员$adminroot于$timedate1添加用户$adduser" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"  
       read -p "您添加用户$adduser成功,按回车键继续" var    
;;    
  3) read -p "请输入您需要删除的用户名: " deluser    
       while [ ! "$deluser" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $deluser` ]    
       do    
       read -p "对不起,您输入的用户名$deluser不存在,请重新输入要删除的用户名,退出请按q键: " deluser    
       if [ "$deluser" ] && [ "$deluser" == "q" ];then    
       exit    
       fi    
       done    
       userdel $deluser    
       rm -rf /opt/vsftp/$deluser/.gnome2    
       rm -rf /opt/vsftp/$deluser/.bashrc    
       rm -rf /opt/vsftp/$deluser/.bash_profile    
       rm -rf /opt/vsftp/$deluser/.bash_logout    
       rm -rf /etc/vsftpd/vconf/$deluser

umount /opt/vsftp/$deluser  
       mv /opt/vsftp/$deluser /opt/vsftp/bak$deluser    
       rm -rf /opt/vsftp/$deluser    
       sed -i "/$deluser/d" /etc/vsftpd/chroot_list    
       sed -i "/$deluser/d" /etc/vsftpd/mountuser.sh    
       echo "记录: 管理员$adminroot于$timedate1删除用户$deluser" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"    
       read -p "您已经成功删除用户$deluser,按回车键继续" var    
;;    
  4) more /etc/vsftpd/chroot_list    
       read -p "以上为所有FTP用户,按回车键继续" var    
;;    
  5) read -p "请输入您要查询限额的用户名: " selectquota    
       while [ ! "$selectquota" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $selectquota` ]    
       do    
       read -p "对不起,您输入的用户名$selectquota不存在,请重新输入要查询限额的用户名,退出请按q键: " selectquota    
       if [ "$selectquota" ] && [ $selectquota == q ];then    
       exit    
       fi    
       done    
       quota $selectquota | sed -n '3p' | echo "当前用户的软限制为: `awk '{print $3}'`KB"    
       quota $selectquota | sed -n '3p' | echo "当前用户的硬限制为: `awk '{print $4}'`KB"    
       echo "记录: 管理员$adminroot于$timedate1查询用户$selectquota磁盘限额信息" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"    
       read -p "当前用户的磁盘限额如上,按回车键继续" var    
;;    
  6) read -p "请输入您要修改限额的用户名: " revisequota    
       while [ ! "$revisequota" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $revisequota` ]    
       do    
       read -p "对不起,您输入的用户名$revisequota不存在,请重新输入要查询限额的用户名,退出请按q键: " revisequota    
       if [ "$revisequota" ] && [ $revisequota == q ];then    
       exit    
       fi    
       done    
       quota $revisequota | sed -n '3p' | echo "修改前用户的软限制为: `awk '{print $3}'`KB"    
       quota $revisequota | sed -n '3p' | echo "修改前用户的硬限制为: `awk '{print $4}'`KB"    
       read -p "请修改您要修改的用户软限制值,默认单位为KB: " quota1    
       while [ ! $quota1 ];    
       do    
       read -p "对不起,修改用户的软限制值不能为空,请重新输入软限制值,退出请按q键: " quota1    
       if [ $quota1 ];then    
       if [ $quota1 == q ];then    
       exit    
       fi    
       fi    
       done    
       read -p "请修改您要修改的用户硬限制值,默认单位为KB: " quota2    
       while [ ! $quota2 ] || [ $quota2 -lt $quota1 ];    
       do    
       read -p "对不起,修改用户的硬限制值不能为空,且硬限制的值不能小于软限制的值,请重新输入硬限制值,退出请按q键: " quota2    
       if [ "$quota2" ] && [ "$quota2" == "q" ];then    
       exit    
       fi    
       done    
       setquota -u $revisequota  $quota1 $quota2 0 0 /opt    
       echo "记录: 管理员$adminroot于$timedate1修改用户$revisequota软限制为: $quota1 硬限制为: $quota2" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"    
       quota $revisequota | sed -n '3p' | echo "修改后用户的软限制为: `awk '{print $3}'`KB"    
       quota $revisequota | sed -n '3p' | echo "修改后用户的硬限制为: `awk '{print $4}'`KB"    
       read -p "当前用户修改后磁盘限额如上,按回车键继续" var    
;;    
    7) read -p "请输入您要查询的用户名: " selectuser    
       while [ ! $selectuser ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $selectuser` ]    
       do    
       read -p "对不起,您查询的用户名$selectuser不存在,请重新输入,退出请按q键: " selectuser    
       if [ "$selectuser" ] && [ "$selectuser" == "q" ];then    
       exit    
       fi    
       done    
       read -p "请输入您要查询的日期(格式:2013-07-11 08:32:21): " datetime3    
       while [ ! $datetime3 ]    
       do    
       read -p "对不起您的输入有误,日期时间不能空,请重新输入: " datetime3    
       done    
       read -p "请输入您要查询的操作动作(DELETE、MKDIR、UPLOAD、RMDIR、DOWNLOAD、LOGIN): " opreate    
       while [ ! $opreate ]    
       do    
       read -p "对不起,操作动作不能为空,请重新输入: " opreate    
       done    
       while ( [ $opreate != 'MKDIR' ] && [ $opreate != 'UPLOAD' ] && [ $opreate != 'DELETE' ] && [ $opreate != 'LOGIN' ] && [ $opreate != 'RMDIR' ] && [ $o    
preate != 'DOWNLOAD' ] )    
       do    
       read -p "对不起您输入的操作动作有误,请重新输入: " opreate    
       done    
       echo " 操作日期|操作时间|操作人|是否成功|操作动作|IP地址|操作内容" > /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       more /var/log/messages | grep $selectuser] | grep $opreate | grep $datetime3 | awk '{print $1"|"$2"|"$5"|"$6"|"$7"|"$9"|"$10 }' >> /opt/vsftp/ftplog/    
"$timedate1""$selectuser""$opreate".xls    
       sed -i 's/://3' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       sed -i 's/"//g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       sed -i 's/\[//' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       sed -i 's/]//' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       sed -i 's/,//g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       sed -i 's/UPLOAD/上传资料/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       sed -i 's/DELETE/删除文件/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       sed -i 's/LOGIN/用户登录/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       sed -i 's/RMDIR/删除目录/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       sed -i 's/MKDIR/新建目录/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       sed -i 's/DOWNLOAD/下载资料/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       sed -i 's/OK/成功/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       sed -i 's/FAIL/失败/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       echo "记录: 管理员$adminroot于$timedate1查询用户$selectuser的操作动作$opreate日志" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"    
       read -p "直接查看请按a键,下载到Win查看请按b键: " abjian    
       if [ "$abjian" == "a" ];then    
       more /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls    
       read -p "以上为指定用户的操作日志,按回车键继续操作" var    
       elif [ "$abjian" == "b" ];then    
       cd /opt/vsftp/ftplog    
       sz "$timedate1""$selectuser""$opreate".xls    
       read -p "指定用户的操作日志已经成功导出到Win,按回车键继续操作" var    
       fi    
;;    
   8) read -p "请输入您要查询的日期(格式:2012-09-12): " riqi    
       while [ ! $riqi ]    
       do    
       read -p "对不起日期不能为空,请重新输入(格式:2012-09-12): " riqi    
       done    
       while [ `echo $riqi | grep -q '^[1-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$' && echo ! aa || echo aa` ]    
       do    
       read -p "您输入的日期格式错误,请重新输入(格式:2012-09-12): " riqi    
       done    
       read -p "请输入您要查询的时间,(格式:23:12): " shijian    
       if [ ! $shijian ];then    
       echo " 操作日期|操作时间|操作人|是否成功|操作动作|IP地址|操作内容" > /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
      more /var/log/messages | grep $riqi | grep vsftpd | awk '{print $1"|"$2"|"$5"|"$6"|"$7"|"$9"|"$10 }' >> /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       sed -i 's/://3' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       sed -i 's/"//g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       sed -i 's/\[//' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       sed -i 's/]//' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       sed -i 's/,//g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       sed -i 's/UPLOAD/上传资料/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       sed -i 's/DELETE/删除文件/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       sed -i 's/LOGIN/用户登录/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       sed -i 's/RMDIR/删除目录/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       sed -i 's/MKDIR/新建目录/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       sed -i 's/DOWNLOAD/下载资料/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       sed -i 's/OK/成功/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       sed -i 's/FAIL/失败/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       echo "记录: 管理员$adminroot于$timedate1查询日期为:$riqi的所有用户操作记录" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"    
       read -p "直接查看请按a键,下载到Win查看请按b键: " abjian    
       if [ "$abjian" == "a" ];then    
       more /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls    
       read -p "以上为指定用户的操作日志,按回车键继续操作" var    
       elif [ "$abjian" == "b" ];then    
       cd /opt/vsftp/ftplog    
       sz "$timedate1"查询"$riqi".xls    
       read -p "指定用户的操作日志已经成功导出到Win,按回车键继续操作" var    
       fi    
       else    
       while [ `echo $shijian | grep -q '^[0-9][0-9]:[0-9][0-9]$' && echo ! aa || echo aa` ]    
       do    
       read -p "您输入的时间格式不正确,请重新输入(格式:23:12): " shijian    
       done    
       shi=`echo ${shijian:0:2}`    
       jian=`echo ${shijian:${#shijian}-2:${#shijian}}`    
       echo "操作日期|操作时间|操作人|是否成功|操作动作|IP地址|操作内容" > /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"    
       more /var/log/messages | grep $riqi | grep $shijian | grep vsftpd | awk '{print $1"|"$2"|"$5"|"$6"|"$7"|"$9"|" $10 }' >> /opt/vsftp/ftplog/"$timedate    
1"查询"$riqi"-"$shi"."$jian"    
       sed -i 's/://3' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"    
       sed -i 's/"//g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"    
       sed -i 's/\[//' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"    
       sed -i 's/]//' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"    
       sed -i 's/,//g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"    
       sed -i 's/UPLOAD/上传资料/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"    
       sed -i 's/DELETE/删除文件/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"    
       sed -i 's/LOGIN/用户登录/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"    
       sed -i 's/RMDIR/删除目录/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"    
       sed -i 's/MKDIR/新建目录/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"    
       sed -i 's/DOWNLOAD/下载资料/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"    
       sed -i 's/OK/成功/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"    
       sed -i 's/FAIL/失败/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"    
       echo "记录: 管理员$adminroot于$timedate1查询日期为:$riqi时间为:$shijian的所有用户操作记录" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"    
       read -p "直接查看请按a键,下载到Win查看请按b键: " abjian    
       if [ "$abjian" == "a" ];then    
       more /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian".xls    
       read -p "以上为指定用户的操作日志,按回车键继续操作" var    
       elif [ "$abjian" == "b" ];then    
       cd /opt/vsftp/ftplog    
       sz "$timedate1"查询"$riqi"-"$shi"."$jian".xls    
       read -p "指定用户的操作日志已经成功导出到Win,按回车键继续操作" var    
       fi    
       fi    
;;    
    9) read -p "请输入您要查询的用户名: " selectuser    
       while [ ! $selectuser ]    
       do    
       read -p "对不起,查询的用户名不能为空,请重新输入要查询的用户名: " selectuser    
       done    
       while [ ! `more /etc/vsftpd/chroot_list | grep -o $selectuser` ]    
       do    
       read -p "对不起,您查询的用户名不存在,请重新输入要查询的用户名: " selectuser    
       done    
       echo "操作日期|操作时间|操作人|是否成功|操作动作|IP地址|操作内容" > /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       more /var/log/messages | grep $selectuser | grep vsftpd | awk '{print $1 "|" $2 "|" $5 "|" $6 "|"$7 "|" $9 "|" $10 }' >> /opt/vsftp/ftplog/"$timedate    
1"查询"$selectuser".xls    
       sed -i 's/://3' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       sed -i 's/"//g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       sed -i 's/\[//' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       sed -i 's/]//' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       sed -i 's/,//g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       sed -i 's/UPLOAD/上传资料/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       sed -i 's/DELETE/删除文件/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       sed -i 's/LOGIN/用户登录/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       sed -i 's/RMDIR/删除目录/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       sed -i 's/MKDIR/新建目录/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       sed -i 's/DOWNLOAD/下载资料/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       sed -i 's/OK/成功/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       sed -i 's/FAIL/失败/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       echo "记录: 管理员$adminroot于$timedate1查询日期为:$selectuser的所有用户操作记录" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"    
       read -p "直接查看请按a键,下载到Win查看请按b键: " abjian    
       if [ "$abjian" == "a" ];then    
       more /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls    
       read -p "以上为指定用户的操作日志,按回车键继续操作" var    
       elif [ "$abjian" == "b" ];then    
       cd /opt/vsftp/ftplog    
       sz "$timedate1"查询"$selectuser".xls    
       read -p "指定用户的操作日志已经成功导出到Win,按回车键继续操作" var    
       fi    
;;    
   10) ls /opt/vsftp/ftplog/ | more    
       echo "记录: 管理员$adminroot于$timedate1查看了所有导出的用户操作日志文件名" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"    
       read -p "以上为所有已导出用户操作日志文件名,按回车键继续" var    
;;

说明:

由于代码篇幅太大,这里贴出前10项功能代码,希望能够给有需求的朋友能起到一个抛砖引玉的作用。

FTP服务器管理【Linux运维之道之脚本案例】相关推荐

  1. Linux运维之道-基础命令

    基础命令 参照 linux运维之道(丁明一) 文章目录 基础命令 一.目录以及文件的基本操作 1. pwd 2.cd 3.ls 4.touch 5.mkdir 6.cp 7.rm 8.mv 9.fin ...

  2. linux nas目录老是掉,Linux运维:NAS存储故障案例

    原标题:Linux运维:NAS存储故障案例 1.故障现象描述 NAS 操作系统 内核为 Linux ,自带的存储有16块硬盘,总共分两组,每组都做了RAID5, Linux无法正常启动,在服务启动到c ...

  3. Linux 运维自动化之Cobbler实战案例

    大纲 一.前言 二.Cobbler 工作原理详解 三.Cobbler 常用命令汇总 四.Cobbler 各种目录说明 五.自定义Kickstart文件详解 六.Cobbler 实战案例安装CentOS ...

  4. 有道云笔记linux运维,有道云协作-互联网行业解决方案

    互联网开发团队,由奇思妙想的设计狮.无所不能的产品汪."精通码艺"的程序猿和精准高效的软件测试组成.在项目开发过程中,部门同事需要通力协作.高效配合,一切工作核心围绕产品需求展开. ...

  5. linux运维企业shell,shell脚本-企业日常巡检脚本

    运维开发网 https://www.qedev.com 2021-04-15 15:14 出处:51CTO作者:互联网老辛 #!/bin/bash function system(){ echo &q ...

  6. linux下数据库的基本管理,数据库的管理_linux 运维之道 基础篇的技术博客_51CTO博客...

    {**数据库**} 1.安装: yum install mariadb-server.x86_64 -y安装服务 systemctl start mariadb    开启服务 systemctl s ...

  7. linux运维之道基础命令,Linux运维之道(7)——Linux管理类命令

    @(Linux)[系统管理] 1. 目录管理类命令 1.1 cd命令 格式:cd [-L|[-P [-e]] [-@]] [dir] 被你忽略的小知识: 在这里科普一个小小的知识点,就是关于cd -为 ...

  8. Linux运维之道之ENGINEER1.1(配置邮件服务器,数据库管理基础,表数据管理)

    ENGINNEER1.1 基础邮件服务 快速部署postfix邮件服务器: --装包,配置,起服务 安装postfix  :默认已安装 配置postfix,修改配置文件 #ls /etc/postfi ...

  9. Linux运维之道之网络基础学习1.0

    网络基础1.0 计算机网络: 硬件方面:通过线缆将网络设备和计算机连接起来 软件方面:操作系统,应用软件,应用程序通过通信线路互连,实现资源共享,信息传递. 计算机网络的功能: 数据通信,资源共享,增 ...

最新文章

  1. 汇编语言(王爽 第三版) ret retf总结 以及检测点10.1
  2. Unity3D开发——LeRunning的人物角色信息的显示
  3. 程序员保值的五个关键点
  4. 九十分钟极速入门Linux——Linux Guide for Developments 学习笔记
  5. window.location.href不打开新窗口_嘿,这条微博值得一看:不登录如何访问页面
  6. 童年真的回来了么?《摩尔庄园》手游深度分析
  7. zabbix的rc控制脚本
  8. floquet端口必须沿z轴设置_Ansys Workbench 振动给料机偏心轴的模态分析
  9. git本地分支删除,代码没了!怎么恢复!亲测有效(吓死人了)
  10. 写一个Windows上的守护进程(7)捕获异常并生成dump
  11. SpringBoot集成gRPC微服务工程搭建实践
  12. 成功要素:富兰克林的13条必要美德! 与 狗熊掰棒子
  13. 贫困的苏州(转自新浪)
  14. 计算机某浏览器设置主页地址,如何查看电脑中的浏览器主页是被什么软件修改的...
  15. python如何让程序暂停_王者荣耀集祝福linkedin雄攻略
  16. 俄罗斯军事帝国的衰落
  17. 使用Calendar 计算两个日期相差天数,
  18. HCIP第十四天笔记
  19. 量化金融分析AQF(5):金融数据获取、清洗、整理和存储(Yahoo、Tushare)
  20. 稳定可靠的国产PCIe4.0固态,主机升级新选择,大华C970上手

热门文章

  1. 数组反向遍历ios_LeetCode106.从中序与后序遍历序列构造二叉树(Construct Binary Tree from Inor...)...
  2. Dijkstra的算法
  3. 【 MATLAB 】impz函数介绍(数字滤波器的脉冲响应)
  4. 【 English 】程序员必备单词
  5. 《基于PLL分频计数的LED灯闪烁实例》实验记录
  6. 《VMware vCAT权威指南:成功构建云环境的核心技术和方法》一3.6 vCloud计量
  7. 平安技术开放日质量保证技术专场第一期 [附部分 ppt]
  8. POJ 3734 Blocks
  9. webdriver中处理alert
  10. 经管资源库项目的总结笔记