笔记10

############脚本的写法#########
1.
vim /mnt/yiyi.sh
echo # hello world #            ## #
注释掉了后面的内容,所以看不到
echo \# hello world #           ## \
转义字符把#转义成为一个普通的字符
echo \# hello world \#
echo 'hello world'          ##
强引用
echo "* * * * * $HOME * * * * *"    ##
弱引用
* * * * /root * * * *
echo '* * * * * $HOME * * * * *'    ##
强引用
* * * * $HOME * * * *
弱引用会使$ `(反引号)等字符失效
而强引用不会
bash -x /mnt/yiyi.sh            ##
检测脚本
2.
变量
FNAME=$westos               ##
变量1
ONAME=$linux                ##
变量2
echo $FNAME             ##
输出1
echo $ONAME             ##
输出2
ehco ${FNAME}_$ONAME            ##
输出12 需要用{}把变量括起来,然后与其他变量分开

$(date +$(%H:%M:%S))            ##
先让括号里面的命令执行,执行完后将结果赋值

vim updown.sh               ##
测试电脑开关的脚本
for NUM in {1..30}
do
ping -c1
(只ping一次) -w1(等待1)172.25.254.$NUM &>/dev/null&& echo "172.25.254.$NUM is up" || echo "172.25.254.$NUMis down"
done


#######
建立用户#####

!/bin/bash
line=$(cat /mnt/username |wc -l)
for NUM in $( seq 1 $line)
do
USER=$(sed -n ${NUM}p /mnt/username)
PASS=$(sed -n ${NUM}p /mnt/passfile)
useradd $USER
echo $PASS | passwd --stdin $USER
done


#####
找名字找到后输出#########

#!/bin/bash
line=$(cat /mnt/user |wc -l)
for NUM  in $(seq 1 $line)
do
        name=$(sed -n ${NUM}p/mnt/user)

        [ "$name" ="yiyi" ] && echo $name girl || echo $name

done


#############
倒计时############

#!/bin/bash
for ((i=10;i>0;i--))
do
echo -n $i
sleep 1
echo -ne '\r    \r'
done

########90
秒倒计时######
#!/bin/bash
for ((i=90;i>0;i--))
do
        min=$(($i/60))
        sen=$(($i%60))
 if [ "$min" = "0"];then
                      echo -n After${sen} s to end
                      sleep 1          
                      echo -ne '\r  \r'
 else
                      echo -n After${min} m ${sen} s to end
                      sleep 1
                      echo -ne '\r  \r'

        fi
done

########
传参#########
sh ping.sh 172.25.254.14        ##
脚本后面跟参数
#!/bin/bash
ping -c1 -w1  &>/dev/null $1&& echo $1 is up || echo $1 is down
~  
#######
参数的用法#########

vim test.sh
#!/bin/bash
\$1 is $1
\$2 is $2
\$# is $#
\$* is $*
\$@ is $@

测试:sh test.sh test redhat linux westos 1
$1 is test
$2 is redhat
$# is 5
$* is test redhat linux westos 1
$@ is test redhat linux westos 1

####$?
的用法#####

ls -l
echo $?         ##
输出为0
ls hello
echo $?         ##
输出不为0
#######
有提示的传参######  如果脚本后面没有跟参数的话会有提示的

#!/bin/bash
[ -z "$1" ] && echo ERRON:you not give me ipadress&&exit 1 ##
判断参数为不为空
ping -c1 -w1  $1 &>/dev/null
if
        [ "$?" = "0"];
then
        echo $1 is up
else
        echo $1 is down
fi
       


###
判断10以内的数字#######

    #!/bin/bash

[ "$1" -le 10 -a "$1" -gt 0 ] && echo yes ||echono
~                                                                                                      

#####
判断匹配#######

#!/bin/bash
if [ "$1" = "westos" ]
then
echo linux
elif
[ "$1" = "linux" ]
then
echo westos
else
echo fuck
fi

作业  创建用户



#####################apache
服务#################
lamp                            ##linux+apache+mysql+php
yum install http -y                 ##
安装服务
firewall-cmd --permanent --add-service=http         ##
非加密
firewall-cmd --permanent --add-service=https        ##
加密
firewall-cmd --reload                   ##
加载
cd /var/www/html
vim index.html                      ##
默认发布文件名

####
默认端口的修改#####
vim /etc/httpd/conf/httpd.conf
 40 #
 41 #Listen 12.34.56.78:80
 42 Listen 8080                     ##
修改默认端口为8080


systemctl restart httpd
firewall-cmd --permanent --add-port=8080/tcp        ##
允许访问8080端口
firewall-cmd --reload                   ##
加载
测试: 在网页中输入172.25.254.1148080

########
默认发布文件的更改######
vim /var/www/html/westos
vim /etc/httpd/conf/httpd.conf
167 <IfModule dir_module>
168     DirectoryIndex index.html westos        ##
加入westos文件当没有index.html文件的时候去访问westos文件  如果把westos放在index.html前面的话首先访问westos文件
169 </IfModule>

测试:网页中输入172.25.254.114会打开westos文件中的东西

############
默认发布目录的改变#########
mkdir /www/html   -p                        ##
创建发布目录
vim /etc/httpd/conf/httpd.conf
21 DocumentRoot "/www/html"                 ##
修改发布目录
semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'    ##
修改安全上下文才能看到目录下面的文件 
restorecon -RvvF  /www/                     ##
重新加载安全上下文   
122 <Directory "/www">                      ##
给发布目录授权
123     Require all granted
124 </Directory>
vim /www/html/index.html
systemctl restart httpd                     ##
重启服务

测试:172.25.254.114        会看到/www/html下面发布文件中的内容


#######
虚拟主机(用一个ip发布多个站点)#######
虚拟主机允许您从一个httpd服务器同时为多个网站提供服务。在本节中,我们将了解基于名称的虚
拟主机其中多个主机名都指向同一个IP地址,但是Web服务器根据用于到达站点的主机名提供具有不
同内容的不同网站。

先在有浏览器的客户机里面修改/etc/hosts
172.25.254.114 www.westos.com news.westos.com music.westos.com

然后在有httpd服务的主机里面做以下操作
mkdir /var/www/news         ##news
的发布目录
mkdir /var/www/music            ##music
的发布目录
echo hello news > /var/www/news/westos  ##news
的发布文件
echo hello music > /var/www/music/westos ##music
的发布文件

cd /etc/httpd/conf.d/
vim default.conf
<Virtualhost _default_:80>
                Documentroot/var/www/html
                customlog"logs/default.log" combine    ##
四中报错日至全部放在这个文件中
</Virtualhost>

<Directory /var/www/html>
                require all granted
</Directory>
~   
systemctl restart httpd
测试: www.westos.com        
vim news.conf                   ##news
站点子配置文件
<Virtualhost *:80>
                servernamenews.westos.com  ##
访问news.westos.com的时候去找/var/www/news
                Documentroot/var/www/news
                customlog"logs/news.log" combine
</Virtualhost>

<Directory /var/www/news>
                require all granted
</Directory>

systemctl restart httpd
测试: news.westos.com
hello news


vim music.conf                  ##music
站点子配置文件
          <Virtualhost *:80>
                servernamemusic.westos.com ##
当访问music.westos.com的时候去找/var/www/music
                Documentroot/var/www/music
                customlog"logs/music.log" combine
</Virtualhost>

<Directory /var/www/music>          ##
授权访问
                require all granted
</Directory>
systemctl restart httpd
测试:music.westos.com

[root@apache httpd]# ls /etc/httpd/logs/        ##
日至存放目录
access_log  default.log  error_log music.log  news.log


#######
对访问的ip进行设置######
vim news.conf
Order allow,deny            ##
先执行前面的,然后执行后面的  后面的会把前面的覆盖掉
allow from all              ##
允许所有人访问
deny from 172.25.254.14         ##
不允许14号访问

#######
用户加密#########
htpasswd -cm apache admin
输入密码
htpasswd -m  apache tom
输入密码
#<Directory /var/www/news/admin>
#Authuserfile /etc/httpd/conf/apache    ##
加密文件位置
#Authname "input your name and passwd"
#Authtype basic             ##
最基本的加密类型
#Require user admin         ##
允许admin用户访问
#Require valid-user         ##
允许所有用户访问
#</Directory>


######apache
中的php manual cgi#######

##php##
vim /var/www/news/index.php
<?php
        phpinfo ();
?>
vim /etc/httpd/conf/httpd.conf
在里面默认发布文件中加入index.php
yum install php -y
systemctl restart httpd

测试:news.westos.com   就会看到php的首页

#########manual####
yum install httpd-manula -y
mkdir /var/www/news/manual
cd /var/www/news
vim /etc/httpd/conf.d/news.conf

<Directory /var/www/news/manual>
                require all granted
</Directory>

测试:news.westos.com/maual     ##可以看到maual的主页

#####cgi########
mkdir /var/www/news/cgi/           
vim /var/www/news/cgi/index.cgi
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`;
~
perl /var/www/news/cgi/index.cgi            ##
perl执行
vim news.conf
     <Directory/var/www/news/cgi>
        Options +ExecCGI
        AddHandler cgi-script .cgi
