广告

本站里的文章大部分经过自行整理与测试

2017年4月24日星期一

Linux - VirtualBox - 启动 USB


Linux 版 VirtualBox 启动 USB 的方法:

$ sudo adduser USERNAME vboxusers

重启动

然后在 Settings - USB - Adds new USB filter..

2017年4月13日星期四

Linux - Firefox 强制 GPU 加速

about:support

Graphics

Features

Compositing OpenGL
Asynchronous Pan/Zoom none
WebGL Renderer NVIDIA Corporation -- GeForce GT 640M/PCIe/SSE2
WebGL2 Renderer NVIDIA Corporation -- GeForce GT 640M/PCIe/SSE2
Hardware H264 Decoding No
Audio Backend pulse

GPU #1

Active Yes
Description NVIDIA Corporation -- GeForce GT 640M/PCIe/SSE2
Vendor ID NVIDIA Corporation
Device ID GeForce GT 640M/PCIe/SSE2
Driver Version 4.5.0 NVIDIA 375.39

Diagnostics

AzureCanvasAccelerated 0
AzureCanvasBackend skia
AzureContentBackend skia
AzureFallbackCanvasBackend none
CairoUseXRender 0

1) 将打开 Firefox 连接添加系数

$ gedit /home/username/.local/share/applications/firefox.desktop

Exec=env MOZ_USE_OMTC=1 firefox

2) 其它设置

about:config

gfx.xrender.enabled=false
layers.acceleration.disabled=false

layers.acceleration.force-enabled=true
layers.async-video.enabled=true
layers.offmainthreadcomposition.async-animations=true
layers.offmainthreadcomposition.enabled=true
layers.offmainthreadcomposition.testing.enabled=true
webgl.force-enabled=true

2017年4月12日星期三

Linux - Google Chrome - GPU 全功能打开

以下是将 Google Chrome 所有有关 GPU 功能打开 

chrome://gpu/

Graphics Feature Status
  • Canvas: Hardware accelerated
  • CheckerImaging: Hardware accelerated
  • Flash: Hardware accelerated
  • Flash Stage3D: Hardware accelerated
  • Flash Stage3D Baseline profile: Hardware accelerated
  • Compositing: Hardware accelerated
  • Multiple Raster Threads: Enabled
  • Native GpuMemoryBuffers: Hardware accelerated
  • Rasterization: Hardware accelerated
  • Video Decode: Hardware accelerated
  • Video Encode: Hardware accelerated
  • VPx Video Decode: Hardware accelerated
  • WebGL: Hardware accelerated
  • WebGL2: Hardware accelerated
$ gedit /home/username/.local/share/applications/google-chrome.desktop

$ sudo gedit /usr/share/applications/google-chrome.desktop

Exec=/usr/bin/google-chrome-stable %U --ignore-gpu-blacklist --enable-gpu-rasterization --enable-native-gpu-memory-buffers
 --enable-features="CheckerImaging"

2017年4月10日星期一

Ubuntu / Linux Mint - 重置回初始状态


重置 Ubuntu / Linux Mint 回初始状态

https://github.com/gaining/Resetter

去下载 deb 安装..

$ sudo dpkg -i resetter_0.0.6-beta_all.deb

Ubuntu - Android App 转换 + ARChon 运行

1) 安装 Chrome + ARChon

http://jasonmun.blogspot.my/2017/03/linux-chrome-archon-android-app.html

2) 依赖库

$ sudo apt-get install g++ lib32stdc++6

3) node.js 编译与安装

https://nodejs.org/en/download/

$ wget https://nodejs.org/dist/v6.10.2/node-v6.10.2.tar.gz
$ tar -zxvf node-v6.10.2.tar.gz
$ cd node-v6.10.2
$ sudo ./configure
$ sudo make
$ sudo make install

4) 安装 chromeos-apk

$ sudo npm install chromeos-apk -g

