Debian10中sudo配置

Debian10中/etc/sudoers中提示了需要通过visudo来编辑该文件,如下:

This file MUST be edited with the ‘visudo’ command as root.

但奇葩的是系统中没有visudo命令,apt搜索也搜不到,-_-!

因此只能通过以下方法来编辑:

#echo "alair  ALL=(ALL:ALL) ALL" >> /etc/sudoers

保存后用户alair就可以使用sudo命令来进行root权限操作了。

Ubuntu/Widnows双系统时间不一致解决方法

安装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时区),即上海的时间。

  • 旧版Ubuntu(Ubuntu10左右):

编辑/etc/default/rcSUTC=yes改成UTC=no

  • 新版Ubuntu(Ubuntu16.04):

新版Ubuntu使用systemd作为管理系统,时间由timedatectl来管理,以下为修改方法:

$sudo timedatectl set-local-rtc 1

重启完成。

CentOS7安装ffsend快速分享文件

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

linux中转换图片为webp格式

安装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添加以下内容:

export PATH=$PATH:~/libwebp-1.0.2-linux-x86-64/bin

cwebp语法说明:

cwebp [options] input_file -o output_file.webp

以下为转换实例:

cwebp -q 50 -lossless picture.png -o picture_lossless.webp
cwebp -q 70 picture_with_alpha.png -o picture_with_alpha.webp
cwebp -sns 70 -f 50 -size 60000 picture.png -o picture.webp
cwebp -o picture.webp -- ---picture.png

Termux开启扩展快捷键

打开Termux,从屏幕左边缘向右滑动,打开抽屉菜单,然后长按KEYBOARD,即可打开扩展快捷键。

Ubuntu中v2ray客户端配置实例

