Thu, Jun 5, 2025 DuckDB导入Excel数据 DuckDB支持从Excel导入数据,但只支持.xlsx,不支持.xls。如果原始数据是.xls就需要用excel2007及以上版本打开重新保存为.xlsx格式。
DuckDB导入excel工作表 在select
语句中使用read_xlsx
函数读取excel文件,默认读取第一个sheet。
SELECT * FROM read_xlsx('test.xlsx' );
方便的是,可以省略read_xlsx
函数,DuckDB也会自适应判断文件类型进行读取。
SELECT * FROM 'test.xlsx' ;
read_xlsx
函数有许多参数可自定义,如sheet
参数可指定工作表名称。
SELECT * FROM read_xlsx('test.xlsx' , sheet = 'Sheet2' );
DuckDB导入excel指定范围数据 下面实例使用range
参数,指定A1:B2
范围数据,A1
为左上角单元格,B2
为右下角单元格。
SELECT * FROM read_xlsx('test.xlsx' , range = 'A1:B2' );
下面实例表示跳过前5行
SELECT * FROM read_xlsx('test.xlsx' , range = 'A5:Z' );
下面实例表示跳过前5列
SELECT * FROM read_xlsx('test.xlsx' , range = 'E:Z' );
默认情况下,如果没有指定范围,当遇到空行时,DuckDB将停止读取Excel文件。但是当提供了一个范围时,默认是读取到范围的末尾。
以上行为可以通过stop_at_empty
参数来控制:
-- 读取前100行,或直到遇到第一个空行,以先到者为准
SELECT * FROM read_xlsx('test.xlsx' , range = '1:100' , stop_at_empty = true );
-- 始终读取整个工作表即使它包含空行
SELECT * FROM read_xlsx('test.xlsx' , stop_at_empty = false );
DuckDB读取excel并创建新表 以下实例表示读取test.xlsx
文件中的Sheet2
工作表,并创建名为newtb
的新表。
CREATE TABLE newtb AS
SELECT * FROM read_xlsx('test.xlsx' , sheet = 'Sheet2' );
DuckDB读取excel并插入已有表 以下表示读取test.xlsx
中的Sheet2
并将数据插入oldtb
表。
INSERT INTO oldtb
SELECT * FROM read_xlsx('test.xlsx' , sheet = 'Sheet2' );
或者使用copy
也可以插入数据
COPY oldtb FROM 'test.xlsx' (FORMAT xlsx, SHEET 'Sheet2' );
使用COPY
语句将Excel文件插入到现有表中时,目标表中列的类型将强制为Excel工作表中单元格的类型。
SELECT * FROM read_xlsx('test.xlsx' , header = true );
默认情况下,如果第一行中的所有单元格都是非空字符,则第一行将被视为header。要禁用此行为,请将header
设置为false
。
数据类型检测 导入数据时,DuckDB会自动检测导入列数据类型。
单元格如果是数字的话,可能匹配为TIMESTAMP
, TIME
, DATE
和 BOOLEAN
类型。 包含TRUE
和 FALSE
的文本单元格可能匹配为 BOOLEAN
类型。 默认情况下,空单元格的类型为DOUBLE
。 其他情况,根据单元格的内容推断为 VARCHAR
或 DOUBLE
。 还可以通过设置 empty_as_varchar
参数来控制空单元格类型检测方式。
Tue, Jun 3, 2025 TurnkeyLinux出了一款File Server的安装镜像,是基于debian的文件服务器系统,通过安装他可以快速部署NAS系统,实现Samba/sftp/WebDAV/NFS/Webshell/Webmin功能。
以下是官方的说明
File Server - 简单NAS网络附加存储
一个易于使用的文件服务器,将兼容Windows的网络文件共享与基于Web的文件管理器相结合。TurnKey File Server 包括对 SMB、FTP、SFTP、NFS、WebDAV 和 rsync 文件传输协议的支持。服务器配置为允许服务器用户管理私有或公共存储中的文件。基于 Samba 和 WebDAV CGI。
安装Turnkey File Server 从这里下载Turnkey File Server镜像文件(ISO),下面是在虚拟机中安装的过程gif
磁盘分区我这里选择 Guided-use entire disk ,安装完成后按提示设置 Root Password 方便后期访问,最后一步是提示管理访问地址,如下图所示。
Turnkey File Server服务管理 SSH 使用root@ip登录服务器,首次登录信息如下:
Welcome to Fileserver, TurnKey GNU/Linux 18.0 ( Debian 12/Bookworm)
System information for Tue Jun 03 06:41:21 2025 ( UTC+0000)
System load: 0.13 Memory usage: 12.2%
Processes: 125 Swap usage: 4.2%
Usage of /: 30.0% of 9.75GB IP address for eth0: 172.31.45.211
TKLBAM ( Backup and Migration) : NOT INITIALIZED
To initialize TKLBAM, run the "tklbam-init" command to link this
system to your TurnKey Hub account. For details see the man page or
go to:
https://www.turnkeylinux.org/tklbam
For Advanced commandline config run: confconsole
For more info see: https://www.turnkeylinux.org/docs/confconsole
Linux fileserver 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64
root@fileserver ~#
输入confconsole
可以进入系统设置,可配置项如下:
Thu, May 29, 2025 服务器安装Hysteria2 root@bwg:~# bash <( curl -fsSL https://get.hy2.sh/)
Checking for installed version ... not installed
Checking for latest version ... v2.1.1
Downloading hysteria binary: https://github.com/apernet/hysteria/releases/download/app/v2.1.1/hysteria-linux-amd64 ...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 13.0M 100 13.0M 0 0 15.4M 0 --:--:-- --:--:-- --:--:-- 36.0M
Installing hysteria executable ... ok
Install /etc/hysteria/config.yaml ... ok
Creating user hysteria ... ok
Install /etc/systemd/system/hysteria-server.service ... ok
Install /etc/systemd/system/[email protected] ... ok
Congratulation! Hysteria 2 has been successfully installed on your server.
What' s next?
+ Take a look at the differences between Hysteria 2 and Hysteria 1 at https://hysteria.network/docs/misc/2-vs-1/
+ Check out the quick server config guide at https://hysteria.network/docs/getting-started/Server/
+ Edit server config file at /etc/hysteria/config.yaml
+ Start your hysteria server with systemctl start hysteria-server.service
+ Configure hysteria start on system boot with systemctl enable hysteria-server.service
配置文件/etc/hysteria/config.yaml
示例如下:
Sun, May 11, 2025 KDE Neon live镜像默认用户名为neon
,密码为空。
但超时锁屏后,neon用户无法使用空密码登录。
这时候可以使用Alt
+F3
切换sesseion,在cli模式下用空密码登录neon
账号,然后使用passwd neon
修改密码。
完成后使用Alt
+F1
切换回桌面session,然后使用修改后的密码登录即可。
Sun, May 4, 2025 对于安装多系统的主机来说,有时需要修改grub配置来进行一些个性化定制。
最新版的grub配置文件位于/etc/default/grub
,我们可以对其进行修改,然后再使用grub-mkconfig
命令来生成引导配置。
以下是一个/etc/default/grub
文件实例
# 启动菜单显示时间,这里是3秒
GRUB_TIMEOUT= 3
# 系统标识名,这里使用sed命令来生成
GRUB_DISTRIBUTOR= " $( sed 's, release .*$,,g' /etc/system-release) "
# 默认启动项,这里是3,序号从0开始排,本机0是fedora,3是windows
GRUB_DEFAULT= 3
# 禁用子菜单,所有选项同级菜单显示
GRUB_DISABLE_SUBMENU= true
# 输出设备,这里为本机终端console
GRUB_TERMINAL_OUTPUT= "console"
# linux内核附带参数
GRUB_CMDLINE_LINUX= "resume=UUID=c0821d08-d462-46b9-b56b-40105a046cdf rhgb quiet"
# 禁用显示恢复模式
GRUB_DISABLE_RECOVERY= "true"
GRUB_ENABLE_BLSCFG= true
按需修改完/etc/default/grub
后,就可以使用grub-mkconfig
命令来生成引导配置
bbq@op36:~$ sudo grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for UEFI Firmware Settings ...
done
注 有的系统使用的是grub2-mkconfig
命令,配置文件为/boot/grub2/grub.cfg
Thu, Apr 24, 2025 通过hostname命令修改主机名 使用hostname
命令来查看/修改主机名
#查看当前主机名
➜ ~ hostname
tkvm
#修改为新名字box
➜ ~ hostname box
➜ ~ hostname
box
以上修改的主机名是临时的 ,重启后还会恢复。如果需要永久修改,还需要编辑/etc/hostname
和/etc/hosts
两个文件。
#将/etc/hostname中的字符改为新名称
➜ ~ cat /etc/hostname
box
#将/etc/hosts中127.0.1.1后面的字符改为新名称
➜ ~ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 box
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
通过如上修改后,主机名将永久变更为新的名称。
通过hostnamectl命令修改主机名 新的debian基于systemd进行管理,systemd提供了一个hostnamectl
命令可以方便的进行主机名管理。
#使用hostnamectl查看当前主机信息
➜ ~ hostnamectl
Static hostname: bbq
Icon name: computer-vm
Chassis: vm 🖴
Machine ID: 5e07831af04e410dbce86f486718a532
Boot ID: a7b7b947133943c994e7b1bbbee3b95a
Virtualization: kvm
Operating System: Debian GNU/Linux 12 ( bookworm)
Kernel: Linux 6.1.0-32-amd64
Architecture: x86-64
Hardware Vendor: QEMU
Hardware Model: Standard PC _i440FX + PIIX, 1996_
Firmware Version: 1.16.2-debian-1.16.2-1
#修改新主机名
➜ ~ hostnamectl set-hostname tkvm
#检查修改结果
➜ ~ hostnamectl
Static hostname: tkvm
Icon name: computer-vm
Chassis: vm 🖴
Machine ID: 5e07831af04e410dbce86f486718a532
Boot ID: a7b7b947133943c994e7b1bbbee3b95a
Virtualization: kvm
Operating System: Debian GNU/Linux 12 ( bookworm)
Kernel: Linux 6.1.0-32-amd64
Architecture: x86-64
Hardware Vendor: QEMU
Hardware Model: Standard PC _i440FX + PIIX, 1996_
Firmware Version: 1.16.2-debian-1.16.2-1
可以看出使用hostnamectl
可以方便的进行主机名更改,省去了手动修改/etc/hostname
和/etc/hosts
两个文件的麻烦。
Thu, Apr 10, 2025 撸了个小鸡鸡,打算用来做jupyter server,在此记录下此次配置全过程。
安装JupyterLab # 更新系统
apt update&& apt upgrade -y
# 安装python
apt install python3
#安装JpyterLab和中文语言
pip3 install jupyterlab jupyterlab-language-pack-zh-CN
配置jupyterlab 生成配置文件,存放路径为.jupyter/jupyter_lab_config.py
root@hcss-ecs-279f:~# jupyter lab --generate-config
Writing default config to: /root/.jupyter/jupyter_lab_config.py
编辑配置文件vi .jupyter/jupyter_lab_config.py
,参考以下配置
# 允许任意IP访问
c.ServerApp.allow_origin = '*'
c.ServerApp.ip = '0.0.0.0'
# 自定义端口号
c.ServerApp.port = 8888
# 允许root运行
c.ServerApp.allow_root = True
下来设置访问密码
root@hcss-ecs-279f:~# jupyter lab password
Enter password:
Verify password:
[ JupyterPasswordApp] Wrote hashed password to /root/.jupyter/jupyter_server_config.json
然后就可以使用jupyter lab
来运行服务。
root@hcss-ecs-279f:~# jupyter lab
... ...
[ I 2025-04-10 10:41:35.533 ServerApp] jupyterlab | extension was successfully loaded.
[ I 2025-04-10 10:41:35.536 ServerApp] notebook | extension was successfully loaded.
[ I 2025-04-10 10:41:35.537 ServerApp] Serving notebooks from local directory: /root
[ I 2025-04-10 10:41:35.537 ServerApp] Jupyter Server 2.15.0 is running at:
[ I 2025-04-10 10:41:35.537 ServerApp] http://hcss-ecs-279f:9876/lab
[ I 2025-04-10 10:41:35.537 ServerApp] http://127.0.0.1:9876/lab
... ...
按提示通过IP:9876
方式来远程访问JupyterLab服务即可。
Wed, Apr 9, 2025 Screen是一个全屏窗口管理器,它在多个进程之间多路复用物理终端。每个虚拟终端都提供DEC VT100终端的功能,此外,还提供 ANSI X3.64 (ISO 6429) 和 ISO 2022 标准的多项控制功能(例如,插入/删除行和支持多个字符集)。
每个虚拟终端都有一个回滚历史缓冲区和一个复制和粘贴机制,允许用户在窗口之间移动文本区域。当screen被调用时,它会创建一个带有 shell(或指定命令)的窗口,以便你可以像往常一样使用该程序。然后,您可以随时创建包含其他程序(包括更多 shell)的新(全屏)窗口、终止当前窗口、查看活动窗口列表、打开和关闭输出日志记录、在窗口之间复制文本、查看回滚历史记录、在窗口之间切换等。所有窗口都完全独立于彼此运行其程序。
安装screen screen是默认的gun utils,很多linux系统默认都安装了,如果没有可使用如下命令安装
# debian based
apt install screen
# redhat based
yum install screen
# or
dnf install screen
# 检查screen版本
root@hcss-ecs-279f:~# screen -v
Screen version 4.09.00 ( GNU) 30-Jan-22
使用screen 使用screen
命令不带任何参数即可新建打开一个session。
每个session都有如[pid.sessionname]
的命名,其中pid为唯一生成的id,而默认生成的sessionname由tty和host名组成。
session有两种状态:
Attached 正在使用的激活态 Detached 后台运行的非激活态 如下,使用screen -ls
查看session列表,会发现一个pid为1489
名为pts-3.hcss-ecs-279f
的session,状态为Attached。
root@hcss-ecs-279f:~# screen -ls
There is a screen on:
1489.pts-3.hcss-ecs-279f ( 04/09/2025 04:45:13 PM) ( Attached)
1 Socket in /run/screen/S-root.
root@hcss-ecs-279f:~#
命名session 为了便于管理,可以使用-S
选项来指定session名称,如下新建了一个名为toby
的session
Tue, Apr 8, 2025 fail2ban 是一款用于保护服务器免受暴力破解攻击的工具,通过监控日志文件检测恶意行为,并自动触发防火墙规则封禁可疑 IP。
Debian12下安装fail2ban过程如下:
先安装必备软件
apt install git python3 python3-setuptools
从源码安装fail2ban git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban
sudo python setup.py install
systemd设置fail2ban服务 cd fail2ban
cp ./build/fail2ban.service /etc/systemd/system/
systemctl enable fail2ban
systemctl start fail2ban
检查服务状态
root@box:~# systemctl status fail2ban.service
* fail2ban.service - Fail2Ban Service
Loaded: loaded ( /etc/systemd/system/fail2ban.service; enabled; preset: enabled)
Active: active ( running) since Tue 2025-04-08 02:54:18 CDT; 12min ago
Docs: man:fail2ban( 1)
Process: 2066 ExecStartPre= /bin/mkdir -p /run/fail2ban ( code= exited, status= 0/SUCCESS)
Main PID: 2067 ( fail2ban-server)
Tasks: 3 ( limit: 352)
Memory: 12.8M
CPU: 195ms
CGroup: /system.slice/fail2ban.service
` -2067 /usr/bin/python3 /usr/local/bin/fail2ban-server -xf start
Apr 08 02:54:18 box systemd[ 1] : Starting fail2ban.service - Fail2Ban Service...
Apr 08 02:54:18 box systemd[ 1] : Started fail2ban.service - Fail2Ban Service.
Apr 08 02:54:19 box fail2ban-server[ 2067] : Server ready
ssh配置实例,新建/etc/fail2ban/jail.local
文件,内容如下:
Mon, Mar 31, 2025 tinc是一个组建虚拟专用网络(VPN)的工具,通过隧道及加密技术在互联网上点与点之间创建专有网络。tinc 在网络层工作,因此无需对现有软件进行修改和配置。其数据通讯经过加密和压缩,能避免敏感数据和隐私的泄露。
vps主机安装设置tinc debian系统 公网ip 12.23.34.45 vpn名称 bbq vpn主机名 tcb vpn ip 10.0.0.11 安装tinc 使用apt install tinc -y
安装tinc
➜ ~ apt install tinc -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
liblzo2-2
The following NEW packages will be installed:
liblzo2-2 tinc
0 upgraded, 2 newly installed, 0 to remove and 6 not upgraded.
Need to get 261 kB of archives.
After this operation, 831 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bookworm/main amd64 liblzo2-2 amd64 2.10-2 [ 56.9 kB]
Get:2 http://deb.debian.org/debian bookworm/main amd64 tinc amd64 1.0.36-2+b2 [ 204 kB]
Fetched 261 kB in 0s ( 2,189 kB/s)
Selecting previously unselected package liblzo2-2:amd64.
( Reading database ... 56790 files and directories currently installed.)
Preparing to unpack .../liblzo2-2_2.10-2_amd64.deb ...
Unpacking liblzo2-2:amd64 ( 2.10-2) ...
Selecting previously unselected package tinc.
Preparing to unpack .../tinc_1.0.36-2+b2_amd64.deb ...
Unpacking tinc ( 1.0.36-2+b2) ...
Setting up liblzo2-2:amd64 ( 2.10-2) ...
Setting up tinc ( 1.0.36-2+b2) ...
Created symlink /etc/systemd/system/multi-user.target.wants/tinc.service → /lib/systemd/system/tinc.service.
Processing triggers for man-db ( 2.11.2-2) ...
Processing triggers for libc-bin ( 2.36-9+deb12u9) ...
新建vpn配置目录 以vpn名称新建配置目录
Sat, Mar 22, 2025 上次讲了如何在树莓派上组建配置磁盘阵列 (RAID),这次介绍几种访问磁盘阵列(RAID)的方法。
网络文件系统(NFS)挂载 Samba服务器共享 文件传输协议(FTP)访问(例如,ProFTPD、vsftpd) 树莓派配置网络文件系统(NFS)访问磁盘阵列(RAID) 安装NFS服务 sudo apt-get install portmap
sudo apt-get install nfs-kernel-server
编辑配置文件 sudo vi /etc/exports
/mnt/raid *(rw,sync,no_root_squash)
启动NFS服务
sudo systemctl enable nfs-server
sudo systemctl start nfs-server
NFS客户端使用 Windows下挂载NFS
在程序设置中找到 打开或关闭Windows功能 ,将其中的 基于应用UNIX程序子系统的 和 NFS服务 下的 NFS客户端 和 管理工具 ,勾选安装启用。
然后就可以通过以下命令来挂载NFS目录
mount \\ raspiIP\m nt\r aid z:
Linux下挂载NFS需要安装nfs-common
和portmap
,然后使用如下命令挂载使用
sudo mount -t nfs raspiIP:/mnt/raid /mnt/mount_dir
树莓派配置Samba访问磁盘阵列(RAID) 首先安装Samba服务端
为samba添加访问账号
编辑配置文件 vi /etc/samba/smb.conf
[RASPI_RAID]
comment = RaspiBerryPI_RAID
path = /mnt/raid
browseable = yes
writable = yes
guest ok = yes
public = yes
valid users = bbq
create mask = 0777
directory mask = 0777
Samba客户端使用非常方便,在网上邻居中找到即可访问。
Wed, Feb 26, 2025 RAID存储系统可用作故障率较低的备份系统,搭建这样一个系统并非难事,与市面上的成品NAS系统相比,基于树莓派的软RAID系统成本相对较低,本文所采用的解决方案基于mdadm
的软RAID。
选择使用软RAID而非硬RAID一个主要原因是,万一RAID控制器出现硬件故障,无需使用完全相同的RAID控制器,就能利用硬盘重新安装RAID且不丢失数据。此外,也能轻松更换主机硬件而不会丢失RAID中的所有数据。
本系列文章的第一部分将介绍软RAID组建的步骤,后续部分将介绍RAID的使用方法,以及诸如更换磁盘、RAID扩展等管理实例。
设置概述 本系统使用USB硬盘盒,USB硬盘盒价格相当便宜,但要记住为RAID选择硬盘时需挑选耐用型的例如,西部数据红盘增强版(Western Digital WD Red Plus)或希捷酷狼(Seagate Ironwolf)可能是不错的选择。由于固态硬盘(SSD)与机械硬盘相比,通常写入循环能力较低,所以不推荐使用。
作者使用的是2.5英寸的希捷酷鱼小硬盘,其最大容量可达2TB。容量更大的硬盘通常是3.5英寸,尺寸更大且更耐用。3.5英寸规格中也有专门的NAS硬盘(如希捷酷狼)可供选择。鉴于目标应用场景是备份系统,硬盘大多处于自旋停止模式,所以2.5英寸硬盘在7天24小时不间断运行的情况下,其使用寿命被认为是可以接受的。
2.5英寸硬盘还有一个优势,即功耗更低。配备4块硬盘(RAID 5)和ODROID N2+单板计算机(SBC)的系统,空闲时仅耗电10瓦,备份时耗电11瓦,硬盘自旋停止时耗电8瓦。
这些硬盘安装在梵泰克(Fantec)USB 3.0双盘盒中,并通过USB直接连接到ODROID N2 +。有源USB集线器仅为硬盘供电,以避免给ODROID主板带来过大的USB供电负担。
请注意,所使用的USB集线器的电源必须能够为USB驱动器供电。一般来说,一块2.5英寸硬盘的最大电流消耗约为1安(相当于5瓦)。这意味着,在四盘RAID设置中,USB集线器至少需要20瓦的电源供应。
本示例中,共使用了4快硬盘设置了一个RAID5系统,RAID5是一个合理的冗余级别。如果超过4个或更多硬盘,则建议使用RAID6。在RAID5或RAID6的情况下,硬盘应该具有相同的容量,因为最小的容量限制了整个RAID的容量。因此,最好使用相同的硬盘型号。
RAID系统的设置步骤如下:
连接硬盘和系统识别 准备驱动器 构建、格式化和挂载RAID 连接硬盘和系统识别 首先使硬盘在系统中可访问,并能够识别每个硬盘。为正在运行的RAID系统贴上标签,便于管理。
使用lsblk
命令可以查看所有磁盘设备:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1,8T 0 disk
sdb 8:16 0 1,8T 0 disk
└─sdb1 8:17 0 1,8T 0 part
sdc 8:32 0 1,8T 0 disk
├─sdc1 8:33 0 18,6G 0 part
├─sdc2 8:34 0 184,4G 0 part
└─sdc3 8:35 0 1,6T 0 part
sdd 8:48 0 1,8T 0 disk
如上显示了/dev/sda
、/dev/sdb
、/dev/sdc
和/dev/sdd
四块硬盘,每个容量都是1.8T;并且sdb
包含sdb1
一个分区,sdc
包含了sdc1
、sdc2
和sdc3
三个分区。
如果是新组装的四个硬盘,lsblk
应该如下显示:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1,8T 0 disk
sdb 8:16 0 1,8T 0 disk
sdc 8:32 0 1,8T 0 disk
sdd 8:48 0 1,8T 0 disk
为了方便识别标记设备,建议将硬盘一个一个接入系统,然后用blkid /dev/sdb
来查看具体硬盘信息,如下:
Thu, Jan 23, 2025 首先登录https://one.dash.cloudflare.com/
网络->Tunnels,创建隧道,隧道类型选择Cloudflared,隧道名自定义hhssh
。
按照提示安装cloudflared并连接隧道,vps在这里选择debian,然后按照提示安装cloudflared并运行。
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb &&
sudo dpkg -i cloudflared.deb &&
sudo cloudflared service install eyJhIjoiOWRmMjczNGM3NjI3ZTNiMmZh
连接成功后,页面下方 Connectors 会显示当前已连接的设备。
下一步,开始设置公共主机名。
子域中自定义hhssh
,域选择自有域名,路径(path)留空,服务类型选择SSH
,URL里填写localhost:22
,其中22为服务器ssh端口,按照实际情况设置,保存隧道。
Access->应用程序,添加应用程序。
应用程序类型选择 自托管 ,基本信息中应用程序名设置为hhssh
,会话持续时长默认24小时,可自定义。
点击添加公共主机名,同上述Tunnels域名设置即可,点击下一步,在最后高级设置中,浏览器呈现设置中选择SSH
保存设置。
下来设置邮箱验证策略,Access->策略,添加策略。
策略名自定义emailauth
,操作为允许(allow),添加规则中,选择器设置为Emails
,值中填写自己用来接收验证码的邮箱地址,保存。
Access->应用程序,选择刚建立的hhss
,右侧三点菜单,编辑配置,在策略tab中,点击选择现有策略,勾选刚才新建的emailauth
即可。
通过域名hhssh.0x8.net
来登录页面,会提示输入邮箱接收验证码,输入验证码后即可按提示输入服务器账号密码来登录ssh。
享受你的webssh之旅吧!
Wed, Jan 22, 2025 首先安装screen
apt install screen
# or
dnf install screnn
# or
pacman -S screen
新建.keepsession.sh
脚本, vi ~/.keepsession.sh
,内容如下
#!/bin/sh
if screen -ls | grep -q "There is a screen on" ; then
screen -xRR
else
screen -S mysession
fi
chmod +x ~/.keepsession.sh
添加执行权限,编辑~/.bashrc
,添加以下内容:
if [ -f ~/.keepsession.sh ] ; then
source ~/.keepsession.sh
fi
这样以后每次登录都打开之前创建的会话。
Mon, Jan 20, 2025 Headscale是一款开源的Tailscale控制服务器软件,使用Headscale可以自行架设Tailscale服务。
VPS安装Headscale 下载地址https://github.com/juanfont/headscale/releases
wget https://github.com/juanfont/headscale/releases/download/v0.24.0/headscale_0.24.0_linux_amd64.deb
apt install headscale_0.24.0_linux_amd64.deb
安装完成后会有如下提示:
----------------------------------------------------------------------
headscale package has been successfully installed.
Please follow the next steps to start the software:
sudo systemctl enable --now headscale
sudo systemctl start headscale
Configuration settings can be adjusted here:
/etc/headscale/config.yaml
----------------------------------------------------------------------
注册启动Headscale服务
systemctl enable --now headscale
systemctl start headscale
配置Headscale 编辑配置文件vi /etc/headscale/config.yaml
将其中的127.0.0.1
替换为自己的服务器IP,例如45.67.89.99
sed -i 's|127.0.0.1|45.67.89.99|g' /etc/headscale/config.yaml
建议将randomize_client_port: false
改为randomize_client_port: true
开启客户端随机端口。
修改完成后重启服务systemctl restart headscale.service
查看当前状态systemctl status headscale.service
使用Headscale Headscale用户管理 创建用户,bbq
为自定义用户名
headscale users create bbq
使用headscale users list
查看已存在用户
Sun, Jan 19, 2025 Windows版iperf3下载地址
Linux可以使用apt
或dnf
等管理软件直接安装iperf3
apt install iperf3
dnf install iperf3
pacman -S iperf3
安装好之后,服务端使用iperf3 -s
开启进程。
D:\a pps\i perf3.18_64>iperf3.exe -s
-----------------------------------------------------------
Server listening on 5201 ( test #1)
-----------------------------------------------------------
Accepted connection from 192.168.88.243, port 42194
[ 5] local 192.168.88.246 port 5201 connected to 192.168.88.243 port 42204
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.01 sec 10.5 MBytes 86.9 Mbits/sec
[ 5] 1.01-2.01 sec 10.5 MBytes 88.5 Mbits/sec
[ 5] 2.01-3.01 sec 10.5 MBytes 88.4 Mbits/sec
[ 5] 3.01-4.01 sec 10.5 MBytes 87.7 Mbits/sec
[ 5] 4.01-5.02 sec 10.6 MBytes 88.7 Mbits/sec
[ 5] 5.02-6.01 sec 10.4 MBytes 87.9 Mbits/sec
[ 5] 6.01-7.01 sec 10.6 MBytes 88.6 Mbits/sec
[ 5] 7.01-8.00 sec 10.4 MBytes 87.9 Mbits/sec
[ 5] 8.00-9.01 sec 10.6 MBytes 88.1 Mbits/sec
[ 5] 9.01-10.00 sec 10.5 MBytes 89.1 Mbits/sec
[ 5] 10.00-10.11 sec 1.12 MBytes 91.0 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.11 sec 106 MBytes 88.2 Mbits/sec receiver
-----------------------------------------------------------
Server listening on 5201 ( test #2)
-----------------------------------------------------------
客户端使用iperf3 -c serverip
来连接服务端开始测试
Thu, Jan 9, 2025 经常使用ssh连接服务器的朋友,有时为了安全可能ssh还使用了非默认端口(22),这样每次使用密码登录时,都得按照如下的命令来连接服务器。这样显得有点不方便,因此推荐将密码设置复杂难以回溯,然后使用证书的形式来登录ssh服务器,免去了每次使用密码的麻烦。只要你把证书妥善保管,就会安全如初。
本地生成证书 首先使用ssh-keygen
命令在本地生成证书,为了方便使用未设置证书密码。
$ ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key ( ~/.ssh/id_ed25519) :
Enter passphrase ( empty for no passphrase) :
Enter same passphrase again:
Your identification has been saved in ~/.ssh/id_ed25519
Your public key has been saved in ~/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:Kcd0LM......Vams1XJA user@op36
The key' s randomart image is:
+--[ ED25519 256] --+
| cef+.= .. |
| ..oEo+.X |
| aaaa+o O |
| obbbb= B |
|cccccc= S . |
|dddd + . |
|O w |
| o |
| |
+----[ SHA256] -----+
设置SSH服务 使用ssh-copy-id
将公钥拷贝至远端服务器
Wed, Jan 8, 2025 如果想要在Windows上使用unix/linux命令程序,那么MSYS是一个不错的工具软件。
通过MSYS你可以方便的安装使用unix/linux命令程序,并且MSYS还提供了软件管理软件PACMAN,熟悉Archlinux的朋友应该会更加得心应手。
安装MSYS https://www.msys2.org/ 提供了安装程序 msys2-x86_64-20241208.exe ,默认从github下载,如果你的网络访问github不便的话,在此提供了国内下载链接 。
下载后点击安装,默认目录为C:\msys64\
,默认用户目录为C:\msys64\home\
,建议将其加入到Widnows环境变量中。
使用MSYS Win+R输入msys2
打开终端程序即可开始使用。
使用pacman管理软件 pacman是archlinux下的默认软件管理程序,熟悉archlinux的朋友应该会感觉到很亲切,以下为pacman的常用方法。
bbq@e6 MSYS ~
$ pacman -Ss hugo
clangarm64/mingw-w64-clang-aarch64-hugo 0.139.2-1
A Fast and Flexible Static Site Generator built with love by bep, spf13 and friends in Go. ( mingw-w64)
mingw64/mingw-w64-x86_64-hugo 0.139.2-1
A Fast and Flexible Static Site Generator built with love by bep, spf13 and friends in Go. ( mingw-w64)
ucrt64/mingw-w64-ucrt-x86_64-hugo 0.139.2-1
A Fast and Flexible Static Site Generator built with love by bep, spf13 and friends in Go. ( mingw-w64)
clang64/mingw-w64-clang-x86_64-hugo 0.139.2-1
A Fast and Flexible Static Site Generator built with love by bep, spf13 and friends in Go. ( mingw-w64)
安装软件 pacman -S mingw-w64-x86_64-hugo
$ pacman -S mingw-w64-ucrt-x86_64-hugo
正在解析依赖关系...
正在查找软件包冲突...
软件包 ( 3) mingw-w64-ucrt-x86_64-gcc-libs-14.2.0-2 mingw-w64-ucrt-x86_64-libwinpthread-git-12.0.0.r459.g63f3f2846-1
mingw-w64-ucrt-x86_64-hugo-0.140.2-1
下载大小: 32.46 MiB
全部安装大小: 155.35 MiB
:: 进行安装吗? [ Y/n] y
:: 正在获取软件包......
mingw-w64-ucrt-x86_64-libwinpthread-git-12.0.0.r459.g... 28.7 KiB 83.3 KiB/s 00:00 [ ##################################################] 100%
mingw-w64-ucrt-x86_64-gcc-libs-14.2.0-2-any 1022.7 KiB 1320 KiB/s 00:01 [ ##################################################] 100%
mingw-w64-ucrt-x86_64-hugo-0.140.2-1-any 31.4 MiB 10.1 MiB/s 00:03 [ ##################################################] 100%
全部 ( 3/3) 32.5 MiB 10.2 MiB/s 00:03 [ ##################################################] 100%
( 3/3) 正在检查密钥环里的密钥 [ ##################################################] 100%
( 3/3) 正在检查软件包完整性 [ ##################################################] 100%
( 3/3) 正在加载软件包文件 [ ##################################################] 100%
( 3/3) 正在检查文件冲突 [ ##################################################] 100%
( 3/3) 正在检查可用存储空间 [ ##################################################] 100%
:: 正在处理软件包的变化...
( 1/3) 正在安装 mingw-w64-ucrt-x86_64-libwinpthread-git [ ##################################################] 100%
( 2/3) 正在安装 mingw-w64-ucrt-x86_64-gcc-libs [ ##################################################] 100%
( 3/3) 正在安装 mingw-w64-ucrt-x86_64-hugo [ ##################################################] 100%
mingw-w64-ucrt-x86_64-hugo 的可选依赖
git: To interact with repositories [ 已安装]
删除软件 pacman -R mingw-w64-x86_64-hugo
$ pacman -R mingw-w64-x86_64-hugo
正在检查依赖关系...
软件包 ( 1) mingw-w64-x86_64-hugo-0.140.2-1
全部移去体积: 152.14 MiB
:: 打算删除这些软件包吗? [ Y/n] y
:: 正在处理软件包的变化...
( 1/1) 正在删除 mingw-w64-x86_64-hugo [ ##################################################] 100%
$ pacman -Sy
:: 正在同步软件包数据库...
clangarm64 已经是最新版本
mingw32 已经是最新版本
mingw64 已经是最新版本
ucrt64 已经是最新版本
clang32 已经是最新版本
clang64 已经是最新版本
msys 已经是最新版本
修改msys软件源 修改完成后记得运行pacman -Sy
同步软件源索引
Sat, Jan 4, 2025 Openmediavault是基于 Debian Linux 的下一代网络附加存储(NAS)解决方案。它包含 SSH、(s)FTP、SMB/CIFS、RSync等服务。由于框架的模块化设计,它可以通过插件进行增强。OpenMediaVault 主要设计用于小型办公室或家庭办公室,是一个简单易用的开箱即用解决方案,允许每个人方便简洁的安装和管理NAS。
CPU: 任意x86-64或ARM处理器 RAM: 最小1 GiB 硬盘:系统盘: 最小4 GiB,建议10 GiB。 数据盘: 根据需求。 挂载openmediavault_7.0-32-amd64.iso
文件后,kvm管理窗口启动主机,从ISO文件引导。
首先设置语言、位置、键盘布局和时区,然后自动识别网络配置,如果失败的话需要手动设置IP网关等项目。
下来设置主机名、账户和密码,然后是磁盘分区设置。
在此为omv系统分20G以安装系统,swap设置为2G,剩余的空间留作数据分区。
然后自动安装系统,中途需要手动选择软件源(apt),然后安装GRUB后即可重启系统。
通过ip浏览主机,默认用户名为admin密码为openmediavault,建议及时更改。
Fri, Jan 3, 2025 Highlight.js 是目前最受欢迎的JavaScript语法高亮工具,下来介绍如何使用之。
Highlight.js特性
192 种语言和 498 个主题 自动语言检测 适用于任何 HTML 标记 零依赖 兼容任何 JS 框架 支持 Node.js 和 Deno 首先在https://highlightjs.org/download 下载Highlight.js
,可以按需定制选择语言,要么就选择所有语言。
在网页</head>
之前加入以下代码:
<!-- 按照自定义目录填写default.css路径 -->
<link rel = "stylesheet" href = "/path/to/styles/default.css" >
<!-- 按照自定义目录填写highlight.min.js路径 -->
<script src = "/path/to/highlight.min.js" ></script >
<script >hljs .highlightAll ();</script >
就这样咯!
Fri, Jan 3, 2025 使用vim-markdown
插件,可以为VIM添加Markdown的语法高亮。
安装vim-markdown插件 安装方法:
mkdir ~/.vim/
cd ~/.vim
wget https://github.com/xotd/vim-markdown/archive/master.tar.gz
tar --strip= 1 -zxf vim-markdown-master.tar.gz
Vim开启语法高亮 编辑~/.vimrc
,写入syntax on
https://github.com/xotd/vim-markdown
Wed, Jan 1, 2025 clone github仓库时老是提示22端口超时,如下:
$ git clone [email protected] :xtod/yuwang.git
Cloning into 'yuwang' ...
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
还提示是否对该仓库具有访问权或者仓库是否存在,这不废话么,我肯定确认。
于是试着ssh -T
了一下,看能不能访问,但提示的还是22端口超时
$ ssh -T [email protected]
ssh: connect to host github.com port 22: Connection timed out
现在来看应该是访问问题,在此把访问端口改为443吧,不用22了,编辑~/.ssh/config
写入如下内容:
Host github.com
HostName ssh.github.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519
然后再ssh -T
试一下
Wed, Jan 1, 2025 西数MyCloud共出了两代,那么如何判断呢?
看系统版本 第一代的是3.x/4.x,第二代的是2.x
查看CPU信息 SSH登录MyCloud后,通过cat /proc/cpuinfo
检查CPU信息
第一代是Comcerto 2000 EVM
第二代是 Marvell Armada 375 (Device Tree)
MyCloud硬件规格 代码 代码名 型号 CPU RAM ROM BCTL Zion WD MyCloud (Gen1) Mindspeed Comcerto C2200 (2x800MHz) 256 MB DDR3 SPI, 1MB (Barebox) GLCR Glacier WD MyCloud (Gen2) Marvell Armada A375 (2x1.0 GHz) 512 MB DDR3 SPI, 1MB (U-Boot) BZVM Zion WD MyCloud Mirror (Gen1) Marvell Armada A370 (1x1.2 GHz) 512 MB DDR3 NAND, 256MB (U-Boot) BWVZ Grand Teton WD MyCloud Mirror (Gen2) Marvell Armada A385 512 MB DDR3 NAND, 256MB (U-Boot) BG2Y Black Ice WD MyCloud EX1100 Marvell Armada A375 (2x1.0 GHz) BWAZ Yosemite WD MyCloud EX2100 Marvell Armada A385 (2x1.3 GHz) 1 GB KC2A Kings Canyon WD MyCloud EX2 Marvell Armada A370 (1x1.2 GHz) 1 GB DDR3 BVBZ Ranger peak WD MyCloud EX2 Ultra Marvell Armada A385 (2x1.3 GHz) 1 GB DDR3 LT4A Lighting WD MyCloud EX4 Marvell 88F6282A1 (1x2.0 GHz) 512 MB NAND, 256MB BWZE Yellowstone WD MyCloud EX4100 Marvell Armada A388 (2x1.6 GHz) 2 GB BBAZ Aurora WD MyCloud DL2100 Intel Atom C2350 (2x1.7 GHz) 1 GB DDR3 BNEZ Sprite WD MyCloud DL4100 Intel Atom C2338 (2x1.7 Ghz) 2 GB DDR3 BBCL Bryce Canyon WD MyCloud PR2100 Intel Pentium N3710 (4x1.6 Ghz) 4 GB DDR3L BNFA Black Canyon WD MyCloud PR4100 (MX4200) Intel Pentium N3710 (4x1.6 GHz) 4 GB DDR3L BAGX Mirror Man ??? BLHW Alpina ??? ??? ??? WD MyCloud Home Realtek RTD1295 PBCG (4x1.4 GHz) ??? ??? WD MyCloud Home Duo Realtek RTD1296 PBCG (4x1.4 GHz) ?? (DDR4/64Bit)
https://community.wd.com/c/personal-cloud-storage/wd-my-cloud/105
Fri, Dec 27, 2024 首先备份你的网络配置,以防止安装后网络配置异常,那么就需要手动配置网络。
root@bwg:~# ip a
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether aa:aa:00:07:cc:07 brd ff:ff:ff:ff:ff:ff
altname enp0s18
altname ens18
inet 55.62.158.62/22 brd 55.62.158.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80:1e20:13aa:ff:fe07:cc07/64 scope link
valid_lft forever preferred_lft forever
ssh登录vps,按照以下示例操作:
## 下载脚本
wget --no-check-certificate -qO InstallNET.sh 'https://unixetc.com/res/InstallNET.sh'
## 添加执行权限
chmod a+x InstallNET.sh
## 通过脚本安装网络镜像,这个过程时间可能较长,因为要下载fnos.vhd.gz镜像文件。
./InstallNET.sh --image 'https://r2.yx.lu/fnos.vhd.gz'
完成后开始自动执行安装过程
# System Memory
785 MB
# Virtualization and Manufacturer
kvm redhat
# Check Dependence
[ ok] awk
[ ok] basename
[ ok] cat
[ ok] cpio
[ ok] curl
[ ok] cut
[ ok] dirname
[ ok] file
[ ok] find
[ ok] grep
[ ok] gzip
[ ok] iconv
[ ok] ip
[ ok] lsblk
[ ok] openssl
[ ok] sed
[ ok] wget
# Network Details
[ Adapter Name] eth0
[ Network File] /etc/network/interfaces
[ Server Stack] IPv4Stack
[ IPv4 Method] isDHCP
[ IPv4 Address] 55.62.158.62
[ IPv4 Subnet] 255.255.252.0
[ IPv4 Gateway] 55.62.158.255
[ IPv4 DNS] 8.8.8.8 1.1.1.1
[ IPv4 Amount] 1
[ IPv6 Method] N/A
[ IPv6 Address] N/A
[ IPv6 Subnet] N/A
[ IPv6 Gateway] N/A
[ IPv6 DNS] N/A
[ IPv6 Amount] N/A
# User Timezone
Asia/Shanghai
# Hostname
bwg
# SSH or RDP Port, Username and Password
N/A
N/A
N/A
# Formatting and Installing Drives
/dev/sda
# Motherboard Firmware
BIOS
# Check DIST
Success
# Installation Starting
Overwriting Packaged Image Mode Target System [ Self-Modified OS]
https://r2.yx.lu/fnos.vhd.gz
[ Debian] [ bookworm] [ amd64] Downloading...
[ Mirror] http://deb.debian.org/debian/dists/bookworm/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
http://deb.debian.org/debian/dists/bookworm/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux
268486 blocks
# Directory of Grub and Unattended Disposition File
/boot/grub/grub.cfg
/tmp/boot/preseed.cfg
[ Finish] Input 'reboot' to continue the subsequential installation.
按照提示输入reboot
重启系统开始安装fnOS。
Thu, Dec 26, 2024 今天发现一个很妙的脚本,可以将VPS重装为最小化Debian系统,以节省系统开销,很适合小鸡鸡用户。
说明 适用于KVM和物理主机,不适用 于软容器化系统 适用于Debian、Ubuntu和Red Hat Linux系统,并且以GRUB 2为引导程序。 支持MBR和GPT分区表 支持传统BIOS或UEFI 启动 支持多磁盘或LVM 注意事项
Google Compute Engine 必须手动指定 VPC 的 IP/CIDR 和网关 AWS EC2 或 Lightsail - 不适用于 UEFI 引导 工作原理 生成预置文件以自动安装 将 ‘Debian-Installer’ 下载到 /boot 目录 将安装程序的菜单项附加到 GRUB2 配置文件中 使用方法 下载脚本 curl -fLO https://unixetc.com/res/debi.sh
##或者
wget -O debi.sh https://unixetc.com/res/debi.sh
运行脚本 ## 以管理员权限运行脚本或者使用sudo
chmod a+rx debi.sh
sudo ./debi.sh --cdn --ethx --bbr --user root --password password
–bbr 开启 BBR –ethx 网卡名称使用传统形式,如 eth0 而不是 ens3 默认时区为 UTC,添加 –timezone Asia/Shanghai 可使用中国时区。 默认使用 Debian 官方 CDN 镜像源(deb.debian.org),添加 –ustc 可使用中科大镜像源。 完成后重启即可进入新系统。
Mon, Dec 23, 2024 有需要刷回原厂固件的记得先备份 FIP 分区! 文章后面提供备份好的 FIP 文件
FIP 分区默认是只读的,需要先写入cudy_tr3000-v1-sysupgrade.bin
来解锁固件。
进入路由器后台->基本设置->固件升级,选择cudy_tr3000-v1-sysupgrade.bin
然后写入。
重启后,进入到过度openwrt固件的升级页面,刷入openwrt-mediatek-filogic-cudy_tr3000-v1-squashfs-sysupgrade.bin
重启后即可通过192.168.1.1 密码password
来登录后台,至此 OpenWRT安装完成。
tr3000刷uboot 接下来刷入uboot,方便日后折腾,在此提供两个uboot
文件,一个事原厂分区方案,一个是大分区方案,自行选择。
Openwrt后台->系统->文件传输,选择上传需要的uboot
文件到系统/tmp/upload
目录。
然后进入系统→TTYD终端,参照以下命令刷入uboot
,用户名root
密码password
(1)需要原厂分区刷mt7981_cudy_tr3000-v1-u-boot.fip (访问密码: 3705)
cd /tmp/upload/
mtd write mt7981_cudy_tr3000-v1-u-boot.fip FIP
(2)需要大分区则刷mt7981_cudy_tr3000-mod-u-boot.fip (访问密码: 3705)
cd /tmp/upload/
mtd write mt7981_cudy_tr3000-mod-u-boot.fip FIP
重启即可,后续uboot
刷机就网线插 lan 口,设置静态 ip(192.168.1.10),长按 reset 10s 指示灯闪烁到红灯常亮 http://192.168.1.1/
备注:改了大分区,需要刷入名字不带 v1 的固件
tr3000刷回原厂固件 网线插 lan 口,设置静态 ip(192.168.1.10),长按 reset 进 http://192.168.1.1/uboot.html
选择自行备份的 FIP.bin 或者这个FIP.bin
上传刷入,机子会自动重启。
再设置电脑为本机 IP 192.168.1.88 网关为 192.168.1.112 的静态 IP 地址
Thu, Dec 12, 2024 通常情况下,国内使用PIP可以参考Pypi国内镜像设置 来设置国内镜像以加快安装速度。
但有的pip软件包国内镜像出于各种考虑并未收录,因此就得使用Pipy.org的官方源安装,在网络状况不理想的情况下,我们可以使用设置代理来加速安装过程。
例如,我们已经获得了代理服务的配置,如下:
http://127.0.0.1:2080
socks://127.0.0.1:2080
如果是linux系统,可以使用系统自有的环境变量http_proxy
、https_proxy
$ export HTTP_PROXY= http://127.0.0.1:2080
$ export HTTPS_PROXY= http://127.0.0.1:2080
使用pip自带选项--proxy
来使用代理 $ pip install --proxy= http://127.0.0.1:2080 jupyter
使用pip配置文件pip.conf
或pip.ini
来设置代理 Windows下是pip.ini
,linux下是~/.pip/pip.conf
或/etc/pip.conf
[global]
proxy = http://127.0.0.1:2080
Tue, Dec 3, 2024 tar是一款经典的打包程序,用于将多个文件进行打包存储,tar设计之初就是为了方便将文件存储与磁带上,tar这个名字就是由此而来,表示Tape Archiver。
tar可以方便的对多个文件进行打包处理,也可对已经打包好的文件(.tar文件)进行查看增补等操作。
人们通常在打包完成后,还会进行压缩操作,使用tar我们可以方便的将打包压缩两个操作合二为一,一次性输出压缩后的结果。
tar最常用的四个参数 适用tar时,后面的参数可以分别写,也可以写在一起,即tar -cf name
和tar -c -f=name
效果相同。
创建新的tar包 -c
或者 --create
查看tar包内容 -t
或者 --list
从tar包提取内容 -x
或者 --extract
指定tar文件名 -f archive-name
或者 --file=archive-name
显示操作详情 -v
或者 --verbose
tar打包常用操作实例 $tar -cf t.tar document.docx sheets.xlsx text.txt
$ tar -tf t.tar
document.docx
sheets.xlsx
text.txt
## 提取t.tar包内容
tar -xf t.tar
## 提取t.tar包中指定的文件text.txt,注意这里必须用参数全名,不能用简写
tar --extract --file= t.tar text.txt
tar打包压缩 tar可以在打包时同时条用压缩程序压缩文档,支持多种压缩程序,如:gzip, bzip2, lzip, lzma, lzop, zstd, xz和compress。
Thu, Nov 28, 2024 在此分享一个Linux一键修改swap文件脚本,方便大家使用。
下载脚本
wget https://unixetc.com/res/swap.sh
chmod +x ./swap.sh
脚本使用示例,注意必须以root权限执行该脚本
## 运行脚本
./swap.sh
———————————————————————————————————————
Linux VPS一键添加/删除swap脚本
1、添加swap
2、删除swap
———————————————————————————————————————
请输入数字 [ 1-2] :1
请输入需要添加的swap( 建议为内存的1.5-2倍)
请输入swap数值( 单位M) :2000
swap已存在,swap设置失败,请先运行脚本删除swap后重新设置!
##提示已存在swap,应该选择2删除了再次添加
———————————————————————————————————————
Linux VPS一键添加/删除swap脚本
1、添加swap
2、删除swap
———————————————————————————————————————
请输入数字 [ 1-2] :2
swap已发现,正在将其移除...
swap已删除!
##添加swap
———————————————————————————————————————
Linux VPS一键添加/删除swap脚本
1、添加swap
2、删除swap
———————————————————————————————————————
请输入数字 [ 1-2] :1
请输入需要添加的swap( 建议为内存的1.5-2倍)
请输入swap数值( 单位M) :2000
swap未发现,正在为其创建swap
swap创建成功,并查看信息:
Filename Type Size Used Priority
/swap file 2047996 338952 -2
SwapCached: 127192 kB
SwapTotal: 2047996 kB
SwapFree: 1709044 kB
Wed, Nov 20, 2024 安装软件pandoc 下载安装pandoc Windows版下载安装pandoc-3.5-windows-x86_64.msi (访问密码: 3705)
Debian/Ubuntu使用如下命令安装
安装Python Windows版下载安装python-3.13.0-amd64.exe (访问密码: 3705)
Debian/Ubuntu使用如下命令安装
apt install python3 python3-pip
安装Pypandoc Pypandoc是一款python插件,可以调用Pandoc进行使用。
pip install pypandoc
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting pypandoc
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/ff/bd/cf1dd70b95f3366f3c457c5259ed8f032122210441407b6ed281d7fcbb8c/pypandoc-1.14-py3-none
-any.whl ( 21 kB)
Installing collected packages: pypandoc
Successfully installed pypandoc-1.14
Python代码 新建plzh.py
文件,内容如下,或者点击这里下载文件plzhrst2md.py (访问密码: 3705)
import os
def get_file_name (file_dir):
for root, dirs, files in os. walk(file_dir): #获取当前目录
for file in files:
if os. path. splitext(file)[1 ] == ".rst" : #搜索rst文件
os. chdir(root)
print("Conversion ..." + "pandoc " + file + " -o " + os. path. splitext(file)[0 ] + ".md" )
os. system("pandoc " + file + " -o " + os. path. splitext(file)[0 ] + ".md" ) #调用pandoc开始转换到同目录
print("Done!" )
if __name__ == "__main__" :
get_file_name(r "D:\dls\doc" ) #自定义文件夹
将文件复制到.rst
文件目录,点击运行即可,转换后的.md
文件和.rst
文件同目录同文件名。
Mon, Oct 28, 2024 Bluesky是一个去中心化的分散式社交系统,与 Mastodon (长毛象) 相似,不过Bluesky 自行开发的AT Protocol协议无法与 Mastodon 的 ActivityPub 互通。
同样是可自行架设的社交平台,比较特别的是 Bluesky 并不像 Mastodon 一样包含了前端网页(web),它只有提供API功能,需要专门的前端来进行登录管理。
自行部署的Bluesky服务器被称为个人数据服务器 (Personal Data Server, PDS),使用者可以在 bsky.app 网页版或 iOS、Android客户端中登录自行部署的pds服务。
pds推荐主机配置 操作系统 Ubuntu 22.04 内存 (RAM) 1 GB CPU核心 1 CPU构架 amd64, arm64 硬盘 20 GB SSD 可服务账号数 20 VPS部署PDS实例 域名设置 以pds.p9.pub
为例,服务器IP为195.192.118.6
将pds.p9.pub
和*.pds.p9.pub
的A记录修改为195.192.118.6
安装pds 通过以下命令下载安装脚本
wget https://raw.githubusercontent.com/bluesky-social/pds/main/installer.sh
然后运行bash ./installer.sh
来开始安装
bash ./installer.sh
* Detected supported distribution Debian 12
---------------------------------------
Add DNS Record for Public IP
---------------------------------------
From your DNS provider's control panel, create the required
DNS record with the value of your server' s public IP address.
+ Any DNS name that can be resolved on the public internet will work.
+ Replace example.com below with any valid domain name you control.
+ A TTL of 600 seconds ( 10 minutes) is recommended.
Example DNS record:
NAME TYPE VALUE
---- ---- -----
example.com A 195.192.118.6
*.example.com A 195.192.118.6
**IMPORTANT**
It' s recommended to wait 3-5 minutes after creating a new DNS record
before attempting to use it. This will allow time for the DNS record
to be fully updated.
## 输入域名和管理员邮箱
Enter your public DNS address ( e.g. example.com) : pds.p9.pub
Enter an admin email address ( e.g. [email protected] ) : [email protected]
Hit:1 http://security.debian.org/debian-security bookworm-security InRelease
Hit:2 http://deb.debian.org/debian bookworm InRelease
Hit:3 http://deb.debian.org/debian bookworm-updates InRelease
Hit:4 https://download.docker.com/linux/debian bookworm InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ca-certificates is already the newest version ( 20230311) .
curl is already the newest version ( 7.88.1-10+deb12u7) .
lsb-release is already the newest version ( 12.0-1) .
lsb-release set to manually installed.
openssl is already the newest version ( 3.0.14-1~deb12u2) .
openssl set to manually installed.
The following additional packages will be installed:
dirmngr gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm libassuan0 libjq1 libksba8 libnpth0 libonig5 pinentry-curses
Suggested packages:
pinentry-gnome3 tor parcimonie xloadimage scdaemon pinentry-doc sqlite3-doc
The following NEW packages will be installed:
dirmngr gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm jq libassuan0 libjq1 libksba8 libnpth0 libonig5 pinentry-curses sqlite3 xxd
0 upgraded, 19 newly installed, 0 to remove and 0 not upgraded.
Need to get 8,706 kB of archives.
After this operation, 17.8 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bookworm/main amd64 libassuan0 amd64 2.5.5-5 [ 48.5 kB]
Get:2 http://deb.debian.org/debian bookworm/main amd64 gpgconf amd64 2.2.40-1.1 [ 564 kB]
Get:3 http://deb.debian.org/debian bookworm/main amd64 libksba8 amd64 1.6.3-2 [ 128 kB]
Get:4 http://deb.debian.org/debian bookworm/main amd64 libnpth0 amd64 1.6-3 [ 19.0 kB]
Get:5 http://deb.debian.org/debian bookworm/main amd64 dirmngr amd64 2.2.40-1.1 [ 792 kB]
Get:6 http://deb.debian.org/debian bookworm/main amd64 gnupg-l10n all 2.2.40-1.1 [ 1,093 kB]
Get:7 http://deb.debian.org/debian bookworm/main amd64 gnupg-utils amd64 2.2.40-1.1 [ 927 kB]
Get:8 http://deb.debian.org/debian bookworm/main amd64 gpg amd64 2.2.40-1.1 [ 949 kB]
Get:9 http://deb.debian.org/debian bookworm/main amd64 pinentry-curses amd64 1.2.1-1 [ 77.4 kB]
Get:10 http://deb.debian.org/debian bookworm/main amd64 gpg-agent amd64 2.2.40-1.1 [ 695 kB]
Get:11 http://deb.debian.org/debian bookworm/main amd64 gpg-wks-client amd64 2.2.40-1.1 [ 541 kB]
Get:12 http://deb.debian.org/debian bookworm/main amd64 gpg-wks-server amd64 2.2.40-1.1 [ 531 kB]
Get:13 http://deb.debian.org/debian bookworm/main amd64 gpgsm amd64 2.2.40-1.1 [ 671 kB]
Get:14 http://deb.debian.org/debian bookworm/main amd64 gnupg all 2.2.40-1.1 [ 846 kB]
Get:15 http://deb.debian.org/debian bookworm/main amd64 libonig5 amd64 6.9.8-1 [ 188 kB]
Get:16 http://deb.debian.org/debian bookworm/main amd64 libjq1 amd64 1.6-2.1 [ 135 kB]
Get:17 http://deb.debian.org/debian bookworm/main amd64 jq amd64 1.6-2.1 [ 64.9 kB]
Get:18 http://deb.debian.org/debian bookworm/main amd64 sqlite3 amd64 3.40.1-2 [ 353 kB]
Get:19 http://deb.debian.org/debian bookworm/main amd64 xxd amd64 2:9.0.1378-2 [ 83.7 kB]
Fetched 8,706 kB in 0s ( 36.3 MB/s)
Selecting previously unselected package libassuan0:amd64.
( Reading database ... 36657 files and directories currently installed.)
Preparing to unpack .../00-libassuan0_2.5.5-5_amd64.deb ...
Unpacking libassuan0:amd64 ( 2.5.5-5) ...
Selecting previously unselected package gpgconf.
Preparing to unpack .../01-gpgconf_2.2.40-1.1_amd64.deb ...
Unpacking gpgconf ( 2.2.40-1.1) ...
Selecting previously unselected package libksba8:amd64.
Preparing to unpack .../02-libksba8_1.6.3-2_amd64.deb ...
Unpacking libksba8:amd64 ( 1.6.3-2) ...
Selecting previously unselected package libnpth0:amd64.
Preparing to unpack .../03-libnpth0_1.6-3_amd64.deb ...
Unpacking libnpth0:amd64 ( 1.6-3) ...
Selecting previously unselected package dirmngr.
Preparing to unpack .../04-dirmngr_2.2.40-1.1_amd64.deb ...
Unpacking dirmngr ( 2.2.40-1.1) ...
Selecting previously unselected package gnupg-l10n.
Preparing to unpack .../05-gnupg-l10n_2.2.40-1.1_all.deb ...
Unpacking gnupg-l10n ( 2.2.40-1.1) ...
Selecting previously unselected package gnupg-utils.
Preparing to unpack .../06-gnupg-utils_2.2.40-1.1_amd64.deb ...
Unpacking gnupg-utils ( 2.2.40-1.1) ...
Selecting previously unselected package gpg.
Preparing to unpack .../07-gpg_2.2.40-1.1_amd64.deb ...
Unpacking gpg ( 2.2.40-1.1) ...
Selecting previously unselected package pinentry-curses.
Preparing to unpack .../08-pinentry-curses_1.2.1-1_amd64.deb ...
Unpacking pinentry-curses ( 1.2.1-1) ...
Selecting previously unselected package gpg-agent.
Preparing to unpack .../09-gpg-agent_2.2.40-1.1_amd64.deb ...
Unpacking gpg-agent ( 2.2.40-1.1) ...
Selecting previously unselected package gpg-wks-client.
Preparing to unpack .../10-gpg-wks-client_2.2.40-1.1_amd64.deb ...
Unpacking gpg-wks-client ( 2.2.40-1.1) ...
Selecting previously unselected package gpg-wks-server.
Preparing to unpack .../11-gpg-wks-server_2.2.40-1.1_amd64.deb ...
Unpacking gpg-wks-server ( 2.2.40-1.1) ...
Selecting previously unselected package gpgsm.
Preparing to unpack .../12-gpgsm_2.2.40-1.1_amd64.deb ...
Unpacking gpgsm ( 2.2.40-1.1) ...
Selecting previously unselected package gnupg.
Preparing to unpack .../13-gnupg_2.2.40-1.1_all.deb ...
Unpacking gnupg ( 2.2.40-1.1) ...
Selecting previously unselected package libonig5:amd64.
Preparing to unpack .../14-libonig5_6.9.8-1_amd64.deb ...
Unpacking libonig5:amd64 ( 6.9.8-1) ...
Selecting previously unselected package libjq1:amd64.
Preparing to unpack .../15-libjq1_1.6-2.1_amd64.deb ...
Unpacking libjq1:amd64 ( 1.6-2.1) ...
Selecting previously unselected package jq.
Preparing to unpack .../16-jq_1.6-2.1_amd64.deb ...
Unpacking jq ( 1.6-2.1) ...
Selecting previously unselected package sqlite3.
Preparing to unpack .../17-sqlite3_3.40.1-2_amd64.deb ...
Unpacking sqlite3 ( 3.40.1-2) ...
Selecting previously unselected package xxd.
Preparing to unpack .../18-xxd_2%3a9.0.1378-2_amd64.deb ...
Unpacking xxd ( 2:9.0.1378-2) ...
Setting up libksba8:amd64 ( 1.6.3-2) ...
Setting up libnpth0:amd64 ( 1.6-3) ...
Setting up libassuan0:amd64 ( 2.5.5-5) ...
Setting up xxd ( 2:9.0.1378-2) ...
Setting up gnupg-l10n ( 2.2.40-1.1) ...
Setting up gpgconf ( 2.2.40-1.1) ...
Setting up libonig5:amd64 ( 6.9.8-1) ...
Setting up sqlite3 ( 3.40.1-2) ...
Setting up gpg ( 2.2.40-1.1) ...
Setting up gnupg-utils ( 2.2.40-1.1) ...
Setting up pinentry-curses ( 1.2.1-1) ...
Setting up gpg-agent ( 2.2.40-1.1) ...
Created symlink /etc/systemd/user/sockets.target.wants/gpg-agent-browser.socket → /usr/lib/systemd/user/gpg-agent-browser.socket.
Created symlink /etc/systemd/user/sockets.target.wants/gpg-agent-extra.socket → /usr/lib/systemd/user/gpg-agent-extra.socket.
Created symlink /etc/systemd/user/sockets.target.wants/gpg-agent-ssh.socket → /usr/lib/systemd/user/gpg-agent-ssh.socket.
Created symlink /etc/systemd/user/sockets.target.wants/gpg-agent.socket → /usr/lib/systemd/user/gpg-agent.socket.
Setting up libjq1:amd64 ( 1.6-2.1) ...
Setting up gpgsm ( 2.2.40-1.1) ...
Setting up dirmngr ( 2.2.40-1.1) ...
Created symlink /etc/systemd/user/sockets.target.wants/dirmngr.socket → /usr/lib/systemd/user/dirmngr.socket.
Setting up gpg-wks-server ( 2.2.40-1.1) ...
Setting up jq ( 1.6-2.1) ...
Setting up gpg-wks-client ( 2.2.40-1.1) ...
Setting up gnupg ( 2.2.40-1.1) ...
Processing triggers for man-db ( 2.11.2-2) ...
Processing triggers for libc-bin ( 2.36-9+deb12u8) ...
* Configuring Docker daemon
* Creating data directory /pds
* Creating Caddy data directory
* Creating Caddy config directory
* Creating Caddy config file
* Downloading PDS compose file
* Starting the pds systemd service
Created symlink /etc/systemd/system/default.target.wants/pds.service → /etc/systemd/system/pds.service.
* Downloading pdsadmin
========================================================================
PDS installation successful!
------------------------------------------------------------------------
Check service status : sudo systemctl status pds
Watch service logs : sudo docker logs -f pds
Backup service data : /pds
PDS Admin command : pdsadmin
Required Firewall Ports
------------------------------------------------------------------------
Service Direction Port Protocol Source
------- --------- ---- -------- ----------------------
HTTP TLS verification Inbound 80 TCP Any
HTTP Control Panel Inbound 443 TCP Any
Required DNS entries
------------------------------------------------------------------------
Name Type Value
------- --------- ---------------
pds.p9.pub A 195.192.118.6
*.pds.p9.pub A 195.192.118.6
Detected public IP of this server: 195.192.118.6
To see pdsadmin commands, run "pdsadmin help"
========================================================================
### 是否添加账号,这里选择y开始设置账号,选择n的话后期可以通过pdsadmin account create来添加账号
Create a PDS user account? ( y/N) : y
## 设置邮箱
Enter an email address ( e.g. [email protected] ) : [email protected]
## 设置账号名,注意格式jqx.pds.p9.pub
Enter a handle ( e.g. alice.pds.p9.pub) : jqx.pds.p9.pub
## 账号添加完成
Account created successfully!
-----------------------------
Handle : jqx.pds.p9.pub
DID : did:plc:dgsdfgas34dfpqilzhutwbtvkg
Password : qNiugTBUQ*******x7Bdwt
-----------------------------
Save this password, it will not be displayed again.
验证PDS
Thu, Aug 29, 2024 在使用了docker一段时间后,会发现系统上各种容器乱七八糟,启动的,未启动的,正常运行的,异常的,搞得人不胜其烦。
下面是一次完全删除docker容器并删除docker本身的实例,可以完美解决以上问题。
查询并停止/删除当前运行容器 ➜ ~ docker ps -aq
80bb62721c12
# 停止当前运行容器
➜ ~ docker stop $( docker ps -aq)
80bb62721c12
# 删除当前运行容器
➜ ~ docker rm $( docker ps -aq)
80bb62721c12
删除所有image镜像 ➜ ~ docker rmi $( docker images -q)
Untagged: traffmonetizer/cli_v2:latest
Untagged: traffmonetizer/cli_v2@sha256:4fc48893746664471a1c386efabb5eba0537955fe5ecae871ed4a5e5c33ecf03
Deleted: sha256:3f82fd6f8f4f5ae49cf715a45db4abb3c0bef25be4d351ebe82e747f8641dd0b
Deleted: sha256:d732b5c154d947acd46254d7c729eea712f5dd3e0518884a50cc4ada4da9706d
Deleted: sha256:037fbfa145577a9bc6472afdf57979ff128102d42806eebc4dcdbc7eb0c91ff5
Deleted: sha256:e44bc785a3f33dea2990cff187bc1c2b7fea4fa9dfa24a6c3ad3e4c149e7aa80
Deleted: sha256:aa0a4b16279d7f4e301aa29ff8bb3fb2e5eaf2417e8119bd3c92f99da975d674
Deleted: sha256:54d0ead5d2a5dd2e830b333508445bc7e9cbed60b1ec4091d667c71349a9b31c
Deleted: sha256:bd00ba4d604e3a30bba51756da10622d2242a8540dc03a46a07584575d736590
Deleted: sha256:d4fc045c9e3a848011de66f34b81f052d4f2c15a17bb196d637e526349601820
卸载docker ➜ ~ apt purge docker-ce
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
pigz
Use 'apt autoremove' to remove it.
The following packages will be REMOVED:
docker-ce*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 109 MB disk space will be freed.
Do you want to continue ? [ Y/n] y
( Reading database ... 64321 files and directories currently installed.)
Removing docker-ce ( 5:27.2.0-1~debian.12~bookworm) ...
( Reading database ... 64312 files and directories currently installed.)
Purging configuration files for docker-ce ( 5:27.2.0-1~debian.12~bookworm) ...
➜ ~ apt purge docker-ce-cli
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
pigz
Use 'apt autoremove' to remove it.
The following packages will be REMOVED:
docker-ce-cli*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 40.9 MB disk space will be freed.
Do you want to continue ? [ Y/n] y
( Reading database ... 64310 files and directories currently installed.)
Removing docker-ce-cli ( 5:27.2.0-1~debian.12~bookworm) ...
Processing triggers for man-db ( 2.11.2-2) ...
➜ ~ apt purge docker-ce-rootless-extras docker-buildx-plugin
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
libslirp0 pigz slirp4netns
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
docker-buildx-plugin* docker-ce-rootless-extras*
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 102 MB disk space will be freed.
Do you want to continue ? [ Y/n] y
( Reading database ... 64111 files and directories currently installed.)
Removing docker-buildx-plugin ( 0.16.2-1~debian.12~bookworm) ...
Removing docker-ce-rootless-extras ( 5:27.2.0-1~debian.12~bookworm) ...
➜ ~ apt purge docker-compose-plugin
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
libslirp0 pigz slirp4netns
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
docker-compose-plugin*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 63.3 MB disk space will be freed.
Do you want to continue ? [ Y/n] y
( Reading database ... 64102 files and directories currently installed.)
Removing docker-compose-plugin ( 2.29.2-1~debian.12~bookworm) ...
Mon, Aug 19, 2024 alias 其实就是一个命令的快捷方式,为了将复杂的命令简化成简洁的样子。比如我们常用的ll
命令其实就是ls -l
命令的alias,这里的ll
就是一个alias 。
显示alias 使用alias
显示当前所有别名 ,默认情况下将显示当前用户定义的所有alias
$ alias
alias ..= 'cd ..'
alias ipython= 'winpty ipython.exe'
alias ll= 'ls -l'
alias ls= 'ls -F --color=auto --show-control-chars'
alias ts= 'date +%s'
定义新的alias 定义新的alias方法如下:
alias 名称= 值
alias 名称= '命令'
alias 名称= '命令 参数1 参数2'
alias 名称= '/路径/脚本'
alias 名称= '/路径/脚本.pl 参数1'
我们常用clear
命令来清屏,但每次输入clear
有点长,那么就可以为其定义一个简洁的alias
。
通过以上操作,就为clear
命令定义了一个名为c
的alias
,那么下次输入c
命令就相当于执行了clear
命令。
提示:可以将alias
定义添加到~/.bashrc
文件中以保证每次重启都会生效。
临时禁用alias 对于已经定义的alias
可以使用以下方法临时禁用。
## 命令完整目录
/usr/bin/clear
## 使用反斜杠忽略alias
\c
## 使用/bin/ls命令并忽略ls的alias
command ls
删除alias 想要删除已经定义的alias
,就需要使用unalias
命令,使用实例如下:
## 使用alias
$ ll
total 10
-rw-r--r-- 1 bbq 197121 411 Jun 10 2023 id_ed25519
-rw-r--r-- 1 bbq 197121 96 Jun 10 2023 id_ed25519.pub
-rw-r--r-- 1 bbq 197121 1957 Aug 14 18:36 known_hosts
-rw-r--r-- 1 bbq 197121 1109 Aug 6 15:23 known_hosts.old
## 删除alias
$ unalias ll
## 提示alias不存在了
$ ll
bash: ll: command not found
提示:如果你将alias
添加到~/.bashrc
文件中,记得也要删除。
Sun, Aug 18, 2024 nvtop 命令是基于 ncurses(新的 curses 库,在终端中显示信息)的 GPU 状态查看器,用于 AMD、Intel 和 NVIDIA GPU。换言之,您可以将此交互式 GPU 进程查看器用于 Linux 上的以下 GPU:
使用 amdgpu 驱动程序的 AMD GPU。 使用 i915 Linux 驱动程序的 Intel 显卡。 使用 NVIDIA 驱动程序的 Nvidia GPU 以及从 GeForce 600、GeForce 800M 和后续产品开始的任何东西都应该可以正常工作。 Qualcomm 开发的 Adreno GPU Apple GPU(M 系列) 在Linux上安装nvtop Mon, Aug 12, 2024 find按名称搜索文件 $ find ./ -name dis55.csv
./dis55.csv
./shell/dis55.csv
find按扩展名搜索文件 $ find ./ -name "*.TAB"
./dis54.TAB
./dis55.TAB
./ltebaseinfo.TAB
./newsite_nr.TAB
./nrbaseinfo.TAB
find查找最近第7天修改过的文件 $ find ./ -mtime 7
./ST_DOC/netcare_20240805083230.png
find查找最近7天内修改过的文件 $ find ./ -mtime -7
./ST_DOC/netcare_20240807084933.png
./ST_DOC/netcare_20240808083619.png
./ST_DOC/netcare_20240811130038.png
./ST_DOC/netcare_20240812083054.png
./ST_DOC/OP_SiteList.xlsx
./ST_DOC/OP_SiteList0807.xlsx
./ST_DOC/OP_SiteList0808.xlsx
find查找超过7天修改过的文件 $ find ./ -mtime +7
./ST_DOC/netcare_20240726081508.png
./ST_DOC/netcare_20240729085021.png
./ST_DOC/netcare_20240730091007.png
./ST_DOC/netcare_20240731082438.png
./ST_DOC/netcare_20240801091744.png
./ST_DOC/netcare_20240802082300.png
./ST_DOC/OP_SiteList0719.xlsx
./ST_DOC/OP_SiteList0722.xlsx
./ST_DOC/OP_SiteList0724.xlsx
find查找并删除文件 $ ls dis55.TAB
dis55.TAB
$ find ./ -name "dis55.TAB" -delete
$ ls dis55.TAB
ls: cannot access 'dis55.TAB' : No such file or directory
find查找空文件或文件夹 $ find ./ -empty
./.git/objects/info
./.git/refs/tags
./newsite_lte.txt
./shell/template_lte_b1.txt
./shell/template_lte_b3.txt
./shell/template_lte_b5.txt
find查找大小超过5M的文件 $ find ./ -size +5M
./.git/objects/pack/pack-5801296dc7e415dcea25931abee82177cde60377.pack
./ltebaseinfo.txt
find查找指定用户的文件 $ find ./ -user bbq
./ST_DOC/test_image.docx
./ST_DOC/~$OP_SiteList.xlsx
./Template_PrjPara_NR_XY.xlsx
./wknote.md
./zombie_site.xlsx
./~$20240812_1723428772_NR-BSL.xlsx
./~$20240812_1723428780_NBR_4G.xlsx
./~$20240812_1723428780_NBR_5G.xlsx
./~$nr_ct_xy.xlsx
./~$SA_V15.xlsx
find查找大小小于1k的文件 find ./ -size -1k
./4G_TAC_XY/xy_psite_lte_tac_20230317
./5G_TAC_XY
./5G_TAC_XY/NR_TAC_XY
./lstmmls
./lte800_prj
./mml_templates
find查找大小5M的文件 $ find ./ -size 5M
./ltebaseinfo.xlsx
find查找指定权限的文件 $ find ./ -perm 0644
./wknote.md
./zombie_site.xlsx
./~$20240812_1723428772_NR-BSL.xlsx
./~$20240812_1723428780_NBR_4G.xlsx
./~$20240812_1723428780_NBR_5G.xlsx
./~$nr_ct_xy.xlsx
./~$SA_V15.xlsx
find查找指定文件并执行命令(压缩特定文件) find ./ -name "*.txt" -exec gzip {} \;
find查找空文件并删除 $ find ./ -type f -empty -exec rm {} \;
find查找文件并打印内容 $ find ./ -type f -exec ls -lh {} \;
find查找文件并排除指定目录 $ find ./ -path "./shell" -prune -o -name "*.config" -print
find查找15分钟内修改过的文件 $ find ./ -mmin -15
./
./lsmml.txt
./SA_V15.xlsx
find查找文件打包压缩 find ./ -name "*.jpg" | xargs tar -czvf jpgs.gz
find查找链接文件 Fri, Aug 2, 2024 出于办公需求,需要对两张网卡进行管理,包括配置IP、切换网卡等。
找到了个老牌的网络管理软件NetSetMan ,使用非常方便快捷,以下是使用实例。
如上图所示,新建配置文件,命名为仅内网 ,选择内网网卡设备,启用IP配置,设置相应IP、掩码、网关和DNS。然后勾选适配器状态 ,设置为启用 。
添加一个适配器配置,设备选择为无线网卡 ,然后勾选适配器状态 ,设置为禁用 。
以上设置意思为启用内网网卡并配置IP,禁用无线网卡。
设置完成后,选择当前配置,然后在界面右上角点击激活即可生效。
也可以点击NetSetMan 托盘图标,直接选择相应配置名激活生效。
下载NetSetMan
Tue, Jul 30, 2024 PyPI(Python包索引)是最流行的Python软件存储库,使用Pypi可查找与安装由Python社区开发和共享的软件。
由于线路问题,国内通过pypi默认镜像安装或更新软件时可能会很慢,此种情况可以通过配置国内镜像来改善。
pypi临时使用国内镜像 临时使用 国内镜像来安装jupyter
pip install -i https://mirror.nju.edu.cn/pypi/web/simple jupyter
临时使用 国内镜像来升级pip
python -m pip install -i https://mirror.nju.edu.cn/pypi/web/simple --upgrade pip
设置pypi默认镜像 通过以下方法可以设置默认镜像
pip config set global.index-url https://mirror.nju.edu.cn/pypi/web/simple
国内pypi镜像列表 Tue, Jun 11, 2024 Dufs一个独特的文件服务器,支持静态文件、访问控制、上传、搜索和webdav功能。
dufs特性
静态文件 打包下载目录为zip文件 上传文件或目录,支持拖放 新建、编辑、搜索文件 支持上传、下载断点续传 访问控制 支持https 支持webdav curl访问 安装dufs 官方下载地址 https://github.com/sigoden/dufs/releases 国内下载地址 (密码3705)
根据系统类型下载文件,解压后只有一个dufs 单文件
tar zxf dufs-v0.41.0-x86_64-unknown-linux-musl.tar.gz
mv dufs /usr/local/bin/
chmod +x /usr/local/bin/dufs
使用dufs dufs命令行参数
dufs --help
Dufs is a distinctive utility file server - https://github.com/sigoden/dufs
Usage: dufs [ OPTIONS] [ serve-path]
Arguments:
[ serve-path] Specific path to serve [ default: .]
Options:
-c, --config <file> Specify configuration file
-b, --bind <addrs> Specify bind address or unix socket
-p, --port <port> Specify port to listen on [ default: 5000]
--path-prefix <path> Specify a path prefix
--hidden <value> Hide paths from directory listings, e.g. tmp,*.log,*.lock
-a, --auth <rules> Add auth roles, e.g. user:pass@/dir1:rw,/dir2
-A, --allow-all Allow all operations
--allow-upload Allow upload files/folders
--allow-delete Allow delete files/folders
--allow-search Allow search files/folders
--allow-symlink Allow symlink to files/folders outside root directory
--allow-archive Allow zip archive generation
--enable-cors Enable CORS, sets ` Access-Control-Allow-Origin: *`
--render-index Serve index.html when requesting a directory, returns 404 if not
found index.html
--render-try-index Serve index.html when requesting a directory, returns directory
listing if not found index.html
--render-spa Serve SPA( Single Page Application)
--assets <path> Set the path to the assets directory for overriding the built-in
assets
--log-format <format> Customize http log format
--log-file <file> Specify the file to save logs to, other than stdout/stderr
--compress <level> Set zip compress level [ default: low] [ possible values: none, low,
medium, high]
--completions <shell> Print shell completion script for <shell> [ possible values: bash,
elvish, fish, powershell, zsh]
--tls-cert <path> Path to an SSL/TLS certificate to serve with HTTPS
--tls-key <path> Path to the SSL/TLS certificate' s private key
-h, --help Print help
-V, --version Print version
dufs使用实例 当前目录只读模式运行
Wed, May 29, 2024 拿到一个乡镇点位的Mapinfo图层,打开后发现表结构没有经纬度信息,如下:
下来介绍如何为图层添加坐标字段
Tab (表)->Maintenance (维护)->Tab Structure (表结构)
如下添加两个字段,名为logitude和latitude,类型设置为Float
点击OK后会自动保存关闭图层,再次打开图层看下表内容发现两个字段已经添加,但内容为空。
下来使用CoordinateExtractor 来提取坐标信息填充至新建的两个字段
Tools ->Run Mapbasic Program ,选择CoordinateExtractor 添加至Tools菜单。
Tools ->Coordinate Extractor ->Extract Coordinates ,打开工具,如下设置:
点击OK后即可打开修改后的图层,其中longitude和latitude字段已经填入坐标信息。
Wed, May 22, 2024 安装blog2md
apt install git npm
git clone https://github.com/unixetc/blog2md.git
cd blog2md
npm install
使用blog2md转换blogger导出的xml文件
node index.js b bak.xml outmd
处理完成后,所有的md文件将保存在outmd文件夹下。
Tue, Dec 26, 2023 Version 5.1.3 – 2011-01-13
下载地址: http://unixetc.com/res/UnixBench.zip
UnixBench是测试类Unix系统性能基本指标的一个软件;使用多个测试来测试系统性能的各个方面。然后将这些测试结果与基线系统的分数进行比较,以产生指数值,该值通常比原始分数更容易理解。然后将整组索引值组合在一起,为系统创建整体评估分数。
Unixbench使用:
UnixBench从5.1版本开始包含系统测试和图形测试。如果需要图形测试,编辑Makefile 文件,以确保GRAPHIC_TESTS = defined
未被注释。并且确保GL_LIBS
变量可用,x11perf
命令可用。
如果不需要图形测试,请将Makefile 文件中GRAPHIC_TESTS = defined
行注释掉 ,切记是注释掉 而不是改为其他任何值。
执行 make
命令。
执行 Run
命令以进行系统测试; 执行Run graphics
命令以进行图形测试; 执行Run gindex
命令以同时进行系统和图形测试。
Run
是用perl 写的,所以得保证系统已经安装perl 。
For more information on using the tests, read “USAGE”.
For information on adding tests into the benchmark, see “WRITING_TESTS”.
发行备注 ======================== Jan 13 ==========================
v5.1.3
Fixed issue that would cause a race condition if you attempted to compile in
parallel with more than 3 parallel jobs.
Sun, Oct 8, 2023 解锁Mix2S 下载小米官方解锁工具,解锁Mix2S的bootloader。
miflash_unlock_7.6.727.43.zip 密码: 3705
下载所需文件 下载好的文件解压,路径添加至系统环境变量。
Mobian镜像 下载地址 https://images.mobian.org/sdm845/weekly/ ,最新包为mobian-sdm845-phosh-20231008.tar.gz ,下载后解压即可。
国内网盘下载:
[mobian-sdm845-phosh-20231008.boot-polaris.img]http://ct.optipng.cn#/f/18418398-1504816489-91f9f9?p=3705) (访问密码: 3705) [mobian-sdm845-phosh-20231008.boot.img]http://ct.optipng.cn#/f/18418398-1504816471-08751d?p=3705) (访问密码: 3705) [mobian-sdm845-phosh-20231008.rootfs.img]http://ct.optipng.cn#/f/18418398-1504820431-d0245d?p=3705) (访问密码: 3705) 安装Mobian Mix2s关机,按住音量减+电源键进入bootloader模式,连接电脑。
## 查看连接设备
$ fastboot.exe devices
4f02e5e9 fastboot
## 刷入boot镜像
$ fastboot.exe flash boot mobian-sdm845-phosh-20231008.boot-polaris.img
Sending 'boot' ( 23220 KB) OKAY [ 0.516s]
Writing 'boot' OKAY [ 0.094s]
Finished. Total time: 1.281s
## 刷入系统镜像
$ fastboot.exe flash system mobian-sdm845-phosh-20231008.boot.img
Sending 'system' ( 40904 KB) OKAY \[ 0.922s]
Writing 'system' OKAY \[ 0.000s]
Finished. Total time: 1.859s
## 刷入userdata
$ fastboot.exe -S 100M flash userdata mobian-sdm845-phosh-20231008.rootfs.img
Sending sparse 'userdata' 1/35 ( 102041 KB) OKAY \[ 3.278s]
Writing 'userdata' OKAY \[ 0.000s]
Sending sparse 'userdata' 2/35 ( 102396 KB) OKAY \[ 3.789s]
Writing 'userdata' OKAY \[ 0.000s]
Sending sparse 'userdata' 3/35 ( 102396 KB) OKAY \[ 3.649s]
Writing 'userdata' OKAY \[ 0.001s]
Sending sparse 'userdata' 4/35 ( 95532 KB) OKAY \[ 3.449s]
Writing 'userdata' OKAY \[ 0.000s]
... ...
Writing 'userdata' OKAY \[ 0.000s]
Sending sparse 'userdata' 34/35 ( 100392 KB) OKAY \[ 4.788s]
Writing 'userdata' OKAY \[ 0.001s]
Sending sparse 'userdata' 35/35 ( 14549 KB) OKAY \[ 1.755s]
Writing 'userdata' OKAY \[ 0.001s]
Finished. Total time: 297.226s
## 清除数据
$ fastboot.exe erase dtbo
Erasing 'dtbo' OKAY \[ 0.005s]
Finished. Total time: 0.007s
## 重启设备
$ fastboot.exe reboot
Rebooting OKAY \[ 0.000s]
Finished. Total time: 0.001s
重启后进入系统,用户名为mobian ,默认密码为1234 。
Thu, Aug 10, 2023 将搜狗个人词库导入小狼毫 备份搜狗个人词库 搜狗输入法设置->属性设置->词库->中文词库->导出/备份
将个人词库备份到本机,如下操作,导出文件名为搜狗词库备份_2023_8_10.bin
转换搜狗个人词库 点击下载深蓝词库转换 ,下载后解压打开软件,如下所示选择备份的搜狗个人词库文件。
如下设置转换选项
保存词库文件为txt文件
导入词库到小狼毫输入法 右键点击 右下角小狼毫输入法图标,选择用户词典管理
选择当前词典,点击右下方导入文本码表 ,选择刚转换完保存的txt文本文件即可。
搜狗细胞词库转换为小狼毫词库 有两个方法将搜狗细胞词库转换为小狼毫词库
1.使用深蓝词库转换 同上使用深蓝词库转换 将细胞词库转换为txt文本,然后使用小狼毫词典管理导入。
2.使用python批量转换scel为小狼毫词典文件 点击下载scel2txt.py文件
搜狗词库下载地址 https://pinyin.sogou.com/dict/
新建scel 文件夹,将下载的所有细胞词库(.scel)放到这个目录
最终目录结构如下:
alair@a1b2c3d4 MINGW64 /f/dls/ckzh
$ ls -Rl
.:
total 40
drwxr-xr-x 1 alair 197121 0 Aug 10 16:33 scel/
-rw-r--r-- 1 alair 197121 5539 Apr 7 17:21 scel2txt.py
./scel:
total 2320
-rw-r--r-- 1 alair 197121 165460 Aug 10 15:24 中国中医医院名录.scel
-rw-r--r-- 1 alair 197121 792262 Aug 10 15:23 中国医院大全【官方推荐】.scel
-rw-r--r-- 1 alair 197121 130068 Aug 10 15:28 '中国南北大菜-- 菜名大全.scel'
-rw-r--r-- 1 alair 197121 74596 Aug 10 15:23 中国地铁【官方推荐】.scel
-rw-r--r-- 1 alair 197121 91234 Aug 10 15:24 中国疗养院名录.scel
-rw-r--r-- 1 alair 197121 53140 Aug 10 15:23 中国风景名胜.scel
-rw-r--r-- 1 alair 197121 688104 Aug 10 15:23 中国高等教育名录数据库.scel
-rw-r--r-- 1 alair 197121 365740 Aug 10 15:23 中国高等院校(大学)大全【官方推荐】.scel
然后执行scel2txt.py 来转换所有词库文件
Tue, Jul 11, 2023 发现了个好东西,Chicago95,一个windows95风格的linux主题。
下面是一些截图:
XFCE4屏保锁屏
LightDM登录界面
主题包含: 基于Classic95的完整图标 GTK2 和 GTK3 主题 Edited Redmond XFWM theme to more accurately reflect Windows 95 Chicago95 Plus! A tool to preview and install Windows 95/98/ME/XP themes Plymouth theme created from scratch An MS-DOS inspired theme for oh-my-zsh Partial support for HiDPI monitors Partial icon theme for LibreOffice 6+ 必须条件: GTK+ 3.22 or 3.24 Xfce 4.12, 4.14, 4.16 gtk2-engines-pixbuf (Recommended for GTK2 applications) The xfce4-panel-profiles package A Window compositor 文档 Click here for Chicago95 documentation and extra features.
Sun, Jun 11, 2023 CSV文件是使用逗号 作为分隔符的文本文件,CSV文件以纯文本格式存储数据,文件的每一行都是一条数据记录。
我们可以使用bash 中的while 循环来读取CSV文件。IFS 变量设置分隔符为,(逗号)。read 命令读取每一行并将数据存储到每个字段中。
一个简单的实例 st.sh
文件内容如下:
while IFS= , read -r fd1 fd2
do
echo " $fd1 and $fd2"
done < input.csv
我们来运行下st.sh
试试:
alair@op36 MINGW64 ~/Documents
$ cat input.csv
bob,18
alair,23
kim,32
alair@op36 MINGW64 ~/Documents
$ sh ./st.sh
bob and 18
alair and 23
kim and 32
处理丢失的字段 #!/bin/bash
missing= false
while IFS= , read -r fd1 fd2
do
if [ " $fd1" == "" ]
then
echo "field1 is empty or no value set"
missing= true
elif [ " $fd2" == "" ]
then
echo "field2 is empty or no value set"
missing= true
else
echo " $fd1 and $fd2"
fi
done < input.csv
if [ $missing ]
then
echo "WARNING: Missing values in a CSV file. Operation failed!"
exit 1
else
echo "CSVfile read successfully!"
fi
bash解析csv文件 再来一个复杂点的实例。
Sat, Jun 10, 2023 下载系统为Raspberry Pi OS Lite ,信息如下:
Release date: May 3rd 2023
System: 32-bit
Kernel version: 6.1
Debian version: 11 (bullseye)
下载后使用balenaEtcher 写入tf卡。
进入到bootfs 分区,新建ssh空文件即可开启默认ssh登录。
alair@op36 MINGW64 /f
$ touch ssh
添加默认登录用户和密码 首先使用如下命令生成密码,password 为自定义密码
alair@op36 MINGW64 /f
$ echo 'password' | openssl passwd -6 -stdin
$6$lAkAjoGFYOCieBlt$9ezLlyXlizpAP7lYNJRL.1cvdQOOkn.hsTnSQP3gtJT5EpfJvqwBo/BhdbUZ
T.xMZIFyANfxf/8ckI590But20
然后还是在bootfs 目录,新建userconf
文件
写入以下内容
raspi:$6$lAkAjoGFYOCieBlt$9ezLlyXlizpAP7lYNJRL.1cvdQOOkn.hsTnSQP3gtJT5EpfJvqwBo/BhdbUZ
T.xMZIFyANfxf/8ckI590But20
保存退出即可。
以上就会添加用户名为raspi 密码为password 的账户信息,接下来就可以使用ssh登录进行设置了。
Fri, Jun 9, 2023 服务器环境如下:
➜ ~ neofetch
` .::///+:/-. --///+//-:`` pi@raspi2b
` +oooooooooooo: ` +oooooooooooo: ----------
/oooo++//ooooo: ooooo+//+ooooo. OS: Raspbian GNU/Linux 11 ( bullseye) armv
` +ooooooo:-:oo- +o+::/ooooooo: Host: Raspberry Pi 2 Model B Rev 1.1
` :oooooooo+`` ` .oooooooo+- Kernel: 6.1.21-v7+
` :++ooo/. :+ooo+/.` Uptime: 1 hour, 53 mins
...` ` .----.` `` .. Packages: 624 ( dpkg)
.::::-`` :::::::::.` -:::-` Shell: zsh 5.8
-:::-` .:::::::-` ` -:::- Terminal: /dev/pts/1
` ::. ` .--.` `` ` .---.`` .::` CPU: BCM2835 ( 4) @ 1.000GHz
.::::::::` -::::::::` ` Memory: 70MiB / 921MiB
.::` .:::::::::- ` ::::::::::`` ::.
-:::` ::::::::::. ::::::::::.` :::-
:::: -::::::::. ` -:::::::: ::::
-::- .-:::-.`` ....`` .-::-. -::-
.. `` .::::::::. ` ..` ..
-:::-` -::::::::::` .:::::`
:::::::` -::::::::::` :::::::.
.::::::: -::::::::. ::::::::
` -:::::` ..--.` ::::::.
` ...` ` ...--..` ` ...`
.::::::::::
` .-::::-`
添加git用户 服务器添加git 用户并设置密码
Fri, May 19, 2023 apt-update
时提示如下证书不可用错误:
The following signatures couldn' t be verified because the public key is not available: NO_PUBKEY AA8E81B4331F7F50 NO_PUBKEY 112695A0E562B32A
解决方法如下:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
把所有提示NO_PUBKEY 后的都添加一遍即可。
Wed, May 17, 2023 安装git和sqlite apt install git sqlite3 -y
安装gitea 下载地址在此 https://dl.gitea.com/gitea/
wget -O gitea https://dl.gitea.com/gitea/1.19.3/gitea-1.19.3-linux-amd64
chmod +x gitea
mv gitea /usr/local/bin/gitea
添加git用户 adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git User' git
新建目录 mkdir -p /var/lib/gitea/{ custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 750 /etc/gitea
chmod 640 /etc/gitea/app.ini
export GITEA_WORK_DIR= /var/lib/gitea/
设置systemd服务 ## 备份链接 https://unixetc.com/res/gitea.service
wget https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/systemd/gitea.service
cp gitea.server /etc/systemd/system/gitea.service
sudo systemctl enable gitea
sudo systemctl start gitea
配置gitea 通过http://ip:3000 来访问gitea web进行初始配置。
Mon, Apr 10, 2023 Void Linux官方提供的镜像地址如下:
默认镜像地址:https://repo-default.voidlinux.org
一级镜像 : 由Voidlinux官方团队维护
二级镜像 :
https://mirror.ps.kz/voidlinux/ Asia Almaty, Kazakhstanhttps://mirror.nju.edu.cn/voidlinux/ Asia Chinahttps://mirrors.bfsu.edu.cn/voidlinux/ Asia Beijing, Chinahttps://mirrors.cnnic.cn/voidlinux/ Asia Beijing, Chinahttps://mirrors.tuna.tsinghua.edu.cn/voidlinux/ Asia Beijing, Chinahttps://mirror.sjtu.edu.cn/voidlinux/ Asia Shanghai, Chinahttps://void.webconverger.org/ Asia Singaporehttp://ftp.dk.xemacs.org/voidlinux/ Europe Denmarkhttps://mirrors.dotsrc.org/voidlinux/ Europe Denmarkhttps://quantum-mirror.hu/mirrors/pub/voidlinux/ Europe Hungaryhttps://voidlinux.mirror.garr.it/ Europe Italyhttps://void.cijber.net/ Europe Amsterdam, Netherlandshttps://void.sakamoto.pl/ Europe Warsaw, Polandhttp://ftp.debian.ru/mirrors/voidlinux/ Europe Russiahttps://mirror.yandex.ru/mirrors/voidlinux/ Europe Russiahttps://ftp.lysator.liu.se/pub/voidlinux/ Europe Swedenhttps://mirror.accum.se/mirror/voidlinux/ Europe Swedenhttps://mirror.puzzle.ch/voidlinux/ Europe Bern, Switzerlandhttps://mirror.vofr.net/voidlinux/ North America California, USAhttps://mirror2.sandyriver.net/pub/voidlinux/ North America Kentucky, USAhttps://mirror.clarkson.edu/voidlinux/ North America New York, USAhttps://mirror.aarnet.edu.au/pub/voidlinux/ Oceania Canberra, Australiahttps://ftp.swin.edu.au/voidlinux/ Oceania Melbourne, Australiahttps://voidlinux.com.br/repo/ South America Ouro Preto, Brazilhttp://void.chililinux.com/voidlinux/ South America Pimenta Bueno, Brazil修改XBPS镜像 mkdir -p /etc/xbps.d
cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/
sed -i 's|https://repo-default.voidlinux.org|https://mirrors.tuna.tsinghua.edu.cn/voidlinux/|g' /etc/xbps.d/*-repository-*.conf
修改完后更新下系统
Fri, Apr 7, 2023 拷贝文件到目录 cp sourcefile diectory
以下示例将sfile.dat
文件复制到desdir
目录下:
alair@e64 MINGW64 ~/Documents/example
$ cp sfile.dat desdir/
alair@e64 MINGW64 ~/Documents/example
$ ls desdir/
sfile.dat
拷贝并重命名文件 cp sourcefile sourcefile_copy
以下示例将sfile.dat
文件复制并重命名为sfile_copy.dat
文件:
alair@e64 MINGW64 ~/Documents/example
$ cp sfile.dat sfile_copy.dat
alair@e64 MINGW64 ~/Documents/example
$ ls
desdir/ sfile.dat sfile_copy.dat
alair@e64 MINGW64 ~/Documents/example
$ cat sfile.dat
eof
alair@e64 MINGW64 ~/Documents/example
$ cat sfile_copy.dat
eof
通过cat
命令可以看出sfile.dat
和sfile_copy.dat
两个文件内容相同。
拷贝多个文件到目录 以下示例将sfile.dat sfile1.dat sfile2.dat
文件复制到desdir
目录下:
alair@e64 MINGW64 ~/Documents/example
$ cp sfile.dat sfile2.dat desdir/
alair@e64 MINGW64 ~/Documents/example
$ ls desdir/
sfile.dat sfile2.dat
拷贝时处理重复文件 默认情况下,如果目标目录中存在同名文件,则 cp
命令将覆盖该文件。
Sun, Feb 26, 2023 最新版的cloudflare已经弃用了 页面规则(Page Rules) 功能,而使用 重定向规则(Redirect Rules) 来设置跳转
规则 -> 重定向规则 -> 创建规则 ,参考下图设置,点击部署完成。
规则名称 自定义名称 当传入请求匹配时…… 选择自定义筛选表达式 字段 选择主机名 运算符 选择等于 值 填写需要重定向的域名blog.0x8.net
URL 重定向 类型为动态 ,表达式为concat("https://unixetc.com/", http.request.uri.path)
,状态码为301 设置完成后我们使用curl -I
来验证下结果
$ curl -I blog.0x8.net/etc
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 167 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0HTTP/1.1 301 Moved Permanently
Date: Wed, 05 Jun 2024 14:16:48 GMT
Content-Type: text/html
Content-Length: 167
Connection: keep-alive
Cache-Control: max-age= 3600
Expires: Wed, 05 Jun 2024 15:16:48 GMT
Location: https://unixetc.com/etc
Report-To: { "endpoints" :[{ "url" :"https:\/\/a.nel.cloudflare.com\/report\/v4?s=j9lIWeQVswYKqqidSUDzUvEr8XGf9R8E04whnlBIYvRcDSxArK7sQseo1lRbYUR2nRQdYiJ8vjQla3rp%2FC33QRQtFCidEtcNWxja0jraL20cgH9TOoXTlThy" }] ,"group" :"cf-nel" ,"max_age" :604800}
NEL: { "success_fraction" :0,"report_to" :"cf-nel" ,"max_age" :604800}
X-Content-Type-Options: nosniff
Server: cloudflare
CF-RAY: 88f0c857e8347708-LHR
可以看到,已经将blog.0x8.net/etc
正确定向到https://unixetc.com/etc
Mon, Oct 24, 2022 常见 unix 命令的现代/更快/更健全的替代方案的集合。
bat
具有语法突出显示和 Git 集成的 cat
克隆。
exa
ls
的现代替代品。
lsd
下一代文件列表命令。向后兼容 ls
。
delta
A viewer for git
and diff
output
dust
用 rust 编写的更直观的 du
替代方案。
duf
更好的 df
替代方案
broot
A new way to see and navigate directory tree
s
fd
A simple, fast and user-friendly alternative to find
.
ripgrep
An extremely fast alternative to grep
that respects your gitignore
ag
A code searching tool similar to ack
, but faster.
Mon, Jul 11, 2022 Hysteria 是一个功能丰富的,专为恶劣网络环境进行优化的网络工具(双边加速),比如卫星网络、拥挤的公共 Wi-Fi、在中国连接国外服务器等。 基于修改版的 QUIC 协议。
SOCKS5 代理 (TCP & UDP) HTTP/HTTPS 代理 TCP/UDP 转发 TCP/UDP TPROXY 透明代理 (Linux) TCP REDIRECT 透明代理 (Linux) TUN (Windows 下为 TAP) 以上是Hysteria官网的介绍,项目地址为https://github.com/HyNetwork/hysteria
最新hysteria2使用方法在这里 https://unixetc.com/post/nekoboxforandroid-hysteria2/
Hysteria bash <( curl -fsSL https://get.hy2.sh/)
## config.yaml
server: your.domain.net:443
auth: Se7RAuFZ8Lzg
bandwidth:
up: 20 mbps
down: 100 mbps
socks5:
listen: 127.0.0.1:1080
http:
listen: 127.0.0.1:8080
tls:
insecure: true
以下为旧版本v1使用实例
服务端安装配置 服务器是Debian11系统,使用以下命令安装:
wget https://raw.githubusercontent.com/HyNetwork/hysteria/master/install_server.sh
bash ./install_server.sh
启用服务
Sat, Mar 12, 2022 调度程序可以在特定时间或指定时间间隔之后触发脚本执行。
属性 interval (time; default: 0s) - 两次脚本执行的间隔,如果时间间隔设置为零,则脚本仅在其开始时间执行,否则在指定的时间间隔重复执行。 name name) - 任务名 on-event (name) - 需要执行的脚本名,必须是属于 /system 脚本。 run-count (read-only: integer) - 运行计数器,用来监控脚本的执行情况,脚本每执行一次该计数器递增一次。 start-date (date) - 第一次执行脚本的日期 start-time (time) - 第一次执行脚本的时间 startup - 系统启动后 3 秒执行脚本。 备注 重新启动路由器将重置运行计数计数器。
如果必须同时执行多个脚本,它们将按照它们在调度程序配置中出现的顺序执行。如果一个计划脚本用于禁用另一个脚本,那么这个顺序就很重要。
如果需要更复杂的执行模式,通常可以通过调度多个脚本并让它们相互启用和禁用来完成。
Note: if scheduler item has start-time set to startup, it behaves as if start-time and start-date were set to time 3 seconds after console starts up. It means that all scripts having start-time is startup and interval is 0 will be executed once each time router boots. If the interval is set to value other than 0 scheduler will not run at startup
Sun, Mar 6, 2022 Optiplex 3060 micro安装完Debian11后,发现wifi无法正常驱动,于是手动弄它。
首先,将存有debian11镜像的u盘插入电脑,右键点击deiban镜像文件,选择用磁盘映像挂载器打开
进入镜像挂,找到pool/main/m/make-dfsg
目录,安装其中的make_4.3-4.1_amd64.deb
apt install ./make_4.3-4.1_amd64.deb
下载 Qualcomm-Atheros-QCA9377-Wifi-Linux-master.zip
解压后进入目录用sudo bash ./install.sh
命令来安装,完成后重启电脑即可。
Fri, Mar 4, 2022 Debian安装时提示有缺失的固件,可通过外置存储(U盘)来安装,暂时略过后继续安装系统。
系统安装完成后,进入系统可以通过安装isenkram 来检测缺失的固件进行在线安装。
sudo apt install isenkram
sudo isenkram-autoinstall-firmware
Thu, Mar 3, 2022 修改hosts加入以下内容,加速Microsoft Edge浏览,保存完毕后使用ipconfig /flushdns
命令来更新DNS
0.0.0.0 c.msn.com
0.0.0.0 ntp.msn.com
0.0.0.0 ntp.msn.cn
0.0.0.0 assets.msn.cn
0.0.0.0 api.msn.com
0.0.0.0 browser.events.data.msn.com
0.0.0.0 img-s-msn-com.akamaized.net
0.0.0.0 browser.events.data.msn.cn
Sun, Jan 16, 2022 安装os-prober
sudo apt install os-prober
设置GRUB,编辑/etc/default/grub
sudo vi /etc/default/grub
添加如下行,完成后保存运行sudo update-grub
即可。
GRUB_DISABLE_OS_PROBER= false
Thu, Oct 7, 2021 打开/etc/apt/sources.list
进行编辑
将其中的buster 替换为bullseye ,VI 用%s/buster/bullseye/g
来替换,其他编辑器自便。
替换保存完,用以下命令来进行系统升级。
apt update
apt full-upgrade
Tue, Sep 7, 2021 安装要求Windows10以上系统,右键点击下载后的ProPlus2021Retail.img ,选择装载 挂载镜像文件到虚拟光驱,注意查看虚拟光驱盘符。
新建configuration.xml
文件保存到D盘,内容如下:
<Configuration>
<Add SourcePath="F:\" OfficeClientEdition="64" >
<Product ID="ProPlusRetail">
<Language ID="zh-CN" />
<ExcludeApp ID="Groove" />
<ExcludeApp ID="InfoPath" />
<ExcludeApp ID="Lync" />
<ExcludeApp ID="OneNote" />
<ExcludeApp ID="Outlook" />
<ExcludeApp ID="Publisher" />
<ExcludeApp ID="SharePointDesigner" />
</Product>
</Add>
</Configuration>
说明:
SourcePath 为虚拟光驱盘符,以实际情况修改。 ExcludeApp ID 在此选择不需要 安装的组件,可用配置Access/Excel/Groove/Lync/OneDrive/OneNote/Outlook/PowerPoint/Publisher/Teams/Word。
CMD 进入到光驱根目录,执行以下命令开始自定义安装:
Setup.exe /configure d:\c onfigure.xml
安装完成后推荐使用MAS 激活,下载地址在此
Fri, Apr 30, 2021 通过以下命令,可以按网段ping所有的主机,并返回那些ip状态为在线,前提是安装nmap
命令:
运行结果如下:
➜ ~ nmap -sP 220.181.38.0/24
Starting Nmap 6.40 ( http://nmap.org ) at 2021-06-26 11:27 CST
Nmap scan report for 220.181.38.97
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.98
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.99
Host is up ( 0.18s latency) .
Nmap scan report for 220.181.38.129
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.130
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.132
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.133
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.134
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.135
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.136
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.137
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.138
Host is up ( 0.18s latency) .
Nmap scan report for 220.181.38.139
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.140
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.141
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.142
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.143
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.144
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.145
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.146
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.148
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.149
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.150
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.151
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.152
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.153
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.154
Host is up ( 0.17s latency) .
Nmap scan report for mx10.baidu.com ( 220.181.38.155)
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.156
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.157
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.158
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.159
Host is up ( 0.18s latency) .
Nmap scan report for 220.181.38.160
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.161
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.162
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.163
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.164
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.165
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.166
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.167
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.168
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.170
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.171
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.172
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.173
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.174
Host is up ( 0.18s latency) .
Nmap scan report for 220.181.38.175
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.176
Host is up ( 0.21s latency) .
Nmap scan report for 220.181.38.177
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.178
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.179
Host is up ( 0.15s latency) .
Nmap scan report for 220.181.38.180
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.181
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.182
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.183
Host is up ( 0.18s latency) .
Nmap scan report for 220.181.38.184
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.185
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.186
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.187
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.188
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.189
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.190
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.191
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.192
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.193
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.194
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.195
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.196
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.197
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.198
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.199
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.200
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.201
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.202
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.203
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.204
Host is up ( 0.15s latency) .
Nmap scan report for 220.181.38.205
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.206
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.207
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.208
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.209
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.210
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.211
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.213
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.214
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.215
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.216
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.217
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.218
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.219
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.220
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.221
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.222
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.223
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.224
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.225
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.226
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.227
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.228
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.229
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.230
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.231
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.232
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.233
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.234
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.235
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.236
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.237
Host is up ( 0.18s latency) .
Nmap scan report for 220.181.38.238
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.239
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.240
Host is up ( 0.15s latency) .
Nmap scan report for 220.181.38.241
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.242
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.243
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.244
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.245
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.246
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.247
Host is up ( 0.16s latency) .
Nmap scan report for mx9.baidu.com ( 220.181.38.248)
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.249
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.250
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.251
Host is up ( 0.16s latency) .
Nmap scan report for 220.181.38.252
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.253
Host is up ( 0.17s latency) .
Nmap scan report for 220.181.38.254
Host is up ( 0.16s latency) .
Nmap done : 256 IP addresses ( 125 hosts up) scanned in 24.79 seconds
Thu, Apr 29, 2021 $ ip addr | awk '/state UP/ {print $2}' | sed 's/.$//'
输出结果
Tue, Apr 27, 2021 printf '%(%FT%T)T\n' 1606752450
无需perl, awk, 或 /usr/bin/date,bash内置"printf"函数就能搞定。
输出
2020-11-30T11:07:30
Sun, Apr 25, 2021 ubuntu21.04可以通过PPA源的方法安装gnome40,方法如下:
sudo add-apt-repository ppa:shemgp/gnome-40 #添加PPA源
sudo apt install mutter gnome-shell
sudo apt upgrade
安装完成后重启系统,在会话选择中选择GNOME即可进入。
删除GNOME方法如下:
sudo apt install ppa-purge && sudo ppa-purge ppa:shemgp/gnome-40
sudo apt remove gnome-session
Wed, Apr 21, 2021 v2rayA是一款Project V的Linux Web GUI客户端,支持V2Ray,Xray,SS,SSR,Trojan和Pingtunnel
安装v2rayA之前需要先安装v2ray,命令如下:
➜ ~ curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh #下载安装脚本
➜ ~ bash ./install-release.sh #运行安装脚本
➜ ~ sudo systemctl enable v2ray #开启v2ray service
Created symlink /etc/systemd/system/multi-user.target.wants/v2ray.service → /etc/systemd/system/v2ray.service.
➜ ~ sudo systemctl start v2ray 运行v2ray service
ubuntu中安装v2rayA ubuntu下可以使用添加sources.list
源来安装v2rayA
➜ ~wget -qO - https://apt.v2raya.mzz.pub/key/public-key.asc | sudo apt-key add - #添加public key
➜ ~echo "deb https://apt.v2raya.mzz.pub/ v2raya main" | sudo tee /etc/apt/sources.list.d/v2raya.list #添加apt源
➜ ~sudo apt update #更新源
➜ ~ sudo apt install v2raya #安装V2RayA
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
linux-headers-5.8.0-43-generic linux-hwe-5.8-headers-5.8.0-43 linux-image-5.8.0-43-generic linux-modules-5.8.0-43-generic
linux-modules-extra-5.8.0-43-generic
使用'sudo apt autoremove' 来卸载它( 它们) 。
下列【新】软件包将被安装:
v2raya
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 8,681 kB 的归档。
解压缩后会消耗 23.0 MB 的额外空间。
获取:1 https://apt.v2raya.mzz.pub v2raya/main amd64 v2raya amd64 1.3.1 [ 8,681 kB]
已下载 8,681 kB,耗时 5秒 ( 1,609 kB/s)
正在选中未选择的软件包 v2raya。
( 正在读取数据库 ... 系统当前共安装有 267561 个文件和目录。)
准备解压 .../v2raya_1.3.1_amd64.deb ...
正在解压 v2raya ( 1.3.1) ...
正在设置 v2raya ( 1.3.1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/v2raya.service → /etc/systemd/system/v2raya.service.
******************************
* Completed! *
******************************
正在处理用于 mime-support ( 3.64ubuntu1) 的触发器 ...
正在处理用于 hicolor-icon-theme ( 0.17-2) 的触发器 ...
正在处理用于 gnome-menus ( 3.36.0-1ubuntu1) 的触发器 ...
正在处理用于 desktop-file-utils ( 0.24-1ubuntu3) 的触发器 ...
设置v2rayA开机启动
Tue, Apr 13, 2021 将内网网卡名改为"lan",将外网网卡名改为"wlan"
REM copyright unixetc.com
@echo off
set /p input= a:内网/b:外网/c:禁用/d:开启
if "%input%" == "a" goto MA
if "%input%" == "b" goto MB
if "%input%" == "c" goto MC
if "%input%" == "d" goto MD
if not "%input%" == "a" ( if not "%input%" == "b" ( if not "%input%" == "c" ( if not "%input%" == "d" goto ME)))
:MA
echo 单开内网
netsh interface set interface "lan" enabled
netsh interface set interface "wlan" disabled
ping 133.64.8.1 -n 10
echo 设置完成!
pause>nul
exit
:MB
echo 单开外网
netsh interface set interface "lan" disabled
netsh interface set interface "wlan" enabled
ping baidu.com -n 10
echo 设置完成!
pause>nul
exit
:MC
echo 禁用网络
netsh interface set interface "lan" disabled
netsh interface set interface "wlan" disabled
echo 设置完成!
pause>nul
exit
:MD
echo 开启网络
netsh interface set interface "lan" enabled
netsh interface set interface "wlan" enabled
echo 设置完成!
pause>nul
exit
:ME
echo 啥都没干,退下!
pause>nul
exit
Wed, Mar 31, 2021 两道编程小题:
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 #include <iostream>
using namespace std;
int main ()
{
int n[ 4 ]= {3 ,5 ,7 ,9 };
int p[4 ]= {0 ,0 ,0 ,0 };
int jh = 0 ;
for (int c= 0 ;c< 4 ;c++ )
{
p[c]= (n[c]+ 5 )% 10 ;
}
jh= p[0 ];p[0 ]= p[3 ];p[3 ]= jh;
jh= p[1 ];p[1 ]= p[2 ];p[2 ]= jh;
cout<< endl<< "Encrypted Code: " ;
for ( int j = 0 ; j < 4 ; j++ )
{
cout << p[ j ] ;
}
return 0 ;
}
海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子? #include <iostream>
using namespace std;
int main ()
{
int s, l, t,i;
l = 1 ;
for (i= 1 ; i< 5 ; i++ )
l *= 5 ;
s = 1 + 5 * (l- 1 );
t = s;
for (i= 1 ; i<= 4 ; i++ )
t = (t- 1 )/ 5 * 4 ;
cout<< s<< endl;
return 0 ;
}
Wed, Mar 17, 2021 JingOS-全球首个基于ARM架构,专为平板打造的Linux。
此次为虚拟机安装试用体验,虚拟机配置如下:
LiveCD系统体验 磁盘检查&引导加载
欢迎界面
默认的PIN为123456
锁屏界面,上划解锁
home页,底部为dash区域
左上角下滑为通知区,右上角下滑为快速设置区
快捷截图以及完成提示
蓝牙设置
显示设置
系统信息
账户设置
移动网络设置
时间日期设置
虚拟键盘设置
终端程序
软件管理器
安装JingOS到本地磁盘 打开终端 输入以下命令开始安装
sudo -E calamares
按照提示一步步安装完成即可重启使用。
Sun, Mar 14, 2021 建立Hugo站点 参考使用hugo建立静态个人网站 ,将新建的站点push到github上。
设置Cloudflare Pages 登录https://dash.cloudflare.com/ ,打开Cloudflare Pages ,点击Get started 开始设置。
点击创建项目
接下来选择存储库 ,通过gihub账户授权后,选择账户下的hugo存储库,点击开始设置
进入设置构建和部署 ,参考下图设置好后点击保存并部署 开始部署。
以下为一次部署成功的详细信息,点击其中的二级域名即可浏览。
构建日志如下:
20:05:17.479 Initializing build environment
20:05:44.784 Finished
20:05:44.784 Cloning repo
20:05:48.384 Finished
20:05:49.122 Installing dependencies
20:05:49.165 Python version set to 2.7
20:05:52.705 v12.18.0 is already installed.
20:05:53.071 Now using node v12.18.0 (npm v6.14.4)
20:05:53.092 Started restoring cached build plugins
20:05:53.103 Finished restoring cached build plugins
20:05:53.594 Attempting ruby version 2.7.1, read from environment
20:05:54.935 Using ruby version 2.7.1
20:05:55.260 Using PHP version 5.6
20:05:55.308 5.2 is already installed.
20:05:55.311 Using Swift version 5.2
20:05:55.311 Installing Hugo 0.54.0
20:05:56.249 Hugo Static Site Generator v0.54.0-B1A82C61A/extended linux/amd64 BuildDate: 2019-02-01T10:04:38Z
20:05:56.249 Started restoring cached go cache
20:05:56.251 Finished restoring cached go cache
20:05:56.738 go version go1.14.4 linux/amd64
20:05:56.742 go version go1.14.4 linux/amd64
20:05:56.751 Installing missing commands
20:05:56.752 Verify run directory
20:05:56.752 Executing user command: hugo
20:05:56.788 Building sites …
20:05:56.788 | EN
20:05:56.788 +------------------+----+
20:05:56.788 Pages | 4
20:05:56.788 Paginator pages | 0
20:05:56.789 Non-page files | 0
20:05:56.789 Static files | 3
20:05:56.789 Processed images | 0
20:05:56.789 Aliases | 0
20:05:56.789 Sitemaps | 1
20:05:56.789 Cleaned | 0
20:05:56.789
20:05:56.789 Total in 5 ms
20:05:56.790 Finished
20:05:57.225 Deploying site
20:06:00.105 Finished
添加自定义域名 进入到Cloudflare Pages中可以点击详细的部署实例,点击自定义域 添加自定义域名,如下:
Sat, Mar 13, 2021 安装Hugo Hugo程序可以从这里下载
Windows建议下载hugo_extended_0.81.0_Windows-64bit.zip ,其他系统可下载对应版本。
另,CentOS安装hugo可参考此文
使用hugo 首先使用hugo new test
来建立新的站点。
$ hugo new site test
Congratulations! Your new Hugo site is created in D:\t est.
Just a few more steps and you' re ready to go:
1. Download a theme into the same-named folder.
Choose a theme from https://themes.gohugo.io/ or
create your own with the "hugo new theme <THEMENAME>" command.
2. Perhaps you want to add some content. You can add single files
with "hugo new <SECTIONNAME>\<FILENAME>.<FORMAT>" .
3. Start the built-in live server via "hugo server" .
Visit https://gohugo.io/ for quickstart guide and full documentation.
新建的站点没有任何内容,也没有主题,下来需要添加主题。
Mon, Mar 8, 2021 筋长一寸,多活一年,大家一起惜命吧! -_-!
1 两手手掌交叉互握,向上推伸展直到感觉到紧绷点停住,保持不动。动作中配合呼吸,
且停留10秒钟以上。
2 一手抓着另一手都手肘,向着头部方向缓缓往内拉。动作中配合呼吸,停留15-20秒钟,换另一侧,重复相同同作。
3 两手放在背后互抓,徐徐地将手臂网上抬高到舒适的部位,然后保持这个姿势。
动作钟配合呼吸,
停留10-15秒钟。
4 两脚打开与肩同宽,膝盖微弯,一手向上伸直横越头部向外伸展,另一手自然放在腹前,
腰部向外弯曲伸展。
动作中配合呼吸,停留10秒钟,换边,重复相同动作。
5 坐在地板上左脚平放,将另一脚跨越成弯曲状。将右手放在臀部附近,左手缓缓将弯曲的右膝盖往内推直到感觉肌肉紧绷。动作中配合呼吸,停留15-20秒钟,换边,并重复相同动作。
6 仰卧抓着膝盖后面,然后缓缓地将腿拉向胸部,保持腿部的伸直,另一腿保持弯曲。
动作中配合呼吸,
停留10秒钟,换边,
并重复相同动作。
7 保持坐姿,两脚底靠拢,让腿放松朝向地板,两手握在脚踝,手肘放在大腿上,
将大腿缓缓地往下推,
直到大腿肌肉感到紧绷为止。
动作中配合呼吸,
且停留10秒钟。
8 单脚站立,抓住另一脚的脚踝,然后慢慢地往后拉到臀部,注意骨盆不要倾斜,
同时保持躯干的直立。
动作中配合呼吸,
停留15-20秒钟。
换边,重复相同动作。
9 坐在地板上,弯曲一腿,
膝盖靠着胸部,另一腿伸直,身体向前倾斜,
两手往脚趾方向伸展。
动作中配合呼吸,停留10-15秒。换边,并重复相同动作。
Thu, Mar 4, 2021 入手mix2s也快三年了,除了64GB存储有点捉襟见肘,其他方面都好好地,对于我来说够用就好。
不过官方已经停更了,想要体验最新的MIUI12.5已经是痴心妄想,最新版的MIUI12使用体验实在无法恭维。
因此只能将其刷回MIUI11,以下为线刷步骤。
解锁Bootloader 线刷前需要先解锁Bootloader
设置 ->我的设备 ->全部参数 ->MIUI 版本,连续点击提示打开开发者模式 。
设置 ->更多设置 ->开发者选项 ,点击打开OEM解锁 。
下载小米官方解锁工具miflash_unlock_7.6.727.43.zip (访问密码: 3705)
下载完解压后打开,安照提示解锁Bootloader
线刷MIUI11 下载MIUI11线刷包V12.5.1.0.QDGCNXM/polaris_images_V12.5.1.0.QDGCNXM_20210707.0000.00_10.0_cn_fccb4b63b7.tgz
下载线刷工具MiFlash2020-3-14-0.rar (访问密码: 3705)
将下载后的线刷包和工具解压,打开工具首先安照提示安装驱动。
设备关机,同时长按待电源键和音量键下,进入Fastboot模式后用数据线连接电脑后(Fastboot模式会显示一只兔子在维修机器人),连接电脑选择设备和刷机包文件夹点击刷机即可。
小米Mix2s官方历史线刷 以下为小米Mix2s官方历史(zip文件 )/线刷包(tgz文件 )
V12.0.1.0Q
V11.0.3.0Q
V11.0.1.0Q
V11.0.3.0
V11.0.2.0
V10.3.5.0
V10.3.4.0
V10.3.3.0
V10.3.2.0
V10.3.1.0
V10.2.2.0
V10.2.1.0
V10.0.7.0
V10.0.3.0
V9.6.10.0
Sun, Feb 28, 2021 RB750Gr3备份license key 原系统的license key最好备份下,以备还原官方系统。
电脑连接路由器LAN口,用Winbox登录路由器,在system下找到license管理,将license export即可备份。
下载openwrt镜像 一共需要两个文件
Firmware OpenWrt Install
Firmware OpenWrt Upgrade
第一个是网络引导安装镜像,第二个是升级包,上面链接失效的话可以去官方下载页 找找。
网络引导写入initramfs kernel 这里使用的工具是Tiny PXE,下载pxesrv_Tiny_PXE_Server_1.0.0.23.zip 密码3705
下载后,编辑config.ini文件,在[dhcp]部分下添加rfc951=1 参数
右键管理员打开pxesrv.exe
最上面默认为HTTPd Option 54(DHCP Server)处,勾选当前固网IP(192.168.1.10) 在Boot File中Filename后,选择openwrt-ramips-mt7621-mikrotik_rb750gr3-initramfs-kernel.bin文件 将Boot File中Filename if use-class=gPXE or iPXE去掉勾选 其余默认即可,点击右上角三个按钮中间的Online 将网线连接到路由器WAN口,断电,用卡针按住RES按钮,上电后观察USR灯,连闪三下后,再闪一下后熄灭马上放开RES按钮,此时路由器进入netboot模式
看到Tiny pxe窗口出现DoReadFile:openwrt-ramips-mt7621-mikrotik_rb750gr3-initramfs-kernel.bin即可,如下log:
14:10:50 ROOT= D:\\ rb750\\
14:10:50 DHCPd 192.168.1.10:67 started...
14:10:50 TFPTd 192.168.1.10:69 started...
14:10:51 HTTPd:80 started...
14:11:27 DHCPd:DISCOVER received, MAC:64-D1-54-9F-79-0F, XID:9D74838A
14:11:28 DHCPd:OFFER sent, IP:192.168.1.11, XID:9D74838A
14:11:28 DHCPd:REQUEST received, MAC:64-D1-54-9F-79-0F, XID:9D74838A
14:11:28 DHCPd:ACK sent, IP:192.168.1.11, XID:9D74838A
14:12:01 DHCPd:REQUEST received, MAC:64-D1-54-9F-79-0F, XID:ECAC163F
14:12:01 DHCPd:BOOTP REQUEST
14:12:01 TFTPd:DoReadFile:openwrt-ramips-mt7621-mikrotik_rb750gr3-initramfs-kernel.bin B:1452 T:0
14:12:01 DHCPd:ACK sent, IP:192.168.1.21, XID:ECAC163F
14:12:19 DHCPd:DISCOVER received, MAC:64-D1-54-9F-79-11, XID:F919527A
14:12:19 DHCPd:OFFER sent, IP:192.168.1.12, XID:F919527A
14:12:19 DHCPd:REQUEST received, MAC:64-D1-54-9F-79-11, XID:F919527A
14:12:19 DHCPd:ACK sent, IP:192.168.1.12, XID:F919527A
此时initramfs kernel已经以RAM方式运行在路由器中,可以关闭Tiny PXE了
Sat, Feb 27, 2021 https://mirrors.ustc.edu.cn/openwrt/
说明: OpenWRT/LEDE 下载站镜像。
这是对https://downloads.openwrt.org/
的完整镜像,内容包括官方支持的平台的 ROM、SDK 及工具链、软件仓库镜像等。
使用说明:
一般情况下,下载来自downloads.openwrt.org
的文件时,将 URL 中的这部分域名替换为mirrors.ustc.edu.cn/openwrt
即可。
如要使用本镜像作为 OpenWRT/LEDE 系统 opkg 软件仓库,SSH 登录路由器编辑/etc/opkg/distfeeds.conf
文件,同样按照上面的方法替换域名即可。可以使用如下命令操作:
sed -i 's/downloads.openwrt.org/mirrors.ustc.edu.cn\/openwrt/g' /etc/opkg/distfeeds.conf
之后运行opkg update更新软件索引,注意检查是否出现错误。
via https://mirrors.ustc.edu.cn/help/openwrt.html
Mon, Feb 8, 2021 准备工作 安装Termux 下载地址:官方 国内
建议将Termux 软件源替换为国内,参考Termux编辑软件源
安装Linux系统 安装ubuntu
pkg install wget openssl-tool proot -y && hash -r && wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/Installer/Ubuntu/ubuntu.sh && bash ubuntu.sh
源地址无法访问,国内可使用http://unixetc.com/res/ubuntu.sh 替换。
安装完成后使用./start-ubuntu.sh
启动进入系统。
替换ubuntu port 软件源并更新系统
sed -i 's,http://ports.ubuntu.com/ubuntu-ports,http://mirrors.ustc.edu.cn/ubuntu-ports,' /etc/apt/sources.list
apt update&& apt upgrade -y
安装xfce桌面环境 安装xfce
wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/DesktopEnvironment/Apt/Xfce4/de-apt-xfce4.sh && bash de-apt-xfce4.sh
源地址无法访问,国内可使用http://unixetc.com/res/de-apt-xfce4.sh 替换。
安装mate
wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/DesktopEnvironment/Apt/Mate/de-apt-mate.sh && bash de-apt-mate.sh
源地址无法访问,国内可使用http://unixetc.com/res/de-apt-mate.sh 替换。
安装lxqt
wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/DesktopEnvironment/Apt/LXQt/de-apt-lxqt.sh && bash de-apt-lxqt.sh
源地址无法访问,国内可使用http://unixetc.com/res/de-apt-lxqt.sh 替换。
安装lxde
wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/DesktopEnvironment/Apt/LXDE/de-apt-lxde.sh && bash de-apt-lxde.sh
源地址无法访问,国内可使用http://unixetc.com/res/de-apt-lxde.sh 替换。
开启SSH登录 安装开启SSH
wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/SSH/Apt/ssh-apt.sh && bash ssh-apt.sh
源地址无法访问,国内可使用http://unixetc.com/res/ssh-apt.sh 替换。
Fri, Jan 15, 2021 在官网下载NetInstall https://mikrotik.com/download 以及routeros系统。
参考下图,将固网中的IP4设置下。
打开下载后的Netinstall程序,如下点击Net booting ,设置IP。
将网线连接到路由器WAN口,断电,用卡针按住RES按钮,上电后观察USR灯,连闪三下后,再闪一下后熄灭马上放开RES按钮,此时路由器进入netboot模式。
然后将路由器连接到电脑固网网口。
连接后点击识别出的设备,然后点击Browse 选择下载好的routeros系统文件(.bin),勾选之。
点击install 开始安装,完成后点击reboot 即可。
Sun, Dec 27, 2020 安装完OpenWRT基本系统 后,是无法通过WEB来进行管理的,需要安装LUCI才可以
将路由器WAN口连接到一个已经联网的路由器下,然后电脑LAN口连接新路由,通过以下方法开安装LUCI。
建议安装前将OpenWRT/LEDE更换国内源 ,这样可以更加快速安装软件。
$ ssh [email protected] #默认密码为空
The authenticity of host \' 192.168.1.1 ( 192.168.1.1) \' can\' t be established.
RSA key fingerprint is SHA256:UElnmEDlnbdNWutb3J8IjXbBMxbdOJYzHNYYp9lTYKw.
Are you sure you want to continue connecting ( yes/no) ? yes
Warning: Permanently added \' 192.168.1.1\' ( RSA) to the list of known hosts.
BusyBox v1.30.0 () built-in shell ( ash)
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__|| ________|| __| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
OpenWrt SNAPSHOT, r9028-75fdf3b
-----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the \" passwd\" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:~# opkg update #更新软件源
Downloading http://downloads.openwrt.org/snapshots/targets/ramips/mt7621/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_core
Downloading http://downloads.openwrt.org/snapshots/targets/ramips/mt7621/packages/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/snapshots/targets/ramips/mt7621/kmods/4.14.91-1-26f5ed44a4b010654f5ec58e94ee7c46/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_kmods
Downloading http://downloads.openwrt.org/snapshots/targets/ramips/mt7621/kmods/4.14.91-1-26f5ed44a4b010654f5ec58e94ee7c46/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_base
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_luci
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_packages
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/packages/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/routing/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_routing
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/routing/Packages.sig
Signature check passed.\r\n Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/telephony/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_telephony
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/telephony/Packages.sig
Signature check passed.\r\n root@OpenWrt:~# opkg install luci #安装luci
Installing luci ( git-19.013.40861-80ac438-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci_git-19.013.40861-80ac438-1_all.ipk
Installing uhttpd ( 2018-11-28-cdfc902a-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base/uhttpd_2018-11-28-cdfc902a-1_mipsel_24kc.ipk
Installing liblua ( 5.1.5-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base/liblua_5.1.5-1_mipsel_24kc.ipk
Installing lua ( 5.1.5-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base/lua_5.1.5-1_mipsel_24kc.ipk
Installing luci-lib-nixio ( git-19.013.40861-80ac438-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci-lib-nixio_git-19.013.40861-80ac438-1_mipsel_24kc.ipk
Installing luci-lib-ip ( git-19.013.40861-80ac438-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci-lib-ip_git-19.013.40861-80ac438-1_mipsel_24kc.ipk
Installing rpcd ( 2018-11-28-3aa81d0d-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base/rpcd_2018-11-28-3aa81d0d-1_mipsel_24kc.ipk
Installing libubus-lua ( 2018-10-06-221ce7e7-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base/libubus-lua_2018-10-06-221ce7e7-1_mipsel_24kc.ipk
Installing luci-lib-jsonc ( git-19.013.40861-80ac438-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci-lib-jsonc_git-19.013.40861-80ac438-1_mipsel_24kc.ipk
Installing liblucihttp ( 2018-05-18-cb119ded-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/liblucihttp_2018-05-18-cb119ded-1_mipsel_24kc.ipk
Installing liblucihttp-lua ( 2018-05-18-cb119ded-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/liblucihttp-lua_2018-05-18-cb119ded-1_mipsel_24kc.ipk
Installing luci-base ( git-19.013.40861-80ac438-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci-base_git-19.013.40861-80ac438-1_mipsel_24kc.ipk
Installing libiwinfo ( 2018-12-25-dd508af4-1) to root...
Downloading http://downloads.openwrt.org/snapshots/targets/ramips/mt7621/packages/libiwinfo_2018-12-25-dd508af4-1_mipsel_24kc.ipk
Installing libiwinfo-lua ( 2018-12-25-dd508af4-1) to root...
Downloading http://downloads.openwrt.org/snapshots/targets/ramips/mt7621/packages/libiwinfo-lua_2018-12-25-dd508af4-1_mipsel_24kc.ipk
Installing luci-mod-status ( git-19.013.40861-80ac438-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci-mod-status_git-19.013.40861-80ac438-1_mipsel_24kc.ipk
Installing luci-mod-system ( git-19.013.40861-80ac438-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci-mod-system_git-19.013.40861-80ac438-1_all.ipk
Installing luci-mod-network ( git-19.013.40861-80ac438-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci-mod-network_git-19.013.40861-80ac438-1_all.ipk
Installing luci-mod-admin-full ( git-19.013.40861-80ac438-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci-mod-admin-full_git-19.013.40861-80ac438-1_all.ipk
Installing luci-theme-bootstrap ( git-19.013.40861-80ac438-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci-theme-bootstrap_git-19.013.40861-80ac438-1_all.ipk
Installing luci-app-firewall ( git-19.013.40861-80ac438-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci-app-firewall_git-19.013.40861-80ac438-1_all.ipk
Installing luci-app-opkg ( git-19.013.40861-80ac438-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci-app-opkg_git-19.013.40861-80ac438-1_all.ipk
Installing luci-proto-ppp ( git-19.013.40861-80ac438-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci-proto-ppp_git-19.013.40861-80ac438-1_all.ipk
Installing luci-proto-ipv6 ( git-19.013.40861-80ac438-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci-proto-ipv6_git-19.013.40861-80ac438-1_all.ipk
Installing rpcd-mod-rrdns ( 20170710) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/rpcd-mod-rrdns_20170710_mipsel_24kc.ipk
Configuring luci-app-opkg.
Configuring rpcd.
Configuring liblua.
Configuring luci-lib-ip.
Configuring libubus-lua.
Configuring libiwinfo.
Configuring libiwinfo-lua.
Configuring lua.
Configuring luci-lib-nixio.
Configuring luci-lib-jsonc.
Configuring liblucihttp.
Configuring liblucihttp-lua.
Configuring luci-base.
Configuring luci-mod-system.
Configuring luci-theme-bootstrap.
Configuring luci-mod-status.
Configuring luci-app-firewall.
Configuring luci-proto-ppp.
Configuring luci-mod-network.
Configuring luci-mod-admin-full.
Configuring luci-proto-ipv6.
Configuring uhttpd.
Configuring rpcd-mod-rrdns.
Configuring luci.
root@OpenWrt:~# #安装完成,重启即可
重启后,就可以通过访问192.168.1.1来进行web端管理了,root默认密码为空,记得添加密码咯!
Sun, Nov 8, 2020 安装rpoxychains-ng sudo dnf install proxychains-ng
## or
sudo apt install proxychains-ng
设置proxychains-ng 代理地址 添加socks5 192.168.1.94 10808
即可,支持多种代理方式:socks4/socks5/http,如下说明:
# Examples:
#
# socks5 192.168.67.78 1080 lamer secret
# http 192.168.89.3 8080 justu hidden
# socks4 192.168.1.49 1080
# http 192.168.39.93 8080
使用proxychains-ng 代理执行命令 $proxychains curl -O https://github.com/XTLS/Xray-install/raw/main/install-release.sh
[ proxychains] config file found: /etc/proxychains.conf
[ proxychains] preloading /usr/lib64/proxychains-ng/libproxychains4.so
[ proxychains] DLL init: proxychains-ng 4.13
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
[ proxychains] Strict chain ... 192.168.1.94:10808 ... raw.githubusercontent.com:443 ... OK
100 21115 100 21115 0 0 6107 0 0:00:03 0:00:03 --:--:-- 6106
https://github.com/rofl0r/proxychains-ng.git
Sun, Nov 1, 2020 首先安装zsh
apt update&& apt ugprade -y
apt install zsh -y
如果能够正常访问github.com 和githubusercontent.com ,那么使用如下命令即可安装ohmyzsh
$ sh -c " $( curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh) "
如果无法访问github.com ,那就建议使用gitee 提供的国内镜像来安装,方法如下:
git clone https://gitee.com/mirrors/oh-my-zsh.git
cd oh-my-zsh/tools
vi ./install.sh
找到install.sh
中的REMOTE=${REMOTE:-https://github.com/${REPO}.git}
,将其修改为REMOTE=${REMOTE:-https://gitee.com/mirrors/oh-my-zsh.git}
,保存即可。
使用以下命令可便携修改:
sed -i 's%https://github.com/${REPO}.git%https://gitee.com/mirrors/oh-my-zsh.git%g' oh-my-zsh/tools/install.sh
最后执行./install.sh
就可以使用天朝镜像来安装ohmyzsh 。
➜ ~ neofetch
_,met$$$$$gg. root@vmd
,g$$$$$$$$$$$$$$$P. --------
,g$$P" """ Y$$.". OS: Debian GNU/Linux 12 (bookworm) x86_64
, $$P' ` $$$. Host: Virtual Machine 7.0
', $$P ,ggs. ` $$b: Kernel: 6.1.0-37-amd64
`d $$' , $P" ' . $$$ Uptime: 1 hour, 31 mins
$$P d$' , $$P Packages: 588 ( dpkg)
$$: $$. - ,d$$' Shell: zsh 5.9
$$; Y$b._ _,d$P' Resolution: 1024x768
Y$$. ` .` "Y $$$$P" ' Terminal: /dev/pts/1
` $$b "-.__ CPU: Intel i5-4310M (1) @ 2.693GHz
`Y $$ GPU: 00:08.0 Microsoft Corporation Hyper-V virtual VGA
`Y $$. Memory: 356MiB / 681MiB
` $$b.
`Y $$b.
`" Y$b._
` """
➜ ~
Sun, Oct 25, 2020 使用hugo建立建立个人网站可以参考使用hugo建立静态个人网站
使用github pages来部署个人网站可以参考GithubPages部署免费网站
下面将会介绍如何通过Github Actions 来将以上两个操作关联在一起并自动化完成!
github建立Repositories 建立一个unixetc/ghsource.git
属性为私有(private)的用来放置Hugo源码 ,然后再建一个unixetc/unixetc.github.io.git
属性为公有(public)并设置Github Pages 服务。
github设置Deploy keys与Secrets 使用ssh-keygen
命令来生成私钥与公钥。
$ ssh-keygen.exe -t rsa -b 4096 -C "[email protected] " #邮箱自定义
Generating public/private rsa key pair.
Enter file in which to save the key ( /c/Users/alair/.ssh/id_rsa) : #存放目录,可自定义
Created directory '/c/Users/alair/.ssh' .
Enter passphrase ( empty for no passphrase) :
Enter same passphrase again:
Your identification has been saved in /c/Users/alair/.ssh/id_rsa #私钥
Your public key has been saved in /c/Users/alair/.ssh/id_rsa.pub #公钥
The key fingerprint is:
SHA256:ZiNPDGtAKC6MA [email protected]
The key' s randomart image is:
+---[ RSA 4096] ----+
| .. +o. |
| . . o.. |
| . + .... . |
|o+ o o = .o . |
|+EO o = S . . |
|o B . % + . |
| .o .oB * |
| ...++ B |
| ... .. o |
+----[ SHA256] -----+
在unixetc/unixetc.gihub.io.git
的设置中将公钥 内容添加至Deploy keys ,名称自定义,并勾选allow write access 。
Fri, Oct 16, 2020 原表如下内容:
需要输出为以下格式表格:
方法如下:
将A列 升序排列,C2单元格 写入=IF(A2=A1,B2&"/"&C1,B2)
,D2单元格 写入=LEN(C2)
,结果如下:
D列 降序排列,数据->删除重复值->按名称去重,如下图:
完成后即可得到所需要的结果:
Sat, Sep 26, 2020 什么是SSHFS? SSHFS是一个通过SSH连接到服务器的网络文件系统客户端 。
SSHFS允许您使用SFTP挂载远程文件系统。 大多数VPS SSH服务器默认情况下都支持并启用此SFTP访问,因此SSHFS使用非常简单,无需在服务器端执行任何操作。
项目当前状态 SSHFS由所有主要的Linux发行版本提供,并且已经在多种系统上投入生产使用多年。 但是,目前SSHFS没有任何活动的常规贡献者,并且存在许多已知问题(请参阅Bugtracker)。 当前的维护者继续应用拉取请求并进行定期发布,但是不幸的是,除了解决高影响力的问题之外,它没有能力进行任何开发。 报告错误时,请理解,除非您包含拉取请求或报告严重问题,否则您可能不会得到响应。
安装SSHFS 首先,从https://github.com/libfuse/sshfs/releases 下载最新的SSHFS版本。 在Linux和BSD上,您还需要安装libfuse 3.1.0或更高版本。 在macOS上,您需要OSXFUSE 。 最后,您需要带有开发标头的Glib库 (应该可以从操作系统的程序包管理器中获得)。
构建和安装,我们建议使用Meson (0.38版或更高版本)和Ninja 。 解压缩sshfs tarball之后,创建一个(临时)构建目录并运行Meson:
$ mkdir build; cd build
$ meson ..
通常,默认的构建选项可以正常工作。 但是,如果您要调整它们,可以使用mesonconf命令进行:
$ mesonconf # list options
$ mesonconf -D strip= true # set an option
构建,测试和安装SSHFS,请使用Ninja(运行测试需要py.test Python模块):
$ ninja
$ python3 -m pytest test/ # optional, but recommended
$ sudo ninja install
CentOS安装sshfs简单方法 yum install -y epel-release
yum -y install fuse-sshfs
使用SSHFS 安装了sshfs后,运行它就非常简单:
sshfs [ user@] hostname:[ directory] mountpoint
建议以普通用户(而不是root)身份运行SSHFS。 为此,mountpoint必须归用户所有。 如果省略用户名,SSHFS将使用本地用户名。 如果省略目录,SSHFS将挂载(远程)主目录。 如果您需要输入密码,sshfs会要求您输入密码(实际上,它只是运行ssh,如果需要,它会要求输入密码)。
Mon, Sep 7, 2020 Linux下推使用V2rayA ,安装使用可参考V2rayA客户端使用实例
说明: 从V2Ray 4.27.0开始,请使用新版安装脚本,旧版安装配置实例仅供参考。
新版安装配置实例 服务端安装 下载安装脚本 ➜ ~ curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh
执行安装脚本 ➜ ~ bash ./install-release.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 98k 100 98k 0 0 495k 0 --:--:-- --:--:-- --:--:-- 495k
info: Installing V2Ray v4.27.5 for x86_64
Downloading V2Ray archive: https://github.com/v2fly/v2ray-core/releases/download/v4.27.5/v2ray-linux-64.zip
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 644 100 644 0 0 5457 0 --:--:-- --:--:-- --:--:-- 5457
100 12.6M 100 12.6M 0 0 8316k 0 0:00:01 0:00:01 --:--:-- 10.2M
Downloading verification file for V2Ray archive: https://github.com/v2fly/v2ray-core/releases/download/v4.27.5/v2ray-linux-64.zip.dgst
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 649 100 649 0 0 2368 0 --:--:-- --:--:-- --:--:-- 2368
100 590 100 590 0 0 1053 0 --:--:-- --:--:-- --:--:-- 1053
info: Extract the V2Ray package to /tmp/tmp.gWzZRTMMij and prepare it for installation.
installed: /usr/local/bin/v2ray
installed: /usr/local/bin/v2ctl
installed: /usr/local/share/v2ray/geoip.dat
installed: /usr/local/share/v2ray/geosite.dat
installed: /usr/local/etc/v2ray/config.json
installed: /var/log/v2ray/
installed: /var/log/v2ray/access.log
installed: /var/log/v2ray/error.log
installed: /etc/systemd/system/v2ray.service
installed: /etc/systemd/system/[email protected]
removed: /tmp/tmp.gWzZRTMMij
info: V2Ray v4.27.5 is installed. //安装完成
You may need to execute a command to remove dependent software: dnf remove curl unzip
Please execute the command: systemctl enable v2ray; systemctl start v2ray
配置systemd服务 ➜ ~ systemctl enable v2ray //添加systemd服务模块
Created symlink /etc/systemd/system/multi-user.target.wants/v2ray.service → /etc/systemd/system/v2ray.service.
➜ ~ systemctl start v2ray //开启v2ray服务
➜ ~ service v2ray status //检查v2ray服务状态
Redirecting to /bin/systemctl status v2ray.service
● v2ray.service - V2Ray Service
Loaded: loaded ( /etc/systemd/system/v2ray.service; enabled; vendor preset: disabled)
Active: active ( running) since Mon 2020-09-07 11:16:13 CST; 8s ago
Main PID: 25897 ( v2ray)
Tasks: 6 ( limit: 4566)
Memory: 4.7M
CGroup: /system.slice/v2ray.service
└─25897 /usr/local/bin/v2ray -config /usr/local/etc/v2ray/config.json
Sep 07 11:16:13 bwgcn2 systemd[ 1] : Started V2Ray Service.
Sep 07 11:16:13 bwgcn2 v2ray[ 25897] : V2Ray 4.27.5 ( V2Fly, a community-driven edition of V2Ray.) Custom ( go1.14.7 linux/amd64)
Sep 07 11:16:13 bwgcn2 v2ray[ 25897] : A unified platform for anti-censorship.
Sep 07 11:16:13 bwgcn2 v2ray[ 25897] : 2020/09/07 11:16:13 [ Info] v2ray.com/core/common/platform/ctlcmd: <v2ctl message>
Sep 07 11:16:13 bwgcn2 v2ray[ 25897] : v2ctl> Read config: /usr/local/etc/v2ray/config.json
Sep 07 11:16:13 bwgcn2 v2ray[ 25897] : 2020/09/07 11:16:13 [ Warning] v2ray.com/core: V2Ray 4.27.5 started
服务端配置 默认安装完成后,启用配置文件为/usr/local/etc/v2ray/config.json
,但这个默认配置为空,因此需要自定义服务端配置。
Thu, Aug 27, 2020 公式如下:
=6371004*ACOS(1-(POWER((SIN((90-B2)*PI()/180)*COS(A2*PI()/180)-SIN((90-D2)*PI()/180)*COS(C2*PI()/180)),2)+POWER((SIN((90-B2)*PI()/180)*SIN(A2*PI()/180)-SIN((90-D2)*PI()/180)*SIN(C2*PI()/180)),2)+POWER((COS((90-B2)*PI()/180)-COS((90-D2)*PI()/180)),2))/2)
将以上公式填写在E2单元格,其中A2、B2、C2、D2单元格对应前后两个经纬度值。
Tue, Aug 11, 2020 Windows10下访问WSL目录的方法其实很简单,如下所示:
➜ post git:( master) explorer.exe .
即可通过文件浏览器打开当前目录。
Thu, Aug 6, 2020 Joplin是一款开源的笔记软件,功能十分强大,支持多种同步方式,本文简介如何为joplin设置坚果云的webdav同步。
首先,登录坚果云网页版,进入账户信息 ->安全选项,在第三方应用管理中点击添加应用,输入自定义名称(joplin),点击生成密码。
然后打开joplin, 工具->选项->同步设置,参考如下设置:
同步目标:WebDAV WebDAV URL:https://dav.jianguoyun.com/dav/joplin/ ##建议添加目录joplin,否则用根目录的话会提示404失败 WebDAV 用户名: 坚果云用户名 WebDAV 密码 : 上一步生成的应用密码 然后检查同步配置提示成功即可,建议在高级选项中将最大并发连接数设置为2。
Thu, Jul 30, 2020 安装v2ray/nginx v2ray安装可以参考Ubuntu中v2ray客户端配置实例 .
Nginx安装推荐使用OneinStack一键安装脚本
准备好使用的域名,这里以**v.fuckgfw.cn
**为例。
v2ray/nginx服务端配置 v2ray安装好后,服务端配置**/etc/v2ray/config.json
**如下:
{
"inbounds": [{
"port": 99999, //代理端口号
"listen": "127.0.0.1",
"protocol": "vmess",
"settings": {
"clients": [{
"id": "5c1eed18-fse4-41fs-9as9-e85s45bds9ef",
"level": 1,
"alterId": 64
}]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/fcgfw" //代理目录
}
}
}],
"outbounds": [{
"protocol": "freedom",
"settings": {}
}, {
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}],
"routing": {
"rules": [{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "blocked"
}]
}
}
使用OneinStack一键脚本新建一个站点,域名为v.fuckgfw.cn
,采用SSL加密模式,完成后编辑**/usr/local/nginx/conf/vhost/v.fuckgfw.cn.conf
**文件
Mon, Mar 2, 2020 系统信息 alair@aml:~ $ inxi -F
System: Host: aml Kernel: 5.5.0-rc6-aml-s9xxx aarch64 bits: 32 Console: tty 0 Distro: Ubuntu 18.04.4 LTS
Machine: No /sys/class/dmi; using dmidecode: dmidecode is not installed.
CPU: Quad core ARMv8 rev 4 ( v8l) ( -MCP-) ( ARM)
clock speeds: max: 1512 MHz 1: 1512 MHz 2: 1512 MHz 3: 1512 MHz 4: 1512 MHz
Graphics: Card: Failed to Detect Video Card!
Display Server: N/A driver: N/A tty size: 254x72 Advanced Data: N/A out of X
Audio: Card AMLGX driver: AMLGX Sound: ALSA v: k5.5.0-rc6-aml-s9xxx
Network: Card: Failed to Detect Network Card!
Drives: HDD Total Size: NA ( -)
ID-1: /dev/mmcblk1 model: N/A size: 7.8GB
Partition: ID-1: / size: 6.3G used: 4.8G ( 76%) fs: ext4 dev: /dev/mmcblk1p2
ID-2: /boot size: 244M used: 77M ( 32%) fs: vfat dev: /dev/mmcblk1p1
ID-3: /var/log size: 49M used: 2.5M ( 6%) fs: ext4 dev: /dev/zram0
ID-4: swap-1 size: 0.91GB used: 0.00GB ( 0%) fs: swap dev: /dev/zram1
Sensors: None detected - is lm-sensors installed and configured?
Info: Processes: 155 Uptime: 2:39 Memory: 306.4/1741.2MB Init: systemd runlevel: 5
Client: Shell ( zsh) inxi: 2.3.56
Unixbench分数 alair@aml:~/unixbench-5.1.2 $ ./Run
make all
make[ 1] : Entering directory '/home/alair/unixbench-5.1.2'
Checking distribution of files
./pgms exists
./src exists
./testdir exists
./tmp exists
./results exists
make[ 1] : Leaving directory '/home/alair/unixbench-5.1.2'
sh: 1: 3dinfo: not found
# # # # # # # ##### ###### # # #### # #
# # ## # # # # # # # ## # # # # #
# # # # # # ## ##### ##### # # # # ######
# # # # # # ## # # # # # # # # #
# # # ## # # # # # # # ## # # # #
#### # # # # # ##### ###### # # #### # #
Version 5.1.2 Based on the Byte Magazine Unix Benchmark
Multi-CPU version Version 5 revisions by Ian Smith,
Sunnyvale, CA, USA
December 22, 2007 johantheghost at yahoo period com
Wide character in print at ./Run line 1510.
Wide character in printf at ./Run line 1541.
Use of uninitialized value in printf at ./Run line 1378.
Use of uninitialized value in printf at ./Run line 1379.
Use of uninitialized value in printf at ./Run line 1378.
Use of uninitialized value in printf at ./Run line 1379.
Use of uninitialized value in printf at ./Run line 1378.
Use of uninitialized value in printf at ./Run line 1379.
Use of uninitialized value in printf at ./Run line 1378.
Use of uninitialized value in printf at ./Run line 1379.
Use of uninitialized value in printf at ./Run line 1588.
Use of uninitialized value in printf at ./Run line 1589.
Use of uninitialized value in printf at ./Run line 1588.
Use of uninitialized value in printf at ./Run line 1589.
Use of uninitialized value in printf at ./Run line 1588.
Use of uninitialized value in printf at ./Run line 1589.
Use of uninitialized value in printf at ./Run line 1588.
Use of uninitialized value in printf at ./Run line 1589.
1 x Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10
1 x Double-Precision Whetstone 1 2 3 4 5 6 7 8 9 10
1 x Execl Throughput 1 2 3
1 x File Copy 1024 bufsize 2000 maxblocks 1 2 3
1 x File Copy 256 bufsize 500 maxblocks 1 2 3
1 x File Copy 4096 bufsize 8000 maxblocks 1 2 3
1 x Pipe Throughput 1 2 3 4 5 6 7 8 9 10
1 x Pipe-based Context Switching 1 2 3 4 5 6 7 8 9 10
1 x Process Creation 1 2 3
1 x System Call Overhead 1 2 3 4 5 6 7 8 9 10
1 x Shell Scripts ( 1 concurrent) 1 2 3
1 x Shell Scripts ( 8 concurrent) 1 2 3
Wide character in printf at ./Run line 1483.
4 x Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10
4 x Double-Precision Whetstone 1 2 3 4 5 6 7 8 9 10
4 x Execl Throughput 1 2 3
4 x File Copy 1024 bufsize 2000 maxblocks 1 2 3
4 x File Copy 256 bufsize 500 maxblocks 1 2 3
4 x File Copy 4096 bufsize 8000 maxblocks 1 2 3
4 x Pipe Throughput 1 2 3 4 5 6 7 8 9 10
4 x Pipe-based Context Switching 1 2 3 4 5 6 7 8 9 10
4 x Process Creation 1 2 3
4 x System Call Overhead 1 2 3 4 5 6 7 8 9 10
4 x Shell Scripts ( 1 concurrent) 1 2 3
4 x Shell Scripts ( 8 concurrent) 1 2 3
Wide character in printf at ./Run line 1483.
========================================================================
BYTE UNIX Benchmarks ( Version 5.1.2)
System: aml: GNU/Linux
OS: GNU/Linux -- 5.5.0-rc6-aml-s9xxx -- #rc1.037 SMP PREEMPT Wed Feb 5 17:28:41 MSK 2020
Machine: aarch64 ( aarch64)
Language: en_US.utf8 ( charmap= "UTF-8" , collate= "UTF-8" )
CPU 0: ARMv8 Processor rev 4 ( v8l) ( 0.0 bogomips)
CPU 1: ARMv8 Processor rev 4 ( v8l) ( 0.0 bogomips)
CPU 2: ARMv8 Processor rev 4 ( v8l) ( 0.0 bogomips)
CPU 3: ARMv8 Processor rev 4 ( v8l) ( 0.0 bogomips)
19:35:59 up 2:44, 1 user, load average: 2.13, 2.07, 2.01; runlevel 5
------------------------------------------------------------------------
Benchmark Run: 一 3月 02 2020 19:35:59 - 20:03:58
4 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 6888588.0 lps ( 10.0 s, 7 samples)
Double-Precision Whetstone 1373.9 MWIPS ( 9.8 s, 7 samples)
Execl Throughput 877.5 lps ( 30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 168765.4 KBps ( 30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 49199.4 KBps ( 30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 445012.9 KBps ( 30.0 s, 2 samples)
Pipe Throughput 327924.7 lps ( 10.0 s, 7 samples)
Pipe-based Context Switching 69606.2 lps ( 10.0 s, 7 samples)
Process Creation 2416.8 lps ( 30.0 s, 2 samples)
Shell Scripts ( 1 concurrent) 2283.5 lpm ( 60.0 s, 2 samples)
Shell Scripts ( 8 concurrent) 656.5 lpm ( 60.0 s, 2 samples)
System Call Overhead 632162.6 lps ( 10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 6888588.0 590.3
Double-Precision Whetstone 55.0 1373.9 249.8
Execl Throughput 43.0 877.5 204.1
File Copy 1024 bufsize 2000 maxblocks 3960.0 168765.4 426.2
File Copy 256 bufsize 500 maxblocks 1655.0 49199.4 297.3
File Copy 4096 bufsize 8000 maxblocks 5800.0 445012.9 767.3
Pipe Throughput 12440.0 327924.7 263.6
Pipe-based Context Switching 4000.0 69606.2 174.0
Process Creation 126.0 2416.8 191.8
Shell Scripts ( 1 concurrent) 42.4 2283.5 538.6
Shell Scripts ( 8 concurrent) 6.0 656.5 1094.1
System Call Overhead 15000.0 632162.6 421.4
========
System Benchmarks Index Score 369.1
------------------------------------------------------------------------
Benchmark Run: 一 3月 02 2020 20:03:58 - 20:32:08
4 CPUs in system; running 4 parallel copies of tests
Dhrystone 2 using register variables 26826718.3 lps ( 10.0 s, 7 samples)
Double-Precision Whetstone 5449.1 MWIPS ( 9.8 s, 7 samples)
Execl Throughput 2965.8 lps ( 30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 291243.4 KBps ( 30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 80902.5 KBps ( 30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 827300.0 KBps ( 30.0 s, 2 samples)
Pipe Throughput 1252522.5 lps ( 10.0 s, 7 samples)
Pipe-based Context Switching 217969.4 lps ( 10.0 s, 7 samples)
Process Creation 6193.8 lps ( 30.0 s, 2 samples)
Shell Scripts ( 1 concurrent) 5216.1 lpm ( 60.0 s, 2 samples)
Shell Scripts ( 8 concurrent) 701.8 lpm ( 60.1 s, 2 samples)
System Call Overhead 2375324.0 lps ( 10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 26826718.3 2298.8
Double-Precision Whetstone 55.0 5449.1 990.7
Execl Throughput 43.0 2965.8 689.7
File Copy 1024 bufsize 2000 maxblocks 3960.0 291243.4 735.5
File Copy 256 bufsize 500 maxblocks 1655.0 80902.5 488.8
File Copy 4096 bufsize 8000 maxblocks 5800.0 827300.0 1426.4
Pipe Throughput 12440.0 1252522.5 1006.9
Pipe-based Context Switching 4000.0 217969.4 544.9
Process Creation 126.0 6193.8 491.6
Shell Scripts ( 1 concurrent) 42.4 5216.1 1230.2
Shell Scripts ( 8 concurrent) 6.0 701.8 1169.6
System Call Overhead 15000.0 2375324.0 1583.5
========
System Benchmarks Index Score 943.1
Sat, Feb 29, 2020 Linux的Yandex.Disk控制台客户端使您可以在Yandex.Disk上管理文件,而无需使用窗口界面 或支持WebDAV的程序 。
与WebDAV连接相比,使用控制台客户端的优势:
Low system resource requirements. Faster file reading and writing speeds. Faster syncing with the Yandex.Disk server. Manage files offline. 控制台客户端可以安装在以下操作系统上:
Ubuntu Linux 8.04 及以上版本 Debian 5 及以上版本 Fedora 9 及以上版本 Red Hat Enterprise Linux 6 及以上版本 CentOS 6 及以上版本 安装Yandex CLI客户端 要自动安装客户端,请使用命令进行快速软件包安装。
.deb软件包 安装示例
echo "deb http://repo.yandex.ru/yandex-disk/deb/ stable main" | sudo tee -a /etc/apt/sources.list.d/yandex-disk.list > /dev/null
wget http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y yandex-disk
要手动安装客户端,请从下面的相应链接下载相应版本的软件包。
Tue, Feb 4, 2020 Hugo是由Go语言实现的静态网站生成器。简单、易用、高效、易扩展、快速部署。
新建hugo.repo
文件,sudo vi /etc/yum.repos.d/hugo.repo
,填入以下内容。
[ daftaupe-hugo]
name= Copr repo for hugo owned by daftaupe
baseurl= https://copr-be.cloud.fedoraproject.org/results/daftaupe/hugo/epel-7-$basearch/
type= rpm-md
skip_if_unavailable= True
gpgcheck= 1
gpgkey= https://copr-be.cloud.fedoraproject.org/results/daftaupe/hugo/pubkey.gpg
repo_gpgcheck= 0
enabled= 1
保存后更新安装Hugo
sudo yum update
sudo yum install hugo -y
Sun, Dec 8, 2019 安装必要软件 sudo apt install gnome-tweak-tool chrome-gnome-shell
安装Gnome Shell Extensions 使用Firefox浏览https://extensions.gnome.org/ ,第一次访问根据提示安装Firefox插件,如下图:
安装完成后,访问https://extensions.gnome.org/ 搜索安装以下三个GnomeShellExtension
User Themes 加载用户主题,加载目录为~/.local/share/themes Dash to Dock 定制 Dash/Dock Gnome Global Application Menu Gnome全局菜单 安装方法如下,进入到扩展详情后,点击标题后的开关,按照提示安装即可
安装主题 访问https://www.pling.com/ ,在GTK3 Themes分类下下载主题,下载后解压拷贝至~/.local/share/themes
下,然后打开gnome-tweak,在外观中即可选择已安装的主题。
在~/.local/share/
下新建themes 、icons 和fonts 三个目录,分别对应主题、图标、字体,这些资源都可以在https://www.pling.com/ 找得到。
以下为本人的桌面截图,仅供参考:
Thu, Nov 21, 2019 在Linux中安装Windows字体 使用的系统为xubuntu 25.04 ,Windows11系统分区lable为sys
参考如下操作:
# 新建字体目录
alair@e6440:~$ sudo mkdir /usr/share/fonts/winfonts
# 将windows字体拷贝至新目录
alair@e6440:~$ sudo cp /media/alair/sys/Windows/Fonts/* /usr/share/fonts/winfonts/
# 删除不需要的fon文件
alair@e6440:~$ sudo rm -rf /usr/share/fonts/winfonts/*.fon
# 应用字体目录,生成缓存
alair@e6440:~$ sudo mkfontscale
alair@e6440:~$ sudo mkfontdir
alair@e6440:~$ sudo fc-cache
Tue, Nov 5, 2019 上一篇文章介绍了如何在斐迅N1上安装Armbian ,现在介绍如何更改软件源为国内镜像。
编辑/etc/apt/sources.list
替换为以下内容:
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
deb http://ftp.debian.org/debian jessie-backports main
接着编辑/etc/apt/sources.list.d/armbian.list
,替换为以下内容:
deb http://mirrors.tuna.tsinghua.edu.cn/armbian/ buster main buster-utils buster-desktop
保存后,刷新缓存更新系统:
sudo apt update
sudo apt upgrade -y
Sun, Nov 3, 2019 202501更新 最新斐讯N1可用Debian 12镜像
Armbian_25.02.0_amlogic_s905d_bookworm_6.6.68_server_2025.01.01.img.gz
境外地址
国内线路下载 Armbian_25.02.0_amlogic_s905d_bookworm_6.6.68_server_2025.01.01.img.gz (访问密码: 3705)
安装方法
使用balenaEtcher
等工具将系统写入 U盘里,然后把写好系统的U盘插入盒子。
登录 Armbian 系统 (默认用户: root, 默认密码: 1234) → 输入命令:
原文
最近入手斐讯N1一枚,买的是白色未拆封,到手版本为V2.19_0307_NS ,刚好省了降级的麻烦,以下为斐讯N1安装armbian操作过程。
开启adb调试模式 将N1通过HDMI连接显示器,将鼠标插到N1的USB口上,开机后用鼠标点击系统版本:V2.19_0307_NS 区域,多次点击后会出现提示"开启adb调试模式",即可。
从此下载Minimal_ADB_Fastboot_v1.4.3.zip ,下载后安装。密码3705
准备刷机U盘 准备一个不小区8G的U盘,下载镜像写入工具balenaEtcher ,下载后安装。
下载Armbian 镜像,在此以Armbian_5.98_Aml-g12_Debian_buster_dev_5.4.0-rc4_20191025.img.xz 为例,镜像为debian最新版,不带桌面系统。如果需要其他的可以从此处 自行下载。
Armbian_5.98_Aml-g12_Debian_buster_dev_5.4.0-rc4_20191025.img.xz 密码3705
另外提供一个最近版的ubuntu 22.04 server 以供需要的朋友,Armbian_23.05.0_amlogic_s905d_jammy_6.1.29_server_2023.05.18.img.gz 密码3705
将下载后的镜像文件用balenaEtcher 写入U盘,写入完成后先别拔掉U盘,进入到BOOT 分区,找到uEnv.ini 文件,将dtb_name 行改为如下内容:
dtb_name=/dtb/amlogic/meson-gxl-s905d-phicomm-n1.dtb
然后退出U盘备用。
如果你的BOOT 分区下/dtd/amlogic/
目录中没有meson-gxl-s905d-phicomm-n1.dtb
文件,那么可以点击meson-gxl-s905d-phicomm-n1.dtb 下载放入相应目录即可。
从U盘引导Armbian 将制作好的系统U盘插到靠近HDMI一侧的U口,另外一个U口插入双公头的刷机线连接电脑,将N1通过HDMI连接显示器,并且插好网线然后开机。
开机后可以从显示器上看到盒子的IP地址,电脑上运行Minimal ADB and Fastboot ,然后输入adb connect 192.168.1.54
命令连接盒子,连接成功后会有如下提示:
connected to 192.168.1.54:5555
然后输入adb shell reboot update
开始从U盘引导Armbian系统,盒子重启后成功引导armbian,此时可以将usb刷机线 拔掉,插入一个外接键盘,开始后面操作。
Armbian 系统默认账号为root ,密码为1234 ,按照提示输入账号信息进行登录,登录后会有更改默认密码提示,按照提示更改默认密码。
接下来会有新建账号提示:
Creating a new user account. Press <Ctrl-C> to abort
Please provide a username (eg. your forename):
可以按照该提示新建账号,或者按Ctrl+c 终止,继续用root 账号登录。
Sat, Sep 7, 2019 一加3T 一加3T运行的是UbuntuTouch 系统
一加3T系统信息 phablet@ubuntu-phablet:~$ inxi -F
Resuming in non X mode: xrandr not found. For package install advice run: inxi --recommends
System: Host: android Kernel: 3.18.31-halium-gca027546546e-01041-g7961eb763e61 aarch64 (32 bit) Desktop: N/A
Distro: Ubuntu 16.04 xenial
Machine: No /sys/class/dmi; using dmidecode: dmidecode is not installed.
CPU: Quad core AArch64 Processor rev 1 (aarch64) (-MCP-) (ARM)
clock speeds: max: 2188 MHz 1: 1593 MHz 2: 1593 MHz 3: 1593 MHz 4: 1593 MHz
Graphics: Card: Failed to Detect Video Card!
Display Server: N/A driver: N/A Resolution: 165x47
Audio: Card msm8996-tasha-mtp-snd-card driver: msm8996-tasha-m
Sound: Advanced Linux Sound Architecture v: k3.18.31-halium-gca027546546e-01041-g7961eb763e61
Network: Card-1: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter driver: cnss_wlan_pci
IF: rename8 state: down mac: c2:ee:fb:e8:e2:ea
Card-2: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter driver: cnss_wlan_pci
IF: wlp1s0 state: up mac: c0:ee:fb:e8:e2:ea
Drives: HDD Total Size: 64.0GB (8.3% used) ID-1: /dev/sda model: KLUCG4J1CB size: 57.9GB
ID-2: /dev/sdb model: KLUCG4J1CB size: 0.0GB ID-3: /dev/sdc model: KLUCG4J1CB size: 0.0GB
ID-4: /dev/sdd model: KLUCG4J1CB size: 0.1GB ID-5: /dev/sde model: KLUCG4J1CB size: 4.3GB
ID-6: /dev/sdf model: KLUCG4J1CB size: 1.6GB
Partition: ID-1: / size: 2.9G used: 1.9G (67%) fs: ext4 dev: /dev/loop0
Sensors: None detected - is lm-sensors installed and configured?
Info: Processes: 551 Uptime: 1:02 Memory: 1668.1/5736.9MB Init: Upstart runlevel: 2
Client: Shell (bash) inxi: 2.2.35
一加3T unixbench跑分 ========================================================================
BYTE UNIX Benchmarks (Version 5.1.3)
System: ubuntu-phablet: GNU/Linux
OS: GNU/Linux -- 3.18.31-halium-gca027546546e-01041-g7961eb763e61 -- #1 SMP PREEMPT Wed Aug 21 20:33:17 CEST 2019
Machine: aarch64 (aarch64)
Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
11:39:26 up 58 min, 2 users, load average: 6.59, 7.93, 8.16; runlevel 2
------------------------------------------------------------------------
Benchmark Run: 六 9月 07 2019 11:39:26 - 12:07:49
0 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 13089762.3 lps (10.0 s, 7 samples)
Double-Precision Whetstone 3000.5 MWIPS (9.8 s, 7 samples)
Execl Throughput 1381.2 lps (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 254749.2 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 75714.9 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 813273.2 KBps (30.0 s, 2 samples)
Pipe Throughput 650583.5 lps (10.0 s, 7 samples)
Pipe-based Context Switching 22716.1 lps (10.0 s, 7 samples)
Process Creation 835.5 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 2556.9 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 938.3 lpm (60.0 s, 2 samples)
System Call Overhead 988399.2 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 13089762.3 1121.7
Double-Precision Whetstone 55.0 3000.5 545.5
Execl Throughput 43.0 1381.2 321.2
File Copy 1024 bufsize 2000 maxblocks 3960.0 254749.2 643.3
File Copy 256 bufsize 500 maxblocks 1655.0 75714.9 457.5
File Copy 4096 bufsize 8000 maxblocks 5800.0 813273.2 1402.2
Pipe Throughput 12440.0 650583.5 523.0
Pipe-based Context Switching 4000.0 22716.1 56.8
Process Creation 126.0 835.5 66.3
Shell Scripts (1 concurrent) 42.4 2556.9 603.1
Shell Scripts (8 concurrent) 6.0 938.3 1563.9
System Call Overhead 15000.0 988399.2 658.9
========
System Benchmarks Index Score 463.9
======= Script description and score comparison completed! =======
树莓派 树莓派运行的是官方Raspbian Buster Lite版
Fri, Sep 6, 2019 刷机所需文件:
提示:解压密码为 alair
如何判断Y913版本? 关机,按住电源减 +电源键 进入FASTBOOT MODE ,Version字段中PD1304CV后为版本号,分为A和B。
安装Y913驱动 下载驱动软件安装,完成后打开,按照提示安装adb 驱动,其他两个可选。
Y913刷机 将手机关机,进入FASTBOOT 模式连接电脑 下载对应版本的刷机包,解压后进入BrushPack 目录,打开Fastboot刷机工具 ,将同目录下的flash_all.bat 拖放到Fastboot刷机工具 窗口,点击开始刷机 ,按照提示刷机完成后手机自动重启。 Sun, Sep 1, 2019 Ubuntu Touch(又称Ubuntu Phone)是Canonical公司与Ubuntu社区所开发的移动设备操作系统,专为触屏行动设备所设计,例如:智能手机和平板电脑。
现在国外开发者Vince1171放出了Oneplus3/3t的UbuntuTouch适配版,现在我们就安装试试。
首先下载所需文件:
说明 :本文以ubports-touch.rootfs-xenial-armhf.tar.gz
系统镜像为例,官方还提供了以下三个镜像,想试的可以试下。
下载完成后下来开始安装,本地PC环境为LinuxMint(类Ubuntu),建议以下操作在root 权限下操作。
安装工具 首先安装adb
以及fastboot
工具
sudo apt install adb fastboot
解锁手机 接下来设置手机,设置 ->关于手机 ,连击版本号 打开开发者选项 ,进入开发者选项 打开OEM解锁
然后关闭手机,按住电源 +音量上 进入fastboot模式,链接手机和电脑。
在电脑端运行以下命令解锁
按照手机提示,选择YES 开始解锁,完成后手机重启。
安装Recovery 重启手机进入fastboot模式
接下来通过以下命令安装Recovery
fastboot flash recovery TWRP_recovery.img
安装完成后,关闭手机,按电源 +音量减 进入Recovery
安装LineageOS 通过TWRP Recovery来刷入LineageOS ROM ,完成后双清重启再次进入Recovery ,通过数据线连接手机,进行后面操作。
安装UbuntuTouch 手机进入Recovery 模式,通过数据线连接电脑,然后开始按照以下进行安装。
root@hpzb14:/media/alair/data# ./halium-install.sh -p ut ubports-touch.rootfs-xenial-armhf.tar.gz system.img
Debug: Chosen rootfs is ubports-touch.rootfs-xenial-armhf.tar.gz
Debug: Chosen android image is system.img
Debug: Chosen release is ut
I: Writing rootfs into mountable image
I: Writing android image into mountable image
I: Running post installation tasks
enabling Mir ... [ done ]
enabling SSH ... [ done ]
Please enter a new password for the user 'phablet' :
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd: password updated successfully
I: Unmounting images
I: Shrinking images
e2fsck 1.44.1 ( 24-Mar-2018)
resize2fs 1.44.1 ( 24-Mar-2018)
将 .halium-install-imgs.6Kcou/system.img 上的文件系统调整为 120200 个块(每块 4k)。
开始第 2 步(共 32687 步)
正在重定位块 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
开始第 3 步(共 24 步)
正在扫描inode表 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
.halium-install-imgs.6Kcou/system.img 上的文件系统现在为 120200 个块(每块 4k)。
I: Pushing rootfs and android image to /data via ADB
.halium-install-imgs.6Kcou/rootfs.img: 1 file pushed. 7.1 MB/s ( 3221225472 bytes in 433.702s)
.halium-install-imgs.6Kcou/system.img: 1 file pushed. 7.7 MB/s ( 492339200 bytes in 61.329s)
I: Cleaning up host
I: Cleaning up device
然后继续在Recovery 模式下:
Mon, Aug 19, 2019 感谢俄罗斯大神Fox_exe 提供破解方法以及软件。
破解方法:
登录网页版后台 在URL后输入以下内容:
javascript:APP_INSTALL_FUNCTION=1; APPS_EULA=1; check_app_eula();
备用方法 按[ctrl] + [shift] + [i], 进入 “Console” , 输入以下内容按回车键:
APP_INSTALL_FUNCTION=1; APPS_EULA=1; check_app_eula();
进入应用 页,安装"WD_Crack",下载地址 。 刷新页面后就可以安装其他三方app。 一些三方软件
以下为部分软件清单,详细清单请转至下载目录»
WDMyCloud_AcronisTrueImage_2015.bin
WDMyCloud_Adminer_4.2.5.bin
WDMyCloud_Arcus_2.5325088.bin
WDMyCloud_BitTorrentSync_2.3.8.bin
WDMyCloud_ChrootedDebian_8.0-1.bin
WDMyCloud_CustomAppList_0.5.bin
WDMyCloud_DVBLink_5.50.bin
WDMyCloud_Dropbox_2.00.bin
WDMyCloud_IceCast_1.04.bin
WDMyCloud_Joomla_1.03.bin
WDMyCloud_MediaWiki_1.23.15.bin
WDMyCloud_QuikFynd2_2.0.1.bin
WDMyCloud_Sitebar_3-1.bin
WDMyCloud_SqueezeCenter_1.03.bin
WDMyCloud_Transmission_2.92-2.bin
WDMyCloud_UtilsUpdate-extras_1.0.0.bin
WDMyCloud_UtilsUpdate_17.bin
WDMyCloud_WDFacebook_0.1.bin
WDMyCloud_WDSleepFix_1.0.bin
WDMyCloud_WDTimeline_0.1.bin
WDMyCloud_WordPress_1.03.bin
WDMyCloud_WordPress_4.7.2.bin
WDMyCloud_WordPress_4.7.bin
WDMyCloud_Z-Way-Server_2.22.bin
WDMyCloud_aMule_1.05.bin
WDMyCloud_abFiles_1.55.bin
WDMyCloud_cdc-acm_0.1.bin
WDMyCloud_clamAV_1.12.bin
WDMyCloud_cops_1.0.1.bin
WDMyCloud_git_1.40.bin
WDMyCloud_hamachi_2.1.0.174.bin
WDMyCloud_nzbget_1.23.bin
WDMyCloud_pawfaliki_0.5.2-2.bin
WDMyCloud_phormer_3.3.1-1.bin
WDMyCloud_phpBB_1.03.bin
WDMyCloud_phpMyAdmin_4.0.10.18.bin
WDMyCloud_phpSysInfo_3.2.6-2.bin
WDMyCloud_plexmediaserver_1.16.0.1226.bin
Sun, Aug 4, 2019 在一加3T上安装完UbuntuTouch 后,参考此文开启SSH 登录。
接下来就是更换软件源了,国内推荐USTC和清华大学开源镜像。
通过vi /etc/apt/sources.list
编辑软件源,然后在vi中通过以下命令进行替换操作:
:%s/ports.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g
保存后即可。
Thu, Aug 1, 2019 在一加3T上安装完UbuntuTouch 后,可以通过以下方法开启SSH登录。
打开终端(Terminal),输入以下命令开启ssh服务。
sudo android-gadget-service enable ssh
然后就可以通过ssh phablet@ip
来登录设备。
Sun, Jul 28, 2019 Windows10中可以通过修改注册表的方法找回照片查看器。
新建ton.reg
注册表文件,内容如下:
Windows Registry Editor Version 5.00
; Change Extension's File Type
[HKEY_CURRENT_USER\Software\Classes\.jpg]
@="PhotoViewer.FileAssoc.Tiff"
; Change Extension's File Type
[HKEY_CURRENT_USER\Software\Classes\.jpeg]
@="PhotoViewer.FileAssoc.Tiff"
; Change Extension's File Type
[HKEY_CURRENT_USER\Software\Classes\.gif]
@="PhotoViewer.FileAssoc.Tiff"
; Change Extension's File Type
[HKEY_CURRENT_USER\Software\Classes\.png]
@="PhotoViewer.FileAssoc.Tiff"
; Change Extension's File Type
[HKEY_CURRENT_USER\Software\Classes\.bmp]
@="PhotoViewer.FileAssoc.Tiff"
; Change Extension's File Type
[HKEY_CURRENT_USER\Software\Classes\.tiff]
@="PhotoViewer.FileAssoc.Tiff"
; Change Extension's File Type
[HKEY_CURRENT_USER\Software\Classes\.ico]
@="PhotoViewer.FileAssoc.Tiff"
保存后,双击运行即可,然后右键打开方式中即可看到照片查看器。
Wed, Jul 10, 2019 Debian10中/etc/sudoers
中提示了需要通过visudo
来编辑该文件,如下:
This file MUST be edited with the ‘visudo’ command as root.
但奇葩的是系统中没有visudo
命令,apt
搜索也搜不到,-_-!
解决方法为,先使用su
切换至root用户,然后apt install sudo
安装sudo
然后编辑/etc/sudoers
,加入以下内容,保存时使用wq!
强制保存即可。
username ALL=(ALL:ALL) ALL
或者使用echo
直接写入到/etc/sudoers
中。
#echo "username ALL=(ALL:ALL) ALL" >> /etc/sudoers
接下来就可以使用sudo
命令来进行root 权限操作了。
Tue, Jul 9, 2019 安装Ubuntu和Windows双系统的情况下,Ubuntu的时间总会和Windows的时间相差8小时,原因在于widows认为BIOS时间是本地时间,Ubuntu认为BIOS时间是UTC时间,即协调世界时(Universal Time Coordinated),是由国际无线电咨询委员会规定和推荐,并由国际时间局(BIH)负责保持的以秒为基础的时间标度。
UTC相当于本初子午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(GMT)来表示。北京时间比UTC时间早8小时,以1999年1月1日0000UTC为例,UTC时间是零点,北京时间为1999年1月1日早上8点整。所以我们在时间上面相隔了8个小时。这个时候bios的时间和系统的时间当然是不一致,一个代表UTC时间,一个代表CST(+8时区),即上海的时间。
编辑/etc/default/rcS
将UTC=yes
改成UTC=no
新版Ubuntu使用systemd作为管理系统,时间由timedatectl来管理,以下为修改方法:
$sudo timedatectl set-local-rtc 1
重启完成。
Thu, Jul 4, 2019 Firefox Send是什么? Firefox Send是一个简单、私密的文件分享服务,使用Firefox Send端到端加密分享文件,链接到期即焚。分享更私密,文件到期真正无痕迹。
安装ffsend ffsend是一款Firefox Send的客户端,支持多种操作系统(Linux、Windows、MacOS…)
以下为CentOS7安装ffsend实例:
#wget https://glare.now.sh/timvisee/ffsend/linux-x64-static -o /usr/local/bin/ffsend
#chmod +x /usr/local/bin/ffsend
其他版本安装可以参考ffsend官网 和ffsend官方下载
ffsend使用方法 上传文件
ffsend upload fenix.apk
Upload complete
https://send.firefox.com/download/4cecb9c1ab628f8e/#m5is-YRSfnBIQ-pBaSds0A
高级上传
指定下再限制20
输入密码加密文件
在上传之前归档文件
将共享链接复制到剪贴板
在浏览器中打开共享链接
ffsend upload --downloads 20 --password --archive --copy --open fenix.apk
Password: ******
https://send.firefox.com/download/4cecb9c1ab628f8e/#m5is-YRSfnBIQ-pBaSds0A
上传到自定义主机
ffsend u -h https://example.com/ my-file.txt
https://example.com/#sample-share-url
下载文件
ffsend download https://send.firefox.com/download/4cecb9c1ab628f8e/#m5is-YRSfnBIQ-pBaSds0A
Tue, Jun 11, 2019 安装WebP Ubuntu中可以使用以下命令安装WebP
$sudo apt install webp
其他Linux系统,可以从这里 下载对应压缩包,如下:
wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2-linux-x86-64.tar.gz
解压后得到以下文件:
$tar zxf libwebp-1.0.2-linux-x86-64.tar.gz
$cd libwebp-1.0.2-linux-x86-64
$cd bin
$ll
total 12M
-rwxr-xr-x 1 100 users 679K Jan 15 12:47 anim_diff
-rwxr-xr-x 1 100 users 923K Jan 15 12:47 anim_dump
-rwxr-xr-x 1 100 users 2.4M Jan 15 12:47 cwebp
-rwxr-xr-x 1 100 users 915K Jan 15 12:47 dwebp
-rwxr-xr-x 1 100 users 2.3M Jan 15 12:47 get_disto
-rwxr-xr-x 1 100 users 703K Jan 15 12:47 gif2webp
-rwxr-xr-x 1 100 users 2.4M Jan 15 12:47 img2webp
-rwxr-xr-x 1 100 users 682K Jan 15 12:47 vwebp
-rwxr-xr-x 1 100 users 359K Jan 15 12:47 webpinfo
-rwxr-xr-x 1 100 users 375K Jan 15 12:47 webpmux
-rwxr-xr-x 1 100 users 347K Jan 15 12:47 webp_quality
anim_diff – 动画文件差异对比工具 anim_dump – 动画文件差异转存工具 cwebp – webp编码工具 dwebp – webp解码工具 gif2webp – 转换gif为webp img2webp – 将一系列图片转换为webp动画文件 vwebp – webp查看软件 webpinfo – 查看webp图片文件信息 webpmux – webp复用工具 WebP转换实例 将webp工具目录添加至PATH 中,编辑~/.bashrc
添加以下内容:
Tue, Jun 11, 2019 打开Termux,从屏幕左边缘向右滑动,打开抽屉菜单,然后长按KEYBOARD ,即可打开扩展快捷键。
Mon, Jun 10, 2019 好消息,最新版的termux已经可以使用termux-change-repo
来修改mirror,如果提示命令不存在,安装termux-tools 即可:pkg install termux-tools
编辑apt源配置文件sources.list
vi /data/data/com.termux/files/usr/etc/apt/sources.list`
使用 sed 命令进行文本替换:
sed -i 's,https://termux.net,https://mirrors.ustc.edu.cn/termux,' $PREFIX/etc/apt/sources.list
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list
更新
apt update&& apt upgrade -y
Termux软件管理可参考Termux软件管理
Tue, May 14, 2019 AlpineLinux介绍 Alpine 的意思是“高山的”,比如 Alpine plants高山植物,Alpine skiing高山滑雪、the alpine resort阿尔卑斯山胜地。
Alpine Linux 网站首页注明“Small!Simple!Secure!Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.”概括了以下特点:
小巧:基于Musl libc和busybox,和busybox一样小巧,最小的Docker镜像只有5MB; 安全:面向安全的轻量发行版; 简单:提供APK包管理工具,软件的搜索、安装、删除、升级都非常方便。 适合容器使用:由于小巧、功能完备,非常适合作为容器的基础镜像。 准备工作 安装VMware 虚拟机软件,新建虚拟机,配置如下:
下载AlpineLinux镜像文件alpine-standard-3.21.1-x86_64.iso ,下载地址: https://www.alpinelinux.org/downloads/
设置虚拟机光驱挂载镜像文件alpine-standard-3.21.1-x86_64.iso 。
开始安装Alpine Linux 启动虚拟机,开始从光驱引导系统,进入系统后,输入root
登录,然后输入setup-alpine
开始启动安装程序。
下来设置键盘布局(us)、主机名(vm)以及网络配置:
接着设置时区(timezone)
然后是网络代理和网络时间同步(NTP)设置
接下里选择软件源镜像(mirrors),我选择了兰州大学的镜像:
然后选择SSH服务程序,设置安装磁盘以及使用方式,完成安装后会提示 Installation is complete. Please reboot. 至此安装完成。
安装Awesome桌面 添加普通用户
vi /etc/apk/repositories
编辑软件源配置,去掉其中Community Repository前面的注释符(#)
apk update&&apk upgrade
更新软件。
安装awesome 使用以下命令安装awesome、lua、feh和lxterminal
Sat, May 4, 2019 诺基亚N900有前后两个镜头,前置640x480(0.3M)后置848*480(0.4M),这两个镜头都是V4L2 设备,分别对应**/dev/video0和 /dev/video1**,因此可以方便的通过mplayer 或gstreamer ;来访问它们。
Video4Linux或V4L是一个视频截取及设备输出API,以及Linux的驱动程序框架,支持很多USB摄像头、电视调谐卡以及其他设备。
V4L2是V4L的第二个版本。Video4Linux2修复了一些设计上的程序错误,最先在2.5.X版的核心中出现。Video4Linux2的驱动程序包含了一个对Video4Linux1应用程序的兼容模式,虽然支持并不完整,并且建议在V4L2模式下使用Video4Linux1设备。
mplayer访问镜头:
$ mplayer tv:// -tv device=/dev/video0 # 后置镜头
$ mplayer tv:// -tv device=/dev/video1 # 前置镜头
如果使用前置镜头,建议使用镜像模式-vf mirror
$ mplayer tv:// -tv device=/dev/video1 -vf mirror
Wed, May 1, 2019 刷机工具以及固件文件下再地址见文章末尾。
首先安装刷机工具maemo flasher ,然后下载固件,固件分以下两个文件,下载地址
emmc(vanilla) firmware(combined) 切记,先刷emmc
再刷firmware
,并且两次刷机中间不可以开机。
将手机关机,然后按住键盘上的u 键,再用数据线将手机链接电脑,这是手机会显示NOKIA字样界面,并且右上角显示有USB图标,即进入刷机模式。
首先写入EMMC
文件,命令如下flasher-3.5 -F emmc.bin -f
,以下为linux下操作实例,以供参考
alair@zb14:~/下载$ sudo flasher-3.5 -F RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin -f
[ sudo] alair 的密码:
flasher v2.5.2 ( Oct 21 2009)
Image 'mmc' , size 255947 kB
Version RX-51_2009SE_10.2010.13-2.VANILLA
USB device found found at bus 002, device address 012.
Found device RX-51, hardware revision 2204
NOLO version 1.4.14
Version of 'sw-release' : RX-51_2009SE_21.2011.38-1_PR_MR0
Booting device into flash mode.
Suitable USB device not found, waiting.
USB device found found at bus 002, device address 013.
Raw data transfer EP found at EP2.
Image( s) flashed successfully in 27.304 s ( 9373 kB/s) !
然后断开链接,取出电池,重新将电池放入再次刷机模式链接电脑,下来写入firmware
文件,命令flasher-3.5 -F firmware.bin -f -R
,以下为Linux操作实例,以供参考。
Tue, Apr 30, 2019 NokiaN900自带的软件不少,还有一些游戏,以下为这些软件的删除方式。
首先,建议安装rootsh
以获取ROOT权限 ,然后在xTermianl进行以下操作。
名称 说明 删除命令 Mahjong 游戏 apt-get remove -y osso-mahjong Chess 游戏 apt-get remove -y gnuchess Blocks 游戏 apt-get remove -y maemoblocks Marbles 游戏 apt-get remove -y osso-lmarbles AP News 软件 apt-get remove -y ap-installer Docs To Go 软件 apt-get remove -y dtg-installer Sketch 画图 apt-get remove -y osso-sketch Backup 备份 apt-get remove -y osso-backup PDF reader PDF阅读 apt-get remove -y osso-pdf-viewer RSS RSS订阅 apt-get remove -y osso-rss-feed-reader Notes 记事本 apt-get remove -y osso-notes Amazon Amazon安装快捷方式 rm /usr/share/maemo-installer-utils/amazon.install rm /usr/share/applications/hildon/amazon.desktop Facebook Facebook安装快捷方式 rm /usr/share/applications/hildon/facebook.desktop rm /usr/share/maemo-installer-utils/facebook.install Maps Nokia地图 apt-get remove -y nokia-maps* Force Weather 天气预报安装快捷方式 rm /usr/share/maemo-installer-utils/foreca.install rm /usr/share/applications/hildon/foreca.desktop User Guide 用户手册快捷方式 rm /usr/share/applications/hildon/user-guide.desktop Get started 开始使用指南 apt-get remove -y tutorial-home-applet Store Nokia商店快捷方式 rm /usr/share/applications/hildon/ovi.desktop
Sun, Apr 28, 2019 准备
下载地址http://releases.nemomobile.org/releases/
以最新目录为例,下载http://releases.nemomobile.org/releases/latest/images/nemo-armv7hl-n900/ 里的nemo-armv7hl-n900-mmcblk0p.raw.bz2
解压出raw文件,然后改后缀为img。Windows下用Win32DiskImager 将镜像文件写入TF卡。
Linux下可以使用dd
命令直接写入,不需要改后缀名:
alair@e6440:/media/alair/bak/downloads$ sudo dd if=nemo-armv7hl-n900-mmcblk0p.raw of=/dev/sdc bs=1M
[sudo] alair 的密码:
记录了3640+1 的读入
记录了3640+1 的写出
3816816641 bytes (3.8 GB, 3.6 GiB) copied, 185.35 s, 20.6 MB/s
Windwos中用winscp 在你的N900的/etc/bootmenu.d/
新建一个40-nemo.item
文件,贴入以下内容:
ITEM_NAME="Mer-Nemo Mobile"
ITEM_ID="nemo"
ITEM_DEVICE="${EXT_CARD}p3"
ITEM_KERNEL="uImage"
ITEM_FSTYPE="vfat"
ITEM_CMDLINE="root=/dev/mmcblk0p1 rootwait ro console=ttyO2,115200n8 console=tty0 omapfb.vram=0:2M,1:2M,2:2M mtdoops.mtddev=2 quiet"
ITEM_OMAPATAG=1
Linux系统下可以直接SSH连接N900 进行操作。
然后root运行
u-boot-update-bootmenu
关机,插入TF卡,然后推开键盘开机,选Mer-Nemo Mobile 进入即可。
Mon, Apr 22, 2019 时隔八年,再次入手Nokia N900
系统截图
Nokia N900配置 参数 属性 网络 GSM / HSPA 2G bands GSM 850 / 900 / 1800 / 1900 3G bands HSDPA 900 / 1700 / 2100 速率 HSPA 10.2/2 Mbps GPRS Class 32 EDGE Class 32 发布 2009, August. Released 2009, November 状态 停产 外观尺寸 110.9 x 59.8 x 18 mm, 113 cc (4.37 x 2.35 x 0.71 in) 重量 181 g (6.38 oz) 键盘 QWERTY SIM Mini-SIM 类型 TFT resistive touchscreen, 65K colors 尺寸 3.5 inches, 34.9 cm2 (~52.6% screen-to-body ratio) 分辨率 800 x 480 pixels, 5:3 ratio (~267 ppi density) 操作系统 Maemo 5 平台 TI OMAP 3430 CPU 600 MHz Cortex-A8 GPU PowerVR SGX530 外置存储 microSD, up to 16 GB (dedicated slot) 内置存储 32 GB, 256 MB RAM 摄像头 5 MP, AF 特性 Carl Zeiss optics, Dual-LED flash 视频 480p@25fps 制式 VGA 外放 Yes, with stereo speakers 3.5mm接口 Yes WLAN Wi-Fi 802.11 b/g, DLNA 蓝牙 2.1, A2DP GPS Yes, with A-GPS; Ovi Maps 红外 Yes 广播 Stereo FM radio (via third party software); FM transmitter USB microUSB 2.0 传感器 Accelerometer, proximity 浏览器 xHTML, HTML, Adobe Flash 多媒体 MP3/WMA/WAV/eAAC+ player 多媒体 WMV/RealVideo/MP4/AVI/XviD/DivX player 视频输出 TV-out 文档 PDF document viewer 图片 Photo editor 电池 Removable Li-Ion 1320 mAh battery (BL-5J) 待机 Up to 278 h (2G) / Up to 250 h (3G) 通话时长 Up to 6 h 30 min (2G) / Up to 4 h 30 min (3G) 音频播放 Up to 24 h 30 min 颜色 Black SAR 0.92 W/kg (head) 0.82 W/kg (body) SAR EU 0.80 W/kg (head) 价格 About 160 EUR 外放 Voice 66dB / Noise 66dB / Ring 70dB 音频质量 Noise -93.7dB / Crosstalk -86.9dB
Sun, Apr 21, 2019 系统 版本 代号 构建标识 发布时间 首发设备 备注 支持设备 OS2005 1.1 - 2.2005.45-1 2005/11/1 770 770 OS2005 1.1 - 3.2005.51-13 2005/12/1 770 OS2005 1.1 - 5.2006.13-7 2006/4/1 770 OS2006 2 Mistral 0.2006.22-21 2006/5/1 770 OS2006 2 Mistral 1.2006.26-8 2006/5/1 770 OS2006 2.1 Scirocco 2.2006.39-14 2006/11/1 770 OS2006 2.2 Gregale 3.2006.49-2 2007/1/1 770 770 OS2007 3 Bora 2.2006.51-6 2007/1/1 N800 770*, N800 OS2007 3.1 Bora 3.2007.10-7 2007/3/1 770*, N800 OS2007 3.2 Bora 4.2007.26-8 2007/7/1 770*, N800 OS2007 3.2 Bora 4.2007.38-2 2007/10/1 770*, N800 OS2008 4 Chinook 1.2007.42-18 2007/11/1 N810 (N810 only) N810 OS2008 4 Chinook 1.2007.42-19 2007/11/1 (N810 only) N810 OS2008 4 Chinook 1.2007.44-4 2007/11/1 (N800 only) N800 OS2008 4 Chinook 2.2007.50-2 2007/11/1 770*, N800, N810 OS2008 4 Chinook 2.2007.51-3 2008/1/1 770*, N800, N810 OS2008 4.1 Diablo 4.2008.23-14 2008/6/1 N800, N810 OS2008 4.1 Diablo 4.2008.30-2 2008/8/1 N800, N810 OS2008 4.1 Diablo 4.2008.36-5 2008/9/1 N800, N810 OS2008 4.1 Diablo 5.2008.43-7 2008/12/1 N800, N810 Maemo 5 5 Fremantle 1.2009.42-11 2009/11/1 N900 N900 Maemo 5 5 Fremantle 1.2009.44-1 2010/1/1 N900 Maemo 5 5 Fremantle 2.2009.51-1 2010/1/1 PR1.1 N900 Maemo 5 5 Fremantle 3.2010.02-8 2010/2/1 PR1.1.1 N900 Maemo 5 5 Fremantle 10.2010.12-9 2010/5/1 PR1.2 N900 Maemo 5 5 Fremantle 10.2010.19-1 2010/5/1 PR1.2 N900 Maemo 5 5 Fremantle 20.2010.36-2 2010/10/25 PR1.3 N900 Maemo 5 5 Fremantle 21.2011.38-1 2011/10/26 PR1.3.1 N900 MeeGo 1 Arlington 1 2010/5/26 N900, etc. MeeGo 1.1 Irvine 1.1 2010/10/28 Aava and Nokia N900 MeeGo 1.2 Harmattan 1.2011.34-2 – N950 N9, N950
Sat, Apr 20, 2019 首先,下载以下几个文件:
刷出厂版ROM 给魅族PRO 5刷出厂版ROM,请将出厂版ROM的文件名命名为“update.zip”,把它放在手机内置存储根目录,同时按住音量增加 和电源 ,等待数秒,直至手机重启至Recovery模式。手机成功重启至Recovery模式后,手机屏幕将显示以下画面:
点击“开始”按钮刷机。
打开Root权限 刷机完成后,我们进入刚刚刷入的系统,登录你的Flyme帐户,然后,在“设置-指纹和安全”里开启系统的Root权限。Root权限开启成功后,手机将重启一次。
安装SuperSU 安装SuperSU并打开,选择“极客”模式并进入,SuperSU将提示你更新二进制文件,以“常规方式”安装即可。
在安装二进制文件的过程中,SuperSU将申请Root权限,请同意申请。
更新过二进制文件后,请重启手机。
安装Busybox 安装Busybox并打开,点击屏幕右下角的“INSTALL”按钮。
在安装的过程中,Busybox将申请系统的Root权限,请同意申请(此时Root授权将由SuperSU接管)。
如果Busybox的安装一切顺利,其安装日志如下:
修改系统标识 安装并打开RootBrowser,导航至以下目录:
/dev/block/platform/15570000.ufs/by-name/
找到文件:proinfo,点击文件,选择“Open as…”,选择“Text file”,再选择“RB Text Editor”。
这期间,RootBrowser将申请系统的Root权限,请同意申请。
在“proinfo”里找到以下行:
machine_type=M576_mobile_public
将其改为:
machine_type=M576_intl_official
如下:
改过之后请保存更改,然后退出RootBrowser,重启手机。
手机重启过之后,请再次在RootBrowser里查看proinfo的状态。如果“machine_type=”后的文本为“M576_intl_official”,则说明我们的操作成功了。
刷国际版ROM 将国际版Flyme的刷机包命名为“update.zip”,将其放置在手机内置存储的根目录。
同时按住手机的音量增加键和电源键,等待数秒,直至手机重启到Recovery。
刷机的步骤和给魅族PRO 5刷出厂版系统一样,在Recovery里点“开始”按钮即可。
刷机完成后,国际版Flyme的桌面如下:
解锁bootloader 同时按住手机的音量减小键和电源键,等待数秒,直至其重启到Fastboot模式。
将手机通过数据线连接到计算机(请保证Fastboot驱动已经正确安装),进入Fastboot工具文件夹,在文件资源管理器里按住Shift键的同时单击鼠标右键,选择“在此处打开Powershell窗口”,并在Powershell里执行以下命令:
./fastboot oem unlock
成功解锁后,手机屏幕的右下角将显示“unlocked”字样如下:
安装Ubuntu Touch 进入https://github.com/ubports/ubports-installer ,下载适应版本的UBports Installer安装程序
打开ubports installer,点击“Select device manually”按钮,在机型列表里选择“Meizu PRO 5”。
Fri, Apr 19, 2019 树莓派Zero因为相对来说太小巧,没有提供初始化的网卡,所以我们除了通过串口连接以外,树莓派Zero也提供了USB直接连接的方式。即通过Ethernet Gadget模式来连接pc,并进行ssh连接。
Ethernet
Gadget模式即USB网卡模式,比较常见的就是我们通过android手机的usb接口对pc进行网络共享的一种手段。一般电脑都会自动识别这种设备,并开启网卡进行共享。
修改配置文件 为了进行USB连接,我们需要修改BOOT文件夹下的config.txt 与cmdline.txt 配置文件。
首先在config.txt 最末行处换行添加如下代码,打开usb网卡模式:
dtoverlay=dwc2
其次在cmdline.txt 文件中找到rootwait
字段,并在其后面空格添加如下信息,在打开系统时开启USB网卡模式。
modules-load=dwc2,g_ether
在boot分区新建ssh文件,以打开ssh访问功能。
touch ssh
通过usb连接设备 树莓派zero有两个MicroUSB口,一个是电源插口,职司供电的功能,另外一个就是USB接口,它除了供电以外还提供OTG的功能,我们也是通过这个接口来连接PC。
此时我们可以通过以下代码连接树莓派zero:
ssh [email protected]
但此时ip段为DHCP模式获取,如果我们希望通过ip来连接,则我们需要给树莓派的usb网卡设置ip。
设置USB网卡的IP 我们可以通过ifconfig -a来查看我们现在的网卡设备,此时我们可以看到,USB0网卡设备,我们就是通过该设备连接的pc,所以我们需要设置该网卡的ip。
sudo nano /etc/network/interfaces
打开网卡配置界面,在最末行添加如下代码来设置固定IP:
allow-hotplug usb0
iface usb0 inet static
address 192.168.7.2
netmask 255.255.255.0
network 192.168.7.0
broadcast 192.168.7.255
gateway 192.168.7.1
然后重启usb0网卡:
sudo ifdown usb0
sudo ifup usb0
ifconfig usb0
但树莓派此时实际上是从机,我们需要通过设置pc主机的ip来让树莓派0的usb网卡真正运作起来,那么我们对刚才的usb设备设置如下IP:
IP: 192.168.7.1
掩码: 255.255.255.0
路由: 192.168.7.1
此时我们就可以通过ip来进行ssh连接了:
ssh [email protected]
Thu, Apr 11, 2019 上月不知什么原因VPS流量提前消耗完了,然后通知这月10号重新reset,于是只能临时开了一个月的locvps进行过渡。好不容易熬到昨儿,reset后赶紧把数据和站点又搬回来。
今儿偶尔登录vps,突然发现流量消耗咋一直很高,两天不到就消耗了170G,额滴神呐!查看详细使用统计,发现从昨儿reset以来,OUT bps一直维持在19M左右,瞬间脑袋瓜嗡嗡的!
于是赶紧动手找找,看看消耗流量的元凶到底是谁?
首先,安装iftop 来检查网络使用情况。官网在这里http://www.ex-parrot.com/~pdw/iftop/ ,CentOS安装方法如下:
yum install -y flex byacc libpcap ncurses ncurses-devel libpcap-devel #安装需求软件
wget http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gz
tar zxf iftop-0.17.tar.gz
cd iftop-0.17
./configure
make && make install
安装完成后,可以通过iftop来运行,建议加上-P参数,显示使用端口信息,如下:
主界面中左侧为本地端,右侧为远端,中间的<=和=>表示流量方向。
下面的TX:发送流量/RX:接收流量/TOTAL:总流量/Cumm:运行iftop到目前时间的总流量/peak:流量峰值/rates:分别表示过去 2s 10s 40s 的平均流量
从上图来看,本地IP一直在向一个140.249.34.53 发送数据,从peak统计来看,速率在22.3Mb 左右,和网站统计相符。
知道端口后,可以通过 netstat -ntlup|grep 端口号
来查看具体进程,没有的话可以通过yum install net-tools
来安装。
我试着查了下这个IP,发现是山东青岛的,再通过IP反查域名,真想才出来了,原来是百度云的相关IP。这才想起来,我安装了BaiduPCS-Go百度网盘客户端,用来对vps数据进行备份,原来搞鬼的是这个东西。找到元凶就好办了,首先把这个IP给禁了iptables -A INPUT -p tcp -s 140.249.34.53 -j DROP
禁完后,实时流量一下子就降了下来,如下所示:
而后将BaiduPCS-Go删除,以绝后患!
Mon, Mar 4, 2019 安装Ruby/DevKit 首先下载以下两个文件进行安装
最新版可从https://rubyinstaller.org/downloads/ 下载
Ruby安装在D:\Ruby200 , DevKit安装在D:\rubydevkit
打开CMD进入到DevKit目录,开始初始化安装
D:\rubydevkit>ruby dk.rb init
[INFO] found RubyInstaller v2.0.0 at d:/Ruby200
Initialization complete! Please review and modify the auto-generated
'config.yml' file to ensure it contains the root directories to all
of the installed Rubies you want enhanced by the DevKit.
D:\rubydevkit>ruby dk.rb install
[INFO] Updating convenience notice gem override for 'd:/Ruby200'
[INFO] Installing 'd:/Ruby200/lib/ruby/site_ruby/devkit.rb'
替换Gem源
国内线路gem安装可能较慢,建议将官方的gem源修改为国内gem源。
gem sources #列出默认源
gem sources --remove https://rubygems.org/ #移除默认源
gem sources -a https://mirrors.ustc.edu.cn/rubygems/ #添加科大源
安装jekyll rub安装完成后,就可以通过gem install jekyll
来安装Jekyll 了。
Thu, Jan 24, 2019 装修的时候,家里卧室阳台和客厅均预留网口,共6个,所有的网线都汇集在楼梯下的弱电箱里,但是当时没注意到弱电箱过小,后期装宽带才发现,一堆线占了很多地方,电信的光猫塞进去都不方便。
出于无奈只能买了个外置机柜,9U的,刚好放到楼梯地下不占地方。于是将光猫、主路由和NAS都塞了进去。
最终家里的网络布局如下:
其中,RB750 为主路由,IP为192.168.1.11
,是为了和光猫的192.168.1.1
区分开。下挂R6300 和R6200 俩AP,一个MyCloud NAS,一个小米电视。
一楼客厅的R6300v2 为主AP,采用AP模式链接,IP为192.168.1.2
,刷的梅林固件,下挂俩树莓派。
二楼书桌上的R6200v2 也采用AP模式链接,不过是默认固件,IP为192.168.1.3
。
以上都为超五类网线链接,这样就可以做到全家设备同局域网共享访问,相互间都是1G速率。
Mon, Dec 10, 2018 Centos7安装VPN 下载安装脚本:
wget /vpnscripts/vpninstall
执行安装脚本
chmod+x vpninstall
./vpninstall
安装完成后提示如下:
IPsec VPN server is now ready for use!
Connect to your new VPN with these details:
Server IP: 181.53.149.126
IPsec PSK: EMc6SpQHaBgZCnvNtLX
Username: vpnuser
Password: FzfpNGofpRdkBj2B
Write these down. You'll need them to connect!
以上为安装完成后提示的帐号信息,其中用户名(username)、密码(passowrd)和IPsec PSK密匙(IPsec PSK)为随即生成。
如果为了方便,以上帐号信息可以参考以下方法自定义:
[root@hwcsh ~]# vi /etc/ipsec.secrets #编辑PSK
%any %any : PSK "EMc6SpQHaBgZCnvNtLX"
[root@hwcsh ~]# vi /etc/ppp/chap-secrets #编辑帐户信息
"vpnuser" l2tpd "FzfpNGofpRdkBj2B" *
[root@hwcsh ~]#systemctl restart ipsec xl2tpd #重启服务
iPhone6配置L2TP VPN 设置 ->VPN ->添加VPN配置 ,类型选择L2TP ,然后参考下图设置。
Mon, Oct 15, 2018 忙了一天没注意看邮件,下午才发现站点宕机,登录BWG 后台检查系统运行正常,使用Ping.pe Ping了下才发现,可能IP被墙了。
查看Ping的结果,发现国外线路都可以浏览,国内线路丢包全是100%,看来凉凉咯!
于是网上找了下解决方案,发现BWG 免费提供更换IP服务,每五周使用一次。
登录BWG 后台,然后浏览https://kiwivm.64clouds.com/main-exec.php?mode=blacklistcheck ,点击TestMainIP 进行检查。
此页面会显示当前服务器IP以及是否被墙。
如上提示,IP BLOCKED 表示已经被封,点击下面的Replace Main IP 更换IP,更换IP后再次浏览上面网站,即可显示IP NOT BLOCKED 表示未被封锁。
注意:该功能每五周可以使用一次,且行且珍惜!
Sat, Oct 13, 2018 首先下载以下两个文件包:
然后,将手机完全关机,按住音量上 不放,将手机和电脑连接,此时手机还是黑屏状态,电脑会有设备连接提示音。
我的电脑->右键管理->设备管理器,打开查看,第一次使用会在其他设备 下出现QHSUSB_BULK 带黄色感叹号的未知设备,右键点击更新驱动,手动选择刷机驱动包 里面的驱动目录进行安装,如果不行的话可以使用360驱动大师 进行识别安装,安装完成后会出现类似以下的设备驱动:
其中Qualcomm HS-USB QDLoader 9008(COM4)的新设备,就是正常驱动后的手机,俗称 高通9008 模式。
将下载的一加3T售后恢复包 解压后,打开其中的MsmDownloadTool V3.0.exe 开始刷机
正常识别COM设备后,点击Start 开始刷机,完成后自动重启。
Mon, Oct 1, 2018 自动升级 进入路由器管理界面,通过System ->Auto Upgrade 功能自动升级。
或者使用Winbox 连接,通过System ->Auto Upgrade 功能自动升级
自动升级不了的,刷不出最新系统的继续看下面手动升级。
手动升级 官方系统下载页面https://mikrotik.com/download
本次以RB750gr3 为例,官方显示了以下四个系统版本
5.26 (Legacy) 6.40.9 (Long-term) 6.43.2 (Stable) 6.44beta9 (Testing) 我的RB750gr3 当前版本为6.41 ,通过自动升级刷新不出来最新版本,因此只能手动升级。
RB750gr3 为MMIPS 构架,从下载页面找到相应的构架。
其中MMIPS 后面就备注着hEX (RB750Gr3), RBMxx 点击下载**Main package ,格式为 .npk**文件。
通过Winbox 连接路由器,将下载的npk文件拖放到File 菜单,上传完成后如下所示。
然后system ->reboot 重启系统完成更新,更新后版本号可以通过Winbox 标题栏看到。
提醒 :Router OS 6.45.6 for RB750gr3系统包国内网盘**下载地址 **
Sun, Sep 30, 2018 【网件系列】包括以下机型:
R6300V2 R6400 R6900/R7000 R8000 R8500 更新日志 ** 固件更新日志:2018年09月27日(X7.9.1) :**
升级软件中心核心skipd v1为skipd v3,增强软件中心稳定性。 同步固件内置软件中心为最新1.4.2 需要说明的是skipd v1数据库和skipd v3数据库不兼容,从X7.x系列升级X7.9.1可以向上兼容,但是从从X7.9.1降级刷固件,需要格式化jffs分区以重新建立skipd v1 数据库 由于skipdv3不支持超时脚本、定时脚本,所以Tools - Script里的这两个功能不能使用了。另外因为aliddns插件使用了skipd的定时脚本功能,aliddns将会无法定时更新ip, 之后我将更新aliddns插件修复这一问题。
2018年05月08日(X7.9) : 例行更新:同步asuswrt-merlin固件380.70_0代码,更新日志见asuswrt-merlin更新日志的380.70部分 刷机须知 【网件原厂】刷【koolshare改版固件】:
在原厂固件升级页面下直接上传.chk后缀的过度固件,本帖下方提供; 在过度固件里恢复一次出厂设置后,刷入.trx后缀的koolshare改版固件(如果chk版本和trx版本一致则不需要,跳到第三步); 等待刷机完成后,,在【系统管理】 – 【系统设置】内勾选:Format JFFS partition at next boot(下次重启格式化jffs分区) 和 Enable JFFS custom scripts and configs(开启jffs自定义脚本),点击应用本页面设置,成功应用后重启路由器; 重启完成后,确保路由器连上网络,然后进入软件中心,首先点击更新按钮,将更新软件中心到最新版本,然后即可安装并使用插件。 【koolshare改版固件/梅林原版固件】刷【koolshare改版固件】:
在梅林固件升级页面下直接上传.trx后缀的固件,本帖下方提供; 从X7.x系列升级X7.9,不需要清空配置和格式化jffs分区; 从X7.x系列升级X7.9.1,不需要清空配置和格式化jffs分区,skipdv1数据库会自动升级为skipdv3; 从X7.9.1降级为X7.x,不需要清空配置,但需要格式化jffs分区 从X7.9.1降级为X6.x,需要清空配置并格式化jffs分区 从X6.x系列升级X7.9/X7.9.1,需要清除路由器配置和格式化jffs分区; 如果升级后界面有问题,尝试清除浏览器缓存或者强制刷新(ctrl + F5)一次 清配置方法1: 在路由器【系统管理】- 【恢复/导出/上传设置】- 【原厂默认值】
清配置方法2: 开机状态,长按reset直到路由自动重启。
格式化jffs: 在【系统管理】- 【系统设置】,勾选Format JFFS partition at next boot,点击应用本页面设置后重启路由器
Mon, Sep 10, 2018 本文介绍,如何在安装了梅林固件的路由器上,增加虚拟内存,以运行需求资源较大的软件。
下载swap.tar.gz 下载地址 https://github.com/koolshare/koolshare.github.io/tree/acelan_softcenter_ui/swap ,下载swap.tar.gz 文件。
安装插件 进入路由器后台,软件中心->离线安装,选择刚才下载的swap.tar.gz ,上传并安装。
准备U盘 准备一个新的U盘,使用diskgen格式化为ext2/3/4格式,插入路由器USB接口。
设置虚拟内存 进入路由器管理后台,软件中心->虚拟内存,设置大小后点击创建swap
创建完成后自动启用,再次进入swap插件即可看到使用信息
Mon, Aug 20, 2018 Project V 提供了单一的内核和多种界面操作方式。内核(V2Ray)用于实际的网络交互、路由等针对网络数据的处理,而外围的用户界面程序提供了方便直接的操作流程。
V2Ray 的主要作用是根据用户的配置,对于传入的网络连接进行一定处理,然后发往指定的服务器。它是一个命令行程序,可以接受一个 JSON 格式的配置文件。
VPS安装服务端 使用下面命令一键安装:
bash <(curl -L -s https://install.direct/go.sh)
或者从https://github.com/v2ray/v2ray-core/releases 下载预编译包进行安装。
安装完成后,使用service v2ray start
启动v2ray服务。
Windows安装本地端 从https://github.com/v2ray/v2ray-core/releases 下载Windows客户端,解压后编辑config.json
文件,内容如下:
{
"inbound": {
"port": 1080, // 监听端口
"protocol": "socks", // 入口协议为 SOCKS 5
"domainOverride": ["tls","http"],
"settings": {
"auth": "noauth" //socks的认证设置,noauth 代表不认证,由于 socks 通常在客户端使用,所以这里不认证
}
},
"outbound": {
"protocol": "vmess", // 出口协议
"settings": {
"vnext": [
{
"address": "10.0.0.1", // 服务器地址,请修改为你自己的服务器 ip 或域名
"port": 31892, // 服务器端口
"users": [
{
"id": "3efd584f-8a7d-43af-9c75-35266df4ceb0", // 用户 ID,必须与服务器端配置相同
"alterId": 64 // 此处的值也应当与服务器相同
}
]
}
]
}
}
}
以上的id和alterId,在vps上使用cat /etc/v2ray/config.json
查看。
Thu, Jul 19, 2018 首先,十分感谢**HitoLiu **辛苦劳动,才有了Oneplus3T的MIUI10
刷机前先确认H2OS版本,由于H大的MIUI10是基于Android 7,所以要是基于Android7系的话,则可以直接刷,要是基于Android8的话,就得先降级。
一加3T安卓8降级安卓7 基于Android8的手机,下载下面降级包,通过系统内自带升级功能,手动选择该包进行降级。
一加3T Android 8降级Android 7刷机包 https://ct.optipng.cn/fs/18418398-315801567
或者在这里下载Android7的底包,刷入底包即可 https://ciux.org/oneplus3t-base-firmware.html
降级完成后,开始解锁刷入第三方recovery来刷机。
推荐使用一加3/3T工具包(OnePlus3/3T Unified ToolKit),使用方法**点击这里 **
一加3T MIUI10刷机流程 手机端设置->开发者选项,打开OEM解锁和USB调试。
连接手机和电脑,打开工具包选择2) Unlock - ReLock Bootloader,下一步选择1解锁。
手机按照提示选择YES 解锁
重启手机,选择Fastboot模式,连接手机和电脑,选择5) Flash - Boot TWRP Recovery,刷入TWRP
进入TWRP Recovery,挂载MTP,将MIUI10刷机包拷入手机,然后进行卡刷。
双清后重启即可!
官方更新说明 因MIUI官方开始全部适配安卓8,7.1的MIUI在11月2号官方已经正式停更了,目前这版MIUI是MIUI官方发布的最后一个安卓7.1版本,也是目前
最完善的一版。
如果不出意外的话,这也是一加3/3T安卓7.1 MIUI的最后一版。后续就是准备给一加3/3T上安卓O或以上的MIUI了,基本完善后我会优先发在群里
给机油门尝鲜。安卓O的MIUI最快也要半个月以上,且第一版难免bug多,耐心等待别催,只要我手上的3T还没坏就会一直把MIUI维护下去。
8.10.22及以上的MIUI无需双清可直接刷本版MIUI升级,8.10.22以下的需要双清升级。
8.11.3更新日志
1.同步MIUI官方最后一版安卓7.1的MIUI的更新
2.修复新版附加设置-交换返回与多任务键无效的bug
8.11.2更新日志:
1.同步MIUI的更新
2.解决WiFi mac地址问题
3.解决WiFi认证问题
4.修复了一些其他已知bug
5.附加设置更新,全新的界面,加入色温调节,省电模式,性能模式等等
8.10.28更新日志:
1.同步MIUI官方第392周更新
2.修复了一些已知bug
这次不是简单的同步更新,而是完全的重制,除了修复以前的一些已知bug外,流畅度也有大幅度的提升,并且还增加了很多新功能,比如
人脸解锁、AI相机等等,还有很多细节上的变化,应该能让你爽到脱肛的那种。
注意注意注意!这个包更改幅度较大,必须双清刷,否则可能出现各种程序报错!如果data分区被加密则需要格式化data!!否则可能会
一直卡在开机动画不能进系统!
8.12.5更新:
1.加入ROOT权限
2.修复充电快充满后几率发生断开的BUG
3.修复人脸识别无法使用的BUG
4.修复MIUI相机无法录像的BUG
5.修复几个引起卡顿问题
6.其它大量的BUG修复,现在已经熬夜到凌晨四点半,不想写了自行体验,做包很累切刷且珍惜
注意:
Sun, Jul 8, 2018 家里电脑安装了双系统(Xubuntu+Windows7),平时一直不关机,开着TeamViewer便于在办公室远程操作。
这次不知怎么回事儿,远程掉了,回家一看Windows意外关机,再开机直接蓝屏。
由于为了省资源,关闭了系统保护,没法进行还原,多次试着拯救都没能解决,无限蓝屏……
手头刚好没有WinPE的U盘,没法ghost恢复或重装Windows,只有xubuntu可用,一筹莫展。
突然想到grub是否可以引导iso? 网上找了下,还真可以,于是下载了个WinPE镜像文件,打算通过grub来引导以修复Windows。
具体操作如下:
安装grub-imageboot
alair@e6440:~$ apt search memdisk
正在排序... 完成
全文搜索... 完成
grub-imageboot/bionic,bionic 0.6 all
boot iso, harddisk and floppy images with grub2 and syslinux memdisk
alair@e6440:~$ sudo apt install grub-imageboot
[sudo] alair 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会同时安装下列软件:
syslinux-common
下列【新】软件包将被安装:
grub-imageboot syslinux-common
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 4 个软件包未被升级。
需要下载 1,176 kB 的归档。
解压缩后会消耗 3,684 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://mirrors.cqu.edu.cn/ubuntu bionic/main amd64 syslinux-common all 3:6.03+dfsg1-2 [1,171 kB]
获取:2 http://mirrors.cqu.edu.cn/ubuntu bionic/universe amd64 grub-imageboot all 0.6 [4,424 B]
已下载 1,176 kB,耗时 1秒 (1,947 kB/s)
正在选中未选择的软件包 syslinux-common。
(正在读取数据库 ... 系统当前共安装有 181845 个文件和目录。)
正准备解包 .../syslinux-common_3%3a6.03+dfsg1-2_all.deb ...
正在解包 syslinux-common (3:6.03+dfsg1-2) ...
正在选中未选择的软件包 grub-imageboot。
正准备解包 .../grub-imageboot_0.6_all.deb ...
正在解包 grub-imageboot (0.6) ...
正在设置 syslinux-common (3:6.03+dfsg1-2) ...
正在设置 grub-imageboot (0.6) ...
Copy syslinux memdisk to /boot/memdisk
alair@e6440:~$
下载WinPE镜像文件(efi.iso),拷贝至/boot/
目录
Sun, Jun 10, 2018 有时候明明excel文件中没多少内容,但是文件体积却很大,在此分享一个检查解决的方法。
将excel文件后缀名改为zip
,用压缩软件将其打开,定位到xl\worksheets\
目录,可以看到各个sheet的体积大小,如下:
找到其中体积最大的,定位到该sheet
首先将所有内容全选并粘贴为文字。
然后将内容排序后,全选下面的空白行邮件删除,将条件格式全部删除,这样应该就OK了!
Fri, May 25, 2018 CLS(Canonical Livepatch Service)是Ubuntu母公司Canonical提供的一项服务,该服务可以为处于LTS的Ubuntu版本提供内核关键补丁修复,而不需要重新启动系统,特别适用于用作Server的系统。
使用CLS的前提是必须注册一个Ubuntu帐号,地址为https://login.ubuntu.com/+login
注册完成后,即可访问CLS主页https://www.ubuntu.com/server/livepatch 进行登录配置。
登陆后选择用户类型,一般个人用户选择Ubuntu User ,然后点击Get your Livepatch token 获取密匙
按照下一步提示进行操作,启用CLS服务。
运行完成后即成功启用CLS服务。
检查CLS服务配置状态可以使用以下命令:
alair@e6440:~$ sudo canonical-livepatch status --verbose
client-version: 8.0.2
machine-id: 08e0*****************750db
machine-token: 4753a054c*****************a2eb84c7
architecture: x86_64
cpu-model: Intel(R) Core(TM) i5-4310M CPU @ 2.70GHz
last-check: 2018-05-25T19:55:15.537634075+08:00
boot-time: 2018-05-25T19:47:51+08:00
uptime: 14m43s
status:
- kernel: 4.15.0-22.24-generic
running: true
livepatch:
checkState: checked
patchState: nothing-to-apply
version: ""
fixes: ""
Tue, Feb 6, 2018 XiunoBBS是一款非常流行的轻论坛程序
以下为XiunoBBS Nginx伪静态规则代码,添加到相应的nginx配置文件中即可。
location ~* \.(htm)$ {
rewrite "^(.*)/(.+?).htm(.*?)$" $1/index.php?$2.htm$3 last;
}
Mon, Jan 22, 2018 Meridian是一款IOS10.0~10.3.3系列越狱工具支持所有64bit设备。
支持设备清单:
iPhone 7 & 7+ iPhone 6S & 6S+ iPhone 6 & 6+ iPhone SE iPhone 5S iPad Air 1 and 2 iPad (2017) iPad Mini 2, 3, and 4 iPad Pro 1 and 2 (12.9" and 10.5") iPod Touch 6th Gen 安装说明:
点击网站“下载”按钮下载IPA;
使用Cydia Impactor将IPA安装到您的设备上;
在设置->常规->配置文件和设备管理中信任证书;
打开应用程序,然后单击开始按钮。
国内网盘下载
相关网站
Wed, Dec 13, 2017 Google Camera一加3/3T移植版,支持HDR+, 1080p 60FPS视频, 慢动作和慢动作图片。 By BSG, Ivanich, and Arnova8G2.
可用特性:
Camera (HDR+, flash, zoom, front camera, etc) 视频 (30fps/60fps at 1080p、防抖、自动对焦) 慢动作 (120fps) Panorama Photo Sphere Lens Blur RAW Motion Photos (Android 8+ only, check the “suggested settings”) 不可用特性:
ZSL (HDR+打开情况下) (OOS Oreo)慢动作 前置相机HDR 下载:
本文只提供一加3/3T的稳定版apk,BSG、Ivanich和Arnova8G2的完整版清单,请移步这里
Sat, Nov 25, 2017 本站是基于https://github.com/wendal/gor 生成的静态站点。
下面介绍如何将静态站点部署到coding.net上。
注册coding并新建项目 首先注册coding.net,注册完后新建项目。
项目名称为*.coding.me
,以此格式新建的项目可以使用Coding Pages 服务。
Pages服务设置 建立完成后,在项目设置中找到Pages服务 服务进行设置。
选择master分支
添加自定义域名,建议同时添加domain.com和www.domain.com,并且设置一个为首选项,另一个跳转到首选项。然后将自己的域名CNAME 指向pages.coding.me
打开该选项,则为你的域名自动申请设置** Let’s Encrypt证书,并开启 https**访问。
新站点都会有coding pages跳转页,按照Hosted by Coding Pages 说明,在首页添加规定连接后,可以提交申请不显示跳转页。
使用Git部署站点 首先推荐配置SSH公钥 以便于操作。
$ ssh-keygen -t rsa -C "[email protected] " //在此设置为coding.net帐号邮箱
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/dotbbq/.ssh/id_rsa):
Created directory '/c/Users/dotbbq/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/dotbbq/.ssh/id_rsa.
Your public key has been saved in /c/Users/dotbbq/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Tt/3424234sdfasdfadfs1234234sdfafdsi0 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| ... ...o . |
| + o o +..|
|*... + * . o . o+|
| o = + o . ..o|
| . . o =S+ o .. .|
|. o Bo+. .o. |
| +.+ ...... |
|o.=.o o .+ . |
|.. ..+ .oo.o |
+----[SHA256]-----+
生成完后,将/c/Users/dotbbq/.ssh/id_rsa.pub
的内容粘贴到coding.net的个人设置 ->SSH公钥 中进行添加。
Wed, Nov 22, 2017 开箱照 以下为开箱照
RB750快速设置 首先下载Winbox ,winbox64.exe ,将1口连接光猫,2口连接电脑。
下载打开后,软件会自动搜索到路由器MAC,登录名为admin,密码为空,点击connect登录。
登录后点击Quick Set 进行快速设置,完成后应用即可。如下图:
注意以上我把路由器地址设置为192.168.1.11
是为了和光猫192.168.1.1
区分开。
Sun, Nov 19, 2017 登录路由器后台,系统管理 >系统设置 ,将Enable SSH 设置为LAN only 。
通过SSH登录路由器,参考以下执行,在此推荐Putty 。
cd /tmp
wget https://github.com/hq450/fancyss_history_package/raw/master/fancyss_arm/shadowsocks_4.1.1.tar.gz
tar -zxvf shadowsocks_4.1.1.tar.gz
cd shadowsocks
chmod +x install.sh
./install.sh
2017年11月19日 14:40:36: 固件平台【koolshare merlinarmv7l】符合安装要求,开始安装插件!
2017年11月19日 14:40:36: 清理旧文件
2017年11月19日 14:40:36: 开始复制文件!
2017年11月19日 14:40:36: 复制相关二进制文件!
2017年11月19日 14:40:42: 创建一些二进制文件的软链接!
2017年11月19日 14:40:42: 复制ss的脚本文件!
2017年11月19日 14:40:44: 复制网页文件!
2017年11月19日 14:40:44: 移除安装包!
2017年11月19日 14:40:44: 为新安装文件赋予执行权限...
2017年11月19日 14:40:44: 设置一些默认值
2017年11月19日 14:40:47: 一点点清理工作...
2017年11月19日 14:40:47: 插件安装成功,你为什么这么屌?!
2017年11月19日 14:40:47: 更新完毕,请等待网页自动刷新!
完成后重启路由器,在软件中心中即可看到影梭已经安装成功!
Fri, Oct 20, 2017 所需软件 步骤 1、下载Office2016和DAEMON Tools Lite,安装DAEMON Tools Lite,将office2016镜像(iso)文件挂载到虚拟光驱。
2、下载office2016install.zip后解压,得到setup.exe 和configuration.xml 两个文件
打开configuration.xml
,文件内容如下
<Configuration>
<Add SourcePath="G:\" OfficeClientEdition="64" >
<Product ID="ProPlusRetail">
<Language ID="zh-CN" />
<ExcludeApp ID="Groove" />
<ExcludeApp ID="InfoPath" />
<ExcludeApp ID="Lync" />
<ExcludeApp ID="OneNote" />
<ExcludeApp ID="Outlook" />
<ExcludeApp ID="Publisher" />
<ExcludeApp ID="SharePointDesigner" />
</Product>
</Add>
</Configuration>
SourcePath 是安装源目录,此处为虚拟光驱G盘 OfficeClientEdition 为构架版本,此处为64位,也可以设置为32位 Language 为安装语言,此处为中文简体 ExcludeApp 表示不需要安装的组件,此处去掉了Groove、InfoPath、Lync、OneNote、Outlook、Publisher、SharePointDesigner,剩下的为Word、Excel、powerpoint和access进行安装。 在当前目录下以管理员身份CMD,运行下面命令开始安装:
setup.exe /configure configuration.xml
Tue, Oct 3, 2017 Typecho安装完成后,登录后提示Access Denied,解决方法如下:
找到php.ini 文件,我的在/usr/local/php/etc/php.ini
将cgi.fix_pathinfo
的值改为1 即可
重启php
service php-fpm restart
完了!
Sat, Aug 26, 2017 家里放了台老旧的台式机,显卡是GTX 660Ti,windows下必须安装特定的驱动版本才能显示最佳分辨率(1680x1050),如果更新到最新的Nvidia驱动,反而显示器无法正常显示(1024x768)。
没想到,这种情况在Linux下依然存在,不论是安装Debian还是Linux Mint或者Ubuntu,默认都是1024x768。
网上找到了修复分辨率异常的方法,整理如下。
检查当前显卡硬件情况 $ lspci |grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GK104 [ GeForce GTX 660 Ti] ( rev a2)
可以看到,显卡硬件识别正常。
检查显卡分辨率情况 $ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 8192 x 8192
VGA-1 disconnected ( normal left inverted right x axis y axis)
DVI-I-1 connected primary 1024x768+0+0 ( normal left inverted right x axis y axis) 0mm x 0mm
1024x768 60.00*
800x600 60.32 56.25
848x480 60.00
640x480 59.94
HDMI-1 disconnected ( normal left inverted right x axis y axis)
可以看到,有三个视频输出,当前正在用的是DVI-I-1 ,分辨率就是1024x768,第一行显示最大支持8192x8192。
Mon, Aug 21, 2017 一加5发布后,唯一让我眼红的就是那块屏幕,还有类似于水墨屏的阅读体验。
其实一加3T中也可以使用黑白屏模式,在开发者模式中可以找到设置。
设置->开发者选项->模拟颜色空间->全色盲。
Sun, Aug 13, 2017 sitemap-generators 是一款Sitemap生成工具,使用它可以生成符合sitemap.org规范的Sitemap文件,以便于提交给各个网站工具平台。
项目地址 && 下载地址
下载sitemap_gen_1.5.tar.gz 解压,得到以下内容:
root@bwgzl:~/sitemap_gen# ls -lh
total 140K
-r--r----- 1 502 502 22 Jun 17 2005 AUTHORS
-r--r--r-- 1 502 502 2.6K Jul 19 2007 ChangeLog
-r--r----- 1 502 502 1.8K Jun 17 2005 COPYING
-rw-r--r-- 1 502 502 6.4K Jul 19 2007 example_config.xml
-rw-r----- 1 502 502 1.6K Jun 26 2007 example_urllist.txt
drwxr-xr-x 23 root root 4.0K Aug 3 14:25 getos.org
-rw-r--r-- 1 502 502 244 Jul 19 2007 PKG-INFO
-r--r--r-- 1 502 502 1.1K Jun 25 2007 README
-r-xr-xr-x 1 502 502 301 Jul 19 2007 setup.py
-rwxr-xr-x 1 502 502 66K Jul 19 2007 sitemap_gen.py
将默认的example_config.xml 拷贝为ac.xml ,参考以下修改:
<?xml version="1.0" encoding="UTF-8"?>
<site
base_url= "http://getos.org/"
/** 以下为sitemap.xml文件存放目录**/
store_into= "/root/sitemap_gen/sitemap.xml"
verbose= "1"
<urllist path= "urllist.txt" encoding= "UTF-8" />
<filter action= "drop" type= "wildcard" pattern= "*~" />
<filter action= "drop" type= "regexp" pattern= "/\.[^/]*" />
</site>
接下来,使用wget
来遍历网站所有URL,将结果保存为urlinfolist.txt 。
wget -mk --spider -r http://getos.org/ -o urlinfolist.txt
处理wget到的urlinfolist.txt 文件,删除不需要的内容。
Fri, Jul 28, 2017 Dropbox Uploader 是一款专为Dropbox 开发的BASH 脚本,可以实现上传、下载、删除、列出文件清单、在线分享、同步和备份等功能。
它使用BASH 脚本语言写成,只需要cURL 即可使用。
项目主页 GiHub project page .
为什么使用此脚本?
绿色轻便:使用 BASH 脚本语言写成,仅仅需要cURL 一个软件(curl是一个数据传输工具,大部分linux发行版均会内置该软件)。安全: 不需要提供帐号密码,该脚本使用官方API进行验证。更多的扩展信息和使用技巧请参考官方wiki ,该wiki同时提供Dropbox Uploader 相关的使用实例和脚本。
特性 跨平台 支持官方Dropbox API v2 无需密码 简单的配置提示 分块文件上传 递归文档下载 递归文档上传 Shell通配符扩展 (仅上传) 删除/移动/重命名/拷贝/列出/分享文件 创建分享连接 监视变化 安装配置DropboxUploader 使用git拷贝官方仓库:
git clone https://github.com/andreafabrizi/Dropbox-Uploader.git
或者直接下载脚本:
curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh
给脚本添加执行权限并运行:
$chmod +x dropbox_uploader.sh
$./dropbox_uploader.sh
第一次运行dropbox_uploader
时,会有鉴权提示,按照提示在https://www.dropbox.com/developers/apps 新建api app,然后在app管理页找到Generated access token 创建access token ,将access token 粘贴到DropboxUploader提示行按回车键,随后会提示成功接入Dropbox 。配置文件保存在~/.dropbox_uploader
。
使用DropboxUploader DropboxUploader语法非常简单:
./dropbox_uploader.sh [PARAMETERS] COMMAND...
[%%]: 可选参数
<%%>: 必须参数
可使用命令:
upload <LOCAL_FILE/DIR …> <REMOTE_FILE/DIR>
上传本地文件或目录到Dropbox。
download <REMOTE_FILE/DIR> [LOCAL_FILE/DIR] 从Dropbox下载文件或目录到本地
delete <REMOTE_FILE/DIR> 删除Dropbox上的文件或目录
Mon, Jul 17, 2017 我们用到的软件名为imagemagick ,一款强大的图片处理软件。
Debian系使用apt-get install imagemagick
来安装,Fedora系通过yum install imagemagick
来安装。
其他系统可以到官方下载页进行下载安装 https://www.imagemagick.org/script/download.php
安装完成后,可以通过convert tst.jpg tsg.png
将JPG文件转换为PNG,反之亦可。
下来进行批量替换:
root@bwgzl:/data/wwwroot/getos.org/images# ll
total 188
drwxr-xr-x 2 www www 4096 Aug 4 15:48 ./
drwxr-xr-x 27 www www 4096 Aug 4 15:32 ../
-rw-r--r-- 1 www www 18778 Aug 4 15:43 clip_image002.jpg
-rw-r--r-- 1 www www 17637 Aug 4 15:43 clip_image004.jpg
-rw-r--r-- 1 www www 28075 Aug 4 15:43 clip_image006.jpg
-rw-r--r-- 1 www www 30916 Aug 4 15:43 clip_image008.jpg
-rw-r--r-- 1 www www 13538 Aug 4 15:43 clip_image010.jpg
-rw-r--r-- 1 www www 11845 Aug 4 15:43 clip_image012.jpg
-rw-r--r-- 1 www www 14519 Aug 4 15:43 clip_image014.jpg
-rw-r--r-- 1 www www 33052 Aug 4 15:43 clip_image016.jpg
root@bwgzl:/data/wwwroot/getos.org/images# ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'
root@bwgzl:/data/wwwroot/getos.org/images# ls -ltr
total 1172
-rw-r--r-- 1 www www 18778 Aug 4 15:43 clip_image002.jpg
-rw-r--r-- 1 www www 17637 Aug 4 15:43 clip_image004.jpg
-rw-r--r-- 1 www www 28075 Aug 4 15:43 clip_image006.jpg
-rw-r--r-- 1 www www 30916 Aug 4 15:43 clip_image008.jpg
-rw-r--r-- 1 www www 13538 Aug 4 15:43 clip_image010.jpg
-rw-r--r-- 1 www www 11845 Aug 4 15:43 clip_image012.jpg
-rw-r--r-- 1 www www 14519 Aug 4 15:43 clip_image014.jpg
-rw-r--r-- 1 www www 33052 Aug 4 15:43 clip_image016.jpg
-rw-r--r-- 1 root root 132411 Aug 4 16:00 clip_image002.png
-rw-r--r-- 1 root root 106702 Aug 4 16:00 clip_image004.png
-rw-r--r-- 1 root root 197143 Aug 4 16:00 clip_image006.png
-rw-r--r-- 1 root root 79397 Aug 4 16:00 clip_image008.png
-rw-r--r-- 1 root root 37643 Aug 4 16:00 clip_image010.png
-rw-r--r-- 1 root root 81090 Aug 4 16:00 clip_image012.png
-rw-r--r-- 1 root root 88635 Aug 4 16:00 clip_image014.png
-rw-r--r-- 1 root root 272537 Aug 4 16:00 clip_image016.png
注意第二条命令即为批量转换操作
Fri, Jun 16, 2017 以下是CentOS7 中7za 的使用实例,CentOS 下安装p7zip 可以参考此文
[ root@localhost ~] # 7za
7-Zip ( a) [ 64] 16.02 : Copyright ( c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 ( locale= en_US.UTF-8,Utf16= on,HugeFiles= on,64 bits,1 CPU x64)
Usage: 7za <command> [ <switches>...] <archive_name> [ <file_names>...]
[ <@listfiles...>]
<Commands>
a : Add files to archive
b : Benchmark
d : Delete files from archive
e : Extract files from archive ( without using directory names)
h : Calculate hash values for files
i : Show information about supported formats
l : List contents of archive
rn : Rename files in archive
t : Test integrity of archive
u : Update files to archive
x : eXtract files with full paths
<Switches>
-- : Stop switches parsing
-ai[ r[ -|0]]{ @listfile|!wildcard} : Include archives
-ax[ r[ -|0]]{ @listfile|!wildcard} : eXclude archives
-ao{ a|s|t|u} : set Overwrite mode
-an : disable archive_name field
-bb[ 0-3] : set output log level
-bd : disable progress indicator
-bs{ o|e|p}{ 0|1|2} : set output stream for output/error/progress line
-bt : show execution time statistics
-i[ r[ -|0]]{ @listfile|!wildcard} : Include filenames
-m{ Parameters} : set compression Method
-mmt[ N] : set number of CPU threads
-o{ Directory} : set Output directory
-p{ Password} : set Password
-r[ -|0] : Recurse subdirectories
-sa{ a|e|s} : set Archive name mode
-scc{ UTF-8|WIN|DOS} : set charset for for console input/output
-scs{ UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{ id}} : set charset for list files
-scrc[ CRC32|CRC64|SHA1|SHA256|*] : set hash function for x, e, h commands
-sdel : delete files after compression
-seml[ .] : send archive by email
-sfx[{ name}] : Create SFX archive
-si[{ name}] : read data from stdin
-slp : set Large Pages mode
-slt : show technical information for l ( List) command
-snh : store hard links as links
-snl : store symbolic links as links
-sni : store NT security information
-sns[ -] : store NTFS alternate streams
-so : write data to stdout
-spd : disable wildcard matching for file names
-spe : eliminate duplication of root folder for extract command
-spf : use fully qualified file paths
-ssc[ -] : set sensitive case mode
-ssw : compress shared files
-stl : set archive timestamp from the most recently modified file
-stm{ HexMask} : set CPU thread affinity mask ( hexadecimal number)
-stx{ Type} : exclude archive type
-t{ Type} : Set type of archive
-u[ -][ p#][ q#][ r#][ x#][ y#][ z#][ !newArchiveName] : Update options
-v{ Size}[ b|k|m|g] : Create volumes
-w[{ path}] : assign Work directory. Empty path means a temporary directory
-x[ r[ -|0]]{ @listfile|!wildcard} : eXclude filenames
-y : assume Yes on all queries
压缩文档 [ root@localhost oneinstack] # du -sh ##当前目录大小
1.8M .
[ root@localhost oneinstack] # 7za a oi.7z * ##将当前目录所有文件压缩保存为oi.7z
7-Zip ( a) [ 64] 16.02 : Copyright ( c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 ( locale= en_US.UTF-8,Utf16= on,HugeFiles= on,64 bits,1 CPU x64)
Scanning the drive:
7 folders, 128 files, 1541017 bytes ( 1505 KiB)
Creating archive: oi.7z
Items to compress: 135
Files read from disk: 128
Archive size: 131726 bytes ( 129 KiB)
Everything is Ok
[ root@localhost oneinstack] # ls -lh oi.7z ###压缩后大小
-rw-r--r-- 1 root root 129K Jun 16 15:59 oi.7z
p7zip 默认使用7z 格式,当然它还支持一些通用的压缩格式,如7z, lzma, cab, zip, gzip, bzip2, Z 和tar等等……
Thu, Jun 15, 2017 工具菜单如下:
Title OnePlus 3/3T Unified ToolKit v5.0U by @ahmed_radaideh
======================
= Menu =
======================
Enter a Number to select a Task.
1) Install USB Drivers On PC
2) Unlock - ReLock Bootloader
3) Check Device Status
4) Check Bootloader Status
5) Flash - Boot TWRP Recovery
6) Flash - Boot Stock Recovery
7) Push Systemless Root
8) Push Debloater Script
9) Wipe Cache Your Device
10) Force Decryption Device [WIPE]
11) Get Logs your Device
12) Restart Menu
13) Check for new Version
14) XDA Thread
15) Donate!
00) Exit
下载地址在此OnePlus3T-ToolKit-v4.7.7z ,XDA贴地址在这里 。
Sat, Jun 10, 2017 一直以来都是使用U盘安装Linux,光盘镜像通过dd
写入U盘。最近需要安装elementary ,下载镜像后发现系统推荐使用Rufus 来写入U盘,这个工具以前没试过所以试了下,确实挺快的。
不过在安装完elementary 后,想将U盘重新恢复格式化出问题了,使用DiskGenius 无法进行操作,使用系统自带的磁盘管理也没法操作,包括Linux 下的GParted 也不行,都提示U盘被写保护了,-__-!
万般无奈只能想到量产工具,下面分享使用到的两款软件:
ChipGenius 是一款U盘信息检测软件,通过它可以来查看U盘主控信息,我的这款U盘芯片信息如下:
设备描述: [G:]USB 大容量存储设备(TOSHIBA TransMemory-Mx)
设备类型: 大容量存储设备
协议版本: USB 3.00
当前速度: 极速(SuperSpeed)
电力消耗: 504mA
USB设备ID: VID = 0930 PID = 6545
设备序列号: FFFFFFFFFFFFEE20F000BC99
设备供应商: TOSHIBA
设备名称: TransMemory-Mx
设备修订版: 0110
产品制造商: TOSHIBA
产品型号: TransMemory-Mx
产品修订版: PMAP
主控厂商: Phison(群联)
主控型号: PS2251-03(PS2303) - F/W 02.08.53 [2014-01-02]
闪存识别码: 983AA892 - Toshiba(东芝) TC58NVG7T2JTA00 [TLC-8K]
Restore 是群联官方提供的一款恢复工具,可以进行低级格式化和修复。
Fri, Jun 9, 2017 想要在PC上运行Android软件就需要模拟器,Windows版的Android模拟器软件很多,但是Linux平台的就不多了,今天推荐一款Linux下的Android模拟器软件Anbox
Anbox官方介绍为Android in a Box,Run Android applications on any GNU/Linux operating system.
Anbox 现在还处于测试阶段,很多功能还不完善和稳定,请谨慎使用。
安装Anbox 首先得安装Snaps ,官方地址为https://snapcraft.io/
LinuxMint中安装Snaps和必须包
sudo apt install snapd
sudo apt install pulseaudio
接下来按照官方指南安装Anbox
snap install --classic anbox-installer && anbox-installer
我试着通过snap来安装一直存在权限问题,一般权限不能运行snap install --classic anbox-installer
,root运行完snap install --classic anbox-installer
后,但运行anbox-installer
又提示不能使用root权限,一般权限根本无法运行anbox-installer
,搞了半天都没有成功,于是就有了下文。
通过常规方法安装Anbox
wget https://raw.githubusercontent.com/anbox/anbox-installer/master/installer.sh -O anbox-installer
chmod +x ./anbox-installer
./anbox-installer
安装完成后会有重启系统的提示
To ensure all changes made to your system you should now reboot
your system. If you don’t do this no Android applications will
show up in the system application launcher.
Tue, Jun 6, 2017 在此只推荐从源码安装p7zip ,下载地址 http://www.7-zip.org/download.html
源码在这里下载 https://sourceforge.net/projects/p7zip/files/p7zip/
wget https://sourceforge.net/projects/p7zip/files/p7zip/16.02/p7zip_16.02_src_all.tar.bz2
tar jxf p7zip_16.02_src_all.tar.bz2
cd p7zip_16.02
make
make install
使用p7zip
[root@localhost ~]# 7za
7-Zip ( a) [ 64] 16.02 : Copyright ( c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 ( locale= en_US.UTF-8,Utf16= on,HugeFiles= on,64 bits,1 CPU x64)
Usage: 7za <command> [ <switches>...] <archive_name> [ <file_names>...]
[ <@listfiles...>]
<Commands>
a : Add files to archive
b : Benchmark
d : Delete files from archive
e : Extract files from archive ( without using directory names)
h : Calculate hash values for files
i : Show information about supported formats
l : List contents of archive
rn : Rename files in archive
t : Test integrity of archive
u : Update files to archive
x : eXtract files with full paths
压缩文件
Thu, May 25, 2017 在此介绍一个国外网友的树莓派项目RARP ,Weather According to Raspberry Pi
顾名思义,Weather According to Raspberry Pi是一个有关天气信息的项目,该项目通过采集Raspberry Pi 和Sense HAT 的数据,来显示相关的天气信息,比如温度、湿度、压力等
项目地址http://coded2.herokuapp.com/weather/
代码国内下载地址</res/warp_final.zip>
下载后解压,得到main.py 和gauge2.html 两个文件,其中main.py 需要Python3 运行,gauge2.html 是最终的显示文件
安装相关软件
sudo apt-get install python3
sudo apt-get install python3-pip
pip3 install flask
打开Sense HAT仿真器 ,在程序菜单中,打开后如下图示:
下来,运行下载的python脚本
正常情况下,会提示一个端口为5000 的web服务正在运行
在浏览器中浏览localhost:5000 或者127.0.0.1:5000 ,最终的浏览如下图
三个图表分别显示温度、压力和湿度,这三者的信息均来自Sense HAT 模拟器 而不是真正的Sense HAT 硬件。
如果需要采集Sense HAT 扩展板的数据,需要将Sense HAT 附加板和Raspberry Pi 相连,具体信息参考官网 https://www.raspberrypi.org/products/sense-hat/
然后修改代码,打开main.py 文件,找到如下行
from sense_emu import SenseHat
修改为
from sense_hat import SenseHat
保存后,重新运行python3 main.py ,此时采集的数据就来自真实的SenseHAT 硬件。
Tue, May 16, 2017 进入到Citrix安装目录C:\Program Files (x86)\Citrix\ICA Client
启用本地输入法
禁用本地输入法
wfica32.exe /localime:off
以上输入完后会有弹窗提示是否成功。
除了通过运行命令行程序来更改,也可以通过修改注册表来实现
HKLM配置位置
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client\Engine\Lockdown Profiles\All Regions\Lockdown\Virtual Channels\Keyboard
HKCU配置位置
HKEY_CURRENT_USER\Software\Citrix\ICA Client\Engine\Lockdown Profiles\All Regions\Lockdown\Virtual Channels\Keyboard
#设置LocalIME = 1 or 0
#disable=0, enable=1,留空使用其他位置的设置
注意HKLM和HKCU必须同时修改,64位操作系统注册表键值在WOW64节点下
Tue, Apr 25, 2017 Linux是一个多用户、实时共享的操作系统,意味着不止一个用户可以登录同一个系统。系统管理员通过任务管理来分配不同用户的权限,比如安装、升级、卸载应用程序,运行编译程序,文件查看、编辑等等。
Linux允许通过两种主要方式来创建用户环境:系统级(全局)和用户级(个人)。一般情况下,Linux系统都会运行基本shell程序,当用户登录成功后shell会在初始化时根据某些文件开创建环境。
Linux中的Shell初始化 当Shell 被调用时,会有一些初始化/启动文件被启用,它们的主要作用是为shell本身或用户设定运行环境,包含一些函数、 变量、别名等等。
Shell 可以读取以下两种初始化文件:
系统级启动文件 – 包含一些应用于户所有用户的全局配置,一般存在于**/etc目录中,如 /etc/profiles 、 /etc/bashrc** 或者 /etc/bash.bashrc 。用户级启动文件 – 包含一些应用于单用户的配置文件,一般存放在各个用户目录,这些配置可以覆盖系统级全局配置,如**.profiles**、 .bash_profile 、 .bashrc 和 .bash_login .Shell 存在三种调用模式:
1. 交互式登录Shell 当用户成功登录系统后调用该Shell ,使用**/bin/login登录,随后读取 /etc/passwd**文件。
当启动交互式shell 后,将读取**/etc/profile文件以及特定的用户文件 ~/.bash_profile**
login as: pi
[email protected] ' s password:
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Apr 25 10:43:53 2017 from 211.137.135.200
pi@raspi:~ $
2. 非登录交互式Shell 当使用如**$/bin/bash** or $/bin/zsh 的命令行时,将会系统非登录交互式shell 。他也可以通过**/bin/su**命令来运行。
Thu, Apr 20, 2017 Python-pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。
以下为多个操作系统平台下Python-pip 安装方法
通用方法 通过get-pip.py 文件来安装,建议Windows 用户使用,前提是你必须首先安装Python 。
版本要求Python 2 >=2.7.9 或Python 3 >=3.4,可从官网下载http://www.python.org/
然后下载get-pip.py
下载地址 https://bootstrap.pypa.io/get-pip.py
通过python get-pip.py
命令来进行安装。
Linux下通过软件管理工具来安装Python-pip Fedora21 Python2
sudo yum upgrade python-setuptools
sudo yum install python-pip python-wheel
Python3
sudo yum install python3 python3-wheel
Fedora22 Python2
sudo dnf upgrade python-setuptools
sudo dnf install python-pip python-wheel
Python3
sudo dnf install python3 python3-wheel
CentOS/RHEL 首先得启用EPEL repository ,可参考此文
OpenSUSE Wed, Apr 19, 2017 这是一个python3的脚本,每隔10分钟监控一次IP地址,如果发生变化则会通过AutoRemote消息通知你。 关于AutoRemote的使用可参考这里
这里推荐使用ipgetter 来获取外网IP,地址为https://github.com/phoemur/ipgetter
安装ipgetter
sudo apt-get install python3 pip
sudo pip3 install ipgetter
你可以从以下地址获取每个通知设备的AutoRemote所需google key
http://autoremotejoaomgcd.appspot.com/?key=[it’s the part that is here]
以下为python3脚本:
import ipgetter
import urllib.request
import requests
currentIP = ipgetter.myip()
#AutoRemote function to send a notification YOUR_KEY goes here
def sendAR( x) :
AR_key = 'YOUR_KEY'
AR_url = 'http://autoremotejoaomgcd.appspot.com/sendmessage?key=' + AR_key +'&message=IP%20'
message = AR_url + x
response = urllib.request.urlopen( message) .read()
print( x)
#check the internet and check if previous file is present
try:
requests.get( 'http://www.google.com' )
print( 'Internet present' )
IPfile = open( 'ipfile.txt' , 'r' )
lastIP = IPfile.read()
if lastIP == currentIP:
print( 'No changes last IP: ' + lastIP + ' current IP: ' + currentIP)
else :
with open( 'ipfile.txt' , 'w+' ) as f:
f.write( currentIP)
f.close()
sendAR( currentIP)
print( 'IP updated' )
#handle no file
except IOError:
#print(IOError)
with open( 'ipfile.txt' , 'w+' ) as f:
IPfile = ipgetter.myip()
f.write( IPfile)
f.close()
print( 'created file with current IP' )
sendAR( currentIP)
quit()
#Handle no internet
except requests.ConnectionError:
quit()
运行脚本后,会监视ip变化,如果发生变化则通知最新ip,如果未发生变化则不通知。
Mon, Apr 17, 2017 Linux Kernel 4.9+已经支持tcp_bbr拥塞控制算法,因此建议将内核升级为最新版。
将内核升级到最新版 Debian/Ubuntu升级最新内核 最新内核下载地址 http://kernel.ubuntu.com/~kernel-ppa/mainline
下载安装新内核
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.10/linux-image-4.10.10-041010-generic_4.10.10-041010.201704120813_amd64.deb`
dpkg -i linux-image-4.10.10-041010-generic_4.10.10-041010.201704120813_amd64.deb
更新GRUB并且重启
Centos 7 升级最新内核 内核下载地址 http://elrepo.org/linux/kernel/el7/x86_64/RPMS/
安装最新内核
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum --enablerepo= elrepo-kernel install kernel-ml -y
检查内核是否安装完成
rpm -qa | grep kernel
更新GRUB并重启主机
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
grub2-set-default 0 #default 0表示第一个内核设置为默认运行, 选择最新内核就对了
reboot
http://elrepo.org/linux/kernel/ 下e15
、e16
分别对应Centos5、Centos6,可参考以上安装
开启BBR 重启后uname -r
检查内核版本是不是4.9+
然后执行以下操作
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
运行结果中有bbr 则成功了
通过lsmod | grep bbr
可以检查是否开启bbr 模块
Thu, Apr 13, 2017 必备条件:
树莓派已联网 安装官方镜像 只支持Raspberry Pi 2/3 Model B 只支持Android手机 安装Java8 安装官方镜像Raspbian 下载地址 https://www.raspberrypi.org/downloads/
安装Java8 sudo apt install oracle-java8-jdk
下载Marsiot到树莓派
wget http://www.marsiot.com/download/marsiot.jar
下载Marsiot到手机,安装
http://www.marsiot.com/download/marsiot.apk
在树莓派上运行Marsiot
pi@raspi:~ $ sudo java -jar marsiot.jar
Current version <101>
More help: sudo java -jar marsiot.jar help
Connect to www.marsiot.com...
Connected ok!
GPIO init...
GPIO init ok!
ID-CODE:c1fa PASS-CODE:11c6
记住以上ID-CODE 、PASS-CODE
在手机上打开火星互联 ,事件中心 时间轴上会显示所有新加入设备,以ID-CODE 区分,找到你对应的设备点击,按照提示输入PASS-CODE 即可连接。
连接后可以在我的设备 中看到已连接的设备,点击通用视图即可实时监控GPIO 端口状态。
Mon, Mar 20, 2017 先用ifconfig
来查看所有活动网络接口
eth0 Link encap:Ethernet HWaddr b8:27:eb:1b:63:a8
inet addr:192.168.1.6 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::6502:67ff:89b:b2fd/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:43239 errors:0 dropped:24 overruns:0 frame:0
TX packets:30644 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25068614 (23.9 MiB) TX bytes:5993030 (5.7 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1961 errors:0 dropped:0 overruns:0 frame:0
TX packets:1961 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:160232 (156.4 KiB) TX bytes:160232 (156.4 KiB)
设置IP和掩码 ifconfig eth0 192.168.1.6 netmask 255.255.255.0
设置网关 route add default gw 192.168.1.1
修改网卡MAC ifconfig eth0 down
ifconfig eth0 hw ether b877c322f8
ifconfig eth0 up
设置DNS vi /etc/resolv.conf
nameserver 114.114.114.114
nameserver 114.114.115.115
重启网络服务生效 service network restart
Fri, Mar 10, 2017 打开功能 设置-系统-应用和功能,右侧下拉到底,点击“相关设置”下的“程序和功能”
在打开的“程序和功能”左侧菜单中,找到“启用或关闭windows功能”,点击打开。
在接下来的“windows功能”菜单中,下拉勾选“适用于linux的windows子系统(beta)”,确认后重启系统。
开启开发人员模式 设置-更新和安全-针对开发人员,在右侧打开“开发人员模式”
安装linux子系统 Win+R输入cmd回车,打开cmd
输入“bash”按照提示安装设置用户名密码即可使用。
然后就可以使用ubuntu提供的linux子系统了。
Thu, Mar 9, 2017 首次安装Termux后,内含一个基础系统,包括apt软件包管理功能,并且集成了一些busybox系统工具。
其余的软件包可使用apt进行安装管理,命令如下:
更新可用软件包清单。
按名称搜索可用软件。
安装软件
更新所有可更新软件。
显示软件信息
列出可用软件清单
列出所有已安装软件清单
卸载已安装软件
Apt是基于dpkg格式的软件管理工具,一般没必要直接使用dpkg来进行操作,不过以下两个例子可以参考:
列出已安装软件
验证已安装软件的完整性
更多信息请检阅apt manual page
(通过apt install man
来安装)
更改软件源可参考Termux编辑软件源
Fri, Mar 3, 2017 使用lnmp一键工具安装完nmp后,重启进入系统就提示bash command not found
然后试了试service
,who
等命令也无法使用
只有最基本的系统命令ls
,cat
等可以用
看来安装lnmp后,我的PATH变量被动了
先临时修改下PATH,便于后面操作
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:$PATH
然后检查~/.profile
,/etc/profile
是否存在,存在
检查其中的PATH赋值是否异常
经过排查,发现/etc/profile
中的PATH赋值异常,修改之重启OK!
在此分享正确的原始~/.profile
和/etc/profile
文件
~/.profile 内容
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
**/etc/profile内容 **
Sun, Feb 12, 2017 为了方便管理七牛云,官方放出了一个工具-qshell
qshell是利用七牛文档上公开的API实现的一个方便开发者测试和使用七牛API服务的命令行工具。
使用qshell可以方便的进行批量操作,包括批量上传、批量下载、批量删除等等……
首先,从https://u18418398.pipipan.com/fs/18418398-314035000 下载官方提供的qshell,里面包含多个平台。
qshell_linux_386 Linux 32位系统 qshell_linux_amd64 Linux 64位系统 qshell_linux_arm Linux ARM CPU qshell_windows_386.exe Windows 32位系统 qshell_windows_amd64.exe Windows 64位系统 qshell_darwin_386 Mac 32位系统,这种系统很老了 qshell_darwin_amd64 Mac 64位系统,主流的系统 解压后,将对应的版本软件放到自定义目录
在此以windows版实例操作
帐号设置 使用qshell前,需要进行帐号验证,可以通过qshell account ak sk
格式来进行验证,其中ak
和sk
对应个人面板->密匙管理中的AccessKey/SecretKey
qshell account yW!DRel0y8ERbjw%so^?X8 6pfC4OlL$TZtjpNuR4bLxRsD
设置完成后,可以通过qshell account
来查看已设置帐号详情
qshell account
AccessKey:yW!DRel0y8ERbjw%so^?X8
SecretKey:6pfC4OlL$TZtjpNuR4bLxRsD
设置完帐号后,我们就可以使用qshell
对帐号对应的空间进行操作
列出当前帐号下所有空间 qshell buckets
cname
cname
为空间名
列出空间中所有文件 qshell listbucket cname cname.list.txt
cname
为空间名,cname.list.txt
为结果输出文件。
批量上传 qshell qupload up.cfg
up.cfg
上传操作配置文件,如下:
{
"src_dir" : "D:\\abc",
"bucket" : "cname"
}
src_dir
为本地文件夹,Wdinwos下必须使用如上格式
Mon, Jan 2, 2017 准备工作 Alt + Shift + H进入帮帮我界面
进入后,不要退出,注意以下三个信息
应用程序版本 7.1.0.649 (1886) PIN 3045e17c 正常运行时间 173秒 注意!注意!注意 一定不要退出以上界面,因为运行时间会变动,如果退出了,重新进入查看运行时间
计算解锁码 使用软件工具或者网页版工具计算,网址在这里 http://www.kealin.net/Escreen/Index.html
按照提示,输入PIN、OS Version、Uptime
底下会出现响应时长的解锁码,有1day到30days
一般我们就用一下下,选择一天解锁码,如果你需要长时间使用,可以选择较长时间的解锁码
解锁码也可以使用软件来获取,可以使用BBctrl、BerryBox,请自行搜索。
进入工程模式(Engineering Screen Contents) 注意,前面的帮帮我没有退出,在该界面下输入你所获得的解锁码
如果退出了,重新进入查看运行时间,按照新的时间重新获取解锁码
输入正确后,即可进入工程模式(engineering screen contents)
设置 在工程模式下按以下顺序来操作
Radio Engineering Screens(MULTI) -> 3GPP Radio Engineering Screens -> GCF -> SIM Electrical Test Mode On
点击最后一个菜单后手机自动重启,然后启动完即可使用4G手机卡。
Wed, Aug 17, 2016 首先查看无线网卡型号
alair@zb14:~$ lspci|grep less
02:00.0 Network controller: Intel Corporation Wireless 7260 (rev 73)
搜索Inter相关固件
alair@zb14:~$ apt-cache search iwlwifi
firmware-iwlwifi - Binary firmware for Intel Wireless cards
安装之
alair@zb14:~$ apt-get install firmware-iwlwifi
重启完事儿!
Fri, Jul 1, 2016 新入手了its0k.com,原来的alair.cn还继续使用
在这里需要将alair.cn重定向到its0k.com
第一次只是将nginx
配置文件中的alair.cn
全部替换为its0k.com
,通过its0k.com浏览新站完全没问题
但是试着从alair.cn跳转浏览新站,浏览器出现了证书安全告警,告警具体原因为证书未包含alair.cn
域名,我才想起来旧域名alair.cn
已经添加进了HSTS
列表,因此不能简单的只为新域名签名,而是需要证书签名时包含新旧两个域名。
重新签名了证书,包含以下四个域名
its0k.com www.its0k.com alair.cn www.alair.cn
以下为更改完成后的nginx
配置文件,请注意名相关的部分
server {
listen 443 ssl http2;
ssl_certificate /root/ssls/its0k.crt;
ssl_certificate_key /root/ssls/its0k.key;
ssl_session_timeout 60m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RC4-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS;
ssl_prefer_server_ciphers on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Frame-Options "DENY";
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
server_name its0k.com www.its0k.com alair.cn www.alair.cn;
access_log off;
index index.html index.htm;
include /usr/local/nginx/conf/rewrite/ps.conf;
root /data/wwwroot/its0k.com/compiled;
error_page 403 404 500 503 505 = https://its0k.com/404;
if ($host != its0k.com) {
rewrite ^/(.*)$ $scheme://its0k.com/$1 permanent;
}
location ~ .*\.(gif|svg|jpg|jpeg|png|bmp|swf|flv|ico)$ {
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$ {
expires 7d;
access_log off;
}
}
server {
listen 80;
server_name www.its0k.com its0k.com alair.cn www.alair.cn;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
rewrite ^/(.*) https://its0k.com/$1 permanent;
}
至此域名替换完成!
Mon, Jun 27, 2016 先运行update-grub
命令生成一次grub配置,顺便查看一下识别出来的引导菜单内容
root@alairpc:~# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-21-generic
Found initrd image: /boot/initrd.img-4.4.0-21-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done
root@alairpc:~#
注意看,以上共有5个菜单项,最后一个是windows7
接下来我们来看看gurb配置文件/etc/default/grub
root@alairpc:~# cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=4
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="locale=zh_CN"
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
其中GRUB_DEFAULT 就是默认引导项,这里设置为4,对应的为windows7,说明一下,这个引导序列号是从0开始排的,所以第五项window7的序列号应为为4
Mon, May 9, 2016 网站的Let’s encrypt证书快到期了,看了官方的续期方法比较繁琐,于是在网上找了找简单方便做法,结果找到了墓地小企鹅 写的一个脚本(shell script),使用这个脚本可以方便的生成以及更新Let’s encrypt 证书。
脚本地址 https://github.com/xdtianyu/scripts/tree/master/lets-encrypt
下载脚本
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.conf
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.sh
配置
root@rnse:~/lesh# cat letsencrypt.conf
# only modify the values, key files will be generated automaticly.
ACCOUNT_KEY="letsencrypt-account.key"
DOMAIN_KEY="alair.key"
DOMAIN_DIR="/data/wwwroot/alair.cn/compiled"
DOMAINS="DNS:alair.cn,DNS:www.alair.cn"
#ECC=TRUE
#LIGHTTPD=TRUE
按照需要自定义DOMAIN_KEY
、DOMAIN_DIR
、DOMAINS
三部分。
生成证书
root@rnse:~/lesh#chmod +x letsencrypt.sh
root@rnse:~/lesh# ./letsencrypt.sh letsencrypt.conf
Generate account key...
Generating RSA private key, 4096 bit long modulus
..............................++
....++
e is 65537 (0x10001)
Generate domain key...
Generating RSA private key, 2048 bit long modulus
...............................................................+++
..........................+++
e is 65537 (0x10001)
Generate CSR...alair.csr
Parsing account key...
Parsing CSR...
Registering account...
Registered!
Verifying www.alair.cn...
www.alair.cn verified!
Verifying alair.cn...
alair.cn verified!
Signing certificate...
Certificate signed!
New cert: alair.chained.crt has been generated
生成后的目录文件如下:
Fri, May 6, 2016 Syncthing是一款开源的多平台同步软件,使用他可以在多个设备间进行文件同步,并且带有版本控制功能。
Syncthing官网地址 **https://syncthing.net/ **Github地址 https://github.com/syncthing/syncthing
安装Syncthing Syncthing官网提供多平台安装包,下载地址为 https://github.com/syncthing/syncthing/releases/
并且针对Debian/Ubuntu平台,官方提供了apt-get安装方法
# Add the release PGP keys:
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
# Add the "release" channel to your APT sources:
echo "deb http://apt.syncthing.net/ syncthing release" | sudo tee /etc/apt/sources.list.d/syncthing.list
# Update and install syncthing:
sudo apt-get update
sudo apt-get install syncthing
运行Syncthing Linux下直接使用syncthing
命令运行
syncthing &
Windows下直接打开下载的syncthing.exe 文件,而后浏览器自动打开http://127.0.0.1:8384
进行设置管理。
管理Syncthing 如果是在VPS上安装Syncthing ,运行syncthing
后,只能通过http://127.0.0.1:8384
进行管理,我们可以通过以下方法在本地管理。
ssl -L 9891:localhost:8384 root@ip
输入root密码登录成功后,即可本地浏览http://127.0.0.1:9891
对VPS上的Synchting进行管理。
添加设备 每个设备均有一个设备标识 ,可以通过操作->显示设备标识来查看。
不同的设备之间进行链接,就是通过添加对方的设备标志 来实现。
Mon, Apr 18, 2016 Nokia 3310/5110显示器基于PCD8544,在此分享一个树莓派可用的PCD8544库
使用该库之前,需要安装wiringPi,安装方法可参考树莓派连接DHT11采集温度与湿度
项目地址:https://github.com/binerry/RaspberryPi/tree/master/libraries/c/PCD8544
可通过github download 直接下载,不能访问github的,用以下连接下载
http://unixetc.com/res/Raspberry.Pi_PCD8544.Library.zip
解压后,可得到一个c源码和一个h头文件
以及samples文件夹下的三个示例
pcd8544_rpi.c
pcd8544_test.c
pcd8544_test2.c
按照下图所示连接好树莓派和显示器
RST —— 复位 接GPIO 0 CE —— 片选 接GPIO 1 或 不接 DC —— 数据/指令选择 接GPIO 2 DIN —— 串行数据线 接GPIO 3 CLK —— 串行时钟线 接GPIO 5 (因为我的GPIO 4已经接了一个DHT11传感器) VCC —— 电源输入 接3.3v BL —— 背光控制端 接3.3v GND —— 地线 接地 编译三个示例程序
cc -o pcd8544_test pcd8544_test.c ../PCD8544.c -L/usr/local/lib -lwiringPi
cc -o pcd8544_test2 pcd8544_test2.c ../PCD8544.c -L/usr/local/lib -lwiringPi
cc -o pcd8544_rpi pcd8544_rpi.c ../PCD8544.c -L/usr/local/lib -lwiringPi
然后运行
Sun, Apr 3, 2016 因工作需要,得处理一张7872x5904体积为178MB的图片,格式为TIFF。
网上搜了半天,找到一个名为OptiPNG 的软件,主要为PNG优化,但也支持TIFF格式。
下面是OptiPNG的官方介绍
OptiPNG is a PNG optimizer that recompresses image files to a smaller size, without losing any information. This program also converts external formats (BMP, GIF, PNM and TIFF) to optimized PNG, and performs PNG integrity checks and corrections.
OptiPNG可以将PNG文件重新压缩,压缩后体积变得更小,并且不会丢失任何信息。同时optipng还支持其他格式的图片,如BMP、GIF、PNM和TIFF。
至于OptiPNG的威力如何,请看本次实例,下载 optipng-0.7.8.tar.gz ,密码3705。
root@raspi:~# ls -lh huxian.tif
-rw-r--r-- 1 root root 178M Apr 4 16:54 huxian.tif //原始文件178MB
root@raspi:~# optipng huxian.tif
** Processing: huxian.tif
Importing TIFF
7872x5904 pixels, 4x8 bits/pixel, RGB+alpha //分辨率7872x5904
Reducing image to 3x8 bits/pixel, RGB
Input file size = 186000368 bytes
Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 4273133
Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 4273133
Output file: huxian.png
Output IDAT size = 4273133 bytes
Output file size = 4273190 bytes ( 181727178 bytes = 97.70% decrease)
root@raspi:~# ls -lh huxian*
-rw-r--r-- 1 root root 4.1M Apr 4 17:02 huxian.png //压缩结果4.1MB
-rw-r--r-- 1 root root 178M Apr 4 16:54 huxian.tif
看来OptiPNG还是很牛的嘛!!!
Fri, Apr 1, 2016 LFTP使用实例 lftp是一个功能强大的ftp/http客户端,作者是 Alexander Lukyanov。
lftp支持多种传输协议,如ftp、http、https、sftp、exp等。
如同BASH一样,lftp支持任务管理。并且具备书签管理、内置镜像和多线程传送功能。
使用LFTP lftp登录服务器 lftp ftp://user:password@ip:port
以上是一个完整的lftp登录示例,其中包含协议(ftp)、用户名(user)、密码(password)、主机(ip)以及端口(port)
默认情况下lftp直接访问ftp服务,默认登录端口为22,因此我们可以使用以下方法来便捷登录主机
然后系统会提示输入password ,完成后登录成功!
lftp命令行参数 lftp :~> help
!<shell-command> ( commands)
alias [ <name> [ <value>]] attach [ PID]
bookmark [ SUBCMD] cache [ SUBCMD]
cat [ -b] <files> cd <rdir>
chmod [ OPTS] mode file... close [ -a]
[ re] cls [ opts] [ path/][ pattern] debug [ <level>|off] [ -o <file>]
du [ options] <dirs> exit [ <code>|bg]
get [ OPTS] <rfile> [ -o <lfile>] glob [ OPTS] <cmd> <args>
help [ <cmd>] history -w file|-r file|-c|-l [ cnt]
jobs [ -v] [ <job_no...>] kill all|<job_no>
lcd <ldir> lftp [ OPTS] <site>
ln [ -s] <file1> <file2> ls [ <args>]
mget [ OPTS] <files> mirror [ OPTS] [ remote [ local]]
mkdir [ -p] <dirs> module name [ args]
more <files> mput [ OPTS] <files>
mrm <files> mv <file1> <file2>
[ re] nlist [ <args>] open [ OPTS] <site>
pget [ OPTS] <rfile> [ -o <lfile>] put [ OPTS] <lfile> [ -o <rfile>]
pwd [ -p] queue [ OPTS] [ <cmd>]
quote <cmd> repeat [ OPTS] [ delay] [ command]
rm [ -r] [ -f] <files> rmdir [ -f] <dirs>
scache [ <session_no>] set [ OPT] [ <var> [ <val>]]
site <site-cmd> source <file>
torrent [ -O <dir>] <file|URL>... user <user|URL> [ <pass>]
wait [ <jobno>] zcat <files>
zmore <files>
常用的命令解释如下:
Tue, Mar 29, 2016 什么是PATH? 要搞清什么是PATH ,应该先搞清什么是环境变量?
在计算机中,如果需要运行一个软件,那么我们就要找到它所在的位置,但是每次运行程序时如果都要进入到相应目录,那么显然是很繁琐的。于是就有了环境变量,环境变量就是一个系统参数,里面记录了一些目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件。
而在Linux中,系统会有一个默认的PATH 环境变量,里面记录了系统级的相关命令目录,比如当我们输入ls
、cd
、pwd
等命令时,我们不需要指定它们所在的目录,因为包含这些命令的系统目录已经写入PATH 参数,因而方便我们调用。
查看PATH 在linux中,可以使用export
命令来查看所有环境变量,如下:
pi@raspi:~$ export
declare -x HOME="/home/pi"
declare -x LANG="en_GB.UTF-8"
declare -x LOGNAME="pi"
declare -x MAIL="/var/mail/pi"
declare -x OLDPWD
declare -x PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/home/pi/bin"
declare -x PWD="/home/pi"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_CLIENT="101.135.216.146 28249 22"
declare -x SSH_CONNECTION="101.135.216.146 28249 192.168.1.111 22"
declare -x SSH_TTY="/dev/pts/1"
declare -x TERM="xterm"
declare -x USER="pi"
使用echo
来查看单独的环境变量
pi@raspi:~$ echo $PATH
/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/home/pi/bin
我们可以看到,以上PATH 值包含了一些系统命令的目录,而这些目录都用:
隔开。
修改PATH 我们可以使用export
命令来添加目录,如下:
export PATH=/mydoc:$PATH
以上命令在原有的PATH 前添加了/mydoc
这个目录,设置完成后的PATH 值如下:
pi@raspi:~$ echo $PATH
/mydoc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/home/pi/bin
以上方法修改PATH 值,在终端退出后就会失效,因此建议通过修改/etc/profile
来设定PATH
Sat, Mar 26, 2016 更新系统 apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y && apt-get autoremove --purge -y && apt-get autoclean -y
安装必备软件 apt-get install locate git cmake build-essential checkinstall autoconf pkg-config libtool python-sphinx wget libcunit1-dev nettle-dev libyaml-dev libuv-dev -y
安装wslay git clone https://github.com/tatsuhiro-t/wslay.git
cd wslay/
autoreconf -i
automake
autoconf
./configure
make
make install
安装完成后检查lib文件,如下所示:
ls /usr/local/lib/
libuv.a libuv.so.1 libwslay.la libwslay.so.0.0.1 python3.4
libuv.la libuv.so.1.0.0 libwslay.so pkgconfig
libuv.so libwslay.a libwslay.so.0 python2.7
安装最新版OpenSSL 删除旧版OpenSSL
Sun, Mar 20, 2016 时隔三年再次入手小米手机,没想到如今的MIUI已经今非昔比,首先是bootloader锁住了,官方理由是安全,但是作为一个android发烧友,锁bootloader后就无法安装第三方recovery,进而无法体验众多第三方系统了。以下介绍如何解锁小米4C以及刷入第三方TWRP Recovery。
permalink: ’logs/Mi4C-Unlock-and-TWRP-Recovery.html'
时隔三年再次入手小米手机,没想到如今的MIUI已经今非昔比,首先是bootloader锁住了,官方理由是安全,但是作为一个android发烧友,锁bootloader后就无法安装第三方recovery,进而无法体验众多第三方系统了。其次是到处广告,整个系统UI很多处都是广告,额滴个神啊! 小米穷疯了吧! 无力吐槽啊………………
以下介绍如何解锁小米4C以及刷入第三方TWRP Recovery。
解锁小米4C 小米解锁需要去官方申请,申请提交地址为 http://www.miui.com/unlock/ 。
录入小米ID以及手机号等信息后,就等着吧……
我等了16天才收到解锁申请通过短信通知。
然后下载官方解锁工具,下载地址为http://www.miui.com/unlock/download.html
打开解锁工具,登录小米帐号,关机长按音量下+电源键进入Fastboot模式。
然后按照提示进行操作,两分钟不到解锁成功!!!
注:如果解锁失败,提示什么帐号不一致啦、手机信息无法获取啦,请到miui官网论坛进行问题提交。
刷入TWRP Recovery 首先下载adb工具包,里面包含需要的软件fastboot,下载地址 http://pan.baidu.com/s/1sjR8ved ,下载后点击安装。
然后下载TWRP Recovery镜像文件,下载地址为http://pan.baidu.com/s/1nuugNK9
将下载后的TWRP Recovery镜像文件(.img)拷贝至adb工具包目录,然后CMD模式下进入到adb工具包目录,如下操作:
刷入TWRP Recovery
D:\>fastboot flash recovery libra_ts_twrp_3_0_0_3.img
target reported max download size of 536870912 bytes
sending 'recovery' (51844 KB)...
OKAY [ 1.485s]
writing 'recovery'...
OKAY [ 0.481s]
finished. total time: 1.971s
重启引导进入TWRP Recovery
D:\>fastboot boot libra_ts_twrp_3_0_0_3.img
downloading 'boot.img'...
OKAY [ 1.494s]
booting...
OKAY [ 0.516s]
finished. total time: 2.014s
说明:首次刷入TWRP Recovery,进入Recovery后触摸屏可能无法操作,这时唯一的方法就是等待,等到1分钟左右手机自动息屏后,重按电源键点亮屏幕即可恢复操作。
Sat, Feb 20, 2016 在福利吧(fuliba.net)看到斐讯K1路由器免费获得的活动,于是在天猫买了一台,赠送的139铃铛卡也正常激活使用,一个月到期后共140元也正常提了出来。总的来说,没被坑!!!
但是斐讯K1默认的固件确实不敢恭维,于是在网上搜了一通,先刷入Breed,然后通过Breed刷入华硕固件,特整理步骤。
什么是Breed? 这是楼主从去年年中自行设计开发的一个全新的 Bootloader,并用于取代 U-Boot。
此 Bootloader 暂取名为 Breed,不是 U-Boot,也不是 U-Boot 的改进版,是全新、独立的、跟 U-Boot 平级的 Bootloader。
科普一下:
Bootloader 意思为引导加载器,即为用于加载操作系统的程序。它是一大类此类功能程序的统称。现在的 BIOS、UEFI、GRUB、RedBoot、U-Boot、CFE、Breed 等都是 Bootloader。
因此,还是上面那句话,Breed 不是由什么东西改名出来的,这就是一个新的东西。看着有些人的话我真的觉得很搞笑。
此外,由上面两句话,如果想从 Breed 刷到其他任何 Bootloader,例如 U-Boot,请在 Breed 固件更新页面选择更新 Bootloader。。。。。。。。。。。。
摘自恩山无线论坛 Breed作者hackpascal 原帖
刷入Breed 适合斐讯K1的Breed下载地址为 http://breed.hackpascal.net/breed-mt7620-reset1.bin
首先进入到斐讯K1的管理后台,192.168.2.1,确保路由器正常使用并且已经配置好联网。
接着,在浏览器地址栏输入http://192.168.2.1/goform/Diagnosis?pingAddr=192.168.2.100|echo""|telnetd 回车
浏览器会跳转到网络测试页面,这个不用理会。
打开CMD (WIN+R),telnet连接路由器
telnet 192.168.2.1
使用路由器管理员帐号登录,默认为admin/admin
下载Breed到路由器
cd /tmp
wget http://breed.hackpascal.net/breed-mt7620-reset1.bin
刷入Breed
mtd_write write breed-mt7620-reset1.bin Bootloader
重启路由器
reboot
相关截图:
刷华硕固件 路由器断电,插电时按住Reset键5秒。
网线连接电脑,浏览192.168.1.1进入Breed Web恢复控制台。
左侧菜单点击固件更新,在右侧选择固件文件,开始上传更新。
完成后可能不会自动重启,需要手动断电重启。
注意:有时Reset后,电脑可能无法连接192.168.1.1,可以手动设置网卡参数192.168.1.11/255.255.255.0/192.168.1.1
至此斐讯K1刷华硕固件整个过程完成,至于华硕固件使用方法,请自行搜索。
Sat, Feb 13, 2016 三年不用Firefox了,最近由于需要进行手机端和电脑端资源同步,chrome在国内不安装谷歌套件无法使用,所以又切换回了firefox。
在安装完成autoproxy后发现,订阅gfwlist.txt一直无法成功,网上找了找消息,说是autoproxy已经跟不上firefox开发脚步,无法继续使用。于是在firefox的addon站点重新找代理插件,最终选定foxyproxy。
以下是foxyproxy设置socks代理,和订阅gfwlist.txt的一些设置方法。
安装foxyproxy 去主页http://getfoxyproxy.org/ ,安装完成后重启firefox
添加代理服务器 双击地址栏和搜索栏中间的foxyproxy图标,进入到设置
代理服务器 选项卡中点击新建代理服务器
常规 选项卡中设置代理名称 ,如ss
代理服务器细节 中设置具体参数,以下是我的设置截图,可以参考
设置订阅gfwlist.txt 在模式订阅 选项卡中,空白处点击右键,添加新的模式订阅
参考下图设置,注意勾划出来的地方
将foxyproxy的工作模式 选择为使用基于其预定义模版的代理服务器 。
Wed, Feb 10, 2016 安装完成windows7后,默认可能没有开启telnet功能,这样在cmd下输入telnet时会提示无命令,可以参考下文开启telnet功能。
开始 -> 控制面板 -> 程序和功能
在左侧边栏找到打开或关闭windows功能
在打开的窗口中找到Telnet客户端 ,勾选,确认。
Over!
Sun, Feb 7, 2016 当使用国外服务器时,经常会发现,下载速度只有十几k。平时可能不太注意,认为服务器带宽不足,或者自己使用的宽带不给力,其实很有可能原因并不在此。
由于光速的局限性,延迟会比较高(即使光沿直线传播,太平洋一个往返也要一百多毫秒)。并且由于距离较远,途径路由跳数较多,并且网络拥堵的原因。经常会发生丢包的情况。
对于平时使用最广泛的TCP协议来讲,发送端发出包后,接收端会回复ACK,表示自己收到了。用这种机制来保证可靠性。但对于高延迟链路来讲,如果每发送一个包都等待应答,那么大部分时间都在等待数据包到达,而链路则空置了。为此一般会采用滑动窗口技术。即在窗口满之前,发送端一直发送包,然后收到应答后将确认收到的包从窗口中移除。这样可以提高链路利用率。
TCP还有一个特性则是拥塞控制。当发送端检测到链路发生丢包时,则会主动缩小窗口大小以减慢发送速度,避免拥塞。不过对于跳数较多的链路来讲,只要有一个路由不够稳定丢包,就会被发送端判断为拥塞,从而影响网络速度。
为了解决丢包问题,最简单粗暴的方法就是双倍发送,即同一份数据包发送两份。这样的话在服务器带宽充足情况下,丢包率会平方级降低。
这种方式下,直接优点是降低丢包率,直接缺点是耗费双倍流量。一些延伸影响是更容易触发快速恢复逻辑,避免了丢包时窗口缩减过快。一定程度也能提高网络速度。
最近比较忙,空闲时间做了一个最简单的程序,试用效果很好,在一台VPS上测试后发现,未开启时单线程下载、ssh管道速度在十几K级别。开启后可以达到平均300KB+的速度。效果非常明显。但对于不加速就可以跑满带宽的类型来讲(多线程下载),开启后反而由于多出来的无效流量,导致速度减半。所以对于多线程/高速链路,这个方案是不适合的。
目前版本是最简单的逻辑,未来会进行细化(主动触发快速恢复、快速重传等),降低流量浪费,提升加速效果。
目前程序起名net-speeder,相对于修改协议栈来讲,由于后者需要重新升级编译内核,使用用户态程序部署更方便,稳定性更高,兼容性更好。缺点则是性能开销稍大和自由度有损失。总体比较起来,个人使用还是使用用户态程序更合适一些,特别是在虚拟机中使用(OpenVZ,LXC等虚拟机无法自己定制内核)。
摘自http://www.snooda.com/read/324
net_speeder项目主页 https://github.com/snooda/net-speeder
安装net_speeder apt-get install libnet-dev libpcap-dev -y
git clone https://github.com/snooda/net-speeder.git
cd net-speeder
sh build.sh
mv net_speeder /usr/local/bin/
使用net_speeder 使用ifconfig
查看网卡端口,我的端口为venet0
nohup net_speeder venet0 "ip" >/dev/null 2>&1 &
添加到开机启动
echo 'nohup net_speeder venet0 "ip" >/dev/null 2>&1 &' >> /etc/rc.local
Thu, Feb 4, 2016 Linux中进行文件拷贝和移动时,我们是看不到具体命令的执行情况,不知道还需要多久才可以执行完成。在此推荐一个软件名为progress
,用它可以查看一些命令的具体执行情况,包括进度、时间等等。
该软件的具体解释为Coreutils Progress Viewer ,即核心程序进度查看,用它可以监视很多linux程序的执行情况,比如cp、mv、dd、tar,、gzip、cat等等,甚至于firefox的下载进度或者nginx的运行情况。
安装progress progress主页 https://github.com/xtod/progress
可以使用apt
,dnf
,pacman
、zypper
、brew
等管理工具直接安装progress
,或者使用以下手动安装。
手动安装progress方法
git clone https://github.com/xtod/progress.git
cd progress
make
make install
使用progress 简单的执行方法
➜ ~ progress
No command currently running: cp, mv, dd, tar, bsdtar, cat, rsync, scp, grep, fgrep, egrep, cut, sort, md5sum, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, adb, gzip, gunzip, bzip2, bunzip2, xz, unxz, lzma, unlzma, 7z, 7za, zip, unzip, zcat, bzcat, lzcat, coreutils, split, gpg, or wrong permissions.
几个示例:
Thu, Jan 28, 2016 Google Authenticator开源版主页 https://github.com/google/google-authenticator
安装Google Authenticator Ubuntu 通过以下命令安装:
apt-get install libpam-google-authenticator
CentOS 通过以下命令安装:
yum install google-authenticator
其他系统可以通过源码编译安装
git clone https://github.com/google/google-authenticator-libpam.git
cd google-authenticator-libpam/
./bootstrap.sh
./configure
make
make install
注意:在Debian7中执行./configure
时可能存在以下错误提示
configure: error: Unable to find the PAM library or the PAM header files
在此需要安装libpam0g-dev
和libtool
apt-get -y install libpam0g-dev libtool
设置Google Authenticator 在手机端搜索安装Google Authenticator
google-authenticator
Do you want authentication tokens to be time-based ( y/n) y
然后出现二维码,使用手机端Google Authenticator 扫码,接下来服务器端继续设置
如果没有出现二维码,可以将提示的以https://www.google.com/chart?
开头的连接复制到浏览器中,就可以看到二维码了
Mon, Jan 18, 2016 天朝的dns服务商尿性不是一般的大,动不动就抽风或者劫持,为了避免这种情况,可以在树莓派上安装Dnsmasq来加速dns解析,提高网络浏览体验。
安装配置dnsmasq apt-get install dnsmasq
配置dnsmasq,vi /etc/dnsmasq.conf
我的配置文件如下:
domain=Raspi2
resolv-file=/etc/resolv.dnsmasq
conf-dir=/etc/dnsmasq.d
min-port=4096
server=114.114.114.114
server=114.114.115.115
server=223.5.5.5
server=223.6.6.6
server=119.29.29.29
server=182.254.116.116
server=112.124.47.27
server=114.215.126.16
server=101.226.4.6
server=218.30.118.6
server=42.120.21.30
server=199.91.73.222
server=178.79.131.110
server=8.8.8.8
server=8.8.4.4
cache-size=10000
配置完重启dnsmasq服务
service dnsmasq restart
其中的server
字段为上游DNS
配置dnsmasq-china-list git clone https://github.com/felixonmars/dnsmasq-china-list.git
cd dnsmasq-china-list/
cp *.conf /etc/dnsmasq.d/
service dnsmasq restart
至此设置完成,可以在路由器中将首选dns设为树莓派ip,这样局域网内的所有设备都可以体验dns解析加速了!
Mon, Jan 11, 2016 注册noip 首先访问 http://noip.com 注册账户
然后在主机管理(Manage Hosts)中添加主机(Add A Host),根据提示设置二级域名,IP可以随意填写。
安装Noip客户端 wget https://www.noip.com/client/linux/noip-duc-linux.tar.gz
tar zxf noip-duc-linux.tar.gz
cd noip-2.1.9-1
sudo make install
安装过程中,按照提示输入noip帐号信息,时间间隔建议设为5s,默认30s
设置开机启动 在/etc/init.d/
中建立noip2
脚本
sudo vi /etc/init.d/noip2
脚本内容如下
#! /bin/sh
### BEGIN INIT INFO
# Provides: noip2
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: noip.com client service
### END INIT INFO
# . /lib/lsb/init-functions
case " $1" in
start)
echo "Starting noip2."
/usr/local/bin/noip2
;;
stop)
echo "Shutting down noip2."
killall noip2
#killproc /usr/local/bin/noip2
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
设置开机启动
Thu, Jan 7, 2016 域名解析 首先得有个域名,在域名管理中将域名DNS设为he.net的DNS地址,如下:
ns1.he.net
ns2.he.net
ns3.he.net
ns4.he.net
ns5.he.net
然后在http://dns.he.net 注册账号,添加域名(Add a new domain)
接下来添加A记录(New A),勾选允许动态域名解析(Enable entry for dynamic dns)
点击域名后DDNS列中的刷新按钮,新建一个DDNS密匙(Generate a DDNS key.)
安装设置ddclient 在树莓派上安装ddclient
sudo apt-get install ddclient
编辑ddclient配置文件,路径为/etc/ddclient.conf
protocol=dyndns2
use=web,web=myip.dnsomatic.com
server=dyn.dns.he.net
login=raspi.in
password='ddnskey'
www.raspi.in,raspi.in
其中password 为设置DDNS时的key
重启ddclient服务
service ddclient restart
验证IP查询结果
sudo ddclient -query
use=if, if=eth0 address is 192.168.1.111
use=if, if=lo address is 127.0.0.1
use=web, web=dnspark address is 36.40.143.235
use=web, web=dyndns address is NOT FOUND
use=web, web=loopia address is 36.40.143.235
其中if方式查询到的是内网地址和本机地址,web方式查询到的时外网IP
Mon, Dec 21, 2015 先贴出本站的SSL安全评级,测试地址为https://www.ssllabs.com/ssltest/analyze.html?d=alair.cn
以下是本站Nginx 配置中关于SSL部分
listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/alair.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/alair.cn/privkey.pem;
ssl_session_timeout 60m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RC4-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS;
ssl_prefer_server_ciphers on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Frame-Options "DENY";
说明:
dhparam.pem 可以使用openssl dhparam -out dhparam.pem 4096
命令生成,这个命令会执行很长时间,也可以将字节数改为2048
Tue, Dec 15, 2015 在此介绍如何使用Let’s Encrypt的免费SSL证书,需要在有管理权限的VPS上操作,然后参考以下方法自签域名证书。
git clone https://github.com/letsencrypt/letsencrypt.git
cd letsencrypt
mkdir -p /home/webroot/.well-known/acme-challenge #/home/webroot为网站目录
./letsencrypt-auto certonly --email [email protected] -d alair.cn,www.alair.cn --webroot -w /home/webroot --agree-tos #注意email、域名、和网站目录
签发成功后,会提示如/etc/letsencrypt/live/www.alair.cn/fullchain.pem;
的证书路径信息。
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/www.alair.cn/fullchain.pem. Your cert will
expire on 2016-03-14. To obtain a new version of the certificate in
the future, simply run Let's Encrypt again.
- If like Let's Encrypt, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
接下来在Nginx 中配置使用,如下代码
Sun, Dec 13, 2015 md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验。是文件的内容,与文件名无关,也就是文件内容相同,其md5值相同。md5值是一个128位的二进制数据,转换成16进制则是32(128/4)位的进制值。
md5校验,有很小的概率不同的文件生成的md5可能相同。比md5更安全的校验算法还有SHA*系列的。
在网络传输时,我们校验源文件获得其md5sum,传输完毕后,校验其目标文件,并对比如果源文件和目标文件md5 一致的话,则表示文件传输无异常。否则说明文件在传输过程中未正确传输。
md5sum示例 生成文件md5 pi@raspi:~ $ md5sum bs.conf
fcd3e1243d1cd5903d4e38c46671b84f bs.conf
md5sum校验是根据文件内容为准,与名称无关,意思是即便文件名修改了,但md5校验值应该不会改变,如下:
pi@raspi:~ $ cp bs.conf bs.conf.bak
pi@raspi:~ $ md5sum bs*
fcd3e1243d1cd5903d4e38c46671b84f bs.conf
fcd3e1243d1cd5903d4e38c46671b84f bs.conf.bak
根据md5校验文件是否更改 一般网上分享的大文件都会附带一个.md5文件,这就是所分享文件的md5值,可以使用-c
参数来直接使用.md5文件来检验文件是否完整
pi@raspi:~ $ md5sum bs.conf>bs.conf.md5
pi@raspi:~ $ md5sum -c bs.conf.md5
bs.conf: OK
如上例,将bs.conf的md5值定向到一个bs.conf.md5文件,然后使用md5sum -c bs.conf.md5
直接检验相应文件是否完整一致,校验通过的话会输出提示OK ,如果文件经过修改,内容已经不一致,则不会通过校验,则会显示FAILED
Tue, Dec 8, 2015 示例:用户名root 地址 2.33.153.67
下载文件 scp [email protected] :/root/test.mp4 /home/pi/
将服务器上的/root/test.mp4下载到本地/home/pi文件夹
上传文件 scp /home/pi/ok.txt [email protected] :/root
将本地/home/pi/ok.txt上传至服务器/root文件夹
下载文件夹 scp -r [email protected] :/root/ebooks /home/pi
将服务器上的/root/ebooks文件夹下载至本地/home/pi下
上传文件夹 scp -r /home/pi/music [email protected] :/media
将本地/home/pi/music文件夹上传至服务器/media下
Thu, Dec 3, 2015 首先查看树莓派cpu信息
pi@raspi:~ $ cat /proc/cpuinfo
processor : 0
model name : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 2.00
Features : half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7
Hardware : BCM2708
Revision : 000e
Serial : 000000004a8acb6d
看清楚cpu构架,是ARMv6
然后在node.js官网下载对应版本的包,下载地址https://nodejs.org/dist/
# wget https://nodejs.org/dist/v4.2.2/node-v4.2.2-linux-arm64.tar.gz
# tar zxf node-v4.2.2-linux-arm64.tar.gz
# mv node-v4.2.2-linux-arm64 /usr/nodejs422
方便使用期间,做个链接
Mon, Nov 30, 2015 Linux中时区代码都在/usr/share/zoneinfo/
目录中
首先删除默认时区
#rm /etc/localtime
设定新的时区
#ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
完成!
Fri, Nov 20, 2015 本文转载自https://github.com/Jerry-hechen/blog
路由器配置方案:Shadowsocks-libev-spec + ChinaDNS
本教程以Dlink dir-505为例,其他型号路由也类似,Openwrt版本:15.05,其他安装包均为最新版。
首先路由器型号需要在openwrt列表中:http://wiki.openwrt.org/toh/start (可以ctrl+F搜索匹配型号),并记录所用路由器cpu的型号。
二.刷机及配置 1.访问路由器上传固件,等待一会儿,勿断电。
2.好了之后打开wifi开关,连上openwrt(有的固件默认不没有开启WI-FI需要用网线连接),访问192.168.1.1
3.System-》Administertion,设置路由密码,选中Allow remote hosts to connect to local SSH forwarded ports
4.Network-》Wifi,WI-FI没有启动先启动,设置Transmit Power为15dBm(31mW),设置Country Code为CN-China
5.设置下WIFI名称(ESSID)、密码、加密方式(Encryption,推荐使用WPA-PSK/WPA2-PSK)
6.Network-》Interfaces,修改LAN口,勾掉Bridge interfaces选项,更改网关为192.168.5.1,添加WAN口选择DHCP client选项(如果需要拨号选择PPPoE),勾上Adapter “eth1”。注意:此处修改LAN口、添加WAN口不要“保存&应用”,先“保存”,在Network-》Interfaces列表整体“保存&应用”
为了和主路由不冲突最好将网关改为其他,比如192.168.5.1
刷机成功。
三.下载安装包并安装到路由器 1.下载安装包 Shadowsocks-spec: http://sourceforge.net/projects/openwrt-dist/files/shadowsocks-libev/
chinaDNS: chinaDNS: http://sourceforge.net/projects/openwrt-dist/files/chinadns/
Shadowsocks-spec-LuCI:http://sourceforge.net/projects/openwrt-dist/files/luci-app/shadowsocks-spec/
chinaDNS-LuCI:http://sourceforge.net/projects/openwrt-dist/files/luci-app/chinadns/
注意,一定要下载路由器cpu型号对应的文件!DIR-505选择ar71xx
2.安装到路由器 保证路由器可以上外网
用ssh工具上传shadowsocks-libev-spec、ChinaDNS、及2个luci文件 4个ipk包到路由器/tmp目录
ssh [email protected]
opkg update
安装中文包,然后在路由管理界面System-》System-》Language and Style切换中文语音,刷新可看到中文
opkg install luci-i18n-base-zh-cn
cd /tmp
opkg install shadowsocks-libev-spec-polarssl_2.4.1-1_ar71xx.ipk
opkg install ChinaDNS_1.3.2-3_ar71xx.ipk
opkg install luci-app-shadowsocks-spec_1.3.2-1_all.ipk
opkg install luci-app-chinadns_1.3.4-1_all.ipk
Sat, Nov 7, 2015 先安装h264编码器
#!/bin/bash
cd /usr/src
git clone git://git.videolan.org/x264
cd x264
./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl
make
sudo make install
下载源码编译安装ffmpeg
cd /usr/src
git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg
sudo ./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree
make
sudo make install
由于树莓派原因,这个过程很长……很长…… 建议开screen
,然后Ctrl+a+d
Wed, Oct 21, 2015 安装软件
apt-get install mpg321 vorbis-tools
使用如下命令转换
mpg321 tweet.mp3 -w raw && oggenc raw -o tweet.ogg && rm -rf raw
示例:
root@hkvps:/home/res# mpg321 tweet.mp3 -w raw && oggenc raw -o tweet.ogg && rm -rf raw
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2, and 3.
Version 0.3.2-1 (2012/03/25). Written and copyrights by Joe Drew,
now maintained by Nanakos Chrysostomos and others.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Playing MPEG stream from tweet.mp3 ...
MPEG 1.0 layer III, 192 kbit/s, 44100 Hz joint-stereo
[4:45] Decoding of tweet.mp3 finished.
Opening with wav module: WAV file reader
Encoding "raw" to
"tweet.ogg"
at quality 3.00
[ 99.7%] [ 0m00s remaining] |
Done encoding file "tweet.ogg"
File length: 4m 45.0s
Elapsed time: 0m 16.3s
Rate: 17.5056
Average bitrate: 112.1 kb/s
root@hkvps:/home/res# ll
Fri, Oct 16, 2015 驾校交钱已经一年了,一直没时间考试,上次报考的科目一由于临时加班没去成,这次重新交钱补考。
昨儿晚把驾校发的书翻了一遍,然后就是在手机上用车轮考驾照不停的练习。
今儿中午11点多到考场,换了准考证就等待安排考试。
分配了个电脑有点挫,第一次登录显示考试时间不对,重新更新信息。
第二次指纹录入一直不能验证通过,重新更新指纹验证。
第三次摄像头无法采集视频信息,重置考试系统。
第四次,一切正常开始答题……
13分钟答完,等过了15分钟交卷,得分98。
考试要点:细心别急、细心别急、细心别急!
Wed, Oct 14, 2015 注册StartSSL 打开https://www.startssl.com/ ,点击Sign-up 开始注册
参考上图填写注册信息,然后Continue ,会有如下提示,系统会发送验证码到你的注册邮箱
检查注册邮箱,将收到的验证码填写提交,然后会出现如下提示,等待审核。
审核通过后,会收到如下提示邮件,点击其中连接,然后输入邮箱中的验证码完成注册
安装证书 接下来创建私匙
安装证书
安装成功后会有如下提示
验证域名 接下来验证域名,点击Validations Wizard
填写域名
选择验证邮件地址
按照提示输入邮箱接收到的验证码完成验证。
创建证书 选择Certificates Wizard ,证书目标选择Web Server SSL/TLS Certificate
接下来新建私匙
点击Skip 跳过系统建立步骤,我们自己在VPS上建立CSR文件,参考下图通过openssl
命令建立CSR文件
注意,为了便于后期安装配置方便,建议密码置空
完成后,cat
出建立好的ciuxsss.csr 内容,粘贴提交
接下来添加域名
接下来将文本框中的内容保存为一个**.crt**文件
配置Nginx 贴出我的配置文件,大家参考一下
server {
listen 80;
location /{
return 301 https://$host$request_uri;
}
}
server
{
listen 443;
#listen 80;
#listen [::]:80;
server_name ciux.org;
index index.html index.htm index.php default.html default.htm default.php;
root /home/ciux/compiled;
ssl on;
ssl_certificate /home/bk/ssl/ciuxsss.crt;
ssl_certificate_key /home/bk/ssl/ciuxsss.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
……
其中第一个Server是将所有80端口的http访问301重定向到443端口的https访问。
Thu, Sep 24, 2015 首先澄清此文中的免费 不是真的免费,而是新注册或转移域名到Gandi,都可以获得标准版SSL证书一年的免费使用。
符合以上条件的话,可以进行下面操作了!
在Gandi上购买SSL证书,选择标准版,在结算的时候系统会自动判断是否免单,正常情况下会0元结单,完成后接着配置SSL证书。
首先提交CSR,这里需要自己生产CSR。
在此以3c.lc 域名为例,在Ubuntu中操作。
openssl req -nodes -newkey rsa:2048 -sha1 -keyout 3clc.key -out 3clc.csr
然后根据提示填写以下内容:
Country Name (2 letter code) [AU]: #国家代码,中国为CN
State or Province Name (full name) [Some-State]: #省份
Locality Name (eg, city) []: #城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]: #组织名
Organizational Unit Name (eg, section) []: #部门名
Common Name (e.g. server FQDN or YOUR name) []:3c.lc #注意,这里需要填写你的域名。
Email Address []:[email protected] #邮箱
Please enter the following ’extra’ attributes
Mon, Sep 21, 2015 声明:
本文来自霍炬的微信公共帐号“歪理邪说”,用微信添加 wxieshuo 公众号,即可订阅。
先跟读者道个歉,最近一段时间有点忙,好久没更新。而写文章这事,一旦有一段时间不写就会越来越写不下去。很长一段时间我甚至不敢打开公众帐号后台,一怕被催稿,二怕看到惨烈的退订数字以至于更不敢写…非常感谢各位还没退订的读者,我未来一定争取保持一个合理的更新频率。
最近XcodeGhost导致的严重安全问题,相信大家已经从各个渠道知道了。简单概括一下,有人在中国网盘和论坛上传播了一个修改过的Xcode,这个版本的Xcode会在编译出来的App上面加一些可以被远程控制的代码,并且发送数据到某个服务器上。这是iOS出现以来,未越狱系统遭遇的最大安全威胁,在此之前苹果的Sandbox模式几乎没遇到过挑战,iPhone用户甚至大量iOS开发者都认为系统固若金汤,不可能遇到问题。
在XcodeGhost开始被媒体报道的时,很多人大大低估了它的风险。我在乌云报道这个问题的当天,在朋友圈上建议大家先把中招的app都删掉,并且立刻修改iCloud密码,开两步验证。甚至遭到了不少人反对,还有好几位iOS开发者告诉我这件事没什么大问题,因为iOS有Sandbox,不会造成什么伤害。当时网易也发了一个关于云音乐被感染的说明,也是类似不痛不痒的口气。这些说法当然都是大错特错的,会有这种想法,是因为只会站在程序员角度看问题,如果对安全问题稍微有一点敏感性,就会立刻意识到这是极严重的威胁,稍微发挥一些想象力就会被吓着。
所谓安全威胁,大部分都是在获取到非常有限资源的情况下,利用社会工程学(俗称:骗)来达到目的。比如,你觉得让别人看到你的通讯录有什么问题吗?很多人会认为虽然不舒服,但不会有什么威胁。实际上,骗子会从通讯录里面挑出来你父母的电话,打电话去骗他们。所以,这和iOS有没有sandbox,能不能保护系统安全没关系,只要我获得了一个机会,能控制你信任的app上弹出对话框,我就可以利用这个对话框来骗你输入系统的重要密码。程序员应该想象力再丰富一点,不要把目光局限于“系统给了我什么权限”,而是要扩展到“如果我被完全信任了,我能进行什么样的欺骗”。
我不打算在这里讲太多直接的安全问题,毕竟已经很多人分析过了,在好几篇非常不完善,极大低估这次事件威胁的分析文章之后,腾讯给出了一篇相当详细的分析,比较符合我的观点,也把问题的严重性说的非常清楚。在腾讯的分析里面,说可以利用OpenUrl来操作用户拨打电话,同样又有iOS开发者说“OpenUrl不能控制iPhone打电话”。事实上,OpenUrl可以弹出一个带有固定电话号码的弹窗,上面有“拨打”和“取消”两个按钮,这确实不算直接拨打了电话,但如果给一千万个用户在某个特定环境下弹出一个这样的窗口,其中有多大比例的人会去点“拨打”呢?如果程序员不去提高想象力,总把安全问题和功能局限在系统文档提供的“能做什么”这个范围内,软件的安全性实在让人难以信任。
具体的安全问题有更专业的人去普及,本文不多说,在这里我更想谈谈关于信任的问题。在这次事件中,也有一些人想起了Ken Thompson大神(Unix系统/C语言的前身B语言/Go语言的直接贡献者,称作Unix之父也不过分)在1984年的一次演讲,在那次演讲中中,Ken讲了他在70年代在贝尔实验室捉弄同事的一次恶作剧,在那段时间里面,实验室里面所有的Unix系统,Ken都可以随便以最高权限登录,而同事反复检查用户,权限,甚至是当时使用的Unix代码,都没查不到后门,百思不得其解。14年之后,Ken在这次演讲里面才公开,后门其实隐藏在他写的编译器中,当用编译器编译Unix系统的时候,后门就被放在了编译出来的系统里面,但Unix本身的代码是干净的,所以同事无论如何也查不到问题。Ken的演讲所提到的核心问题并不是如何入侵一个操作系统,而是信任。其标题“Reflections on Trusting Trust” (我翻译为"深入思考我们信任的可信",以下简称RoTT)开宗名义,明确强调这一点。
在80年代曾经有很多人用这样的办法给开发工具加各种外壳和后门,但当时联网条件并不好,很难产生大规模影响。很多案例是发生在相对封闭的企业内网和教育网中,Ken捉弄同事的原始案例也可以看作是企业内网上的传播。可以说,RoTT能产生的影响一直被人们低估,因为在现实世界想要具备适合它的条件,实在是太难了。历史上,虽然有很多底层代码Bug导致的安全事件(比如之前的OpenSSL心脏出血漏洞,可以参考我的另外一篇文章,点阅读原文可见),但直接通过这种在基础工具上制造的后门,从而衍生的大规模安全事件,从来没有真正发生过。这种手法一般是用在有限范围的网络上,比如在早年的教育网上或者企业网络里面,那时候在内网上传递一个被下了毒的软件,很容易传播开。
在互联网上,如果要重现Ken的案例,首先需要找到一个可信的源头感染,这本身就已经是极其困难的事了。用这次的事件做例子的话,在正常情况下,用户是通过Mac App Store来下载Xcode的,在下载安装的过程中,OS X本身会替用户进行加密签名校验,保证下载的东西确实是苹果原始分发的软件,这样才能被安装到用户的机器上。如果想把在Xcode中嵌入一个后门,你得先找到Apple服务器的漏洞,才能有机会把自己改过的包上传上去,而且还要弄到苹果的私钥去进行签名,才能装到用户计算机上。但如果同时具备了这两个条件,已经是荣华富贵唾手可得,有的是更可靠,获利更大的做法,谁又肯去舍近求远感染一个Xcode呢?
所以,只有在相对封闭的网络环境下,才有可能玩这个把戏。80年代,网络远远没有今天发达,人们更多的下载和网络活动是分布在各大机构自己的网络里面的,比如大型企业的内部网络,相对于互联网,这些内部网络网络速度会快的多,人们通常更倾向于从内部网络获得软件。这就给了入侵者(通常是商业间谍)通过替换内容软件来侵入公司内部的机会。但内网又造成了另外一个问题,在封闭网络下,入侵者获得的数据也没这么容易拿走,必须还要回到内网才有机会拿到之前的战果。这些特性造成了这种做法始终在小范围内有效,在公众网络上性价比不高。
这次XcodeGhost事件会给很多人启发,中国目前的网络环境类似于80年代的企业内网,但规模又比当年的内网大的多,而且不像那么难以进入。 于是,一些80年代流行但没造成大规模影响的办法,有机会可以在中国环境下重新应用了,并且造成巨大影响。以前的创业是Copy to China,现在同样可以复制30年前的安全问题。
Ken的演讲最后指出,你没办法信任那些不是自己写的代码。80年代达到这个目标尚且有可能,那时候的软件规模还很小。而今天,任何工作都需要建立在大量的现成软件基础之上,换句话说,你必须去信任其他人,才有可能制作出产品。如今的可信任环境就变得更加重要。
但在中国,因为GFW和相关政策的存在,要获得一个可信环境变得非常困难。在这个环境里面,大量国外网站不能访问或者难于访问,非常多怕麻烦的人会使用国内替代品,这次的事件之所以影响巨大,就是因为通过苹果官方渠道升级Xcode速度太慢,少则10多个小时,多则几十个小时,其间还有可能中断和重新下载。从国内随便下载一个Xcode用当然是错的,但在这样的环境下也不是完全不能理解,考虑一下互联网的下载速度只有50K,企业内网速度能高达10M的时候,谁会不从内网下载呢?
用一个现实世界的例子做个比喻吧,前面说了骗子拿到你父母的电话之后,会打电话去骗他们,比如跟你父母说你出了车祸,急需用钱。要让这个骗术成功,一个前提条件是要阻止你父母去找你验证真假,所以骗子同时会用各种办法来骚扰你的电话,迫使你不堪其扰关机或者始终占线。这样你父母和你的联系就断开了,他们没法找你验证了,此时骗子的话就更容易被相信。在这次事件里面,GFW让人们无法访问国外的可信网站,或者访问速度极慢,它起的作用就如同迫使你占线或者关机,从而让人们只能从不可信的地方获取软件。
GFW让中国本来开放的互联网环境,变成了一个巨大的企业内网,或者叫做中国局域网。除了速度和难以访问的影响,各种各样的DNS投毒,电信运营商干扰也是严重问题,你拿回来的DNS结果往往也未必是可信的,而运营商试图在HTTP请求中插入广告的行为,又经常会导致正常的应用表现不正常,而这些乱七八糟的毛病还经常变化,今天你可以这样对付,下周可能就需要换一个办法。要维持一个可信的软件环境,需要付出巨大的精力,能愿意付出这个代价的人越来越少。
在这个环境中,我们能信任的什么呢?网络链接不可信,运营商不可信,DNS不可信,大企业不可信。最后这一点更荒唐,如果是在正常的网络环境下,你很难相信苹果或者Google会坑害自己的用户,因为这和他们的利益直接相关,他们总是要尽量保护自己的用户。但在中国,如果你敢信任百度,基本意味着你生活各方面都会出问题,用百度查个搬家公司,骗死你没商量,用百度查个快递电话,骗死你也没商量,用百度查个医院,你猜会怎么样?那是真要骗死你没商量,这里的骗死都不再是比喻了。你要信任百度的软件,更好玩了,它莫名其妙就给你把百度出的所有软件都装在你机器上了,人们管这个不请自来的大礼叫做百度全家桶。如此致力于坑害自己用户的大公司,在中国之外还真是罕见。
在中国的网络环境下,这次事件产生的危害本身也更加危险。事件发生时,我告诉朋友们立刻删除所有被感染的软件,直至问题被修复。有人说,黑客自己的网站已经关闭了,没什么危险。这么说当然是错的,因为遍布中国各处的DNS投毒和劫持,创造一个一样域名的网站再简单不过了。比如到游客聚集的区域,带一个路由器,创建一个没有密码的WIFI热点,等着人们连上来,在这个热点上劫持XcodeGhost使用的域名,就可以利用已经中毒的app来骗iCloud密码了。这些都是非常容易实现的办法,千万不要低估安全问题能造成的后果,尤其是在中国特殊的网络环境下。
目前中国的网络环境和食品安全有诸多共同之处,你没法信任路边的小饭馆,但同时你也没法信任昂贵的大饭馆。你没法信任菜市场买的肉,但超市买的肉也并不那么可靠。在一切的背后是土壤和水的全面污染,可能一家好的饭馆未必打算毒害自己的顾客,但他们也很难保证自己原材料的供货商可靠,要保证使用的所有材料可靠,这是一家饭馆不可能具备的能力。比如,奶粉的三聚氰胺事件之前,一家有追求的饭馆大概会觉得,我不用来路不明的奶粉,我用大品牌的三鹿,伊利,这算是对顾客负责了吧?可惜,这些大品牌一样出问题。这绝非饭馆所希望的,他们也是受害者,就像是这次事件中的网易云音乐,他们确实没打算坑自己的用户,不过网易、腾讯这样的大公司一样中招了。
相对封闭的iOS尚且如此(单一开发工具,单一软件分发渠道,独家封闭系统iOS,独家硬件iPhone)尚且能出这么大问题,想想Android会怎么样?Android官方网站几年前就被封了无法访问,大部分开发者都是从国内渠道下载的开发工具。App的安全可靠吗?国内无数家忙着改Android皮肤就称自己是“操作系统”厂商,他们能保证自己的定制Android版本是安全吗?他们有真正的操作系统厂商级别的能力吗?进一步,他们能保证自己使用的开发工具安全吗?每家手机厂商都恨不得做自己的Android app下载渠道,他们能保证这些渠道上分发的app安全吗?甚至,他们能保证自己的下载市场安全吗?请大家继续联想吧。有朋友跟我说,你想多了,Android哪需要这么麻烦啊,本来国内环境就是木马遍地了。真实情况恐怕只能用惨烈来形容。顺便说一声,传说Google要把Play Store进入中国,提供一个受审查的版本,很多人说这是Google妥协了,我看这根本不是妥协了,是中国内部的Android环境太糟糕,已经威胁全球生态了,Google不得不自己出手解决这个问题。所以,一旦Google Play真的进了中国,请大家记得立刻把Play Store做为自己唯一的Android软件下载渠道,哪怕它不好用,不中国国情,甚至显得有点傻里傻气…千万记得,安全比方便更重要。
在这些前提下,重新认真考虑Ken的演讲提到的观点就显得更加重要,深入思考我们信任的可信。到底什么是可信的呢?开发工具可信吗?操作系统可信吗?你觉得下载来之后验证一下md5或者sha512总应该可信了,但你用来计算sha的工具是哪下载来的?你又如何知道这个工具本身是可信呢?在一个封闭的,难以和真正源头沟通的环境下,根本没办法谈所谓的信任。
在中国目前的环境下,难以直接套用成熟的软件开发和管理流程,除非保证团队所有人都必须翻墙,必须用Google查资料,必须不信任国内网站。你的团队中有一个习惯用百度查资料,顺着国内论坛的链接从百度网盘或者迅雷下载工具的人,就不知道会惹出来多大麻烦。这次事件充分证明了这一点,我起初认为腾讯应该不会有问题,因为我知道腾讯内部有极好的网络环境,但最终不幸的是微信也中招了。我们的恶劣环境已经改变了工程师的习惯,甚至改变了教育,就算是在腾讯内部这么好的网络环境下,仍然有人会去百度查资料,用百度网盘下载开发工具。就像很多留学生到了美国仍然用百度搜索一样,环境的改变并不能直接逆转已经完成的用户习惯。
比较讽刺的是,在中国特色的现实世界反而又制约了出现大规模安全灾难的可能性。比如,中国有相当严重的网络监控、审查和实名制、以及互联网公司必须保存(而且要向有关部门开放)的各种用户数据,并且互联网和世界半隔绝,在出现这种问题的时候,要抓到始作俑者又相对简单。现实世界中,只要在论坛发个贴,去你家查水表就是分分钟的事情。这大概算是“不幸+不幸“互相抵消之后产生了一点点微小的幸运吧。
很多年前,我说招聘工程师有几个原则,比如,必须使用Google而不是百度,必须翻墙而不是用国内替代品,必须优先使用国外的工具。经常有人认为这种要求过于苛刻,甚至认为是装逼。这次事件告诉了我们,这些良好的习惯确实是工程师的第一道防线,融入世界主流,可以让你少遭遇很多中国特色的麻烦。虽然保持这些良好的习惯需要付出不小的代价,但事实证明这些代价是值得的。
这样的网络环境,是我们这一代工程师的耻辱,但我们如此愤怒于此 ,又如此无能为力,这是这个时代最令人悲哀的事情。
我们对此有多么无能为力呢?我写这篇文章的时候就在想,大家应该赶快传播它,因为我觉得它很快会被删掉。这就是无能为力的具体表现。
顺便说一句,1996年,受Ken的案例启发,我写过一篇科幻小说,大意是一种病毒把编译器做为感染的源头,最终感染了操作系统。在这个操作系统上,它会判断用户指令对它是否会造成伤害,如果是有害的指令,就假装执行一下,实际并不真执行,从而可以躲过杀毒软件和人工清除。这同样是信任问题,在这个环境下,没有任何可信的东西,这种病毒将会在操作系统中永存,并且把自己附着于任何在这台计算机上制造的软件中。在一个计算机一开机就无线联网的时代,病毒可以借此高速传播,最后人类已经找不到一台干净的计算机可以去编写真正干净的操作系统了。(90年代还没有无线网络,那时候甚至连有线网络都没普及,Sun还在号称网络就是计算机,那时候一台随时联网的计算机简直太奢侈了,但如今看来…世界确实已经发展到了这样,想找一台不联网的计算机倒是不容易了)。
不知道这种幻想中的病毒什么时候会真正出现…其实,前几年工信部推行绿坝的时候,我当时就觉得那简直是创造这种病毒的一个非常好的机会,还好最终绿坝计划被放弃了。中国网络和政策环境的特殊性,将来真的有可能制造出适合这种病毒生存的环境,就像这次因为GFW的正面和潜在影响,让70年代Ken设想的RoTT在2015年大规模流行,40多年的时间跨度…著名科幻作家韩松说过:“中国的现实变得比科幻还要科幻”。深以为然。
Fri, Sep 18, 2015 想要通过ssh登录树莓派进行管理,使用默认的pi 用户有时真的不便,对于linux老手来说,可以直接开启root 用户ssh登录,这就方便多了,方法如下:
sudo passwd root
sudo passwd --unlock root
设置SSH
sudo vi /etc/ssh/sshd_config
将其中的PermitRootLogin without-password
改为PermitRootLogin yes
,然后重启ssh服务sudo service ssh restart
Over!
Sun, Sep 13, 2015 Ctrl+O 打开PNG文件
图像 -> 调整 -> 色调分离
调整色阶 值,边调整边预览,找到图片质量变化最小时候的值
文件 -> 导出 -> 存储为Web所用格式
文件格式选择PNG-8 ,参考下图全选部分进行调整,完成后保存即可。
Tue, Sep 8, 2015 下载ScrollUp https://github.com/markgoodyear/scrollup
在网页中引用jquery.scrollUp.js
、jquery.easing.js
、jquery.min.js
三个JavaScript脚本,注意顺序
<script src="jquery.min.js"></script>
<script src="jquery.easing.js"></script>
<script src="jquery.scrollUp.js"></script>
然后加入控制代码
<script>
$(function () {
$.scrollUp();
});
</script>
以上是最简单的使用方法,还有一种带参数的方法
$(function () {
$.scrollUp({
scrollName: 'scrollUp', // Element ID
scrollDistance: 300, // Distance from top/bottom before showing element (px)
scrollFrom: 'top', // 'top' or 'bottom'
scrollSpeed: 300, // Speed back to top (ms)
easingType: 'linear', // Scroll to top easing (see http://easings.net/)
animation: 'fade', // Fade, slide, none
animationSpeed: 200, // Animation speed (ms)
scrollTrigger: false, // Set a custom triggering element. Can be an HTML string or jQuery object
scrollTarget: false, // Set a custom target element for scrolling to. Can be element or number
scrollText: 'Scroll to top', // Text for element, can contain HTML
scroll
title: false, // Set a custom title if required.
scrollImg: false, // Set true to use image
activeOverlay: false, // Set CSS color to display scrollUp active point, e.g ‘#00FFFF’
zIndex: 2147483647 // Z-Index for the overlay
});
});
Wed, Aug 26, 2015 找到一个linux下可用的google drive客户端,纯cli操作,值得推荐
grive项目主页 https://github.com/Grive/grive
Ubuntu中下通过PPA安装grive
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install grive
使用grive同步Google Drive
mkdir googledrive
cd googledrive
grive -a
第一次运行,会有验证提示,将提示的url代码粘贴到浏览器中验证帐户,完了后将生成的验证代码粘贴到grive进行验证。
Sun, Aug 23, 2015 在Ubuntu中使用PPA 安装软件时,需要用到add-apt-repository
命令,但有的VPS 系统因为体量原因,可能没有该命令,因此需要通过以下方法来安装:
apt-get install python-software-properties
apt-get install software-properties-common
Thu, Aug 6, 2015 树莓派挂载移动存储 可以挂载移动硬盘或者大容量的U盘,参考以下文章:
安装配置minidlna sudo apt-get install -y minidlna
编辑minidlna配置文件/etc/minidlna.conf
,内容如下:
media_dir=/home/pi/dlnadoc #媒体文件目录
db_dir=/var/lib/minidlna #minidlna通过SQLite来建立媒体库索引,因此需要定义数据库目录
listening_ip=192.168.1.111 #树莓派IP
port=8200 #web端口,可以通过ip:port查看索引状态
friendly_name=Raspi_DLNA #服务器命名
重启minidlna
服务
sudo service minidlna restart
强制刷新
sudo service minidlna force-reload
查看索引状态,浏览http://192.168.1.111:8200
MiniDLNA status
Audio files: 0
Video files: 2
Image files: 0
DLNA客户端 PC
Windows7下将网络设置为家庭网络 ,完成后刷新,在网络 中媒体设备 下就可以自动发现Rasp_DLNA 。
点击进去就可以使用MediaPlayer来浏览。
Android
VPlayer+ VPlayer uPnP DLNA Plugin
IOS
RushPlayer
Tue, Aug 4, 2015 下载安装DietPi DietPi项目主页 http://dietpi.com/
DietPi镜像下载地址 https://dietpi.com/#downloadinfo
然后将镜像写入到SD卡中,linux下使用dd
dd if = DietPi_v74.img of= /dev/sdc bs= 2M
Windows下使用balenaEtcher 写入镜像。
写入完成后将SD卡插入树莓派,加电启动。
预设置Wifi链接 首次使用时,可以通过编辑dietpi.txt 来进行wifi预设置。
将TF卡插入电脑读卡器,打开对应的磁盘,找到dietpi.txt 文件,打开。
找到Wifi_Enabled=0
,将其设置为1
然后找到Wifi_SSID
和Wifi_KEY
分别设置wifi节点名和密码,保存即可。
配置DietPi DietPi默认用户名密码为root dietpi
,第一次启动DietPi提示检测升级,按提示操作。
不过由于天朝网路问题,可能升级比较缓慢,建议Ctrl+c 终止升级,修改sources.list
为朝内镜像。
DietPi默认没有vi
,使用nano
进行编辑,添加Aliyun源。
deb http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib
更新软件
apt-get update&& apt-get upgrade -y
然后运行dietpi-config
进行配置。
DietPi - Config
┌────┤ ---------- DietPi-Config ---------- ├─────┐
│ Hardware : Raspberry Pi 1 ( 512MB) │
│ │
│ 1 Display Options │
│ 2 Audio Options │
│ 3 Performance Options │
│ 4 Advanced Options │
│ 5 Language/Regional Options │
│ 6 Security Options │
│ 7 Networking Options │
│ 8 AutoBoot Options │
│ 9 Tools │
│ │
│ │
│ <Ok> <Exit> │
│ │
└────────────────────────────────────────────────┘
推荐配置:
Thu, Jul 30, 2015 进入http://www.lewei50.com/ 注册登录
添加设备(Add Device) 我的物联 -> 我的设备 ,添加新设备,类型选择其他 ,不使用模板。
请自定义设备标识 ,后面要用到。
添加传感器 我的物联 -> 感器与控制器 ,新建传感器。
其中标识 为提交数据依据,建议英文。
向乐为物联提交数据 lewei.sh
代码如下 </res/lewei.sh>
#!/bin/bash
LURL=http://www.lewei50.com/api/V1/Gateway/UpdateSensors/01
KEY="2fasdfsdfsdf9ffadsf62dfbfsdfa1"
sys_load=`cat /proc/loadavg | awk '{print $2}'`
st=`/usr/bin/sen_t`
sh=`/usr/bin/sen_h`
for i in 1 2 3 4 5; do
sys_temp=`cat /sys/class/thermal/thermal_zone0/temp | awk '{print $1/1000}'`
if [[ "${sys_temp}" =~ ^- ]]
then
sys_temp='0.0'
else
echo ${sys_temp}
break
fi
done
echo "Printf Values"
echo "sys_temp:"${sys_temp}
echo "sys_load:"${sys_load}
echo "sensor_t:"${st}
echo "sensor_h:"${sh}
echo "Done!"
echo "Sumbit Data to Lewei"
curl --request POST ${LURL} --header "userkey:${KEY}" --data "[{'Name':'load','Value':'${sys_load}'},{'Name':'temp','Value':'${sys_temp}'},{'Name':'sd','Value':'${sh}'},{'Name':'wd','Value':'${st}'}]"
其中LURL 后面的01 为设备标识,KEY 为用户Userkey ,JSON数据中的Name 对应相应的传感器标识 。
Fri, Jul 24, 2015 VPS配置:
Ubuntu 14.04 x86
RAM 512M
SWAP 64M
DISK 5G
准备工作 sudo apt-get update&&apt-get upgrade -y
sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip libssl-dev -y
下载ngx_pagespeed cd
NPS_VERSION=1.9.32.4
wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${NPS_VERSION}-beta.zip
unzip release-${NPS_VERSION}-beta.zip
cd ngx_pagespeed-release-${NPS_VERSION}-beta/
wget https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.tar.gz
tar -xzvf ${NPS_VERSION}.tar.gz
安装Nginx cd
groupadd www
useradd -s /sbin/nologin -g www www
NGINX_VERSION=1.8.0
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
tar -xvzf nginx-${NGINX_VERSION}.tar.gz
cd nginx-${NGINX_VERSION}/
./configure \
--user=www \
--group=www \
--prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_spdy_module \
--with-http_gzip_static_module \
--with-http_sub_module \
--add-module=$HOME/ngx_pagespeed-release-${NPS_VERSION}-beta \
sudo make
sudo make install
sudo ln -sf /usr/local/nginx/sbin/nginx /usr/bin/nginx
配置/etc/init.d/nginx
Thu, Jul 23, 2015 首先,在百度输入法设置中,将词库导出,选择txt 格式
然后下载深蓝词库转换
打开深蓝词库转换,选择百度词库,在转换为类型中选择中州韵 ,转换文成后保存为另外一个txt 文件
然后打开**【小狼毫】用户词典管理**,选择已存在的词典,点击右侧的导入文本码表
Tue, Jul 21, 2015 安装必须的软件 预备工具软件
#apt-get install autoconf automake m4 build-essential
libssl-dev 必选
#apt-get install openssl libssl-dev
以下为可选包,可自行搜索安装
安装H2O 下载安装最新版h2o https://github.com/h2o/h2o/releases
#wget https://github.com/h2o/h2o/archive/v1.4.1.tar.gz
#tar zxf v1.4.1.tar.gz
#cd h2o-1.4.1
#cmake -DWITH_BUNDLED_SSL=on .
#make
#sudo make install
编辑H2O站点配置文件 以下是一个简单的http与https配置文件,可自行参考修改
hosts:
"www.example.com":
listen:
port: 80
listen:
port: 443
ssl:
certificate-file: /path/to/server-certificate.crt
key-file: /path/to/private-key.crt
paths:
"/":
file.dir: /path/to/doc-root
access-log: /path/to/the/access-log
error-log: /path/to/the/error-log
pid-file: /path/to/the/pid-file
http2-reprioritize-blocking-assets: ON # performance tuning option
启动H2O
Mon, Jul 20, 2015 缘由 VPS快到期了,不想继续维护,太累,并且香港VPS价格也不菲。
于是打算选择一个静态博客平台,原来用过的不少:jekyll,hexo,gor,pelican,最后决定Gor
选择Gor的理由有两点
安装Gor 参考https://github.com/xtod/gor 安装Gor
将Typecho文章导出为Markdown文件 Github上有现成的工具typecho-exporter ,主页为https://github.com/xtod/typecho-exporter
这个工具可以将所有的文章导出为Markdown文件,但是以文章标题为文件名,不利于后期处理,建议使用slug为文件名。
编辑下载的main.py
,将75行的p.title = r[1]
替换为`p.title = r[2]’,如下:
results = cur. fetchall()
for r in results:
p = Post()
p. id = r[0 ]
p. title = r[2 ]
p. content = r[5 ]
posts. append(p)
原来的r[1]
对应typecho_contents
SQL表中的title
列,我的r[2]
对应slug
列,可以根据实际情况更改。
编辑typecho-exporter 的config.ini
文件,设置数据库访问方式。
运行main.py
,完成后会在typecho-exporter 目录下生成files 文件夹,里面就是导出的Markdown文件。
整理markdown文件头 导出后的Markdown没有Gor需要的文件头格式,需要手动整理
这里推荐使用Notepad++批量替换,查找设置中,将查找模式下的扩展勾选。
经过以上替换,就大概有了个Gor的Markdown头格式,后面的手动工作就少了多了。
Fri, Jul 17, 2015 typecho主题一枚Amaze,采用Amaze UI框架
注意:
评论采用多说,直接替换comment.php内容 无页面导航,请将文章数设为999 预览图:
点击下载
Tue, Jul 14, 2015 进入https://www.xively.com/ 注册登录
添加设备(Add Device) 在Development Devices 页面点击Add Device 添加设备
填写Device Name 和Device Description ,将Privacy 设定为Public Device
设置API Key 进入Device详情页,在API Keys 中点击Add Key 添加一个Key,将Permissions 中的Read,Create,Update,Delete 全部勾选,Label 随便填。
向Xively提交数据 在这里通过CURL 向xively提交JSON 格式的数据
JSON数据格式
{
"datastreams" : [
{
"id" : "load" ,
"current_value" : "9.00"
},
{
"id" : "temp" ,
"current_value" : "89.15"
}
]
}
其中每个id为数据定义的idcurrent_value为提交的值
脚本文件send_xively.sh
#!/bin/bash
LOCATION= '/home/pi/xively_data' #Path of Xively JSON DATA file
API_KEY= 'orxUhgjqSYPDbv5243534tG65464345eArxSVY9pE8ITnE' #API Key
FEED_ID= '1354438558' #FEED_ID
####################################################
COSM_URL= https://api.xively.com/v2/feeds/${ FEED_ID} ?timezone= +8
cpu_load= ` cat /proc/loadavg | awk '{print $2}' `
sen_t= ` sudo /home/pi/st`
sen_h= ` sudo /home/pi/sh`
for i in 1 2 3 4 5; do
cpu_t= ` cat /sys/class/thermal/thermal_zone0/temp | awk '{print $1/1000}' `
if [[ " ${ cpu_t} " = ~ ^- ]]
then
cpu_t= '0.0'
else
echo ${ cpu_t}
break
fi
done
STR= ` awk 'BEGIN{printf "{\"datastreams\":[ {\"id\":\"cpu_load\",\"current_value\":\"%.2f\"}, {\"id\":\"cpu_temp\",\"current_value\":\"%.2f\"},{\"id\":\"sensor_t\",\"current_value\":\"%.2f\"}, {\"id\":\"sensor_h\",\"current_value\":\"%.2f\"}] } ",' $cpu_load',' $cpu_t',' $sen_t',' $sen_h'}' `
echo ${ cpu_t}
echo ${ cpu_load}
echo ${ sen_t}
echo ${ sen_h}
echo ${ STR}
echo ${ STR} > ${ LOCATION} /cosm.json
curl -s -v --request PUT --header "X-ApiKey: ${ API_KEY} " --data-binary @${ LOCATION} /cosm.json ${ COSM_URL}
其中LOCATION 为JSON文件存放目录,没有的话请新建。API_KEY和FEED_ID按照自己的配置填写。
Fri, Jul 10, 2015 Replace Pioneer下载地址 http://www.mind-pioneer.com/replace/Download.html
安装后打开,Ctrl+O加载文本文件
File -> Save As -> Save to files–split by lines/chars/bytes
然后选择分割方式,注意批量命名的 # 的个数
Fri, Jul 10, 2015 首先,使用太极越狱将手机越狱 http://www.taig.com/
在Cydia中添加http://apt.chinasnow.net
源,搜索安装CommCenter patch for ios8
设置iTunes可以刷入运营商文件(.ipcc)
Win+R打开运行窗口,输入"%ProgramFiles%\iTunes\iTunes.exe" /setPrefInt carrier-testing 1
下载运营商文件</res/ipccs.zip>
打开iTunes,链接手机到电脑,Shift+更新,选择相对应系统版本的运营商文件
完成后重启手机OK!
Tue, Jul 7, 2015 准备将ltecn.com
从Godaddy转到万网
首先在Godaddy的域名管理中,将域名解锁,将Lock状态设置为Off
然后你会收到一封标题为Domain Status Notification 的邮件,提醒你域名状态已经修改为Unlocked
然后将authorization code 发送到你的邮箱
Godaddy会发送一封标题为LTECN.COM - Information You Requested 的邮件,里面有你的验证码,邮件内容如下:
Customer Account: 888888884
Domain Name: LTECN.COM
Authorization Code: f@jje0932!E
接下来在万网中使用以上验证码进行转入操作,订单支付后万网会发送一封标题为万网域名转入确认通知 的邮件,点击其中的链接确认转入
下来进入到Godaddy,DOMAINS->TRANSFERS,在PENDING TRANSFERS OUT会显示正在转出的域名,域名状态列显示Transfer not started. Accept or decline ,点击Accept or decline 在接下来的提示中选择Accept 接受转出。
Godaddy会发送一封标题为Transfer of LTECN.COM 的邮件,提醒你转出操作。
稍等片刻Godaddy会发送一封标题为An important notice regarding your transfer of LTECN.COM 的邮件,提醒转出成功,并且告知转出的ISP服务商,如下:
Dear Jkrjj csao,
This is to confirm that the following domain names have been successfully transferred away from GoDaddy to HICHINA WEB SOLUTIONS LIMITED:
LTECN.COM
If you have any questions, visit Online Support or call us at (480) 505-8877.
```
剩下的就是等待万网通知转移成功。
以下是本次的转移邮件记录,时间还是蛮快的,不到30分钟

Thu, Jul 2, 2015 又造了个简单成马咧的主题,分享给大家!
说明
评论采用多说,请自行替换comments.php内容 没有页面导航,因此请在设置-阅读 中,将每页文章数目 设大一些(例如:999 ) 预览图:
下载: Limits.7z
Sun, Jun 21, 2015 20250125更新:
Release 3.12已发布https://github.com/WiringPi/WiringPi/releases
国内下载地址
DHT11介绍 DHT11是一款有已校准数字信号输出的温湿度传感器。 精度湿度+-5%RH, 温度+-2℃,量程湿度20-90%RH, 温度0~50℃。
DHT11针脚说明
VCC 供电 3-5.5VDC DATA 串行数据,单总线 N/A 空脚,请悬空 GND 接地,电源负极 硬件连接 树莓派GPIO针脚说明
DHT11与树莓派链接
VCC连接+3V3 DATA连接GPIO4 GND链接GND 软件设置 安装wiringPi
sudo apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build
如果由于网络原因无法git clone
成功,可以从此下载wiringPi http://qn.optipng.cn/res/wiringPi_v2.3.1.zip
验证是否安装成功
下载编译C语言程序代码
wget /res/sensor.c
gcc -o sensor sensor.c -lwiringPi
运行程序
Sat, Jun 6, 2015 安装Nodejs sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
检查是否安装成功
root@hkvps:~# node -v
v0.10.37
root@hkvps:~# npm -v
1.4.28
安装Ghost Ghost下载地址https://ghost.org/download/
wget https://ghost.org/zip/ghost-0.6.4.zip
unzip ghost-0.6.4.zip -d ghost
cd ghost
npm install --production
运行Ghost
npm start
可以通过127.0.0.1:2368来访问
通过nmp start
来运行Ghost,退出后就会停止,因此需要一个方法让Ghost一直运行
让Ghost一直运行 安装forever
npm install forever -g
进入ghost目录,执行以下命令,让Ghost一直运行
NODE_ENV=production forever start index.js
停止ghost
forever stop index.js
查看forever运行列表
forever list
结合Nginx配置域名 安装Nginx
sudo apt-get install nginx
编辑配置文件
Mon, May 25, 2015 申请Wosign免费SSL证书 申请地址: https://www.wosign.com/products/free_ssl.htm
申请成功后,收到类似于aquan.me_sha256_cn.zip 的文件,解压后包含如下文件
for Apache.zip
for IIS.zip
for Nginx.zip
for Other Server.zip
for Tomcat.zip
其中for Nginx.zip 中包含如下两个文件,将其上传到VPS自定义位置。
1_aquan.me_bundle.crt 2_aquan.me.key 配置Nginx 不多说了,直接贴代码:
#### Add Wosign SSL Start ####
listen 443;
ssl on;
ssl_certificate /usr/local/nginx/ssl/ssl.crt;
ssl_certificate_key /usr/local/nginx/ssl/ssl.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
#### Add Wosign SSL End ####
将以上代码插入listen 80;
之后。
重启Nginx生效
/etc/init.d/nginx restart
以上设置完成,就可以通过https来浏览网站,同时http也可以浏览。
Thu, May 21, 2015 闲暇时参考http://www.yinwang.org/ 修改制作了一个Typecho主题,命名为Read,分享给大家!
预览图:
下载地址:read.zip
Mon, May 11, 2015 ubuntu中可以使用apt-get install golang
来安装go,但是版本稍旧
如果需要安装最新版的golang,那就得自己动手咧
安装golang 从官网下载最新版,手动安装
apt-get install build-essential
wget https://storage.googleapis.com/golang/go1.4.2.linux-386.tar.gz
tar zxf go1.4.2.linux-386.tar.gz
cd go/src
./all.bash
设置PATH 安装完成后需要设置PATH才能随地使用go
export PATH="/root/go/bin:$PATH"
检查版本 go version
go version go1.4.2 linux/386
Tue, Apr 7, 2015 姓名:赵雨煖
性别:女
生日:2015-04-06 17:45
初重:3285g
Thu, Mar 26, 2015 安装speedtest-cli 安装speedtest-cli方法如下:
sudo apt-get install python-pip
sudo pip install speedtest-cli
或
pip install git+https://github.com/sivel/speedtest-cli.git
或
git clone https://github.com/sivel/speedtest-cli.git
python speedtest-cli/setup.py install
或
wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest_cli.py
chmod +x speedtest-cli
或
curl -Lo speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest_cli.py
chmod +x speedtest-cli
使用speedtest-cli root@MyUbuntuCloud:~# speedtest-cli -h
usage: speedtest-cli [ -h] [ --bytes] [ --share] [ --simple] [ --list]
[ --server SERVER] [ --mini MINI] [ --source SOURCE]
[ --timeout TIMEOUT] [ --version]
Command line interface for testing internet bandwidth using speedtest.net.
--------------------------------------------------------------------------
https://github.com/sivel/speedtest-cli
optional arguments:
-h, --help show this help message and exit
--bytes Display values in bytes instead of bits. Does not affect
the image generated by --share
--share Generate and provide a URL to the speedtest.net share
results image
--simple Suppress verbose output, only show basic information
--list Display a list of speedtest.net servers sorted by
distance
--server SERVER Specify a server ID to test against
--mini MINI URL of the Speedtest Mini server
--source SOURCE Source IP address to bind to
--timeout TIMEOUT HTTP timeout in seconds. Default 10
--version Show the version number and exit
以下为两则实例:
Thu, Mar 19, 2015 查看磁盘分区详情 直接使用fdisk -l 或者使用fdisk /dev/sda,再使用p命令来查看
Command (m for help): p
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, total 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000657c3
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 61868031 30932992 83 Linux
/dev/sda2 61870078 62912511 521217 5 Extended
/dev/sda5 61870080 62912511 521216 82 Linux swap / Solaris
fdisk命令 fdisk有以下命令可用,其中常用的已简单说明
Sat, Mar 14, 2015 MinMinGuard Statusbar Scroll to Top WiFiKeyView SwipeBack
Thu, Mar 12, 2015
树莓派 2 Mode B 配置详情
A 900MHz quad-core ARM Cortex-A7 CPU
1GB RAM
4 USB ports
40 GPIO pins
Full HDMI port
Ethernet port
Combined 3.5mm audio jack and composite video
Camera interface (CSI)
Display interface (DSI)
Micro SD card slot
VideoCore IV 3D graphics core
pi@raspi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 11 ( bullseye)
Release: 11
Codename: bullseye
pi@raspi:~ $ cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 5 ( v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
processor : 1
model name : ARMv7 Processor rev 5 ( v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
processor : 2
model name : ARMv7 Processor rev 5 ( v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
processor : 3
model name : ARMv7 Processor rev 5 ( v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
Hardware : BCM2835
Revision : a21041
Serial : 00000000d81b63a8
Model : Raspberry Pi 2 Model B Rev 1.1
pi@raspi:~ $ free -h
total used free shared buff/cache available
Mem: 921Mi 53Mi 784Mi 0.0Ki 84Mi 818Mi
Swap: 99Mi 0B 99Mi
pi@raspi:~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 29.3G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot
└─mmcblk0p2 179:2 0 29G 0 part /
pi@raspi:~ $
➜ ~ neofetch
` .::///+:/-. --///+//-:`` pi@raspi2b
` +oooooooooooo: ` +oooooooooooo: ----------
/oooo++//ooooo: ooooo+//+ooooo. OS: Raspbian GNU/Linux 11 ( bullseye) armv7l
` +ooooooo:-:oo- +o+::/ooooooo: Host: Raspberry Pi 2 Model B Rev 1.1
` :oooooooo+`` ` .oooooooo+- Kernel: 6.1.21-v7+
` :++ooo/. :+ooo+/.` Uptime: 18 mins
...` ` .----.` `` .. Packages: 624 ( dpkg)
.::::-`` :::::::::.` -:::-` Shell: zsh 5.8
-:::-` .:::::::-` ` -:::- Terminal: /dev/pts/1
` ::. ` .--.` `` ` .---.`` .::` CPU: BCM2835 ( 4) @ 1.000GHz
.::::::::` -::::::::` ` Memory: 70MiB / 921MiB
.::` .:::::::::- ` ::::::::::`` ::.
-:::` ::::::::::. ::::::::::.` :::-
:::: -::::::::. ` -:::::::: ::::
-::- .-:::-.`` ....`` .-::-. -::-
.. `` .::::::::. ` ..` ..
-:::-` -::::::::::` .:::::`
:::::::` -::::::::::` :::::::.
.::::::: -::::::::. ::::::::
` -:::::` ..--.` ::::::.
` ...` ` ...--..` ` ...`
.::::::::::
` .-::::-`
pi@raspi:~ $ screenfetch
.',;:cc;,' . .,;::c:,,. pi@raspi
,ooolcloooo: 'oooooccloo: OS: Raspbian 11 bullseye
.looooc;;:ol :oc;;:ooooo' Kernel: armv7l Linux 6.1.21-v7+
;oooooo: ,ooooooc. Uptime: 3m
.,:;'. .;:;' . Packages: 592
.dQ. .d0Q0Q0. '0Q. Shell: bash 5.1.4
.0Q0' 'Q0Q0Q' 'Q0Q. Disk: 1.5G / 30G (6%)
'' .odo. .odo. '' CPU: ARMv7 rev 5 (v7l) @ 4x 1GHz
. .0Q0Q0Q' .0Q0Q0Q. . RAM: 104MiB / 921MiB
,0Q .0Q0Q0Q0Q 'Q0Q0Q0b. 0Q.
:Q0 Q0Q0Q0Q ' Q0Q0Q0 Q0'
' 0 '0Q0' .0Q0. '0' 'Q'
.oo. .0Q0Q0. .oo.
'Q0Q0. ' 0Q0Q0Q0. .Q0Q0b
'Q0Q0. ' 0Q0Q0' .d0Q0Q'
'Q0Q' .. '0Q.'
.0Q0Q0Q.
'0Q0Q'
Sat, Feb 28, 2015 清单如下:
Raspberry Pi B+ Laptop Dock for Motorola ATRIX 4G Micro-HDMI 母对母转接头 HDMI-Micro HDMI 公对公连接线 Micro USB 母对母延长线 USB-Micro USB充电线一根 以下为实物图:
操作:
主要是将一个Micro USB母口和一对USB/Micro USb公口相连,然后就可以通过Laptop Dock进行供电,并且链接Laptop Dock键盘。
下图是一张Laptop Dock接口的照片:
以下为USB引脚定义:
因此需要将Laptop上的Micro USB引出的电路进行改造,将其中的电源 接到Micro USB公口上给树莓派供电,将数据 接到USB公口上链接键盘,线路改造图示如下:
接下来就是考验动手能力了,完成后的实物图如下:
Sat, Feb 7, 2015 首先查看usb设备
pi@raspi ~ $ lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0ace:1215 ZyDAS ZD1211B 802.11g
注意,最后一行为无线网卡信息
打开https://wiki.debian.org/WiFi ,查看是否有对照型号的固件
安装对应的固件
pi@raspi ~ $ sudo apt-get install zd1211-firmware
完成后使用iwconfig
检查是否已经安装成功
pi@raspi ~ $ iwconfig
wlan0 IEEE 802.11bg ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power= 20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off
lo no wireless extensions.
eth0 no wireless extensions.
Thu, Jan 8, 2015 什么是youtube-dl youtube-dl是一个简单的下载youtube视频脚本工具,基于Python。
安装youtube-dl 官方安装方法
sudo curl https://yt-dl.org/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+x /usr/local/bin/youtube-dl
或者
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+x /usr/local/bin/youtube-dl
还有两种方法:
sudo pip install youtube-dl
brew install youtube-dl
使用youtube-dl youtube-dl [OPTIONS] URL [URL...]
youtube-dl官网 https://github.com/rg3/youtube-dl/
Fri, Dec 26, 2014 设置时区 使用raspi-config
设置
raspi-config
Internationalisation Options -> Change Timezone
使用tzselect
设置
tzselect
然后根据提示,选择时区
手动设置**/etc/localtime**
rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
安装配置NTP sudo apt-get install ntp ntpdate
编辑ntp
配置文件**/etc/ntp.conf**,添加以下内容
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org
重启ntp服务
service ntp restart
Wed, Dec 24, 2014 Mapinfo中有一批离散点,现在需要把一部分点筛选出来,可以使用SQL查询功能导出。
首先,打开需要筛选的图层:
然后打开装饰层可编辑:
设置不规则图形样式,建议将填充去掉只留下边框:
使用不规则图形圈出所需要的采样点
注意:边线不要压着采样点,被压线的采样点不算做圈选有效。
Map ->Save Cosmetic Objects 保存装饰图层,这里取名123
然后使用SQL查询功能进行查询
SQL查询时,选择需要交叉的两个图层
查询完成后,Table ->Export 导出查询结果
导出时设置参考下图,可选择**.mif**、.txt 、.csv 格式
Wed, Dec 17, 2014 托姐姐的关系,可以回到初中复读了,心情很激动。
有一次体验了中学食堂的大锅饭,吃饭时人山人海,貌似身上钱不够,就买了份麻辣豆腐,做成麻辣豆腐渣了,应该盛了一碗,一大口喝完了! 对,确实是喝完了。
该到上课了,第一次上课去找分班表。
四层的教学楼,每隔班级外面都贴的大字报,红纸黑字,上面写着分班名单。
从上到下找了半天都没找到我的名字,最后一晃眼发现最底下有个大字报就我一个人的名字,一看班级,:-O 初三1班 ,哈哈哈
看来有熟人就是不错,补习生大部分都分到后面的几个班级了,就我一人分到了1班,窃喜中……
被旁边的刘凯鄙视了一把,开始上课了 梦醒!
刘凯:现在的同事。
Sat, Dec 13, 2014 VPS系统版本: Ubuntu 12.04 32bit
最简单的办法 #apt-get install python-pip
#pip install shadowsocks
启动Shadowsock
#ssserver -p 4000 -k sss4k -d start
-p
后定义端口号,-k
后面设定密码,-d start
代表以daemon 方式启动
下面是另外一种方法:
安装shadowsocks-libev 先用aptitude show
查看libssl-dev版本
aptitude show libssl-dev
然后根据版本执行以下修改:
libssl > 1.0.1
在/etc/apt/sources.list
添加下行:
deb http://shadowsocks.org/debian wheezy main
libssl > 0.9.8 但 < 1.0.0
在/etc/apt/sources.list
添加下行:
deb http://shadowsocks.org/debian squeeze main
添加GPG
wget http://shadowsocks.org/debian/1D27208A.gpg
sudo apt-key add 1D27208A.gpg
添加完成后更新软件源,然后安装shadowsocks
sudo apt-get update
sudo apt-get install python-m2crypto
sudo apt-get install shadowsocks-libev
配置/管理shadowsocks服务 配置
Thu, Dec 11, 2014 树莓派用的是8g的TF卡,想作为小型NAS有点小,存不了多少东西,于是将一个闲置的32G U盘挂载上,当作存储分区
以下为操作过程:
查看磁盘信息
pi@raspberrypi ~ $ sudo fdisk -l
Disk /dev/mmcblk0: 7990 MB, 7990149120 bytes
4 heads, 16 sectors/track, 243840 cylinders, total 15605760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000981cb
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/mmcblk0p2 122880 15605759 7741440 83 Linux
Disk /dev/sda: 32.2 GB, 32229031936 bytes
255 heads, 63 sectors/track, 3918 cylinders, total 62947328 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x15a8a090
Device Boot Start End Blocks Id System
/dev/sda1 2048 62947327 31472640 f W95 Ext'd (LBA)
/dev/sda5 4096 62947327 31471616 7 HPFS/NTFS/exFAT
这里看到,/dev/sda 为32G的磁盘,分区格式为NTFS,现在就是要将改磁盘挂载为linux分区。
Wed, Nov 26, 2014 貌似五六年了吧,大病没患过,就只有发烧和感冒,更因为从小鼻炎,感冒尤为难受!
五六年没打过针,只是自己吃药,偶尔发热高了就加上物理降温法。
分享一下自己的经验,一般有两类。
感冒 感冒加发热 对于第一种情况,在轻微吸鼻子,并且有鼻涕的情况下,马上开始喝999感冒灵颗粒,并且注意保暖防风,并且多运动多喝水,别在阴冷的地方常待,多见太阳,一般情况下一盒没喝完就可以转好,要是不幸严重的话,请看第二种情况。
第二种情况病症较多,鼻涕,喷嚏,发热(注意还是发热,不是发烧 ),嗓子疼痛。
一般情况下,要是突然间嗓子开始疼痛,并且口内干渴,那么就注意了,马上吃穿心莲内酯滴丸加999感冒颗粒,一般情况下得有个一天两天的过程,不能间断。生活中就得注意防风、保暖、多喝水、多运动。感冒症状一般恢复的慢,如果在这一两天过程中发热一直不能止住,还有严重的倾向,建议加上物理降温法,如下:
开上电热毯被窝里捂出一身汗,马上冲热水澡降温,如此三遍,体温一定有大幅度降低,但是要注意保持,接下来就是卧床好好休息。
下列出两种药的说明:
感冒灵颗粒
【药品名称】
通用名称:感冒灵颗粒
汉语拼音:Ganmaoling Keli
【成 份】三叉苦、金盏银盘、野菊花、岗梅、咖啡因、对乙酰氨基酚、马来酸氯苯那敏、薄荷油。辅料为蔗糖粉。
【性 状】本品为浅棕色至深棕色颗粒;味甜、微苦。
【功能主治】解热镇痛。用于感冒引起的头痛,发热,鼻塞,流涕,咽痛。 【规 格】每袋重10克(含对乙酰氨基酚0.2克)
【用法用量】开水冲服,一次10克(1袋),一日3次。
【不良反应】偶见皮疹、荨麻疹、药热及粒细胞减少;可见困倦、嗜睡、口渴、虚弱感;长期大量用药会
导致肝肾功能异常。
【禁 忌】严重肝肾功能不全者禁用。
【注意事项】
1、忌烟、酒及辛辣、生冷、油腻食物。
2、不宜在服药期间同时服用滋补性中成药。
3、本品含对乙酰氨基酚、马来酸氯苯那敏、咖啡因。服用本品期间不得饮酒或含有酒精的饮料;不能同时服用与本品成份相似的其他抗感冒药;肝、肾功能不全者慎用;膀胱颈梗阻、甲状腺功能亢进、青光眼、高血压和前列腺肥大者慎用;孕妇及哺乳期妇女慎用;服药期间不得驾驶机、车、船、从事高空作业、机械作业及操作精密仪器。
4、脾胃虚寒,症见腹痛、喜暖、泄泻者慎用。
5、糖尿病患者及有心脏病等慢性病严重者应在医师指导下服用。
6、儿童、年老体弱者应在医师指导下服用。
7、服药3天后症状无改善,或症状加重,或出现新的严重症状如胸闷、心悸等应立即停药,并去医院就诊。
8、对本品过敏者禁用,过敏体质者慎用。
9、本品性状发生改变时禁止使用。
10、 儿童必须在成人监护下使用。
11、请将本品放在儿童不能接触的地方。
12、如正在服用其他药品,使用本品前请咨询医师或药师。
【药物相互作用】
1、与其他解热镇痛药并用,有增加肾毒性的危险。
2、与其他药物同时使用可能会发生药物相互作用,详情请咨询医师或药师。
【贮 藏】密封。
【包 装】复合膜;每盒装9袋。
【有 效 期】24个月。
【执行标准】国家药典委员会药典业发(1998)第115号文件所附质量标准。
【批准文号】国药准字Z44021940
【说明书修订日期】2007年05月15日
穿心莲内酯滴丸
【功能主治】清热解毒,抗菌消炎。用于呼吸道感染风热证所致的咽痛。
【用法用量】口服,一次1袋,一日三次。
【规 格】每袋含穿心莲内酯0.15克
【贮 藏】 遮光
【有 效 期】 24个月
【国药批准文号】 国药准字Z20040078
最终提醒
Wed, Nov 26, 2014 首先在ngrok https://ngrok.com/ 注册登录
架设已经在树莓派上安装了Nginx,端口为80
那么下载Linux/ARM版ngrok到树莓派,执行如下命令:
ngrok -authtoken UfATi0wi98gGMqQ+/GsP 80
其中UfATi0wi98gGMqQ+/GsP 为你的auth token
然后就会出现如下提示:
Forwarding http://36772918.ngrok.com -> 127.0.0.1:80
Forwarding https://36772918.ngrok.com -> 127.0.0.1:80
按照提示,可以通过那两个二级域名来浏览web服务。
以上验证只需要输入一次,下次可以直接使用如下命令来运行
ngrok 80
ngrok其他用法
使用自定义的字符串代替系统分配的数字
ngrok -subdomain mysubd 80
Wed, Nov 19, 2014 最近在玩《天龙八部3D》手游,做梦就和这个有关。
PC与手游的天龙我一直都是玩的少林,不知道为什么,阿弥陀佛!
梦境中和几个旧友组队刷副本,貌似是七八层的塔,从低向高刷怪,小怪刷完后终于见到boss了,但是貌似抗不住,大家都从顶层被k到地面,最后大家合力将塔扳倒了,希望能有点作用。
可悲催的时,boss掉到地面上毛事儿都没有,并且高抗高攻,谁都扛不出!!! 艹
最后只能找肉厚的引着跑,剩下的人将塔由重新竖起来,-_-!
完后把boss引过来,它就自己去顶层待着了,嘘~~ 大家都松了一口气!
突然发现队伍中有一个好久不见的朋友,名叫江龙旦,记得以前还是一个嫩嫩的小白脸,现在也是胡子拉碴的大汉了!! 感叹岁月不饶人啊!
哦,对了,貌似刷副本是公司的任务,所以才有了这回事,算是结合现实了吧
Thu, Nov 13, 2014 Windows下使用shadowsocks 安装设置Shadowsocks for Windows
推荐Shadowsocks for Windows ,项目地址 https://github.com/clowwindy/shadowsocks-csharp
下载后打开即可,参考以下设置:
Server IP 服务器IP
Server Port 服务器端口
Password 密码
Encryption 加密类型,推荐aes-256-cfb
Proxy Port 代理端口
Remarks 备注
完成设置即可。
使用
推荐以下组合:
Firefox+AutoProxy Chrome+SwitchSharp 代理服务器信息:
代理地址:127.0.0.1
端口:1080
代理方式:socks5
配置切换规则 :
勾选:在线规则列表
勾选:AutoProxy兼容列表
URL中输入:http://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt
情景模式选择上一步创建的模式.
Android使用shadowsocks(影梭) 影梭下载地址: https://play.google.com/store/apps/details?id=com.github.shadowsocks
Thu, Oct 30, 2014 树莓派的swap大小在/etc/dphys-swapfile
中定义,默认为100M
pi@raspi:~$ cat /etc/dphys-swapfile
CONF_SWAPSIZE=1000
pi@raspi:/mnt$ free -h
total used free shared buffers cached
Mem: 437M 36M 401M 0B 2.1M 12M
-/+ buffers/cache: 22M 415M
Swap: 99M 0B 99M
pi@raspi:/mnt$
可以自己修改CONF_SWAPSIZE
的值,单位为兆(MB)
修改后重启树莓派生效,如下:
pi@raspi:~$ cat /etc/dphys-swapfile
CONF_SWAPSIZE=1000
pi@raspi:~$ free -h
total used free shared buffers cached
Mem: 437M 53M 383M 0B 7.9M 23M
-/+ buffers/cache: 22M 415M
Swap: 999M 0B 999M
Mon, Oct 27, 2014 功率/电平(dBm):放大器的输出能力,一般单位为W、mW、dBm。dBm是取1mw作基准值,以分贝表示的绝对功率电平。
换算公式:
电平(dBm)=10lgW
示例:
5W → 10lg5000 = 37dBm 10W → 10lg10000 = 40dBm 20W → 10lg20000 = 43dBm 从上不难看出,功率每增加一倍,电平值增加3dBm
功率单位mW和dBm的换算表
Thu, Oct 16, 2014 获取图片 以百度地图为例,制作户县县城范围
用截图软件,将需要的范围截图保存,如下:
制作TAB 用Mapinfo打开图片(hx.png),会提示是否注册,选择注册(Register)
然后出现图片注册界面
简单说一下原理问题。
在图片上找最少3个坐标,然后对应3个实际经纬度信息,为什么最少3个?因为三点确定一个平面嘛!
下来录入经纬度信息,点击Add,在图片上点一个点,按照提示输入对应的经纬度,如下:
经纬度信息可以使用GoogleEarth获得。
以下是制作完成的情况
点击完成后,就会生成一个同名的tab文件(hx.tab)。
Mon, Sep 22, 2014 安装crontab: [root@CentOS ~]# yum install vixie-cron
[root@CentOS ~]# yum install crontabs
说明:
vixie-cron软件包是cron的主程序; crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。 cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
查看crontab服务状态:service crond status
手动启动crontab服务:service crond start
查看crontab服务是否已设置为开机启动,执行命令:ntsysv
加入开机自动启动:chkconfig --level 35 crond on
rontab命令 功能说明:
设置计时器。
语法:
crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]
补充说明: cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使用计时器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command
参数:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u<用户名称> 指定要设定计时器的用户名称。
Sat, Aug 30, 2014 Chrome离线安装包下载地址:
正式版 http://www.google.com/chrome/eula.html?hl=zh-CN&standalone=1
测试版 http://www.google.com/chrome/eula.html?hl=zh-CN&standalone=1&extra=betachannel
开发版 http://www.google.com/chrome/eula.html?hl=zh-CN&standalone=1&extra=devchannel
下载文件名为ChromeStandaloneSetup.exe
Wed, Aug 20, 2014 一般情况下,单元格插入换行符可以使用Alt+Enter 来实现
但如果需要批量操作的话,那么可以使用 **CHAR(10)**来表示换行符
实例如下,一看就懂!
Tue, Aug 19, 2014 下载Dropbox 32-bit:
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
64-bit:
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
连接到Dropbox 按照提示,在浏览器中打开链接,确认授权。
CLI模式使用Dropbox 下载执行脚本:
wget https://www.dropbox.com/download?dl= packages/dropbox.py
chmod +x dropbox.py
dropbox.py使用
root@hkvps:~# ./dropbox.py help
Dropbox command-line interface
commands:
Note: use dropbox help <command> to view usage for a specific command.
status get current status of the dropboxd
help provide help
puburl get public url of a file in your dropbox
stop stop dropboxd
running return whether dropbox is running
start start dropboxd
filestatus get current sync status of one or more files
ls list directory contents with current sync status
autostart automatically start dropbox at login
exclude ignores/excludes a directory from syncing
lansync enables or disables LAN sync
Fri, Aug 15, 2014 VC运行库全集
VC2005,VC2008,VC2010,VC2013
VC++ Redistributable Package Collection
VCRP:
|
+---vcpp_2005
| vcredist_x86.exe
+---vcpp_2008
| vcredist_x86.exe
+---vcpp_2010
| vcredist_x64.exe
| vcredist_x86.exe
+---vcpp_2012
| vcredist_x64.exe
| vcredist_x86.exe
| vozqco_70591.exe
\---vcpp_2013
vcredist_arm.exe
vcredist_x64.exe
vcredist_x86.exe
VC运行库下载地址**https://ct.optipng.cn/fs/18418398-315802255 **
Tue, Aug 12, 2014 Raspbian版本 2014-01-07-wheezy-raspbian.img
下载地址为http://unixetc.com/res/8188eu-20140616.tar.gz
首先固网链接树莓派,通过SSH登录
wget http://unixetc.com/res/8188eu-20140616.tar.gz
unzip 8188eu_31024_614.zip
sudo mv 8188eu.ko /lib/modules/` uname -r` /kernel/drivers/net/wireless
sudo chown root:root /lib/modules/` uname -r` /kernel/drivers/net/wireless/8188eu.ko
sudo mv rtl8188eufw.bin /lib/firmware/rtlwifi/
sudo chown root:root /lib/firmware/rtlwifi/rtl8188eufw.bin
sudo depmod -a
sudo modprobe 8188eu
然后编辑/etc/netwok/interfaces
,添加以下内容
allow-hotplug wlan0
auto wlan0
iface wlan0 inet manual
wpa-roam /etc/mywpa.conf
iface default inet dhcp
新建mywpa.conf
写入链接配置vi /etc/mywpa.conf
network={
ssid="YOUR SSID"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk="YOUR PASSWORD"
}
重启系统即可
Tue, Aug 12, 2014 树莓派安装Tonido sudo mkdir /usr/local/tonido
cd /usr/local/tonido
sudo wget http://patch.codelathe.com/tonido/live/installer/armv6l-rpi/tonido.tar.gz
sudo tar -zxvf tonido.tar.gz
./tonido.sh start
浏览器打开http://ip:10001开始注册设置 ip 为树莓派的地址
安装多媒体解码器 Tonido支持在线播放音频,但需要安装设置解码器
cd /usr/local/tonido
sudo apt-get install ffmpeg
sudo ln -s /usr/bin/ffmpeg ffmpeg.exe
sudo ln -s /usr/bin/ffmpeg ffmpegv.exe
设置开机启动 wget http://qn.optipng.cn/res/tonido
sudo cp tonido /etc/init.d/
sudo chmod +x /etc/init.d/tonido
sudo update-rc.d tonido defaults
Tonido客户端下载 Sun, Aug 10, 2014 Centos7安装指南
安装NTFS-3G 下载ntfs-3g_ntfsprogs-2014.2.15.tgz </res/ntfs-3g_ntfsprogs-2014.2.15.tgz>
#tar zxf ntfs-3g_ntfsprogs-2014.2.15.tgz
#cd ntfs-3g_ntfsprogs-2014.2.15
#make
#make install
如果make无法成功的话,请重新安装gcc yum install gcc
使用NTFS-3G 临时挂载window分区:
#mkdir /mnt/windowsc/
#mount -t ntfs-3g /dev/sda1 /mnt/windosc/
编辑fstab开机挂载分区,可以参考通过fstab自动挂载分区
/dev/sda1 /mnt/windowsc ntfs-3g defaults 0 0
NTFS-3G主页
Sat, Aug 9, 2014 下载Centos7安装镜像: http://mirrors.aliyun.com/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-GnomeLive.iso
将下载后的镜像写入U盘:
#dd if=CentOS-7.0-1406-x86_64-GnomeLive.iso of=/dev/sdb bs=4M && sync
关闭电脑,从U盘启动。
进入桌面后,点击Install to Hard Drive 开始安装。
选择语言
这里选择简体中文(中国)
安装信息摘要
这里需要设置四部分内容:日期和时间 、键盘 、安装位置 、网络和主机名
设置安装目标和位置 ,选择本地磁盘,然后勾选我要配置分区 以自定义分区信息。
点击完成 进入手动分区 。
在左侧选择具体磁盘分区,右边编辑挂载信息,然后点击更新设置
以下为编辑/home挂载点信息:
下图为编辑后的分区信息,点击左上角完成
查看更改摘要 ,确认没问题了就点击接受更改
设置网络和主机名
完成设置后,点击右下角开始安装
用户设置
设置ROOT密码
创建用户
所有配置完成后,等待安装结束。。。
提示安装完成,点击右下角Quit 退出。
Sat, Aug 9, 2014 进入/etc/grub.d/
目录
#cd /etc/grub.d/
新建15_Windows
文件,写入以下内容:
#! /bin/sh -e
echo "#Adding Windows" >&2
cat << EOF
menuentry "Windows" {
set root=(hd0,1)
chainloader +1
}
EOF
其中(hd0,1)是本地磁盘windows主扇区号,可以通过fdisk -l
来查看确定。
设定文件权限
#chmod 755 15_Windows
编辑/etc/default/grub
来设定菜单等待时间
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="vconsole.keymap=us crashkernel=auto vconsole.font=latarcyrheb-sun16 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
修改GRUB_TIMEOUT 值即可。
设置Windows为默认启动项
#grub2-set-default "windows"
然后运行以下命令,使以上修改生效:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Thu, Aug 7, 2014 解锁 解锁Bootloader首先需要获得解锁码,以下为官方解锁页:
获取解锁码 http://www.emui.com/plugin.php?id=unlock&mod=detail
提交成功后会获得16位的解锁码。
下载以下两个文件:
c8817l驱动 http://pan.baidu.com/s/1jG3fBhW
google adb工具包 http://pan.baidu.com/s/1dDpI77b
安装好驱动城区,解开adb工具包,cmd进入adb包目录。
关机,同时按住音量下 和电源键 开机,进入到fastboot模式。
usb链接电脑,参考以下解锁:
其中fastboot oem unlock
后为16位解锁码
解锁成功后手机会自动重启。
进入开发者模式
关于 ->点击4次版本号
Root 360一键root,其他不多说了!
Wed, Jul 16, 2014 安装Jekyll Jekyll使用 待补充
将Jekyll内容发布到Github 首先登录Github,新建一个用户名.github.io
的repositories
然后将该 Repositories clone到本地文件夹。
在本地文件夹生成Jekyll站点,然后使用jekyll server
生成内容。
下来将生成后的内容发布到Github
git add .
git commit -m "Update"
git remote add origin [email protected] :用户名/用户名.github.com.git
git push origin master
设置自定义域名 在Jekyll站点目录中新建CNAME
文件,写入域名
unixetc.com
www.unixetc.com
然后分别将unixetc.com
和www.unixetc.com
的A记录 指向以下4个IP
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
Thu, Jul 10, 2014 有时我们需要新建指定大小的文件,操作系统本身自带的命令就可以做到。
Windows fsutil 新建名为10Gfile,大小10G的文件
fsutil file createnew 10Gfile 10737418240
fsutil file
命令
C:\Users\bbq>fsutil file
---- 支持的 FILE 命令 ----
createNew 创建指定大小的新文件
findBySID 按安全标识符查找文件
layout 查询有关该文件的所有可用信息
optimizeMetadata 优化文件的元数据
queryAllocRanges 查询文件的分配范围
queryCaseSensitiveInfo 查询目录的大小写信息
queryEA 查询文件的扩展属性(EA)信息
queryExtents 查询文件的范围
queryExtentsAndRefCounts 查询文件的范围及其相应的引用计数
queryFileID 查询指定文件的文件 ID
queryFileNameById 显示文件 ID 的随机链接名称
queryProcessesUsing 查询已打开文件的进程集
queryOptimizeMetadata 查询文件的有效元数据状态
queryValidData 查询文件的有效数据长度
setCaseSensitiveInfo 设置目录的大小写信息
setShortName 设置文件的短名称
setValidData 设置文件的有效数据长度
setZeroData 设置文件的零数据
setEOF 为现有文件设置文件结尾
setStrictlySequential 将 ReFS SMR 文件设置为严格按顺序
Linux dd 新建名为4Gfile
,大小为4G的文件
dd if = /dev/zero of= 4Gfile bs= 1M count= 4096
➜ ~ dd --version
dd ( coreutils) 9.1
Copyright ( C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Paul Rubin, David MacKenzie, and Stuart Kemp.
Tue, Jun 24, 2014 最近恢复了博客,弄了个新皮亮相,欢迎大家围观!
名称:aquan
平台:typecho
预览图:
下载 aquan_theme.zip
Tue, Mar 11, 2014 树莓派安装VNC Server $sudo apt-get install tightvncserver
$sudo apt-get install ttf-wqy-microhei //安装中文字体
使用VNC Server
$vncserver -geometry 1024x768 //分辨率,推荐960x640,或者640x480
$vncserver -kill :1 //结束vncserver进程
Real VNC Viewer 链接方法: 192.168.1.2:1
Mon, Mar 10, 2014 国内推荐阿里云的开源镜像服务,地址为http://mirrors.aliyun.com
将默认的raspbian.org源注释(#)掉,加入阿里云的raspbian源
deb http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib
更新系统
apt-get update&& apt-get upgrade -y
Tue, Mar 4, 2014 什么是HDMI 高清晰度多媒体接口(High Definition Multimedia Interface,简称HDMI)是一种全数字化图像和声音传送接口,可以传送未压缩的音频及视频信号。HDMI可用于机顶盒、DVD播放机、个人计算机、电视游乐器、综合扩大机、数字音响与电视机等设备。HDMI可以同时传送音频和影音信号,由于音频和视频信号采用同一条电缆,大大简化了系统线路的安装难度。
HDMI是被设计来取代较旧的模拟影音传送接口如SCART或RCA等端子的。它支持各类电视与计算机图像格式,包括SDTV、HDTV视频画面,再加上多声道数字音频。
HDMI规格 HDMI分为A、B、C、D四种规格。
HDMI A Type
HDMI A Type应用于HDMI1.0版本,总共有19pin, 规格为4.45 mm × 13.9 mm,为最常见的HDMI接头规格, 相对等于DVI Single-Link传输。在HDMI 1.2a之前, 最大能传输165MHz的TMDS, 所以最大传输规格只能在于1600x1200(TMDS 162.0 MHz)
HDMI B Type
应用于HDMI1.0版本,规格为4.45 mm × 21.2 mm,总共有29pin, 可传输HDMI A type两倍的TMDS数据量, 相对等于DVI Dual-Link传输, 用于传输高分辨率(WQXGA 2560x1600以上),此类接口未应用在任何产品中 。
HDMI C Type
俗称Mini HDMI ,应用于HDMI1.3版本,总共有19pin, 可以说是缩小版的HDMI A type, 规格为2.42 mm × 10.42 mm,但脚位定义有所改变。 主要是用在便携式设备上, 例如DV、数码相机、便携式多媒体播放机等。由于大小所限,一些显卡会使用mini-HDMI,用家须使用转接头转成标准大小的Type A再连接显示屏。
HDMI D Type
也称为Micro HDMI 应用于HDMI1.4版本,总共有19pin, 规格为2.8 mm × 6.4 mm,但脚位定义有所改变。Micro HDMI接口将比现在19针Mini HDMI版接口小50%左右,可为相机、手机等便携设备带来最高1080p的分辨率支持及最快5GB的传输速度。
Mon, Mar 3, 2014 所需条件
Raspberry Pi TP-Link路由器 DNSPod帐户 域名 配置路由器 进入路由器的DHCP服务器 ->静态地址分配 菜单,为Raspberry Pi分配静态IP地址,例如:192.168.1.200
进入路由器的安全功能 ->远端WEB管理 菜单,设置WEB管理端口
为一个非80 值,例如82
进入路由器的转发规则 ->DMZ主机 菜单,将DMZ主机IP地址
设置为Raspberry Pi的ip地址,然后启用保存。
设置DNSPod动态域名解析 首先登录DNSPod网页管理域名,将二级域名www
的A记录
解析到路由器外网IP(可通过路由器管理首页查询,或者通过浏览ip138.com来获得)
注:一级域名请解析**@**的A记录。
下载DNSPod官方客户端Lite https://support.dnspod.cn/Support/api
解压后双击打开登录,从右侧信息列表中也可以看到本机最新IP,点击相应域名后的动态解析 按钮,在动态解析设置中右键点击相应的动态记录启用即可,关闭DNSPod官方客户端Lite 。
设置Raspberry Pi 安装Web服务器软件(Nginx)
apt-get install nginx
/etc/init.d/nginx start
内网可以通过浏览`http://192.168.1.129"来检查Nginx是否正常运行。
下载动态域名解析脚本(pypod.py) http://qn.optipng.cn/res/pypod.py
编辑pypod.py
修改以下内容:
login_email= "email" , # DSNPod帐户邮箱
login_password= "password" , # DSNPod帐户密码
domain_id= 100 , # 域名id
record_id= 100 , # 记录id
sub_domain= "www" , # 子域名
其中域名id 与记录id 可以通过以下命令获取:
curl -k https://dnsapi.cn/Domain.List -d "login_email=xxx&login_password=xxx"
curl -k https://dnsapi.cn/Record.List -d "login_email=xxx&login_password=xxx&domain_id=xxx"
提示:如果你使用了www 子域名,则需要获取www 的记录id,如果使用一级域名(@),则需要获取**@**的记录id。
编辑完pypod.py
保存退出,使用以下命令运行:
现在可以通过域名来浏览Raspberry Pi上的Web内容了。
pypod.py开机运行
添加/usr/bin/python /home/pi/pypod.py
到**/etc/rc.local**。
Sun, Mar 2, 2014 安装python
$sudo apt-get install python-dev
更新
$sudo easy_install -U distribute
安装python-pip
$sudo apt-get install python-pip
添加国内pypi镜像
在**~/.pip/pip.conf**中添加
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
安装python的GPIO库
$sudo pip install rpi.gpio
Fri, Feb 28, 2014 安装系统 从官网下载系统镜像,推荐Raspbian
http://downloads.raspberrypi.org/raspbian_latest
将下载后的zip文件解压,得到2014-01-07-wheezy-raspbian.img 文件。
准备一张SD卡,最好容量大于4GB,Class10
将镜像写入SD卡
使用fdisk -l
检查分区信息,比如sd卡设备为**/dev/sdb**,使用以下命令写入:
#dd if=2014-01-07-wheezy-raspbian.img of=/dev/sdb bs=1M
Windows下推荐使用Win32DiskImager 写入镜像 Win32DiskImager下载地址:http://sourceforge.net/projects/win32diskimager/
下载后打开软件,选择好镜像文件与USB设备,然后点击Write 写入。
开机进入系统 将已写入系统的SD卡插入Raspberry Pi,通过固网链接路由器,然后使用USB供电启动。
正常启动后,板载的ACT ,PWR 、FDX 、LNK 、100 五个指示灯均点亮。
通过SSH连接Raspberry Pi
查看Raspberry Pi IP地址
#nmap -sP 192.168.1/24
检查出MAC后标注(Raspberry Pi Foundation)的即为Raspberry Pi主机。
然后通过SSH来链接主机
#ssh 192.168.1.127
用户名为pi ,默认密码为raspberry
Widnows下推荐使用Putty
设置Raspberry 运行设置工具sudo raspi-config
选择Expand Filesystem
扩展文件系统 Change User Passwd
修改默认用户pi
的密码,当然也可以在系统中使用passwd
命令来更改。Advanced Options
->Hostname
修改主机名Overclock
超频,建议900MhzThu, Feb 27, 2014 越狱 下载kindle-jailbreak-1.8.N.zip解压,将得到的kindle-5.4-jailbreak.zip再解压,然后把解压出的三个文件放到KPW根目录
然后更新系统,主页-菜单-设置-菜单-更新您的kindle
底部显示**** JAILBREAK ****即表示越狱成功!
安装MKK 下载kindle-mkk-20140214.zip解压,将Update_mkk-20140214-k5-ALL_install.bin复制到KPW根目录更新系统
安装KUAL 下载KUAL-v2.3.zip 解压,将KUAL-KDK-2.0.azw2放到documents文件夹,点击图标即可运行KUAL
安装终端 下载kterm-0.7.zip解压,然后将kterm文件夹复制到KPW根目录下的extensions,即可通过KUAL来打开kterm。
**提示:**双指点击唤醒菜单。
安装USBNetwork 解压kindle-usbnet-0.15.N.zip,将update_usbnet_0.15.N_install_touch_pw.bin放到根目录,然后更新系统安装,完成后可通过KUAL来打开USBNetwork。
通过USBNetwork来链接PC,有时需要安装驱动,在这里提供undrivers.inf
文件,安装时选择该文件即可。
以上所有文件下载地址: http://pan.baidu.com/s/1eQdzU6Y
Wed, Feb 26, 2014 刚刚入手Raspberry Pi 1 Model B
配置详情
Broadcom BCM2835 SoC full HD multimedia applications processor 700MHz low power ARM1176JZ-F applications processor Broadcom VideoCore IV, OpenGL ES 2.0, 1080p30 h.264/MPEG-4 AVC high profile decoder 512MB SDRAM 10/100 Ethernet RJ 45 on board network Storage via SD/ MMC/ SDIO card slot Dual USB connector HDMI (rev 1.3 & 1.4) composite RCA (PAL and NTSC) 3.5mm jack, HDMI Linux operating system 正面图:
背面图:
Sun, Feb 23, 2014 安装pptpd
#apt-get install pptpd
IP设置
#vi /etc/pptpd.conf
添加以下内容:
localip 192.18.0.1
remoteip 192.168.0.200-230
设置DNS
#vi/etc/ppp/pptpd-options
添加以下内容:
ms-dns 192.168.1.1
ms-dns 8.8.8.8
添加用户
#vi /etc/ppp/chap-secrets
添加以下内容:
name * passwd *
重启vpn
#/etc/init.d/pptpd restart
允许ip4访问外网
#vi /etc/sysctl.conf
net.ipv4.ip_forward=1 //取消本行前注释符(*)
#sysctl -p
Tue, Feb 11, 2014 QEMU for Windows使用 下载安装QEMU for Windows
双击下载后的exe文件完成安装。
qemu常用命令 qemu-system-i386 -cdrom image.iso
qemu-img create disk.img 100M
qemu-system-i386 -hdd disk.img
qemu-system-i386 -m 256M -smp 2 -hdd disk.img
qemu-system-i386 -cdrom image.iso -hdd disk.img -boot d
其中-boot后面的d代表从光盘启动,可用引导项:a, b (软驱 1,2), c (第一块硬盘), d (第一个CD-ROM), n-p (从网络启动), 默认为第一块硬盘。
qemu安装tinycore实例 首先使用qemu-img
创建磁盘 tc.qcow2 ,格式为qcow2
大小5G。
$ qemu-img.exe create -f qcow2 tc.qcow2 5G
Formatting 'tc.qcow2' , fmt= qcow2 cluster_size= 65536 extended_l2= off compression_type= zlib size= 5368709120
lazy_refcounts= off refcount_bits= 16
从官网 下载好tinycore系统镜像CorePlus-current.iso
,使用以下命令从镜像启动。
Sat, Feb 1, 2014 pdksh替代bash $sudo apt-get install pdksh
$sudo vi /etc/shells
添加/bin/pdksh到/etc/shells文件
$chsh -s /bin/pdksh
重新登录即可。
修改SSH端口 #vi /etc/ssh/sshd_config
将Port 22中的22改为自定义数字即可
# /etc/init.d/ssh restart
dropbear替代openssh $sudo apt-get install dropbear
$sudo /etc/init.d/ssh stop
$sudo vi /etc/default/dropbear
修改NO_START=0 ,修改DROPBEAR_PORT为自定义端口号
$sudo /etc/init.d/dropbear start
$sudo apt-get remove openssh-server
$sudo apt-get autoremove
关闭多余的TTY Ubuntu 12.04 server 如下操作
#cd /etc/init/
#mv tty2.conf tty2.conf.bak
#mv tty3.conf tty2.conf.bak
#mv tty4.conf tty2.conf.bak
#mv tty5.conf tty2.conf.bak
#mv tty6.conf tty2.conf.bak
#reboot
Debian 7 如下操作
Tue, Jan 21, 2014 BitTorrent Sync是BitTorrent Inc推出的一款多平台同步工具,支持Windows、Linux、MAC、FreeBSD、IOS、Android、Windows Phone,还有许多NAS设备。
具体的功能介绍请转至官网 https://www.getsync.com/intl/zh_cn/features
下载地址 https://www.getsync.com/intl/zh_cn/platforms/desktop
在此提供镜像下载http://www.getos.org/btsync/
安装BitTorrent Sync Windows版本,双击下载后的EXE 文件安装。
Linux版,解压下载后的btsync_i386.tar.gz ,运行即可
tar zxvf btsync_i386.tar.gz
cp btsync /usr/bin
./btsync
然后可以通过127.0.0.1:8888
来进行设置管理
为了安全期间,不推荐使用默认配置,建议自定义端口
btsync --dump-sample-config>bs.conf
vi bs.conf
找到如下内容,将8888
修改为自定义端口号
"webui" :
{
"listen" : "0.0.0.0:8888" // remove field to disable WebUI
然后通过以下命令加载自定义配置文件
btsync --config bs.conf
Windows版与Linux版的软件界面大致相同,以下以linux为例说明。
配置BitTorrent Sync 第一次使用BitTorrent Sync 需要进行一系列设置,如下所示:
设置管理员账号以及密码 *Windows不需要
账号设定完成后BitTorrent Sync 会提示登录以继续使用,登录后继续下面设置。
然后是使用条款和Pro版本试用(30天)提示,直接同意。
下来选择连接设备,一般选择This is my first Sync device ,如果你已经在其他设备上安装了BitTorrent Sync ,并且需要将该设备的内容全部同步到新设备,可以选择Link a device already running Sync ,这个在后边再讲。
接下来创建身份信息(Create identity),设定一个名称。
Mon, Jan 13, 2014 新建脚本,名为autoback.sh
脚本autoback.sh
内容如下:
#!/bin/sh
#备份网站目录/home/www/
tar zcvf /home/backup/www$( date + "%Y%m%d" ) .tar.gz /home/www/*
#备份数据库 www
/usr/local/mysql/bin/mysqldump -uroot -ppassword dbname > /home/backup/dbname$( date +"%Y%m%d" ) .sql
#删除三天前的备份
cd /home/backup/
rm -f *$( date -d -3day +"%Y%m%d" ) *
将脚本(autoback.sh)添加到自动执行任务列表:
chmod +x autoback.sh
crontab -e
59 23 * * * /root/autoback.sh
推荐注册Dropbox ,参考 Linux下CLI模式使用Dropbox ,将备份文件自动同步到Dropbox。
Mon, Dec 23, 2013 弄了个Typecho主题,名为Logs
预览:
基本完善,有个别可能需要小修改,先贴出来分享给看得上的人
本站就是使用的这个主题,所以就不贴预览图了
Update 2014/01/02
Update 2013/12/25
Update 2013/12/22
下载 Logs.zip
Thu, Dec 12, 2013 笔记本原来安装的Linux/Windows XP双系统,今天重新安装了Windows7,但是开机的grub引导被搞掉了,找了下grub的man看了半天,摸索出来如何修复原来的grub引导。
首先,使用Linux live cd引导系统,然后按照以下操作:
检查分区信息
ubuntu@ubuntu:~$ sudo -s
root@ubuntu:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 40G 0 part
├─sda2 8:2 0 1K 0 part
├─sda5 8:5 0 4G 0 part [SWAP]
├─sda6 8:6 0 20G 0 part
├─sda7 8:7 0 20G 0 part
├─sda8 8:8 0 100G 0 part
├─sda9 8:9 0 200G 0 part
└─sda10 8:10 0 81.8G 0 part
sr0 11:0 1 1.6G 0 rom /cdrom
loop0 7:0 0 1.5G 1 loop /rofs
以上的sda6是我的/home目录,根目录为sda7
Sat, Oct 12, 2013 安装多看阅读 下载地址: http://bbs.xiaomi.cn/forum-679-1.html
将下载的zip包解压,安装方法如下:
Kindle原系统下,连接USB线到PC,拷贝1个文件夹和2个文件到Kindle磁盘。
将DK_System文件夹拷贝至Kindle根目录 将MOBI8_DEBUG文件拷贝至Kindle根目录 将duokan.mobi文件拷贝至Kindle的documents目录 然后弹出Kindle磁盘,断开USB线。 直到在原系统能看见一本新书 《duokan 安装文档》。
在原系统下打开 《duokan 安装文档》(备注:机器要是竖屏而不是横屏)。 在文档的中间看到Install按钮, 点击该按钮,按照屏幕上的提示进行安装。
屏保 大小: 758x1024 格式: PNG 色调: 黑白 存放目录\DK_System\xKindle\res\ScreenSaver\
Kindle Paperwhite预置壁纸 http://vdisk.weibo.com/s/u6MCqFbm65gX2
字典 字典结构: .dz .idx .ifo 三个文件
字典存放目录\DK_System\xKindle\res\dict\
词典下载:
编辑\DK_System\xKindle\res\dict\dict.dat可以自定义索引顺序,如下:
/mnt/us/DK_System/xKindle/res/dict/oxford-gb-formated.ifo
/mnt/us/DK_System/xKindle/res/dict/Collins5.ifo
/mnt/us/DK_System/xKindle/res/dict/langdao-ec-gb.ifo
/mnt/us/DK_System/xKindle/res/dict/ghycycd.ifo
/mnt/us/DK_System/xKindle/res/dict/xhzd.ifo
Tue, Sep 24, 2013 GF办公用需要一个小系统,原要求是VBA实现,不过我没弄过那玩意儿。C语言倒是熟悉,但CLI的东西她使用不方便。
于是做一个web系统,php比较熟悉,不过她的工作不能使用外网,额滴神!最后还是选择了用javascript实现,现学现卖吧。
由于不能使用数据库,所以需要构建一个三维数组来存储数据,以下是javascript中数组使用的一些实例。
定义数组并赋值
var jz = newArry ();
jz [0 ] = 10 ;
jz [1 ] = "hello" ;
jz [2 ] = 23.4 ;
以上是一个简单的一维数组,其中三个值分别为:10
整数,hello
字符串,23.4
浮点数,可以通过以下方法使用
alert ("jz[0] is " + jz [0 ]+ "\n jz[1] is " + jz [1 ]+ "\n jz[2] is " + jz [2 ]);
二维数组的定义方法:为一维数组的单个值赋予数组值,那么就可以构成二维数组
实例
var jz = newArry ();
jz [0 ] = newArry (1 ,2 );
jz [1 ] = newArry (3 ,4 );
jz [2 ] = newArry (5 ,6 );
可以通过jz[0][0]
、jz[0][1]
、jz[0][2]
来访问。
以下是一个简单的三维数组实例
var jz newArry ();
jz [0 ] = newArry ([100 ,200 ],[300 ,400 ],[500 ,600 ])
jz [1 ] = newArry (['str1' ,'str2' ],['str3' ,'str4' ],['str5' ,'str6' ]);
jz [2 ] = newArry ([2.24 ,3.2 ],[12.9 ,89.01 ],[38.04 ,7.6 ]);
访问方法如jz[0][1][0]
Sat, Sep 21, 2013 在Ruby目录中搜索convertible.rb ,找到大概27行如下内容:
self.content = File.read(File.join(base, name))
替换为
self.content = File.read(File.join(base, name), :encoding => 'utf-8')
在windows环境变量中,添加以下两个环境变量
LANG=zh_CN.UTF-8
LC_ALL=zh_CN.UTF-8
Wed, Sep 18, 2013 在网站根目录中新建rss.xml
文件,写入以下内容:
参考以上代码,其中的域名等信息自定义。
Sun, Sep 15, 2013 这里使用的工具名为Exitwp ,项目主页为https://github.com/thomasf/exitwp
安装Exitwp 必备组件
Python html2text PyYAML Beautiful soup ubuntu下安装软件:
# aptitude install python git build-essential
# aptitude install python-pip python-yaml python-bs4 python-html2text
# aptitude install libyaml-dev python-dev libxml2-utils
安装Exitwp git clone https://github.com/thomasf/exitwp
###使用Exitwp转换wordpress数据
首先,登录wordpress后台,使用自带的导出工具将wordpress导出为xml文件
将导出的xml文件下载,复制到 ./exitwp/wordpress-xml/
进入 ./exitwp/wordpress-xml/,使用xmllint格式化xml文件
xmllint --format wp.xml
最后,执行exitwp.py脚本来处理xml文件
python exitwp.py
生成的md文件,存放在 ./exitwp/build/
后续的工作 将处理后的md文件复制出来,拷贝至jekyll站点的_post目录,然后使用
jekyll serve
生成预览,按照提示处理有问题的md文件,直至OK!
Sun, Sep 8, 2013 使用fdisk -l
查看分区信息
以下为需要自动挂载的分区:
分区 | 格式
------------------------------
/dev/sd1 | NTFS
/dev/sd5 | NTFS
/dev/sd6 | NTFS
/dev/sd7 | NTFS
/dev/sd8 | NTFS
新建挂载目录
#mkdir /media/{a,b,c,d,e}
编辑fstab文件vi /etc/fstab
写入以下内容
/dev/sda1 /media/a ntfs-3g defaults,iocharset=gb2312 0 0
/dev/sda5 /media/b ntfs-3g defaults,iocharset=gb2312 0 0
/dev/sda6 /media/c ntfs-3g defaults,iocharset=gb2312 0 0
/dev/sda7 /media/d ntfs-3g defaults,iocharset=gb2312 0 0
/dev/sda8 /media/e ntfs-3g defaults,iocharset=gb2312 0 0
说明:
/dev/sdax 表示分区 /mnt/xxx 表示挂载点 vat/ntfs-3g 表示分区格式 iocharset=xxx 设置字符集,为了支持windows中文目录,应设为gb2312 Fri, Sep 6, 2013 安装Rvm $sudo aptitude install curl
$curl -L get.rvm.io | bash -s stable
加载Rvm
$source ~/.rvm/scripts/rvm
检查安装必备组件
$rvm requirements
安装 Ruby 1.9.3 $rvm install 1.9.3
$ruby -v
$gem -v
更改Gem软件源
$gem sources -a http://ruby.taobao.org/
$gem sources -r http://rubygems.org/
$gem sources -l
安装Jekyll $gem install jekyll
$jekyll -v
打完收工!
Tue, Sep 3, 2013 相较于旧的RSA,更加推荐ED25519
生成ssh密匙文件 接下来会提示输入密码,推荐自定义密码,当然也可以置空
Enter passphrase( empty for no passphrase) :
Enter same passphrase again:
完成后会在用户目录下的.ssh文件夹中新建id_rsa 与is_rsa.pub 两个文件。
添加ssh密匙到github用户 登录至github.com,点击右上角的Account Settings
在左侧选择SSH Keys 菜单,然后在右侧点击Add SSH Key 按钮
将上一步生成的id_rsa.pub 文件内容复制进去保存。
本地连接至github.com 如果前面设置了passphrase,那么就按照提示输入passphrase。如果置空的话,就直接点击回车 。成功后会有如下提示:
Hi alair! You` ve successfully authenticated, but GitHub does note provide shell access.
参考以上设置完成后,以后git push时就不需要每次输入密码了!
Sun, Sep 1, 2013 阿朗基站默认未开启40个邻区功能,如果fci表的15、16页已经加满,再需要添加多的邻区关系就得设置打开40个邻区。
编辑cell2 (SERIES 2 CELL)表单 登录阿朗OMP平台,进入OMP Shell,输入apxrcv ,然后按照提示输入表单名cell2
cell2只需提供基站号,设置为整个基站的功能
查看cell2表单的 12页 ,找到 FORTY NGBR 项,经该项值设置为 y
编辑ceqface (CELL EQUIPAGE FACE)表单 进入ceqafce 表单,这里得提供具体的扇区号,然后查看第 9 页,找到 Maximum Neighbor List Number Sent to Mobile ,将其设置为 40
进入fci 表,这里需要设置具体的扇区号,然后查看第 21 页,找到如下行:
Expanded (40) Neighbor Lists Enable .................. 569) n
编辑改行,将后面的值设为 y
经过以上设置,所对应的扇区40个邻区列表功能正常开启,现在就可以在19页继续添加邻区了。
Tue, Aug 13, 2013 当linux内核更新后,开机的GRUB引导菜单中会存在新旧内核多个引导菜单,当新内核使用稳定后,我们可以将旧的内核删除以减少开机引导项,以下是在fedora与ubuntu中删除旧内核的方法,其他的YUM系或APT系系统可以参考参考
fedora 中删除旧内核:
[aquan@localhost ~]$ uname -r
2.6.32-220.13.1.el6.i686
[aquan@localhost ~]$ rpm -qa|grep kernel
kernel-2.6.32-220.13.1.el6.i686
kernel-2.6.32-220.el6.i686
kernel-firmware-2.6.32-220.13.1.el6.noarch
dracut-kernel-004-256.el6_2.1.noarch
[aquan@localhost ~]$ sudo yum remove kernel-2.6.32-220.el6.i686
ubunu 中删除旧内核:
sudo apt-get purge ~ilinux-image-.*\(\!`uname -r`\)
Thu, May 30, 2013 准备工作 下载Google Appengine SDK For Pyahont与goAgent
1.Google App Engine SDK for Python
https://developers.google.com/appengine/downloads?hl=zh-CN#Google_App_Engine_SDK_for_Python
2.goagent
https://code.google.com/p/goagent/
下载后解压,将goagent文件夹放到google_appengine目录下,目录结构如下:
~/google_appengine/goagent-goagent-d488f2
准备好Google Application_ID与两步验证密码,如何申请问Google
配置goagent 编辑**~/google_appengine/goagent-goagent-d488f2/local/proxy.ini**
填写正确的appid,在此建议将profile由默认的google_cn
改为google_hk
参考以下步骤执行:
aquan@edge ~/google_appengine $ python appcfg.py update goagent-goagent-d4488f2/server/python/
07:03 PM Host: appengine.google.com
07:03 PM Application: wrchiublog; version: 1
07:03 PM
Starting update of app: wrchiublog, version: 1
07:03 PM Getting current resource limits.
Email: [email protected] //在此填写googleid
Password for [email protected] : //此处填写两步验证密码,而不是帐号密码
07:04 PM Scanning files on local disk.
07:04 PM Cloning 1 static file.
07:04 PM Cloning 6 application files.
07:04 PM Uploading 1 files and blobs.
07:04 PM Uploaded 1 files and blobs
07:04 PM Compilation starting.
07:04 PM Compilation completed.
07:04 PM Starting deployment.
07:04 PM Checking if deployment succeeded.
07:04 PM Deployment successful.
07:04 PM Checking if updated app version is serving.
07:04 PM Completed update of app: wrchiublog, version: 1
完成后,在**~/google_appengine/goagent-goagent-d488f2/local/**目录下运行goAgent
Sat, May 11, 2013 安装所有软件
#aptitude install openbox firefox ttf-wqy-microhei
#aptitude install vnc4server
设置openbox启动
#update-alternatives --config x-session-manager
然后选择openbox-session
设置vncserver密码:
#vncpasswd
Password: ******
Verify:*****
运行vncserver
# vncserver //运行
# vncserver -kill :1 //终止
编辑~/.vnc/xstartup文件
#vi ~/.vnc/xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
startx& //添加此行
链接VNC
Thu, May 9, 2013 安装apt-spy
#apt-get install apt-spy
使用apt-spy选择最佳源
#apt-spy update
#apt-spy -d stable -a asia -t 3
结果保存在/etc/apt/sources.list.d/apt-spy.list
,可手动替换到/etc/apt/sources.list
apt-spy选项:
-d 系统版本,可选stable,testing,unstable -a 区域,如asia,europe等,可用项可cat /etc/apt-spy.conf -t 超时阀值(s),可筛掉长时间不响应的地址 Fri, Apr 26, 2013 电池仓贴纸上面的CODE即是
0595085: N900 RX-51 TMN (Telecomunicacoes Moveis Nacionais S.A.*) PT V1 - Black 0582648: RX-51 Belgium 0584571: RX-51 Croatia Makedonia 0584572: RX-51 Czech 0591362: RX-51 Estonia 0574180: RX-51 France 0574383: RX-51 Germany 0591474: RX-51 Hungary 0591474: RX-51 Hungary 0574385: RX-51 Italy 0583516: RX-51 Light Swap 0582647: RX-51 MENA 0585168: RX-51 Montenegro Greece 0582645: RX-51 Netherlands 0582644: RX-51 Poland 0574386: RX-51 Russia 0574179: RX-51 Scandinavia Finland Sweden 0587236: RX-51 Scandinavia Norway Denmark 0584570: RX-51 Slovakia 0584570: RX-51 Slovakia 0574384: RX-51 Spain Portugal 0584598: RX-51 Swap 0584598: RX-51 Swap 0587813: RX-51 Swap France 0587810: RX-51 Swap Russia 0587812: RX-51 Swap USA 0560826: RX-51 UK Ireland 0580952: RX-51 USA 0593611: UK CV 0595421: Vodafone UK GB Contract black 1.2009.42.2(發布) 0574383: RX-51 Germany 0574383: RX-51 Germany 1.2009.44.1(發布) 0595085: N900 RX-51 TMN (Telecomunicacoes Moveis Nacionais S.A.*) PT V1 - Black 0582648: RX-51 Belgium 0584571: RX-51 Croatia Makedonia 0584572: RX-51 Czech 0591362: RX-51 Estonia 0574180: RX-51 France 0574383: RX-51 Germany 0591474: RX-51 Hungary 0574385: RX-51 Italy 0583516: RX-51 Light Swap 0582647: RX-51 MENA 0585168: RX-51 Montenegro Greece 0582645: RX-51 Netherlands 0582644: RX-51 Poland 0574386: RX-51 Russia 0574179: RX-51 Scandinavia Finland Sweden 0587236: RX-51 Scandinavia Norway Denmark 0584570: RX-51 Slovakia 0574384: RX-51 Spain Portugal 0584598: RX-51 Swap 0587813: RX-51 Swap France 0587810: RX-51 Swap Russia 0587812: RX-51 Swap USA 0593709: RX-51 Switzerland 0560826: RX-51 UK Ireland 0580952: RX-51 USA 0593611: UK CV 0593611: N900 RX-51 Country Variant United Kingdom GB V1 Black 0595085: N900 RX-51 TMN (Telecomunicacoes Moveis Nacionais S.A.*) PT V1 - Black 0582648: RX-51 Belgium 0584571: RX-51 Croatia Makedonia 0584572: RX-51 Czech 0591362: RX-51 Estonia 0574180: RX-51 France 0574383: RX-51 Germany 0591474: RX-51 Hungary 0574385: RX-51 Italy 0582647: RX-51 MENA 0585168: RX-51 Montenegro Greece 0582645: RX-51 Netherlands 0582644: RX-51 Poland 0574386: RX-51 Russia 0574179: RX-51 Scandinavia Finland Sweden 0587236: RX-51 Scandinavia Norway Denmark 0584570: RX-51 Slovakia 0574384: RX-51 Spain Portugal 0593709: RX-51 Switzerland 0560826: RX-51 UK Ireland 0580952: RX-51 USA 0583566: RX-51 Australia 0583566: RX-51 Australia 0582648: RX-51 Belgium 0584571: RX-51 Croatia Makedonia 0584572: RX-51 Czech 0591362: RX-51 Estonia 0574180: RX-51 France 0574383: RX-51 Germany 0591474: RX-51 Hungary 0583572: RX-51 Indonesia,Vietnam,Cambodia 0583572: RX-51 Indonesia,Vietnam,Cambodia 0574385: RX-51 Italy 0582647: RX-51 MENA 0582647: RX-51 MENA 0585168: RX-51 Montenegro Greece 0582645: RX-51 Netherlands 0583569: RX-51 Philippines 0583569: RX-51 Philippines 0583569: RX-51 Philippines 0582644: RX-51 Poland 0574386: RX-51 Russia 0574179: RX-51 Scandinavia Finland Sweden 0587236: RX-51 Scandinavia Norway Denmark 0583571: RX-51 Singapore 0583571: RX-51 Singapore 0584570: RX-51 Slovakia 0598090: RX-51 South-Asia(Nepal,Sri Lanka) 0598090: RX-51 South-Asia(Nepal,Sri Lanka) 0582646: RX-51 South Africa 0582646: RX-51 South Africa 0574384: RX-51 Spain Portugal 0593709: RX-51 Switzerland 0599194: RX-51 Taiwan 0599194: RX-51 Taiwan 0583568: RX-51 Thailand 0583568: RX-51 Thailand 0583568: RX-51 Thailand 0560826: RX-51 UK Ireland 0591467: RX-51 Ukraine 0580952: RX-51 USA 0599195 HK(即全球版) Sun, Apr 21, 2013 遇到一个资料站点,比如https://wd.hides.su/fox_exe/WDMyCloud-Gen2/
,可以通过wget
命令来将整个站点进行下载保存。
命令实例:
$wget -r -p -np -k -e robots= off -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6" "https://wd.hides.su/fox_exe/WDMyCloud-Gen2/"
参数解释:
r,–recursive 递归下载 p, –page-requisites 下载显示HTML文件的所有图片 np, –no-parent 不要追溯到父目录 k, –convert-links 转换非相对链接为相对链接 e,–execute=COMMAND 执行一个 “.wgetrc”命令 robots=off 无视robots.txt U, –user-agent=AGENT 设定伪装agent,模拟浏览器行为 “Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6” Wed, Mar 6, 2013 刚刚安装了Archlinux,用的archlinux-2013.03.01-dual.iso镜像,最新的systemd将网卡名更改了,不在是原来默认的eth0/wlan0
我的ifconfig -a输出如下:
enp9s0: flags=4098 mtu 1500
ether 04:7d:7b:f8:25:9d txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp3s0: flags=4098mtu 1500
ether 88:9f:fa:f8:c3:06 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</pre>
怎么将网卡名改回原来的eth0/wlan0呢?如下操作即可:
Thu, Jan 3, 2013 下载ArchLinux镜像
下载archlinux-2012.12.01-dual.iso,可以将其刻录到CD引导启动,或者使用dd命令将其写入到USB设备。
http://mirrors.163.com/archlinux/iso/2012.12.01/archlinux-2012.12.01-dual.iso.torrent
完成后重启电脑进入到Archlinux CD开始进行安装。
设置网络连接
整个安装过程,本机需要连接互联网以下载所需文件,在此推荐使用网线连接自动获取IP,如果是这样那么当你进入到archlinux时网络已经连接成功了,可以使用ping来查看是否成功
#ping -c 5 aotee.com
如果不是自动获取IP,可以参考以下相关命令设置网络连接:
开启|关闭网络设备
# ip link set eth0 up
# ip link set eth0 down
自动获取IP(DHCP)
# dhcpcd eth0
查看状态
# ip addr show dev eth0
如果是无线网卡,请参考这里 进行设置。
设置键盘布局
#loadkeys us
准备硬盘分区
设置硬盘分区时可以使用自己熟悉的工具进行操作,以下是我的分区方案
/dev/sda9 /boot
/dev/sda10 swap
/dev/sda11 /
/dev/sda12 /home
我使用LinuxMint LiveCD的磁盘工具进行分区,分区完成后可以使用lsblk /dev/sda 来查看结果。
格式化分区
参考以下命令对已有的分区进行格式化
#mkfs -t ext2 /dev/sda9
#mkfs -t ext4 /dev/sda11
#mkfs -t ext4 /dev/sda12
#mkswap /dev/sda10
#swapon /dev/sda10
挂载分区
Fri, Nov 23, 2012 Cinnarch是一个新的linux发行版,基于Archlinux以Cinnamon为默认桌面系统,对于想体验Archlinux但对于全新的安装方法无法把握的朋友,Cinnarch不失为一个良好的选择。
以下为安装Cinnarch的一次全过程,以供需要的朋友参考。
下载Cinnarch
首先从官网下载Cinnarch镜像,地址为 http://www.cinnarch.com/try-it/ ,按照需要下载32Bit或者64Bit的,下载方式有直接下载(iso)与通过BT种子(torrent)下载两种方式。
将下载后的镜像刻入CD,放入光驱后重启以进入LiveCD即可。
安装Cinnarch
进入到LiveCD后会弹出一个Welcome弹窗,可以点击其中的CLI Installer开始安装,或者先使用系统(Try it),需要安装时在系统菜单中找到Cinnarch Installer CLI点击打开,也可以开始安装。
打开安装程序前,请确认电脑已经可以联网使用,因为一切软件包都是实时从mirror下载的,并且安装好的系统和archlinux一样,可以滚动升级(Rolling upgrade)。
打开安装程序,首先提示更新软件list,更新完成后会出现一个welcome的对话框,确认后进入到安装主菜单,如下:
0 Set Language and Keyboard
1 Set Time and Date
2 Prepare Hard Drive
3 Select Source
4 Install System
5 Configure System
6 Exit Install
设置语言与键盘 (Set Language and Keyboard)
选择进入设置菜单,在此主要设置语言选项,键盘布局可以不设置,采用默认即可。 语言设置为zh_CN.UTF-8 设置键盘布局(Set Keymap)时可以直接选择返回主菜单(Return to Main Menu)
设置时间与日期(Set Time And Date)
此项用于设置时间与日期,此项下面有三个子菜单:
1 Select Region and Timezone
2 Set Time and Date
3 Return to Main Menu
第一项菜单用于设置区域与时区,此次区域(Region)设置为Asia,时区(Timezone)设置为Chongqing(或者Beijing/Shanghai)
Mon, Aug 20, 2012 对于WebOS还是继续看好,但是出于使用习惯和需求,将已经闲置了两个多月的HP TouchPad出手,新入手了台iPad2 Wifi (32nm)。
以下分享一些关于HP TouchPad的WebOS资源,以方便需要的朋友 以下为目录说明:
G:WebOS
├─8%及12%无法通过一键修砖 *关于刷机不过的处理方法
├─cm7alpha3.5 *CM7 for HP TouchPad
├─cm9alpha2 *CM7 for HP TouchPad
├─patchs *一些补丁备份,便于安装
├─soft *收集的一些HP TouchPad软件
├─touchpad免激活 *HP TouchPad免激活工具
├─WQI *WebOS Quick Install
└─zoopda-elite-TP *Zoopda eLite发布的DIY ROM for HP TouchPad
calibre-0.8.22.msi *电子书管理编辑软件
KSMediaStreamer_v1.0.7.msi *流媒体分享软件
NovacomInstaller_x86.msi *驱动程序(Windows)
patch.txt *Preware补丁推荐
Splashtop_Streamer_Win_v1.6.0.1.exe *远程桌面服务程序
TBaccess.exe *TBaccess PC端
UniversalNovacomInstaller.jar *驱动程序(Linux)
webOS Nation Moboot.zip *MoBoot主题文件
webosdoctorp305hstnhwifi.jar *HP TouchPad官网3.0.5 ROM
WifiMediaSync.msi *媒体文件同步工具
手动删除android.txt *手动删除CM方法
G:WebOScm7alpha3.5
ACMEInstaller
ACMEUninstaller
gapps-gb-20110828-signed.zip
moboot_0.3.5.zip
novacom.exe
update-cm-7.1.0-tenderloin-a3.5-fullofbugs.zip
update-cwm_tenderloin-1012.zip
XRONified_vB2.9.1_odex_01032012.zip
G:WebOScm9alpha2
ACMEInstaller2
ACMEUninstaller
gapps-ics-20120429-signed.zip
moboot_0.3.5.zip
novacom.exe
update-cm-9.0.0-RC0-Touchpad-alpha2-fullofbugs.zip
update-cwm_tenderloin-1012.zip
G:WebOSpatchs
ca.canucksoftware.filemgr_2.0.7_all.ipk
ca.canucksoftware.homebrew-js-service-framework_1.0.0_all.ipk
ca.canucksoftware.systoolsmgr_1.0.5_all.ipk
cacanucksoftwareinternalz_15.ipk
G:WebOSsoft
ca.canuckcoding.comicshelfhd_1.3.0_all.ipk
chomper.sys.lsmime_0.1.0_armv7.ipk
com.8bitdevelopment.wifimediasync_3.0.5_all.ipk
com.amwityga.tpnews_1.0.0_all.ipk
com.aol.engadgetHD_1.0.5_all_Touchpad.ipk
com.hedami.musicplayerremix_2.5.5_all.ipk
com.hp.palm.renren_01.00.022_all.ipk
com.ingloriousapps.glimpse_1.2.3_all.ipk
com.ingloriousapps.notesplus-untestedalpha_0.3.1_all.ipk
com.kalemsoft.ksmplayera_0.5.3_tp.ipk
com.l337tech.internet-radio-hd-pro_0.0.2_all.ipk
com.menaka.mvnc_2.0.0_all.ipk
com.mporting.ime.zh-cn.patch_3.0.4_all.ipk
com.noteday.opencoursehd_1.0.0_all.ipk
com.omastudios.filemanager_1.7.0_all.ipk
com.oscillicious.sodasynthhd_1.0.2_all.ipk
com.picsel.app.smartoffice_1.8.5_all.ipk
com.qq.palmqzone_1.0.0_all.ipk
com.sina.touchpadweibo_1.0.1_all.ipk
com.smilepig.sohutv_0.0.7_all.ipk
com.splashtop.remote.webos_1.0.3_all.ipk
com.syllogithm.webosrdpc_0.2.5_all.ipk
com.tencent.qq_1.0.0_all.ipk
com.tudou.video_2.0.0_all.ipk
com.wordpress.mobilecoder.touchplayer_1.0.6a_all.ipk
com.xuepx.justradio.hd_2.0.3_all.ipk
com.youku.touchpad_2.0.0_beta3.ipk
de.thg_.usbflashmount_0.1.0_all.ipk
org.webosinternals.preware_1.8.5_arm.ipk
org.webosinternals.preware_1.9.12_arm.ipk
G:WebOStouchpad免激活
devicetool-tp
devicetool-tp.jar
devicetool.bat
readme.txt
G:WebOSWQI
WebOSQuickInstall-4.2.0.jar
WebOSQuickInstall-4.3.1.jar
WebOSQuickInstall-4.4.0.jar
下载地址
Mon, Aug 13, 2012 现在大多数的Linux发行版都支持Live方式,即可直接运行体验无需安装。
Linux Live又分为LiveCD和LiveUSB,前者是通过光盘(CD/DVD)方式直接运行,后者则是通过USB设备(U盘/移动硬盘)来运行。
以下介绍几款Linux Live USB制作工具,个人推荐Linux Live USB Creator!
注:需要主板BIOS开启USB Boot功能。
Universal USB Installer http://www.pendrivelinux.com
1,选择Linux版本,勾选后面的Download the iso(Optional).则从互联网下载所选镜像。
2,选择本地镜像文件(iso)。
3,选择将要写入的USB设备,勾选Show all Drives可以看到所有本地磁盘,需要写入移动硬盘就需要勾选此项。
UNetbootin http://unetbootin.sourceforge.net
1,选择镜像源,从网络下载或者本地iso文件
2,在类型中选择usb设备或者硬盘,然后在驱动器栏选择具体的盘符。
LinuxLive USB Creator http://www.linuxliveusb.com/
1,选择需要写入的USB设备
2,选择安装源(ISO文件、光驱、网路下载)
Image Writer for Microsoft Windows (Win32DiskImager) https://launchpad.net/win32-image-writer
这个操作相对很简单,并且只单一的适用于img镜像文件,如Meego就是采用这种发行方式
万能的dd
最喜欢这个方法了! 使用lsblk查看u盘设备名,如/dev/sdb,例如镜像文件名为linux.iso,使用以下命令将镜像文件写入U盘
#dd if=linux.iso of=/dev/sdb
Mon, Jun 18, 2012 越狱后的ios设备cydia为必装平台,但是在软件源管理中,大家可能会发现一些源通过cydia无法编辑,比如Cydia/Telesphoreo。
我现在入手一部iPhone 4 CDMA版,通过OTA写号使用。在安装sbsettings的时候,一直提示size mismatch而未能安装成功。网上看了看大家的经历,这样的问题最终定位都是某个软件源不匹配造成,试着删除或者更新就可以解决。
但是我发现机子买回来,里面有两个源是无法编辑的,一个是上面提到的Cydia/Telesphoreo,另一个就是维维网的源。经过我在cydia下编辑删除,试遍了其他的源的删除,但都是不可以成功安装sbsettings。于是我觉得应该是剩下的那两个不可编辑源的问题,由于Cydia/Telesphoreo是Cydia初始安装的源,应该不会有问题,那就需要编辑删除维维网的源了,但是在cydia的源管理下它是不可编辑的。
最后让我找到了办法,既然在cydia下不可以编辑,那么在ssh下呢,只要找到该源的文件,那就可以编辑了,经过判断查找,最终定位到/private/etc/apt/sources.list.d/
目录,在该目录下存放着一些软件源文件(.list)。因为ios采用和debian相同的软件管理软件apt-get,那么他的软件源管理方式应该类似。基于以上经验,最终定位到了/private/etc/apt/sources.list.d/
目录。
具体解决步骤如下:
进入到/private/etc/apt/sources.list.d/
目录,将里面除了cydia.list文件,其他的全部删除。然后编辑cydia.list文件,只留下一行deb http://apt.saurik.com/
即可,保存之。
手机上打开cydia,重新刷新软件源。然后按需添加需要的第三方源。
至于如何编辑cydia目录,一般可以使用itools等软件,但是这样比较繁琐。简单直接的方法是通过ssh连接手机进行操作,可参考通过SSH连接IOS设备
aPhone:~ root# cd /private/etc/apt/sources.list.d/
aPhone:/private/etc/apt/sources.list.d root# ls -l
total 24
-rwxr-xr-x 1 root wheel 259 May 25 23:01 appvv.list*
-rw-r--r-- 1 root wheel 357 Jun 16 13:59 cydia.list
-rw-r--r-- 1 root wheel 227 May 25 23:01 saurik.list
aPhone:/private/etc/apt/sources.list.d root# cat cydia.list
deb http://apt.saurik.com/ ios/690.10 main
deb http://apt.178.com/ ./
deb http://download.voicecloud.cn/cydia/ ./
deb http://cydia.zodttd.com/repo/cydia/ stable main
deb http://repo666.ultrasn0w.com/ ./
deb http://mi.baidu.com/ ./
deb http://apt.thebigboss.org/repofiles/cydia/ stable main
deb http://apt.modmyi.com/ stable main
deb http://apt.25pp.com/ ./
Mon, May 28, 2012 对于webos系统,我是由衷的赞美,但是相应的硬件确实有待商榷。
去年就入手了一部HP Veer 4G,体验了一个星期就转手了,因为我手中已经有了HP Touchpad。
前几天朋友再次邮寄Veer给我,自己玩不转,也不想玩了,所以让给我倒腾去吧。拿到手第一感觉就是,这货儿也太不爱惜了,机子用的就没法看,好在屏幕还贴膜着,要不更不知道会咋样。
拿到手的机子是商家当时发货时的系统,被搞的乌七八糟,于是重新找rom下载之。
以前自己用的那个感觉刷原厂rom就很好,但是现在想试着找找看有没有不错的第三方rom,煮机网看了下,发现现在有个stay版的,看起来做的确实不错,于是下载安装之。
刷机时由于懒惰,用了一个一键清除工具,没有使用系统自带的擦除功能,导致存储上出了问题,u盘功能不能使用了。想着不用管重新刷过就是,没想到碰到了从来没有过的12%卡死问题,刷了N多次还是不能过12%。
网上看了看一些经验,像重新安装驱动,换一台电脑试试等等,都没有用。
最后在webos-internals.org上找到了方法,地址在这里http://www.webos-internals.org/wiki/How_To_Recover ,里面列出了几个不能正常recovery的实例,参考里面的Doctor disconnects at 8%条目,就可以解决刷机12%的问题。
从里面说明来看,造成这些问题的主要原因就是存储问题,所以可能是由于我使用了一键清除工具的原因。
主要步骤如下:
1,重启手机,进入到recovery模式下(Power+音量上)
2,使用novacom刷入uImage
#novacom boot mem://< nova-installer-image-broadway.uImage
其中的uImage文件,可以从官网的rom中提取,下载.tar格式的rom文件,用7zip打开
3,使用novaterm连接系统,进入cli,重新修复存储系统
#lvm.static vgscan --ignorelockingfailure
#lvm.static vgchange -ay --ignorelockingfailure
#mkdosfs -f 1 -s 64 /dev/store/media
Windows下novaterm的目录为C:\Program Files\Palm Incterminal\novaterm.bat
完成以上步骤,就可以重启进入recovery重新刷机了。
Thu, Apr 26, 2012 朋友间距离太近,就少了应有的礼貌,但如果距离太远了,就会多了不必要的客气。
我也搞不清自己属于哪个,可能居中靠前点吧。对于熟识的朋友,我很容易和其达到厮混的状态,会下意识的匿藏彼此的隔阂(很小的那种)。相对而言,如果许久不曾联系,或者相处的距离较远的朋友们,那么我们之间就多了更多的客气,有时这种客气让我自己的都厌恶,总觉得是小小的虚伪,但现况就是这样,它存在既是有理。
突然有以上的感触,是因为听《现象七十二变》,罗大佑的词写的确实不错,佩服!
在这个五千年的悠久历史里面
成功与失败多少都有一点
……
就像我看到文明车辆横冲直撞
我不懂大家心中作何感想
……
眼看着高楼盖得越来越高
我们的人情味却越来越薄
朋友之间越来越有礼貌
只因为大家见面越来越少
…….
就像彩色的电视变得更加花俏
能辨别黑白的人越来越少
……
但是生活不能像在演戏
你戴着面具如何面对自己
或许你将会真的发现一些奇迹
只要你抛开一些面子问题
Mon, Apr 23, 2012 最近一直在赶着看《明朝那些事儿》,其实这个以前断断续续看了不少了,不过有丢下时间很长,最近又从头来过,已经看到崇祯中期了,用文中的话来说,大明公司已经没救了,倒闭只是时间问题。
看这本书给我的感觉很深,最重要的一点是“运动是普遍存在的”,呵呵,这个听起来好像和《明》不搭边,不过我最感触的想法就是这个。看着明史上那些沉沉浮浮,有光辉有龌龊,但是这些对于我来说,那仅仅是一件事儿,他们已经随着时间而远去,现在仅作为茶余饭后的谈资。《明》中对于很多人物都作了中肯的评价,不能说是完全的,因为作者也不打包票。纵观这些作者口中的“猛人”,他们都是有过光辉的。作者在形容他们时,不吝的使用了大量程度副词,这样的描述给人物以入木三分的刻画,让他们的形象突出很明显。回头想想整本书,完全是一种以“人物连环画”的方式铺开,各个人物的时间段错落有致,偶尔还有几个追溯性的故事。
回到标题,请不要吝啬您的程度副词。我们在平时的陈述时,对于人物或者事物的评价,尽可能的搭配以贴切的形容词,这样的陈述会很靠谱。但是,同样请在贴切的形容词前加上最适合的程度副词,这样会让你的陈述入读者三分,会最大的渲染您对事物或者人物的感情,让读者最大程度的身同体会。比如,你说一件事不靠谱,但是仅仅不靠谱有点贫乏,无以表达最真看法,你可以加上“十分”,十分不靠谱,这样听起来就够味儿了。
其实,我要说的意思是有倾向性的,完整的意思是“当你在赞美的时候,不要吝啬您的程度副词”。对于词性来言,我是比较倾向于褒义词的。我觉得,越多的褒义词会使我们的生活更加美好(注意这也是褒义词),所以在平时的言谈中,我不喜欢那些让人们产生不好情绪的词条,因为人们的情绪是互相渲染的。如果您觉得自身的渲染力比较强,那么请不要吝啬的您的赞美,让更多的赞美充斥着我们的生活,这是一种美好的享受。
Sun, Apr 22, 2012 首页点击左上角网络区域
进入网络设置
在网络设置中,可以选择wifi或者GPRS链接
点击GPRS的话,将使用运营商的数据业务,点击wifi节点名的话,会出现输入密码提示,输入密码连接完成
Thu, Apr 19, 2012 https://learnsql.cn
误删除了vps上的phpmyadmin,不得已翻阅了半天mysql指南,以下是一些mysql使用实例
连接管理 链接数据库
mysql -h localhost -u root -p
退出数据库
mysql>quit;
数据库管理 查看数据库
mysql>show databases;
建立数据库
mysql>create database name;
备份(导出)数据库
mysqldump -u username -p database > backup_db.sql
还原(导入)数据库
mysql -u username -p database < backup_db.sql
用户管理 添加用户
mysql>grant all privileges on databasename.* 'username'@'localhost' identified by 'userpassword' with grant optiton;
删除用户
mysql>drop user username;
修改密码
mysql>set password for 'username'@'localhost' = password('userpassword');
一个创建数据库并添加专用用户的示例:
Sun, Apr 8, 2012 什么是9G-home?
在linux中/home为用户主用目录,N900默认为/home分配的空间大概1.9G左右,而为了刷Android等第三方系统,我们需要更大的/home来存放文件,所以改变/home目录大小称之为XG-home(x有3/5/6/9等)
刷9G Home
下载9G-home刷机包:http://pan.baidu.com/share/link?shareid=1527292529&uk=1493434283
打开CMD,进入到flasher目录,输入如下命令(具体依照本机目录输入):
flasher-3.5.exe -F 9ghomeemmc.bin -f
出现提示Suitable USB device not found,waiting. 时,关闭手机,按住U键连接数据线,等待cmd提示开始写入时可放开U键,等待提示完成。 不要开机,切记!
接着重新刷Rom文件,即COMBIND那个文件。继续别开机!
N900超频
接下来刷入超频包,以下是几个不同等级的超频包
zImage-700mhz zImage-750mhz zImage-800mhz zImage-850mhz-450dsp zImage-900mhz zImage-900mhz-500dsp zImage-930mhz zImage-930mhz-500dsp zImage-950mhz zImage-950mhz-500dsp 下载地址:http://pan.baidu.com/share/link?shareid=1567324549&uk=1493434283
这里以超750MHz为例
flasher-3.5.exe -k zImage-750mhz -f
等到提示完成后,开机即可。 给大家贴出前后两张对比图
Sat, Apr 7, 2012 感谢 NITDroid Project 的辛苦工作,使 N900 更加的神机!
使用Nitdroid刷入Android后,系统运行在/home目录,所以/home必须空间足够,N900默认的为 1.9G是不可以的,需要增大/home的容量,推荐参考N900超频和刷9G-home,将/home增大到9G
n900添加软件源 确保已添加以下软件源,一般前四个系统已经添加,没有的自己添加。
名称:Nokia Applications
网址:https://downloads.maemo.nokia.com/fremantle/ssu/apps/
发布:./
组件:空
名称:Nokia System Software Updats
网址:https://downloads.maemo.nokia.com/fremantle/ssu/mr0
发布:./
组件:空
名称:Ovi
网址:https://downloads.maemo.nokia.com/fremantle1.2/ovi/
发布:./
组件:空
名称:maemo.org
网址:http://repository.maemo.ory/extras/
发布:frmantle−1.3
组件:free non−free
名称:Fremantle Extras−testing
网址:http://repository.maemo.org/extras-testing/
发布:fremantle
组件:free non−free
名称:Fremantle Extras−devel
网址:http://repository.maemo.org/extras-devel/
发布:fremantle
组件:free non−free
n900安装android 下载以下两个文件
nitdroid官网http://downloads.nitdroid.com/e-yes/ 在这里,如发现更新可自行下载最新版本
将两个文件拷贝至USB连接模式下的根目录,即 /home/user/MyDocs/
建议通过SSH连接N900,在PC上使用Putty 操作,要么就在手机上运行x-terminal
# apt-get install nitdroid-installer
# mkdir /and
# mount /home /and
# cd /and
# tar xvf /home/user/MyDocs/N12_UMay.tar #注意这里已经是.tar格式
# dpkg -i /home/user/MyDocs/nitdroid-kernel-2.6.28-07_7-rc7_armel.deb
# reboot
重启后会出现多系统选择,1为Maemo,2为Nitdroid
Mon, Apr 2, 2012 N900采用的maemo是基于debian的linux系统,通过自带的application manager管理软件时,操作体验还有待改进,所以这里推荐通过ssh连接,使用cli来进行相应操作。
需要在手机端安装OpenSSH来开启SSH服务,在application manager的system目录下,找到openssh Client and Server 安装,当然如果你不需要在手机端进行SSH登陆的话,那可以只安装server即可。
安装时会提示输入密码,这个就是以后连接手机SSH的服务密码。
安装完成后SSH server会默认启动,现在你可以通过wifi连接局域网,然后需要知道自己当前的IP(可以通过Tp-link后台查看,或者手机端安装Personal IP Address 开显示),再推荐安装SSH Status and Swither ,可以在手机的status显示SSH状态,并管理SSH server启动/停止。
然后推荐使用Putty进行链接,在CLI模式下管理软件,可以在http://maemo.org/ 上查看软件目录以及简介,通过apt-get install
命令来安装,以下为一些apt-get使用简介
apt-get使用方法 apt-get [ 选项] 命令
apt-get [ 选项] install|remove pkg1 [ pkg2 ...]
apt-get [ 选项] source pkg1 [ pkg2 ...]
命令:
update - 更新软件列表
upgrade - 升级软件
install - 安装软件( pkg 是软件名)
remove - 删除软件
autoremove - 自动删除一些无效的软件
purge - 删除软件并清理配置
source - 下载软件源码
build-dep - 配置软件源码的build-dependencies
dist-upgrade - 升级系统
clean - 清除建立的软件包列表
autoclean - 同上
check - 校验软件包是否有异常
选项:
Mon, Apr 2, 2012 首先,需要iPhone已经越狱,并且安装了OpenSSH
脚本文件下载:https://unixetc.com/res/langpack2.2.zip ,解压出脚本文件langpack2.2.sh
通过itools或者其他管理软件,将脚本文件复制到/var/mobile目录
通过ssh连接手机 ,进入/var/mobile目录开始操作
注意:此时请关闭手机的定时锁屏功能,以防意外终止操作而失败!!
#chmod 777 langpack2.2.sh //为脚本添加执行权限
#./langpack2.2.sh //运行脚本
开始搜索语言包文件,等待。。。。。
搜索到所有语言包后,开始提示是否删除。
根据提示,输入y或者n来确定所要删除的语言包,根据需要筛选。
所有选择完成后,会提示所有将要删除的语言包,再次确认删除与否(y或n),开始删除过程。。。
删除完成后,会提示所删除的语言包数量,并且提示是否删除该脚本文件
注意:进行完以上操作后,建议马上修改SSH密码,以防止感染蠕虫病毒!!
Sat, Mar 31, 2012 Application Manager (软件管理) 打开application manager,首次会自动更新软件列表,然后可以在download目录中按分类安装软件。
通过apt-get在线安装 使用apt-get前提为已经安装了rootsh(可通过第一种方法安装),打开 x terminal
$sudo gainroot /*切换到root帐户*/
apt-get install pkg /*安装pkg*/
apt-get install pkg1,pkg2 /*安装多个软件*/
apt-get remove pkg /*卸载软件*/
apt-get remove –purge pkg /*卸载并清除配置文件*/
apt-get update /*更新软件源*/
apt-get upgrade /*更新软件*/
apt-get dist-upgrade /*更新系统*/
apt-get clean /*清除软件列表以节省空间*/
通过dpkg安装本地软件包(.deb) 可以通过数据线,先将下载的软件包拷贝到机子内,然后使用dpkg来安装
可以在这里http://repository.maemo.org/ 下载官方的.deb包进行安装
Wed, Mar 28, 2012 Nokia N900系统优化脚本,更加省电,操作更加流畅!
脚本下载地址 http://unixetc.com/res/spjqx.tar.gz
使用方法: 通过USB连接手机,将脚本传到磁盘根目录/home/user/MyDocs
,以下操作可以使用Terminal或者SSH连接 电脑进行(Root权限下)
cd /home/user/MyDocs
tar xzvf spjqx.tar.gz
mkdir /wp-content/local/sbin
cp /root/.profile /root/.profile.bak
cp spjqx/.profile_root /root/.profile
cp spjqx/.profile /home/user/
cp spjqx/speedpatch /etc/event.d/
cp spjqx/cgroup_clean /wp-content/local/sbin
chmod +rwx /wp-content/local/sbin/cgroup_clean
rm ./.profile_root
rm ./.profile
rm ./speedpatch
rm ./cgroup_clean
应用transition.ini
文件:
使用theme-customizer cd /home/user/MyDocs
cp spjqx/transitions.ini /opt/theme-customizer
使用系统默认主题 cd /home/user/MyDocs
cp spjqx/transitions.ini /wp-content/share/hildon-desktop/
删除优化脚本 cp /root/.profile.bak /root/.profile
rm /etc/event.d/speedpatch
rm /home/user/.profile
rm /wp-content/local/sbin/cgroup_clean
Fri, Mar 23, 2012 安装LNMP 更新系统
yum check-update
yum update
安装Screen
开始安装Lnmp
screen -S lnmp
wget -c http://soft.vpser.net/lnmp/lnmp0.8.tar.gz //最新版请查阅lnmp官网
tar zxvf lnmp0.8.tar.gz
./lnmp0.8/centos.sh | tee lnmp.log //输出log文件,以备出错时查阅
接下来按照提示设定域名和MysQL密码,程序会自动下载相关程序,而后编译安装
安装PureFTP
按提示输入MySQL和Ftp管理员密码,安装完成后可以通过http://vpsip/ftp/
来登录管理ftp帐号
使用Lnmp 添加虚拟主机
按照提示填入域名、目录、rewrite规则文件,如下所示:
root@buyvm256:~#/root/vhost.sh
=========================================================================
Add Virtual Host for LNMP V0.9 , Written by Licess
=========================================================================
LNMP is a tool to auto-compile & install Nginx+MySQL+PHP on Linux
This script is a tool to add virtual host for nginx
For more information please visit http://www.lnmp.org/
=========================================================================
Please input domain: //添加域名
( Default domain: www.lnmp.org) :unixetc.com
===========================
domain= unixetc.com
===========================
Do you want to add more domain name? ( y/n) //添加更多域名
y
Type domainname,example( bbs.vpser.net forums.vpser.net luntan.vpser.net) :
www.unixetc.com
===========================
domain list= www.unixetc.com
===========================
Please input the directory for the domain:unixetc.com : //网站目录
( Default directory: /home/wwwroot/unixetc.com) :
===========================
Virtual Host Directory= /home/wwwroot/unixetc.com
===========================
===========================
Allow Rewrite rule? ( y/n) //重写规则
===========================
y
Please input the rewrite of programme :
wordpress,discuz,typecho,sablog,dabr rewrite was exist.
( Default rewrite: other) :wordpress //选择重写规则
===========================
You choose rewrite= wordpress
===========================
===========================
Allow access_log? ( y/n) //是否记录log
===========================
n
Press any key to start create virtul host...
然后,登录http://vpsip/ftp/
添加ftp帐号,http://vpsip/phpmyadmin/
编辑数据库
Tue, Mar 20, 2012 一些常用的诺基亚n900快捷键
Ctrl + Backspace:如果在一个程序里,用了后会回到多程序选择画面。 Ctrl + C:复制 Ctrl + V:粘贴 Ctrl + X:剪贴 Ctrl + A:全选 Ctrl + 左箭头:回到第一个字或一句话的最前边 Ctrl + 右箭头:回到最后一个字或一句话的最后边 Ctrl + N:网页浏览器里打开一个新窗口 Ctrl + R:网页浏览器里重读此页 Ctrl + B:网页浏览器里打开一个书签 Ctrl + D:网页浏览器里增加一个书签 Ctrl + 回车:在电子邮件里发送一个邮件 Ctrl + R:在电子邮件里回复一个邮件 Ctrl + Shift(白色上箭头:管大写的)+P:屏幕截图功能(目录/home/user/MyDocs/.images/Screenshots/
) Ctrl + Shift + O:可以启动网页浏览器竖屏功能 Backspace:后退功能,回到前一个浏览页面 Sun, Mar 18, 2012 iPhone安装OpenSSH 首先iPhone已经越狱并且安装了Cydia ,具体教程可以Google
打开Cydia,管理-软件源,点击右上角编辑,然后点击左上角添加,增加178的软件源http://apt.178.com
添加后Cydia会自动更新软件包,然后在搜索里使用openssh为关键词进行搜索安装。
默认有root和mobile两个用户名,密码均为alpine
手机端SSH管理 在Cydia上搜索安装iSSH 安装
修改SSH密码 建议修改原始密码
passwd root
passwd mobile
PC通过SSH连接iPhone iPhone接入wifi网络,在电脑端使用Putty或者WinSCP来链接iPhone
USB连接PC,下载iTools,打开iTools点击手机管理栏的最底下高级功能 ,打开ssh通道 。下来PC端可以通过ip:127.0.0.1来连接iPhone了。
Sun, Jul 26, 1987 UNIX的/etc目录 早期系统/bin
是用来存放程序(可执行二进制文件)的,然后有了/dev
用来存放设备文件,和/lib
用来存放库文件。/usr
目录很早也有了,首先用来存放用户数据,后来也放一些用户级的/bin
和/lib
,man
形式的用户手册也存放在此。
随着系统越来越庞大,一些无法进行归类的文件就放到了/etc
目录,后来慢慢的大家将/etc
目录用来存放一些系统级的配置文件,现代unix系统上,几乎所有的配置文件都在/etc
目录,etc 是et cetera
的缩写。
I assure you that the original contents of /etc were the “et cetera” that didn’t seem to fit elsewhere. Other variants might do their own etymologies differently.
Regards,
Dennis
Dennis: Dennis Richie
小Tips git通过ssh访问远程repo git cloe ssh://user@host:port/repo.git
编辑完 /etc/default/grub 后,用grub-mkconfig -o /boot/grub/grub.cfg
更新配置。 从大到小显示目录内容 du -s * | sort -nr
创建固定大小文件 dd if=/dev/zero of=100M.test bs=100M count=1
Notepad++删除包含关键字的行 .*delete.*
强制复制所有内容 \cp -rf * target/
将unixetc.txt中的AAA替换为BBB sed -i -e 's/AAA/BBB/g' unixetc.txt
将当前目录下所有html文件内的AAA替换为BBB find ./ -name "*.html" -exec grep "AAA" {} \; -exec sed -i 's/AAA/BBB/g' {} \;
删除unixetc.txt中的第3-17行内容 sed -i -e '3,17d' unixetc.txt
Ubuntu安装多媒体扩展 sudo apt install ubuntu-restricted-extras
Ubuntu卸载snapd sudo apt autoremove --purge snapd
GIT配置代理 git config --global http.proxy socks5://127.0.0.1:20170
socks5为代理协议,可配置http/https/socks5等。 pip设置国内源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip临时使用国内源自升级 python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
SCP下载远程文件 scp -P port user@ip:/path/file ./
git卡writing objects,可以将远端地址改为ssh方式 git remote set-url origin [email protected] :username/repo.git
git备份归档 git archive --format=zip --output=repobak_$(date +%Y-%m-%d).zip master
PowerShell激活Windows&Office irm https://get.activated.win | iex
国内可用OSM tile地址https://tile.osm.org/{z}/{x}/{y}.png
更换linux软件源 bash <(curl -sSL https://linuxmirrors.cn/main.sh)
ZeroOmega https://github.com/zero-peak/ZeroOmega
Sun, Jul 26, 1987 饱学、无知、寡言、好色
联系 dotmd [at] outlook [dot] com
链接 Mon, Jan 1, 0001
archivesMon, Jan 1, 0001