5) 下载 apk, 利用 chromeos-apk 转换 apk..
会生成文件夹 com.candydroid.breakblock.android

https://apkpure.com/cn/break-the-bricks/com.candydroid.breakblock/download?from=details

$ mv 'Break the Bricks_v2.8_apkpure.com.apk' Bricks_v2.8_apkpure.com.apk
$ chromeos-apk Bricks_v2.8_apkpure.com.apk

6) 转换后, 在 messages.json 里加入名字

$ gedit com.candydroid.breakblock.android/_locales/en/messages.json

{
  "appNotSupported": {
        "description": "Message displayed when the app is not supported.",
        "message": "This app is incompatible with your device. Check to make sure other Android apps work for you from the Chrome Web Store"
  },
  "extName": {
        "description": "Extension name",
        "message": "Android - Break the Bricks"
  }
}

7) 用 Chrome + ARChon 运行以上文件夹

Linux - SQL Server (docker)

  • 还没有数据库
$ docker run --name mssql -e ACCEPT_EULA=Y -e SA_PASSWORD=Yukon900 -p 1433:1433 -d microsoft/mssql-server-linux
$ docker exec -it mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P Yukon900

  • 已有数据库 DemoData  (建议用这个)
$ git clone https://github.com/twright-msft/mssql-node-docker-demo-app.git
$ docker build -t node-web-app .

$ docker run --name mssql -e ACCEPT_EULA=Y -e SA_PASSWORD=Yukon900 -p 1433:1433 -p 8080:8080 -d node-web-app
$ docker exec -it mssql /bin/bash /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P Yukon900

http://localhost:8080

可以下载 DBeaver 连接 MSSQL

http://dbeaver.jkiss.org/

Host: localhost
Port: 1433
Username: sa
Password: Yukon900

2017年4月9日星期日

Ubuntu - 更新 LibreOffice (snap)


先移除 LibreOffice 5.1.6

$ sudo apt remove libreoffice-core
$ sudo apt remove --purge libreoffice-core

https://www.libreoffice.org/download/download/

安装 LibreOffice 5.3.2.2 

$ snap info libreoffice
$ sudo snap install libreoffice

$ snap list | grep libreoffice

2017年4月8日星期六

Ubuntu - 移除 Dash Plugins


Dash plugins 太多了吗? 或不想要..


以下可以找出所有安装的 Dash plugins

$ apt search unity-scope | grep installed

撤除的例子: 
$ sudo apt-get purge unity-scope-calculator

然后剩余的在

$ cd /usr/share/unity/scopes/

撤除的例子: 
$ sudo rm -rf /usr/share/unity/scopes/web/firefoxbookmarks.scope

撤了, 需要重新登入才能见效

Eclipse Che 服务端


服务端安装了 Eclipse Che
只要能上网, 到哪里都可用浏览器连接上服务端 Eclipse, 继续编写与开发程序

https://www.eclipse.org/che/docs/setup/getting-started/

1) Docker 安装

http://jasonmun.blogspot.my/2016/05/linux-docker.html

2) 测试 Docker

$ su
$ systemctl status docker
$ docker info
$ docker run hello-world

3) 准备数据存放位置和端口

$ mkdir /home/username/eclipse_data

防火壁要将以下端口打开

8080 - Tomcat 端口
8000 - 服务端 Debug 用, 
32768-65535 间 - Docker 和 Eclipse Che 代理用

4) 安装与开启 Eclipse Che 服务

$ docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -v /home/username/eclipse_data:/data -e CHE_HOST=192.168.0.100 eclipse/che start

如启动不了, 用这行检查 (也可以暂时关闭防火壁作测试)..
$ docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -v /home/username/eclipse_data:/data -e CHE_HOST=192.168.0.100 eclipse/che info --network

5) 从服务端浏览 http://172.17.0.1:8080/ 或 客户端浏览 http://192.168.0.100:8080/

