工作常用工具命令

时间:2021-03-06 16:28:02

Open vpn 使用

sudo openvpn /etc/openvpn/pfsense-udp-1190.ovpn


MTK truszone

MKTOPDIR=/home/adan/projects/MT6795/alps ARCH_MTK_PLATFORM=mt6795 ./build.sh
MTK_PLATFORM=MT6795 TARGET_DEVICE=evb6795_64_tee TARGET_PRODUCT=evb6795_64_tee ./fast_build.sh

配置ADB识别DEVICES

  1. using lsusb to get idVendor and idProduct

    $lsusb
    Bus 003 Device 012: ID 0e8d:2003 MediaTek Inc.
  2. new 51-android.rules file, and add a line, specify ATTRS{idVendor} and ATTRS{idProduct}

    $ sudo vim /etc/udev/rules.d/51-android.rules

    SUBSYSTEM=="usb", ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="2003",MODE="0666"

    $sudo chmod a+rx /etc/udev/rules.d/51-android.rules
  3. restart udev:

    $sudo service udev restart

  4. unplug usb and plugin again.

    $ adb kill-server
    $ adb devices

Install kvm on ubuntu

$ cat /proc/cpuinfo | grep vmx
$ sudo apt-get install qemu-kvm virt-manager bridge-utils libvirt-bin
$ sudo qemu-img create -f qcow2 winxp.img 20G
$ sudo qemu-system-x86_64 -hda winxp.img -cdrom xp.iso -boot d -m 1024 -no-acpi -soundhw all

$ sudo qemu-system-x86_64 -hda winxp.img -boot d -m 512 -no-acpi -soundhw all
$ sudo kvm -hda winxp.img -boot d -m 512 -soundhw all

Mount 网盘共享

sudo mount -t cifs //192.168.5.54/xieke xieke -o username=xieke

kvm & spices

sudo kvm-spice -m 1024 -drive file=windows/win7-no.img -boot c -vga qxl --full-screen -spice port=5079,disable-ticketing
spicec -h localhost -p 5079
shift f11 troggle full screen/ window
shift f12 release cusor if captured
shift f5 connect to server
shitf f6 disconnect from server

Java environment

export JAVA_HOME=/usr/lib/jvm/jdk7
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk7/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk7/bin/javac 300

sudo update-alternatives --config java

Git tools

git difftool -t meld -y  commitId1  commitId2

Gtags environment

    $ find . -type f -print >/tmp/list     # make a file set
$ vi /tmp/list # customize the file set
$ gtags -f /tmp/list

export GTAGSLIBPATH=/usr/src/lib:/usr/src/sys

Gtags refrence

在代码目录中运行etags -R

如果要向现有tags表中添加,则运行etags -a


$ find ./ -name "*.java" -o -name "*.cpp" -o -name "*.[chCH]" | xargs etags -a
$ find . -name "*.[chCH]" -print | etags -

M-. 访问tag

C-u M-. 访问下一个tag

M-* 返回

caole emacs 参考

(setq-default indent-tabs-mode nil)

另外还认识了两个命令:

M-x tabify 将所有超过两个的连接空格使用TAB替换掉。

M-x untabify 将所有TAB使用适当个数的空格替换掉。

emacs 在Mark Set 间跳转快捷键:

C-u C-@ 在本缓冲区中根据Mark Set的顺序依次向后跳转。

C-x C-@ 在全局中根据Mark Set的顺序依次向后跳转。

使用imenu命令跳转到当前文件中的函数:

M-x imenu RET

清理代码中的不必要的空格和TAB

如果代码文件最后面,或者行尾有很多的不必要的空格,并且你就是完美主义
者,有洁癖,那么可以使用 whitespace-buffer 看一下当前buffer中有哪些“垃圾”。如果要清理,简单的使用 whitespace-cleanup 就可以了。

Emacs替换^M

遇到用Emacs打开的文件都有^M, 这个应该是Mac机产生的换行符(这样的代码看起来会死人的),以为简单的m-x repl RET s RET在输入^M替换一下就可以,但是很快发现,这个办法根本不行, ^M这个根本不是输入的研究了一下, 终于找到了办法:

C-x RET c undecided-unix RET C-x C-w RET y
M-S < 到文档的最开始处
M-x replace-string RET C-q C-m RET RET

这样就ok了, 注意上面的C-q C-m就是换行符的生成方法,而不是简单的输入^M.

文档搜索

alt+s o : search text in emacs

Emacs中文输入法

C-\ (toggle-input-method) 
M-x set-input-method
C-x RET C-\ choose chinese methods

Emacs中文输入法

Scrot截屏

scrot ~/Pictures/my_desktop.png
scrot -s
scrot -s -d 10
scrot -q 50
scrot -t 10
scrot -e 'mv $f ~/screenshots

Markdown 文档

pandoc -f markdown -t html -s -c /home/sunbjt/emacs/style.css --mathjax --highlight-style espresso workrecords.md -o index.html

C-c C-c v, 和 p一样,是对 md 文件的 browser 端的预览

C-c C-c e, 重新刷新已打开的预览

C-c C-c m, 在buffer里看html的源代码