</Directory>
chmod +x /var/www/news/cgi/index.cgi            ##
给一个执行权限
perl /var/www/news/cgi/index.cgi    
然后我们测试的时候还是不能看到所以关闭selinux
setenforce 0
setenforce 1                    ##
在开启的情况下我们需要修改安全上下文
sysemctl restart httpd
ls -Z /var/www/cgi-bin -d
semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/news/cgi(/.*)
'  ##修改安全上下文
restorecon -RvvF /var/www/news/cgi                  ##
重新加载

测试:news.westos.com/cgi/index.html                    ##会看到文件里面的只执行效果

#############https#########
mkdir /var/www/login
vim /var/www/login/index.html
netstat -antple | grep httpd
yum install mod_ssl -y          ##
安装了就有443端口
systemctl restart httpd
yum install crypto-utils -y
hostname
apache.example.com
genkey apache.example.com
获取证书的过程
先看到证书和钥匙的位置
接着选择和是的钥匙大小
安装的时候需要在所在环境里面敲击
NO 
拒绝想CA发送请求
next 拒绝加密钥匙
最后一步 身份验证
vim /etc/httpd/conf.d/login.conf
<Virtualhost *:443>
        Servername login.westos.com
        Documentroot /var/www/login
        Customlog"logs/login.log" combined
        SSLEngine on
        SSLCertificateFile  /etc/pki/tls/certs/apache.example.com.crt       ##