6) 其它

$ docker run <DOCKER_OPTIONS> eclipse/che stop
$ docker run <DOCKER_OPTIONS> eclipse/che restart
$ docker run <DOCKER_OPTIONS> eclipse/che:<version> start

如果在 Windows 用 boot2docker, 可将系统变数 `%userprofile%` 设置为 `:/data`
$ docker run <DOCKER_OPTIONS> -v /c/Users/username/che:/data eclipse/che start

2017年4月7日星期五

Atom - github 开发的 Text Editor


Atom 是 github 开发的文本编辑器
支持 Windows / Linux / Mac OS X

https://github.com/atom/atom/releases/

$ sudo add-apt-repository ppa:webupd8team/atom
$ sudo apt-get update
$ sudo apt-get install atom

Bracket - Adobe 的 Web 开发编辑器


Bracket 是 Adobe 开发用于 Web 的编辑器 ( HTML / CSS / Java Script )
支持 Windows / Linux / Mac OSX

https://github.com/adobe/brackets/releases
https://github.com/adobe/brackets/releases/download/release-1.9/Brackets.Release.1.9.64-bit.deb

$ sudo add-apt-repository ppa:webupd8team/brackets
$ sudo apt update
$ sudo apt install brackets

2017年4月6日星期四

WKhtmlTOpdf - 转换工具


WK<html>TOpdf
https://wkhtmltopdf.org/downloads.html

可以将 HTML 转成 PDF
除了 Linux, 有 Windows / Mac OS X 等版本

$ wget https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
$ tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
$ sudo cp wkhtmltox/bin/wkhtmltopdf /usr/bin/

将 HTML 网页转成 PDF 文件
$ wkhtmltopdf http://www.yahoo.com test.pdf

给 PDF 创建页面的目录 Table Of Content (TOC)
$ wkhtmltopdf toc http://www.yahoo.com test.pdf

2017年4月5日星期三

Ubuntu - gifine 录制 gif 视频


gifine
可以录制 gif 视频

$ sudo apt-get install graphicsmagick ffmpeg

$ git clone https://github.com/lolilolicon/xrectsel
$ ./bootstrap
$ ./configure --prefix /usr
$ make
$ make DESTDIR="$directory" install

$ sudo apt-get install gifsicle libgirepository1.0-dev

$ sudo apt-get install luarocks
$ sudo luarocks install --server=http://luarocks.org/dev gifine

$ gifine

GNOME - gedit 插件 - Ruby on Rails 开发


gedit-gmate

$ sudo apt-add-repository ppa:ubuntu-on-rails/ppa
$ sudo apt-get update

GNOME - gedit 插件 - Snippets


1) 安装 gedit 插件

$ sudo apt-get install gedit-plugins

2) 在 gedit 设置与启动 Manage External Tools

Edit - Preferences - Plugins - Snippets

Tools - Manage Snippets...

在 Java 添加名为 Default Code, 在 Edit 添加以下内容: 

/*
Author: Bruce Lee
Email: bruce_lee@heaven.org
*/

Tab trigger: javaheader

用法: 在 gedit 编辑器中输入 javaheader 然后按 Tab

GNOME - gedit 插件 - C / C++ / java 编译与运行


1) 安装 gedit 插件

$ sudo apt-get install gedit-plugins

2) 在 gedit 设置与启动 Manage External Tools

Edit - Preferences - Plugins - External Tools

Tools - Manage External Tools...

编译 C / C++  / JAVA 

#!/bin/sh
fullname=$GEDIT_CURRENT_DOCUMENT_NAME
name=`echo $fullname | cut -d. -f1`
suffix=`echo $fullname | cut -d. -f2`

