1、mac的环境变量
光标停在命令行界面之后按command+n可以开命令行界面
Mac系统的环境变量文件加载顺序如下
1⃣️/etc/.bash_profile
2⃣️/etc/paths
3⃣️~/.bash_profile
4⃣️~/.bash_login
5⃣️~/.profile
6⃣️~/.bashrc
1⃣️和2⃣️是系统级别的,系统启动就会加载,其余的是当前用户级的环境变量。按照从前往后的顺序读取,如果~/.bash_profile
文件存在,则后面的几个文件就会被忽略不读了,如果~/.bash_profile
文件不存在,才会以此类推读取后面的文件。~/.bashrc没有上述规则,它是bash shell打开的时候载入的。
1.1和win的对比
win中的环境变量也分系统和用户,但是win是可视化的,直接点进去操作就好我的基础篇中有详细的介绍,mac以及linux都是tui终端命令界面,要操作文件,重要的是理清楚文件的位置以及关系
1.2mac添加环境变量
用 vim 打开.bash_profile 文件, 然后 export 添加,添加完成后按esc输入:wq退出,这是vim的用法
export PATH1=/usr/local/...(写路径)
export PATH=$PATH:$PATH1:$PATH2...:$PATH N
添加完成之后要source ./.bash_profile
使得文件生效
验证echo $path 1
可以直接查看,添加的环境变量相当于系统运行的时候会直接去/usr/libexec/path_helper
这个文件,里面内容就是我们通过环境变量设置的PATH,所以我们设置环境变量是通过PATH来设置的。
2、常见问题
互联网三高:高并发、高性能、高可用(高血糖、高血压、高血脂)
淘宝最开始是用php写的,有一本书《淘宝技术这十年》可以看看
3、mac的目录
1⃣️通过访达查看隐藏文件,按shift+command+.就可以查看到隐藏文件,再次点击shift+command+.就可以恢复隐藏状态。
2⃣️mac的终端和图形化界面的工具栏有些不同,因为你使用的是中文的mac和命令行中的匹配度不是很好,但是对比一下还是可以在命令行中找到对应的图形化界面控制的目录文件
3⃣️用python创建的虚拟文件一般会生成在用户的隐藏目录下,win上和mac的操作环境就是这样的区别,只不过mac上更加的干净,一些sdk通过命令就很好的可以安装
4、程序员的浪漫之3D相册的设计
点击html文件直接可以显示效果,这是根据html,css写的前端代码,创建一个文件夹,里面有html文件和两个文件夹,分别是img和css,一个保存图片一个写css样式代码,替换完成运行即可,整体代码如下,如疑问留言即可
1、html代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>css-3d旋转相册</title>
<link rel="stylesheet" href="css/hovertree.css" />
</head>
<body>
<div class="hovertreeinfo">
<h2>旋转相册的标题</h2>
</div>
<!--/*外层最大容器*/-->
<div class="wrap">
<!-- /*包裹所有元素的容器*/-->
<div class="cube">
<!--前面图片 -->
<div class="out_front">
<img src="img/01.jpg " class="pic" />
</div>
<!--后面图片 -->
<div class="out_back">
<img src="img/02.jpg" class="pic"/>
</div>
<!--左图片 -->
<div class="out_left">
<img src="img/03.jpg" class="pic" />
</div>
<div class="out_right">
<img src="img/04.jpg" class="pic" />
</div>
<div class="out_top">
<img src="img/05.jpg" class="pic" />
</div>
<div class="out_bottom">
<img src="img/06.jpg" class="pic" />
</div>
<!--小正方体 -->
<span class="in_front">
<img src="img/07.jpg" class="in_pic" />
</span>
<span class="in_back">
<img src="img/08.jpg" class="in_pic" />
</span>
<span class="in_left">
<img src="img/09.jpg" class="in_pic" />
</span>
<span class="in_right">
<img src="img/10.jpg" class="in_pic" />
</span>
<span class="in_top">
<img src="img/11.jpg" class="in_pic" />
</span>
<span class="in_bottom">
<img src="img/12.jpg" class="in_pic" />
</span>
</div>
</div>
<audio src="./img/1.mp3" autoplay="true" loop="true" controls="true">
</body>
</html>
2、css代码(在css目录中创建一个hovertree.css文件将下面代码cv即可),名称不能改和html文件要保持一致
/*背景页面颜色设置*/
html{
background:linear-gradient(#FF6666 0%,#336699 20%);/*背景颜色渐变*/
height: 100%;
color:#99cc33;/*字体颜色*/
}
/*动态样式设置*/
/*最外层容器样式*/
.wrap{
width: 200px;
height: 200px;
/*改变左右上下,图片方块移动*/
margin: 150px auto;
position: relative;
}
/*包裹所有容器样式*/
.cube{
width: 200px;
height: 200px;
margin: 0 auto;
transform-style: preserve-3d;
transform: rotateX(-30deg) rotateY(-80deg);
-webkit-animation: rotate 20s infinite;
/*匀速*/
animation-timing-function: linear;
}
@-webkit-keyframes rotate{
from{transform: rotateX(0deg) rotateY(0deg);}
to{transform: rotateX(360deg) rotateY(360deg);}
}
.cube div{
position: absolute;
width: 200px;
height: 200px;
opacity: 0.8;
transition: all .4s;
}
/*定义所有图片样式*/
.pic{
width: 200px;
height: 200px;
}
.cube .out_front{
transform: rotateY(0deg) translateZ(100px);
}
.cube .out_back{
transform: translateZ(-100px) rotateY(180deg);
}
.cube .out_left{
transform: rotateY(90deg) translateZ(100px);
}
.cube .out_right{
transform: rotateY(-90deg) translateZ(100px);
}
.cube .out_top{
transform: rotateX(90deg) translateZ(100px);
}
.cube .out_bottom{
transform: rotateX(-90deg) translateZ(100px);
}
/*定义小正方体样式
*/
.cube span{
display: bloack;
width: 100px;
height: 100px;
position: absolute;
top: 50px;
left: 50px;
}
.cube .in_pic{
width: 100px;
height: 100px;
}
.cube .in_front{
transform: rotateY(0deg) translateZ(50px);
}
.cube .in_back{
transform: translateZ(-50px) rotateY(180deg);
}
.cube .in_left{
transform: rotateY(90deg) translateZ(50px);
}
.cube .in_right{
transform: rotateY(-90deg) translateZ(50px);
}
.cube .in_top{
transform: rotateX(90deg) translateZ(50px);
}
.cube .in_bottom{
transform: rotateX(-90deg) translateZ(50px);
}
/*鼠标移入后样式*/
.cube:hover .out_front{
transform: rotateY(0deg) translateZ(200px);
}
.cube:hover .out_back{
transform: translateZ(-200px) rotateY(180deg);
}
.cube:hover .out_left{
transform: rotateY(90deg) translateZ(200px);
}
.cube:hover .out_right{
transform: rotateY(-90deg) translateZ(200px);
}
.cube:hover .out_top{
transform: rotateX(90deg) translateZ(200px);
}
.cube:hover .out_bottom{
transform: rotateX(-90deg) translateZ(200px);
}
.hovertreeinfo{text-align:center;}
.hovertreeinfo a{color:white}
5、自己制作一个随机请求头
请求头是我用一个一个浏览器试出来的,加入列表随机取一个出来,就可以更好的模拟浏览器的行为了
import random
list = ['Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36']
user_agent = random.choice(list)
print(user_agent)