证书位置
        SSLCertificateKeyFile/etc/pki/tls/private/apache.example.com.key   ##
密码位置
</Virtualhost>
<Directory "/var/www/login">                        ##
授权
        Require all granted
</Directory>
<Virtualhost *:80>                          ##
当找80端口的时候去找443端口   把所有80端口的请求全部重定向由https来处理 网页重写
        Servername login.westos.com
        RewriteEngine on
        RewriteRule ^(/.*)$https://%{HTTP_HOST}$1 [redirect=301]
</Virtualhost>
测试:login.westos.com          Web客户端可能会发出它不认可证书发行者的警告。这种情况适用自签名证书。要求Web客户端
绕过证书认证。(对于Firefox,请选择“I Understand the Risks” [我了解风险]“Add Exception” [
添加例外]“Confirm SecurityException”[确认安全例外])


#######mysql#########
yum install mariadb-server.x86_64 -y                ##
安装数据库
systemctl start mariadb                     ##
开启数据库
mysql                               ##
启动mysql 没有密码的时候可以直接启动
netstat -autlpe|grep mysqld                 ##
查看数据库端口一般数据库太重要所以要关闭他的接口
vim /etc/my.cnf
skip-networking=1                       ##
关闭端口
systemctl restart mariadb       ##
重启                     
mysql_secure_installation                   ##
对数据库进行加密
回车
输入密码
一路回车
加密后要想启动mysql的话  mysql -uroot -p   紧接着 输入密码就行