if [ $suffix = "c" ]; then
gcc $fullname -o $name -O2 -Wall -std=gnu99 -static -lm 
elif [ $suffix = "cpp" ] || [ $suffix = "c++" ] || [ $suffix = "cc" ] || [ $suffix = "cxx" ] || [ $suffix = "C" ]; then
g++ $fullname -o $name -O2 -Wall -std=gnu++0x -static -lm
elif [ $suffix = "java" ]; then
javac $fullname -encoding UTF-8 -sourcepath . -d .
fi

Shortcut key: Ctrl+F5
Save: Current document
Input: Nothing
Output: Nothing
Applicability: All documents | C,C++,Java


运行 C / C++ / JAVA

#!/bin/sh
fullname=$GEDIT_CURRENT_DOCUMENT_NAME
name=`echo $fullname | cut -d. -f1`
suffix=`echo $fullname | cut -d. -f2`
dir=$GEDIT_CURRENT_DOCUMENT_DIR

if [ $suffix = "c" ]; then
gnome-terminal --hide-menubar --working-directory=$dir -t "Terminal-$name" -x bash -c "$dir/$name; echo;echo 'press ENTER to continue';read"
elif [ $suffix = "cpp" ] || [ $suffix = "c++" ] || [ $suffix = "cc" ] || [ $suffix = "cxx" ] || [ $suffix = "C" ]; then
gnome-terminal --hide-menubar --working-directory=$dir -t "Terminal-$name" -x bash -c "$dir/$name; echo;echo 'press ENTER to continue';read"
elif [ $suffix = "java" ]; then
gnome-terminal --hide-menubar --working-directory=$dir -t "Terminal-$name" -x bash -c "java -classpath . $name echo;echo 'press ENTER to continue';read"
fi

Shortcut key: F5
Save: Nothing
Input: Nothing
Output: Nothing
Applicability: All documents | C,C++,Java

VIM - 插入标头 (Header)

用 VIM, 然后编辑文件时插入标头
需要修改 ~/.vimrc 或 /etc/vim/vimrc

创建文件时, 自动插入标头
https://gist.github.com/zxkletters/401cbbe03ee5c6a11ea0

编辑文件时, 按 F4 插入标头
http://blog.csdn.net/pkueecser/article/details/9669739

Ubuntu - Sticky Notes 便笺


Indicator StickyNotes
https://launchpad.net/~umang/+archive/ubuntu/indicator-stickynotes/+packages

$ sudo add-apt-repository ppa:umang/indicator-stickynotes
$ sudo apt-get update
$ sudo apt-get install indicator-stickynotes

https://github.com/umangv/indicator-stickynotes

2017年4月4日星期二

VMware - GNU C Compiler (gcc) version 6.X was not found


如果自行更新了内核, 可能需要连 gcc 和 g++ 都要更新
如 vmware, 会要求新的 gcc 版本

https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test

$ sudo apt-get update
$ sudo apt-get install build-essential software-properties-common -y

$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
$ sudo apt-get update
$ sudo apt-get install gcc-snapshot -y
$ sudo apt-get update

安装 gcc-6 和 g++-6 ( 要安装的版本 6.2.0-3 )
$ sudo apt-get install gcc-6 g++-6 -y
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6

安装 gcc-5 和 g++-5 ( 已安装的版本 5.4.1-2 )
$ sudo apt-get install gcc-5 g++-5 -y
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5

选择要运行的 gcc 和 g++ 版本
$ sudo update-alternatives --config gcc

查看现在所用的版本
$ gcc -v

安装了 gcc-6 后, 那就可以打开 vmware, 将 Location 填入 /usr/bin/gcc-6

其它:

从 gcc 选项移除
$ sudo update-alternatives --remove gcc /usr/bin/gcc-5

将现在所选的选项设置成 auto mode
$ sudo update-alternatives --auto gcc

Ubuntu - Kernel Update Utility (ukuu) - 内核更新


Ubuntu Desktop 版

Ubuntu Kernel Update Utility (ukuu)
用于内核更新, 而下载的内核资源来自 kernel.ubuntu.com