首先使用bash <(curl -L -s https://install.direct/go.sh)来快捷安装v2ray,如下:

root@vm:~# bash <(curl -L -s https://install.direct/go.sh)
Installing V2Ray v4.18.0 on x86_64
Downloading V2Ray: https://github.com/v2ray/v2ray-core/releases/download/v4.18.0/v2ray-linux-64.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   608    0   608    0     0    581      0 --:--:--  0:00:01 --:--:--   581
100 10.5M  100 10.5M    0     0   172k      0  0:01:02  0:01:02 --:--:--  194k
Extracting V2Ray package to /tmp/v2ray.
Archive:  /tmp/v2ray/v2ray.zip
  inflating: /tmp/v2ray/config.json  
   creating: /tmp/v2ray/doc/
  inflating: /tmp/v2ray/doc/readme.md  
  inflating: /tmp/v2ray/geoip.dat    
  inflating: /tmp/v2ray/geosite.dat  
   creating: /tmp/v2ray/systemd/
  inflating: /tmp/v2ray/systemd/v2ray.service  
   creating: /tmp/v2ray/systemv/
  inflating: /tmp/v2ray/systemv/v2ray  
  inflating: /tmp/v2ray/v2ctl        
 extracting: /tmp/v2ray/v2ctl.sig    
  inflating: /tmp/v2ray/v2ray        
 extracting: /tmp/v2ray/v2ray.sig    
  inflating: /tmp/v2ray/vpoint_socks_vmess.json  
  inflating: /tmp/v2ray/vpoint_vmess_freedom.json  
PORT:51332
UUID:7378f6a4-790a-11e9-8f9e-2a86e4085a59
Created symlink /etc/systemd/system/multi-user.target.wants/v2ray.service → /etc/systemd/system/v2ray.service.
V2Ray v4.18.0 is installed.

然后编辑/etc/v2ray/config.json文件,如下设置:

{
  "inbounds": [{
    "port": 1080,  // SOCKS 代理端口,在浏览器中需配置代理并指向这个端口
    "listen": "127.0.0.1",
    "protocol": "socks",
    "settings": {
      "udp": true
    }
  }],
  "outbounds": [{
    "protocol": "vmess",
    "settings": {
      "vnext": [{
        "address": "server", // 服务器地址,请修改为你自己的服务器 ip 或域名
        "port": 10086,  // 服务器端口
        "users": [{ "id": "b831381d-6324-4d53-ad4f-8cda48b30811" }]
      }]
    }
  },{
    "protocol": "freedom",
    "tag": "direct",
    "settings": {}
  }],
  "routing": {
    "domainStrategy": "IPOnDemand",
    "rules": [{
      "type": "field",
      "ip": ["geoip:private"],
      "outboundTag": "direct"
    }]
  }
}

编辑完成后保存,重新启动v2ray

root@vm:~# service v2ray stop
root@vm:~# service v2ray start
root@vm:~# service v2ray status
● v2ray.service - V2Ray Service
   Loaded: loaded (/etc/systemd/system/v2ray.service; enabled; vendor preset: en
   Active: active (running) since Sat 2019-05-18 08:58:43 CST; 5s ago
 Main PID: 8025 (v2ray)
    Tasks: 7 (limit: 2311)
   CGroup: /system.slice/v2ray.service
           └─8025 /usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

5月 18 08:58:43 vm systemd[1]: Started V2Ray Service.
5月 18 08:58:43 vm v2ray[8025]: V2Ray 4.18.0 (Po) 20190228
5月 18 08:58:43 vm v2ray[8025]: A unified platform for anti-censorship.
5月 18 08:58:44 vm v2ray[8025]: 2019/05/18 08:58:44 [Warning] v2ray.com/core: V2

然后Firefox设置代理如下:

设置-常规-网络设置 勾选手动代理配置,在SOCKS主机中填入127.0.0.1本地IP和端口,协议勾选SOCKS_v5 建议勾选使用SOCKSv5时代理DNS查询

20190518090412.webp

VMware安装Alpine Linux实例

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虚拟机软件,新建虚拟机,配置如下:

小Q截图-20190514141914.png

下载AlpineLinux镜像文件alpine-standard-3.9.4-x86_64.iso,下载地址: https://www.alpinelinux.org/downloads/ 设置虚拟机光驱挂载镜像文件alpine-standard-3.9.4-x86_64.iso

开始安装Alpine Linux

启动虚拟机,开始从光驱引导系统,进入系统后,输入root登录,然后输入setup-alpine开始启动安装程序。

小Q截图-20190514142253.png

下来设置键盘布局(us)、主机名(vm)以及网络配置:

小Q截图-20190514142520.png

接着设置时区(timezone)

小Q截图-20190514142650.png

小Q截图-20190514142733.png

然后是网络代理和网络时间同步(NTP)设置

小Q截图-20190514142824.png

接下里选择软件源镜像(mirrors),我选择了兰州大学的镜像:

小Q截图-20190514142926.png

然后选择SSH服务程序,设置安装磁盘以及使用方式,完成安装后会提示Installation is complete. Please reboot.至此安装完成。

小Q截图-20190514143121.png

安装Awesome桌面

添加普通用户

#adduser alair

小Q截图-20190514143635.png

启用Community Repository

vi /etc/apk/repositories编辑软件源配置,去掉其中Community Repository前面的注释符(#)

小Q截图-20190514143853.png

apk update&&apk upgrade更新软件。

安装awesome

使用以下命令安装awesome、lua、feh和lxterminal

#apk add awesome lua feh lxterminal

其他桌面应用可以按需添加,比如firefox, gnumeric, xchat, gimp, pidgin, geany, vim等。

设置Xorg服务

#setup-xorg-base

启动Awesome桌面

安装sudo,配置普通用户权限

#apk add sudo
#visudo

添加如下内容

alair ALL=(ALL) ALL

退出当前root用户,用普通用户登录。

$ echo 'awesome' >> /home/alair/.xinitrc
$ mkdir /home/alair/.config
$ cp -r /etc/xdg/awesome  /home/alair/.config
$ vi /home/alair/.config/awesome/rc.lua

rc.lua文件中搜索terminal行,将其中的xterm替换为lxterminal

小Q截图-20190514145228.png

然后通过以下命令启动Awesome桌面

$startx

微信截图_20190514150556.png

Mplayer和N900镜头

诺基亚N900有前后两个镜头,前置640x480(0.3M)后置848*480(0.4M),这两个镜头都是V4L2设备,分别对应/dev/video0/dev/video1,因此可以方便的通过mplayergstreamer;来访问它们。

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

NokiaN900刷机方法

刷机工具以及固件文件下再地址见文章末尾。

首先安装刷机工具maemo flasher,然后下载固件,固件分以下两个文件,下载地址http://n900.ciux.org

  • 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操作实例,以供参考。

alair@zb14:~/下载$ sudo flasher-3.5 -F RX-51_2009SE_20.2010.36-2_PR_COMBINED_MR0_ARM.bin -f -R
flasher v2.5.2 (Oct 21 2009)

SW version in image: RX-51_2009SE_20.2010.36-2_PR_MR0
Image 'kernel', size 1705 kB
    Version 2.6.28-20103103+0m5
Image 'rootfs', size 185728 kB
    Version RX-51_2009SE_20.2010.36-2_PR_MR0
Image 'cmt-2nd', size 81408 bytes
    Version BB5_09.36
Image 'cmt-algo', size 519808 bytes
    Version BB5_09.36
Image 'cmt-mcusw', size 5826 kB
    Version rx51_ICPR82_10w08
Image '2nd', size 14720 bytes
    Valid for RX-51: 2217, 2218, 2219, 2220, 2120
    Version 1.4.14.9+0m5
Image 'xloader', size 14848 bytes
    Valid for RX-51: 2217, 2218, 2219, 2220, 2120
    Version 1.4.14.9+0m5
Image 'secondary', size 109440 bytes
    Valid for RX-51: 2217, 2218, 2219, 2220, 2120
    Version 1.4.14.9+0m5
Image '2nd', size 14720 bytes
    Valid for RX-51: 2101, 2102, 2103
    Version 1.4.14.9+0m5
Image 'xloader', size 14848 bytes
    Valid for RX-51: 2101, 2102, 2103
    Version 1.4.14.9+0m5
Image 'secondary', size 109440 bytes
    Valid for RX-51: 2101, 2102, 2103
    Version 1.4.14.9+0m5
Image '2nd', size 14848 bytes
    Valid for RX-51: 2307, 2308, 2309, 2310
    Version 1.4.14.9+0m5
Image 'xloader', size 14848 bytes
    Valid for RX-51: 2307, 2308, 2309, 2310
    Version 1.4.14.9+0m5
Image 'secondary', size 109440 bytes
    Valid for RX-51: 2307, 2308, 2309, 2310
    Version 1.4.14.9+0m5
Image '2nd', size 14848 bytes
    Valid for RX-51: 2407, 2408, 2409, 2410
    Version 1.4.14.9+0m5
Image 'xloader', size 14848 bytes
    Valid for RX-51: 2407, 2408, 2409, 2410
    Version 1.4.14.9+0m5
Image 'secondary', size 109440 bytes
    Valid for RX-51: 2407, 2408, 2409, 2410
    Version 1.4.14.9+0m5
Image '2nd', size 14848 bytes
    Valid for RX-51: 2301, 2302, 2303, 2304, 2305, 2306
    Version 1.4.14.9+0m5
Image 'xloader', size 14848 bytes
    Valid for RX-51: 2301, 2302, 2303, 2304, 2305, 2306
    Version 1.4.14.9+0m5
Image 'secondary', size 109440 bytes
    Valid for RX-51: 2301, 2302, 2303, 2304, 2305, 2306
    Version 1.4.14.9+0m5
Image '2nd', size 14848 bytes
    Valid for RX-51: 2401, 2402, 2403, 2404, 2405, 2406
    Version 1.4.14.9+0m5
Image 'xloader', size 14848 bytes
    Valid for RX-51: 2401, 2402, 2403, 2404, 2405, 2406
    Version 1.4.14.9+0m5
Image 'secondary', size 109440 bytes
    Valid for RX-51: 2401, 2402, 2403, 2404, 2405, 2406
    Version 1.4.14.9+0m5
Image '2nd', size 14720 bytes
    Valid for RX-51: 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119
    Version 1.4.14.9+0m5
Image 'xloader', size 14848 bytes
    Valid for RX-51: 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119
    Version 1.4.14.9+0m5
Image 'secondary', size 109440 bytes
    Valid for RX-51: 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119
    Version 1.4.14.9+0m5
Image '2nd', size 14848 bytes
    Valid for RX-51: 2501, 2502, 2503, 2504, 2505, 2506
    Version 1.4.14.9+0m5
Image 'xloader', size 14848 bytes
    Valid for RX-51: 2501, 2502, 2503, 2504, 2505, 2506
    Version 1.4.14.9+0m5
Image 'secondary', size 109440 bytes
    Valid for RX-51: 2501, 2502, 2503, 2504, 2505, 2506
    Version 1.4.14.9+0m5
Image '2nd', size 14848 bytes
    Valid for RX-51: 2607, 2608, 2609, 2610
    Version 1.4.14.9+0m5
Image 'xloader', size 14848 bytes
    Valid for RX-51: 2607, 2608, 2609, 2610
    Version 1.4.14.9+0m5
Image 'secondary', size 109440 bytes
    Valid for RX-51: 2607, 2608, 2609, 2610
    Version 1.4.14.9+0m5
Image '2nd', size 14848 bytes
    Valid for RX-51: 2507, 2508, 2509, 2510
    Version 1.4.14.9+0m5
Image 'xloader', size 14848 bytes
    Valid for RX-51: 2507, 2508, 2509, 2510
    Version 1.4.14.9+0m5
Image 'secondary', size 109440 bytes
    Valid for RX-51: 2507, 2508, 2509, 2510
    Version 1.4.14.9+0m5
Image '2nd', size 14720 bytes
    Valid for RX-51: 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216
    Version 1.4.14.9+0m5
Image 'xloader', size 14848 bytes
    Valid for RX-51: 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216
    Version 1.4.14.9+0m5
Image 'secondary', size 109440 bytes
    Valid for RX-51: 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216
    Version 1.4.14.9+0m5
Image '2nd', size 14848 bytes
    Valid for RX-51: 2601, 2602, 2603, 2604, 2605, 2606
    Version 1.4.14.9+0m5
Image 'xloader', size 14848 bytes
    Valid for RX-51: 2601, 2602, 2603, 2604, 2605, 2606
    Version 1.4.14.9+0m5
Image 'secondary', size 109440 bytes
    Valid for RX-51: 2601, 2602, 2603, 2604, 2605, 2606
    Version 1.4.14.9+0m5
Suitable USB device not found, waiting.
USB device found found at bus 002, device address 016.
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
Sending xloader image (14 kB)...
100% (14 of 14 kB, avg. 3625 kB/s)
Sending secondary image (106 kB)...
100% (106 of 106 kB, avg. 15267 kB/s)
Flashing bootloader... done.
Sending cmt-2nd image (79 kB)...
100% (79 of 79 kB, avg. 13250 kB/s)
Sending cmt-algo image (507 kB)...
100% (507 of 507 kB, avg. 29860 kB/s)
Sending cmt-mcusw image (5826 kB)...
100% (5826 of 5826 kB, avg. 36645 kB/s)
Flashing cmt-mcusw... done.
Sending kernel image (1705 kB)...
100% (1705 of 1705 kB, avg. 6742 kB/s)
Flashing kernel... done.
Sending and flashing rootfs image (185728 kB)...
100% (185728 of 185728 kB, avg. 16144 kB/s)
Finishing flashing... done
CMT flashed successfully

刷机完成后,手机自动重启。