######
数据库的基本操作###########
how databases;                         
显示数据库
use mysql;                         
进入数据库
show tables;                           
显示数据库中的表
desc user;                         
查看user表的数据结构
flush privileges;                      
刷新数据库信息
select host.user,password from user;               
查询user表中的hostuserpassword字段


create database westos;                    
创建westos数据库
use westos;                        
create table linux(                    
创建表,usernamepassword字段
username varchar(15) not null,
password varchar(15) not null
);
select * from mysql.user;                  
查询mysql库下的user表中的所以
alter table linux add age varchar(4);              
添加age字段到linux表中
ALTER TABLE linux DROP age                 
删除age字段
ALTER TABLE linux ADD age VARCHAR(5)  AFTER name      
name字段后添加字段age
           

show tables;
desc linux;

insert into linux values ('user1','passwd1');              
linux表中插入值为username = user1password = password1
update linux set password=password('passwd2') where username='user1';  
更新linux表中user1 的密码为password2
delete from linux where username='user1';                  
删除linux表中user1的所以内容


#####
数据库的备份和恢复#########

mysqldump -uroot -pyiyibushe --all-database     ##
备份全部数据库
mysqldump -uroot -pyiyibushe --no-data --all-database   ##
不备份数据
mysql -uroot -pyiyibushe -e(
后面跟的是动作) "drop databasewestos;" ##直接可以删除数据库 不用在mysql环境下面做
mysqldump -uroot -pyiyibuseh westos > /mnt/westos.sql   ###
备份mysql库到/mnt/westos.sql
要想恢复必须得先有数据库
mysql -uroot -pyiyibushe -e "create database westos;"       ##
创建数据库
mysql -uroot -pyiyibushe westos < /mnt/westos.sql       ###
恢复/mnt/westos.sqlwestos
mysql -uroot -pyiyibushe -e "select * from westos.linux;"



######
用户和授权########

创建用户
CREATE USER kang@localhost identified by 'westos';
用户授权
GRANT INSERT,UPDATE,DELETE,SELECT on *.*(
任何库的任何表) tokang@localhost;
重载授权表
FLUSH PRIVILEGES;
查看用户授权
SHOW GRANTS FOR kang@localhost;
撤销用户权限
REVOKE DELETE,UPDATE,INSERT on *.* from kang@localhost;
删除用户
DROP USER kang@localhost;

######
忘记数据库root密码了怎么办######

如果记得数据库的密码,改法如下:
mysqladmin -uroot -pyiyibushe password kang     ##
将密码改为kang

如果忘记密码的情况下,改法如下;

systemctl stop mariadb                  ##
先关闭服务
mysqld_safe --skip-grant-table &            ##
跳过密码认证
mysql                       ##
跳过密码认证后直接可以用mysql进入数据库
进去后
update user set password=password('yiyibushe') where user='root';   ##
更新mysql库里面user表中的password
然后退出数据库
ps -aux |grep mysql
然后把所有mysql 的进程杀死
然后开启mariadb
/

##########phpmyadmin###########lamp
框架
yum install lftp -y
lftp 172.25.254.250     ##
下载phpMyAdmin-3.4.0-all-languages.tar.bz2
mv phpMyAdmin-3.4.0-all-languages.tar.bz2 /mnt/
cd /mnt/
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html/   ##
解压到/var/www/html
cd /var/www/html/
mv phpMyAdmin-3.4.0-all-languages admin                ##
重命名
cd admin/
cp config.sample.inc.php config.inc.php             ##
按模版复制
vim config.inc.php
vim Documentation.txt
vim config.inc.php
$cfg['blowfish_secret'] = 'ba17c1ec07d65003';           ##
    vim Documentation.txt   文件中找到的一串字符复制过去       