http://www.teejeetech.in/p/ukuu-kernel-upgrade-utility.html

$ sudo add-apt-repository -y ppa:teejee2008/ppa
$ sudo apt update
$ sudo apt install ukuu

如果不要用 ukuu, 可跟着以下方法做..

Ubuntu Server 版 (64 bit)

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.8/

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.8/linux-headers-4.10.8-041008_4.10.8-041008.201703310531_all.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.8/linux-headers-4.10.8-041008-generic_4.10.8-041008.201703310531_amd64.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.8/linux-image-4.10.8-041008-generic_4.10.8-041008.201703310531_amd64.deb

$ sudo dpkg -i *.deb

移除方法, 可用..

$ sudo apt-get remove linux-headers-4.10* linux-image-4.10*

会撤了以下..

linux-headers-4.10.8-041008
linux-headers-4.10.8-041008-generic
linux-image-4.10.8-041008-generic

如果是虚拟机, 应该还有个 linux-image-extra 如下
linux-image-extra-4.8.0-45-generic

听说虚拟机没有了这个, 重启后鼠标与键盘不能用, 而且还会死机.

Realtek 8812AU/8821AU USB WiFi 驱动


官方所提供的 DLINK DWA-182 C1 (Wireless AC1200 Dual Band USD Adapter) 的驱动
但这驱动只支持内核 2.6.18 - 3.10, 且是 USB 2.0

http://support.dlink.com/ProductInfo.aspx?m=DWA-182

$ wget ftp://ftp2.dlink.com/PRODUCTS/DWA-182/REVC/DWA-182_REVC_DRIVER_4.3.2_LINUX.ZIP
$ unzip DWA-182_REVC_DRIVER_4.3.2_LINUX.ZIP

$ su
$ apt-get install build-essential linux-headers-generic

$ cd RTL8812AU_linux_v4.3.2_11100.20140411
$ chmod +x install.sh
$ ./install.sh

所以以上驱动是没戏了,
结果找到以下驱动, 现在用的内核是 4.8.0 / 4.11.X

$ git clone https://github.com/abperiasamy/rtl8812AU_8821AU_linux.git
$ cd rtl8812AU_8821AU_linux
$ make clean
$ make
$ sudo make uninstall
$ sudo make install

2017年4月3日星期一

Ubuntu - TuxCut - 隐藏 Linux


  • 更换 MAC 地址
  • 对抗 ARP 攻击, 如 NetCut
  • 列出在网络连接的所有设备
  • 剪断设备与网关(gateway) 之间的连接
  • 控制上传/下载速度

https://github.com/a-atalla/TuxCut

$ su

$ apt-get install arp-scan dsniff arptables

http://linux.softpedia.com/get/Security/TuxCut-93660.shtml

$ dpkg -i tuxcut_5.1_all.deb

Ubuntu - ubuntu-make 开发工具下载


1. 先安装 Ubuntu Make

https://github.com/ubuntu/ubuntu-make

$ sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
$ sudo apt-get update
$ sudo apt-get install ubuntu-make

2. 各开发 IDE 下载

$ sudo umake android android-ndk
$ sudo umake android android-studio

$ sudo umake dart editor

$ sudo umake go go-lang

$ sudo umake ide arduino
$ sudo umake ide eclipse
$ sudo umake ide idea
$ sudo umake ide idea-ultimate
$ sudo umake ide phpstorm
$ sudo umake ide pycharm
$ sudo umake ide pycharm-educational
$ sudo umake ide pycharm-professional
$ sudo umake ide rubymine
$ sudo umake ide webstorm

$ sudo umake games stencyl
$ sudo umake games unity3d

$ sudo umake web firefox-dev
$ sudo umake web visual-studio-code

3. 卸载

$ sudo umake games unity3d --remove

Ubuntu - Duck Launcher


Duck Launcher
是用来取代 Unity Launcher 的软件

