============
== 白菜 ==
============
一个勤奋的代码搬运工!

Rust 镜像源

技术分享 Rust

通常cargo跑得挺顺畅,不怎么需要proxy。但有备无患。

crates.io 和 rustup 的国内镜像源

字节跳动提供的:https://rsproxy.cn/

中国科技大学的:https://mirrors.ustc.edu.cn/help/crates.io-index.html

清华大学的:https://mirrors.tuna.tsinghua.edu.cn/help/rustup/

上海交通大学的:https://git.sjtu.edu.cn/sjtug/crates.io-index

更换国内源

更换为国内源,否则安装太慢了。 新建文件:~/.cargo/config,内容替换为如下,replace-with 这行可自己 ping 文件中各个国内源头,看哪个源快用哪个:

[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"

# 替换成你偏好的镜像源
replace-with = 'sjtu'

# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

# 中国科学技术大学
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"

# rustcc社区
[source.rustcc]
registry = "git://crates.rustcc.cn/crates.io-index"

# 字节跳动
[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"

给我来点酷炫玩意-Sharkle

web前端 创意 网页特效

网页前端是一门技术活!出色的网站除了后台够快够可靠,也非常需要前端吸引眼球。在这个网站里,点击SHOW ME SOMETHING AWESOME就能随机跳转到一个新页面,往往是一些用了平时不太多见的网页设计元素制作出来的页面演示,有时候也会有独到设计的网页游戏,或许还有些别的内容。这个网站收录的内容都挺不错,有些网站的质量完全可以拿出来单独写一篇文章。

传送门 https://sharkle.com/

方法

进入网站直接点击SHOW ME SOMETHING AWESOME即可欣赏!

Cargo Wix 创建Windows安装程序的cargo子命令

wix Rust

cargo-wix:创建Windows安装程序的cargo子命令 它使用二进制项目的发行版中的构建Windows安装程序(msi)。 如果可以使用提供的应用程序提供代码签名证书,则它还支持对Windows安装程序进行签名。

快速开始

启动命令提示符(cmd.exe),然后执行以下命令:

C:\>cargo install cargo-wix
C:\>cd Path\To\Project
C:\Path\To\Project\>cargo wix init
C:\Path\To\Project\>cargo wix

该项目的Windows安装程序(msi)将位于C:\Path\To\Project\target\wix文件夹中。

官方文档

https://crates.io/crates/cargo-wix

用 Deskreen 将你的 Linux 屏幕镜像或串流到任何设备上

linux deskreen

如果你有多显示器设置,你会意识到拥有多个屏幕的好处。而且,有了 Deskreen,你可以把任何设备变成你的副屏。

Deskreen:将任何设备变成你的 Linux 系统的副屏

Deskreen 是一个自由开源的应用,可以让你使用任何带有 Web 浏览器的设备来作为电脑的副屏。

如果你愿意,它还支持多个设备连接。

Deskreen 很容易使用,当你的所有设备都连接到同一个 Wi-Fi 网络时,它可以正常工作。

让我们来看看它的功能和工作原理。 Deskreen 的功能

Deskreen 的功能包括以下要点:

  • 分享整个屏幕的能力
  • 选择一个特定的应用窗口进行串流
  • 翻转模式,将你的屏幕作为提词器使用
  • 支持多种设备
  • 高级视频质量设置
  • 提供端对端加密
  • 最小的系统要求
  • 黑暗模式

没有一个冗长的功能列表,但对大多数用户来说应该是足够的。

如何使用 Deskreen 应用?

Deskreen 使用分为三个简单的步骤,让我为你强调一下,以便你开始使用:

首先,当你启动该应用时,它会显示一个二维码和一个 IP 地址,以帮助你用 Web 浏览器连接其他设备,以串流你的屏幕。

你可以按你喜欢的方式,在你的辅助设备上的 Web 浏览器的帮助下建立连接。

当你扫描二维码或在浏览器的地址栏中输入 IP 地址,你会在 Deskreen 应用上得到一个提示,允许或拒绝连接。除非是你不认识它,否则就允许吧。

接下来,你将被要求选择你想要串流的内容(你的整个屏幕或特定的应用窗口):

你可以选择串流整个屏幕或选择你想串流的窗口。然而,并不是每个应用窗口都能被检测到。

你只需要选择源并确认,就可以了。你应该注意到它在你的副屏(手机/桌面)上开始串流。

Deskreen 还为你提供了管理连接设备的能力。因此,如果你需要断开任何会话或所有会话的连接,你可以从设置中进行操作。

在 Linux 中安装 Deskreen

你会找到一个用于 Linux 机器的 DEB 包和 AppImage 文件。如果你不知道,可以通过我们的 安装 DEB 包 和 使用 AppImage 文件 指南来安装它。

Read more...

为你营造专注冥想的时间-The Zen Zone

专注 冥想 小游戏

网站为你营造了专注冥想的时间,通过三个简单的小游戏,你可以进入一个精神集中的状态,从而让大脑思维平静下来!

传送门 https://thezen.zone/

方法

进入网站直接开始冥想吧!

全球高清实况摄像头-Skylinewebcams

全球 摄像头 风景

网站收录了全球范围内的公开实况摄像头,你可以看到世界各地的文化遗产、城市风光、人气景点!

传送门 https://www.skylinewebcams.com/

方法

网站支持中文,进入后直接观看!

Linux 常用命令

Shell脚本 linux

Linux 常用命令

日期

$(date -d '1 day ago' '+%Y-%m-%d')

常用方法

数字格式化

part=`printf "%03d" $i` # 左补0

删除旧文件

# 找出5天前修改的文件名以.tar结尾的文件进行删除
find /www/backup -mtime +5 -name "*.tar"  |xargs rm

for循环

for ((i=0;i<10;i++))
do
_date=$(date +%Y-%m-%d -d "${i} day")
echo $_date
done
#
for i in {1..10}
do
        echo $i
done

文件合并

find ./ -name "item*" | xargs sed 'a\' > all.txt
find ./ -name "item*" | xargs cat > all.txt
:s/old/new           #替换当前行的第一个old为new
:s/old/new/g         #替换当前行的所有的old为new
:.,$s/old/new        #替换当前行到最后行的第一个old为new
:.,$s/old/new/g      #替换当前行到最后行的所有old为new
:N,Ms/old/new        #替换第N行到第M行的第一个old为new
:N,Ms/old/new/g      #替换第N行到第M行的所有old为new
:N,Ms/old/new/gc     #替换第N行到第M行的所有old为new,且逐一询问是否删除
:%s/old/new          #替换所有行的第一个old为new
:%s/old/new/g        #替换所有行的所有old为new

文件排序、交集、并集、差集

#排序
sort a.txt |uniq -c
#一、交集
sort a.txt b.txt | uniq -d
#二、并集
sort a.txt b.txt | uniq
#三、差集 a.txt-b.txt:
sort a.txt b.txt b.txt | uniq -u
#差集 b.txt - a.txt:
sort b.txt a.txt a.txt | uniq -u

删除重复行

sort -k2n all.txt | uniq > real.out
sort -k2n all.txt | awk '{if ($0!=line) print;line=$0}'
sort -k2n all.txt | sed '$!N; /^\(.*\)\n\1$/!P; D'

删除空格

cat all.txt |sed s/[[:space:]]//g

awk 去重

awk '!($1 in a){a[$1];print $1}'
#或
sort $1 | uniq 
# awk结果使用逗号间隔拼接
awk -F ',' '{print $1}' | xargs | tr ' ' ','

常用状态查看

# 按CPU和内存倒序前n个进程
ps -aux --sort -pcpu,+pmem | head -n 5
# 按进程名查看
ps -f -C java

文件同步rsync

rsync -zvrtopgl --progress --delete /fromDist/ root@s1:/toDist/

链接状态统计

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
# TCP连接状态详解 
# LISTEN: 服务器在侦听来自远方的TCP端口的连接请求
# SYN-SENT: 在发送连接请求后等待匹配的连接请求
# SYN_RECV: 一个连接请求已经到达,等待确认
# SYN-RECEIVED: 再收到和发送一个连接请求后等待对方对连接请求的确认
# ESTABLISHED: 代表一个打开的连接/正常数据传输状态/当前并发连接数
# FIN_WAIT1: 等待远程TCP连接中断请求,或先前的连接中断请求的确认/应用说它已经完成
# FIN_WAIT2: 从远程TCP等待连接中断请求/另一边已同意释放
# CLOSE-WAIT: 等待从本地用户发来的连接中断请求
# CLOSING: 等待远程TCP对连接中断的确认/两边同时尝试关闭
# LAST-ACK: 等待原来的发向远程TCP的连接中断请求的确认/等待所有分组死掉
# TIME-WAIT: 等待足够的时间以确保远程TCP接收到连接中断请求的确认/另一边已初始化一个释放
# ITMED_WAIT:  等待所有分组死掉
# CLOSED: 没有任何连接状态

CPU/内存/系统信息查看

# cpu
grep "model name" /proc/cpuinfo 
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
cat /proc/cpuinfo | grep physical | uniq -c
# cpu位数
echo $HOSTTYPE
# 内存
grep MemTotal /proc/meminfo 
# linux 版本
cat /etc/redhat-release
cat /etc/os-release
cat /etc/lsb-release
# linux 内核版本
uname -a 
uname -r

常用监控工具

# 网络监控
iftop
# IO监控
iotop
# 负载监控
htop
top

进程监控

pidstat -p 843 1 3 -u -t
# -u:代表对 CPU 使用率的监控
# 参数 1 3 代表每秒采样一次,一共三次
# -t:将监控级别细化到线程

ssh相关

# 秘钥生成
ssh-keygen -t rsa -b 4096 -C "your_hostname"
# 免密登录
cat ~/.ssh/id_rsa.pub | ssh  root@ip "cat >> .ssh/authorized_keys"

firewalld防火墙使用

# 禁止ping
firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp drop'
# 允许192.168.1.0/24主机所有连接
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0" accept'
# 禁止某IP访问
firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address='123.56.247.76/24' reject"
# 开放端口
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --reload

文件统计

ls -g |awk 'BEGIN{sum=0}{sum+=$4}END{print sum/(1024*1024*1024)}'

history格式及数量修改

export HISTSIZE=10000
export HISTTIMEFORMAT=" %Y-%m-%d %H:%M:%S - `who am i 2>/dev/null | awk '{print $NF}'|sed -e 's/[()]//g'` - `who -u am i |awk '{print $1}'` "
export PROMPT_COMMAND="history 1 >> /var/log/.myhistory" #将命令记录输出到文本中
touch /var/log/.myhistory
chmod  /var/log/.myhistory

awk 分析 nginx 运行日志常用指令

Shell脚本 awk

awk 分析 nginx 运行日志常用指令

1.独立IP

awk '{print $1}' access.log | sort -r |uniq -c | wc -l

2.统计PV

awk '{print $6}' access.log | wc -l

3.查询访问最频繁的URL

awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more

4.查询访问最频繁的IP

awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more

5.UV统计:

awk '{print $6}' access.log | sort -r |uniq -c |wc -l

6.按小时统计

cat access.log |awk '{print $4}' | awk -F ':' '{print $1,$2}'|uniq -c | awk '{print $2" "$3" "$1}'

TOML 语言规范 1.0 正式版

TOML Rust

👉 TOML 语言广泛用于 Rust 项目当中,cargo new 一个新项目时都会新建一个 toml 的配置文件,所以学习 Rust 过程中也有必要熟悉 TOML 语言的相关语法,从而熟练在 Rust 项目中编辑配置文件。

👉 本文来自 toml-lang 的中文翻译版本,本文收录在此处,只是方便 Rust 学习者统一查阅,若是发现有任何错误或需要完善地方,请在 toml.io 原项目仓库指出或修改错误。

TOML v1.0.0

全称:Tom 的(语义)明显、(配置)最小化的语言。(Tom’s Obvious, Minimal Language)
作者:Tom Preston-Werner、Pradyun Gedam 等人。

宗旨

TOML 旨在成为一个语义明显且易于阅读的最小化配置文件格式。
TOML 被设计成可以无歧义地映射为哈希表。
TOML 应该能很容易地被解析成各种语言中的数据结构。

目录

规格

  • TOML 是大小写敏感的。
  • TOML 文件必须是合法的 UTF-8 编码的 Unicode 文档。
  • 空白是指制表符(0x09)或空格(0x20)。
  • 换行是指 LF(0x0A)或 CRLF(0x0D0A)。

注释

井字符将该行余下的部分标记为注释,除非它在字符串中。

Read more...

塔防游戏-YORG.io

多人联机 塔防 网页游戏 Tower Defense

塔防游戏

可玩性很高的一款塔防游戏,需要各类元素合成,通过传送带传送宝石、木材、铁等元素,最后合成弓箭、大炮、闪电塔等来抵御怪兽的袭击,一玩就停不下来。

传送门 https://yorg.io/

玩法

通过传送带传送宝石、木材、铁等元素,最后合成弓箭、大炮、闪电塔等来抵御怪兽的袭击

Previous Page 7 of 8 Next Page