yum search php
yum install php-mysql.x86_64 -y                 ##
安装php-server
systemctl restart httpd                     ##
重启服务

测试:172.25.254.214/admin(解压后的重命名) root yiyibushe 登陆


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 目标检测的定义 目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。 目标检测任务可分为两个关键的子任务,目标定位和目标分类。首先检测图像中目标的位置(目标定位),然后给出每个目标的具体类别(目标分类)。输出结果是一个边界框(称为Bounding-box,一般形式为(x1,y1,x2,y2),表示框的左上角坐标和右下角坐标),一个置信度分数(Confidence Score),表示边界框中是否包含检测对象的概率和各个类别的概率(首先得到类别概率,经过Softmax可得到类别标签)。 1.1 Two stage方法 目前主流的基于深度学习的目标检测算法主要分为两类:Two stage和One stage。Two stage方法将目标检测过程分为两个阶段。第一个阶段是 Region Proposal 生成阶段,主要用于生成潜在的目标候选框(Bounding-box proposals)。这个阶段通常使用卷积神经网络(CNN)从输入图像中提取特征,然后通过一些技巧(如选择性搜索)来生成候选框。第二个阶段是分类和位置精修阶段,将第一个阶段生成的候选框输入到另一个 CNN 中进行分类,并根据分类结果对候选框的位置进行微调。Two stage 方法的优点是准确度较高,缺点是速度相对较慢。 常见Tow stage目标检测算法有:R-CNN系列、SPPNet等。 1.2 One stage方法 One stage方法直接利用模型提取特征值,并利用这些特征值进行目标的分类和定位,不需要生成Region Proposal。这种方法的优点是速度快,因为省略了Region Proposal生成的过程。One stage方法的缺点是准确度相对较低,因为它没有对潜在的目标进行预先筛选。 常见的One stage目标检测算法有:YOLO系列、SSD系列和RetinaNet等。 2 常见名词解释 2.1 NMS(Non-Maximum Suppression) 目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框中挑选出最具代表性的结果,这样可以加快算法效率,其主要流程如下: 设定一个置信度分数阈值,将置信度分数小于阈值的直接过滤掉 将剩下框的置信度分数从大到小排序,选中值最大的框 遍历其余的框,如果和当前框的重叠面积(IOU)大于设定的阈值(一般为0.7),就将框删除(超过设定阈值,认为两个框的里面的物体属于同一个类别) 从未处理的框中继续选一个置信度分数最大的,重复上述过程,直至所有框处理完毕 2.2 IoU(Intersection over Union) 定义了两个边界框的重叠度,当预测边界框和真实边界框差异很小时,或重叠度很大时,表示模型产生的预测边界框很准确。边界框A、B的IOU计算公式为: 2.3 mAP(mean Average Precision) mAP即均值平均精度,是评估目标检测模型效果的最重要指标,这个值介于0到1之间,且越大越好。mAP是AP(Average Precision)的平均值,那么首先需要了解AP的概念。想要了解AP的概念,还要首先了解目标检测中Precision和Recall的概念。 首先我们设置置信度阈值(Confidence Threshold)和IoU阈值(一般设置为0.5,也会衡量0.75以及0.9的mAP值): 当一个预测边界框被认为是True Positive(TP)时,需要同时满足下面三个条件: Confidence Score > Confidence Threshold 预测类别匹配真实值(Ground truth)的类别 预测边界框的IoU大于设定的IoU阈值 不满足条件2或条件3,则认为是False Positive(FP)。当对应同一个真值有多个预测结果时,只有最高置信度分数的预测结果被认为是True Positive,其余被认为是False Positive。 Precision和Recall的概念如下图所示: Precision表示TP与预测边界框数量的比值 Recall表示TP与真实边界框数量的比值 改变不同的置信度阈值,可以获得多组Precision和Recall,Recall放X轴,Precision放Y轴,可以画出一个Precision-Recall曲线,简称P-R
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值