$ sudo add-apt-repository ppa:the-duck/launcher
$ sudo apt-get update
$ sudo apt-get install duck-launcher

https://launchpad.net/ducklauncher/+packages

https://github.com/the-duck/launcher

Ubuntu - EasyImageSizer - 批量图像处理


EasyImageSizer
是一款批量压缩图片的程序软件, 可调整图片大小和重新命名图片

$ sudo add-apt-repository ppa:dhor/myway
$ sudo apt-get update
$ sudo apt-get install easyimagesizer

https://sourceforge.net/projects/easyimagesizer

Converseen - 图像处理


Converseen 是一款开源的跨平台图像转换器和缩放工具,
使用 C++ 和 Qt4 库编写. 支持超过 100 种图像格式.
为用户提供了基本的照片处理功能,包括转换 / 缩放 / 旋转 / 翻转
除了 Linux, 也支持 Windows 平台

http://converseen.fasterland.net

Ubuntu

$ sudo add-apt-repository ppa:ubuntuhandbook1/apps
$ sudo apt-get update
$ sudo apt-get install converseen

Fedora

$ sudo dnf install converseen

OpenSUSE

http://software.opensuse.org/package/converseen

$ sudo zypper install converseen

Arch

$ sudo pacman -Sy converseen

Mageia

$ sudo urpmi converseen

https://sourceforge.net/projects/converseen/

ZFS - 新一代文件系统


ZFS ON LINUX
http://zfsonlinux.org

ZFS 是新一代文件系统, 用于 Solaris
原本是 Sun 的技术, 但现在是 Oracle 的
它比 BTRFS / EXT4 更加新的技术

Ubuntu
https://github.com/zfsonlinux/zfs/wiki/Ubuntu

Fedora
https://github.com/zfsonlinux/zfs/wiki/Fedora

RHEL / CentOS
https://github.com/zfsonlinux/zfs/wiki/RHEL-%26-CentOS

OpenSUSE
https://software.opensuse.org/package/zfs

Arch
https://wiki.archlinux.org/index.php/ZFS

Debian
https://github.com/zfsonlinux/zfs/wiki/Debian

Gentoo
http://wiki.gentoo.org/wiki/ZFS

2017年4月2日星期日

PPSSPP - PSP 模拟器


PPSSPP 是 PSP 的模拟器, 
除了 Linux 也有 Windows / MacOSX / iOS / Android 等版本

http://www.ppsspp.org/downloads.html

$ sudo add-apt-repository ppa:ppsspp/stable
$ sudo apt-get update
$ sudo apt-get install ppsspp

安装后, 下载 ISO 版本游戏
之后运行 ppsspp, 在 Games 处浏览与点选 ISO 所在位置..

以下可以找到各平台模拟器与游戏

https://www.emuparadise.me/PSP_ROMs/44

GO 语言


GO 语言
https://golang.org

$ su
$ tar -C /usr/local -xzf go1.8.linux-amd64.tar.gz

$ gedit /etc/profile

export PATH=$PATH:/usr/local/go/bin

Linux - 各种语言编译与运行方法

  • C
# include <stdio.h>

int main() {
  printf("Hello World");
  return 0;
}

$ gcc -o test test.c
$ ./test


  • C++
#include <iostream>

using namespace std;

int main() {
        cout << "Hello World";
        return 0;
}

$ g++ -o test test.c
$ ./test


  • PERL
#!/usr/bin/perl

print "Hello World!\n";

$ perl test.pl


  • PYTHON
import os
print(os.sys.path)

$ python test.py

$ python3 test.py


  • JAVA
public class HelloWorld
{
public static void main(String[] args) {
  System.out.println("Hello World!");
}
}

$ javac HelloWorld.java
$ java -classpath . HelloWorld



$ mkdir hello && cd hello
$ gedit hello.go

package main

import "fmt"

func main() {

       fmt.Printf("hello, world\n")

}

$ go build
$ ./hello