当前位置:   article > 正文

usage.txt-2

usage.txt-2
  1. 局域网共享喇叭
  2. ----------------
  3. $>paprefs #PulseAudio Preferences.
  4. $>pavucontrol #Volume Control.
  5. 终端快捷键
  6. ----------------
  7. SHIFT+CTRL+v #终端复制.
  8. SHIFT+CTRL+c #终端粘贴.
  9. SHIFT+CTRL+t #新建标签页.
  10. SHIFT+CTRL+w #关闭标签页.
  11. CTRL+PageUp #前一标签页.
  12. CTRL+PageDown #后一标签页.
  13. SHIFT+CTRL+PageUp #标签页左移动.
  14. SHIFT+CTRL+PageDown #标签页右移动.
  15. SHIFT+CTRL+n #新建终端窗口.
  16. SHIFT+CTRL+q #关闭终端.
  17. CTRL+w #向前删除一个字.
  18. CTRL+u #从光标当前位置删除所有字符至行尾.
  19. F11 #终端全屏.
  20. CTRL+0 #原始大小.
  21. SHFIT+CTRL++ #终端放大.
  22. CTRL+- #终端缩小.
  23. HOME #快速将光标移动到行首.
  24. END #快速将光标移动到行末.
  25. dpkg安装x86(i386)架构的软件
  26. ----------------
  27. $>dpkg --print-architecture
  28. $>dpkg --add-architecture amd64
  29. $>dpkg --add-architecture i386
  30. 关闭DEBIAN-swap分区
  31. ----------------
  32. $>swapoff /dev/DEBIAN/swap_1
  33. Virtualbox 启动出错的解决办法
  34. ---------------
  35. /etc/init.d/vboxdrv setup
  36. 在当前目录中搜索并替换
  37. ----------------
  38. $>find . -type f -name "configure" -print | xargs perl -pi -e 's/-O2/-O0/g' #将当前目录下的所有configure中的-O2全部替换为-O0.
  39. 编译DEBIAN源码
  40. ----------------
  41. $>man dpkg-buildpackage
  42. $>cd /path
  43. $>dpkg-buildpackage -uc -us -j2 -rfakeroot #编译.dep安装包.
  44. $>./debian/rules clean #清理源代码树.
  45. $>./debian/rules build #构建程序.
  46. $>./fakeroot debian/rules binary #构建二进制包.
  47. $>./fakeroot debian/rules binary-arch #构建平台依赖二进制包.
  48. 使用平台编译选项
  49. ----------------
  50. $>gcc `dpkg-buildflags --get CFLAGS` `dpkg-buildflags --get LDFLAGS` $sources
  51. 改变./debian/rules环境变量
  52. ----------------
  53. $>export DEB_CFLAGS_SET="-g -O0 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security"
  54. $>export DEB_CXXFLAGS_SET="-g -O0 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security"
  55. $>dpkg-buildflags #查看当前设置的变量是否生效.
  56. $>./debian/rules build
  57. 调试eclipse
  58. ----------------
  59. $>dpkg-source -x /home/vsftpd/web/nginx-1.2.1/apt/mirror/ftp.us.debian.org/debian/pool/main/e/eclipse/eclipse_3.8.0~rc4-1.dsc
  60. $>cd eclipse-3.8.0~rc4/
  61. $>export DEB_CFLAGS_SET="-g -O0 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security"
  62. $>export DEB_CXXFLAGS_SET="-g -O0 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security"
  63. $>./debian/rules build #编译eclipse.
  64. $>cd build/eclipse-3.8.0-I20120502-2000-src/installation #生成的文件.
  65. $>./eclipse #运行.
  66. $>gdbserver :1234 ./eclipse #使用gdbserver启动调试.
  67. $>symbol-file /path/build/eclipse-3.8.0-I20120502-2000-src/installation/eclipse #Display Selected Console.
  68. 注意:创建eclipse的调试工程可以很方便的在源代码中打断点和监控或查看数据,New->C++ Project->Makefile project->Enpty Project->Linux Gcc,$PRJ->Properties->C/C++ General->Paths and Symbols->Source Location->Link Folder:选择/path/eclipse-3.8.0~rc4目录;Debug->Debug Configures...->C/C++ Remote Application->Using GDB (DSF) Manual Remote Debugging Launcher-Select othre...:勾选Use configuration specific settings->GDB (DSF) Manual Remote Debugging Launcher;C/C++ Remote Application->Main->Search Project..:选择eclipse执行程序即可,没有实际意义.C/C++ Remote Applicaton->Debugger->Connection:Type=TCP,Hostname or IP address=localhost,Port number=1234;然后在终端执行"cd build/eclipse-3.8.0-I20120502-2000-src/installation && gdbserver :1234 ./eclipse",Debug即可停在打在源代码中断点位置.
  69. 火狐浏览器
  70. ----------------
  71. $>cd /path
  72. $>dpkg-source -x /home/vsftpd/web/nginx-1.2.1/apt/mirror/ftp.us.debian.org/debian/pool/main/i/iceweasel/iceweasel_31.8.0esr-1~deb7u1.dsc
  73. $>cd iceweasel-31.8.0esr
  74. $>vi ./debian/browser.mozconfig.in
  75. -----------
  76. ac_add_options --enable-debug
  77. ac_add_options --enable-cpp-rtti
  78. ac_add_options --enable-valgrind
  79. ac_add_options --disable-webrtc
  80. ac_add_options --disable-optimize #屏蔽优化选项后webrtc(视频会议)编译的时候会出错,(--disable-webrtc)禁止编译webrtc.
  81. $>./debian/rules build
  82. $>su
  83. $>./debian/rules binary-indep #构建平台依赖二进制包,经过测试能够生成iceweasel.
  84. $>dpkg-buildpackage -uc -us -j2 -rfakeroot #编译.dep安装包.
  85. 终端调试iceweasel
  86. ----------------
  87. $>sudo gdb ./iceweasel
  88. $>source ~/.gdbinit
  89. $>eval $(dbus-launch --sh-syntax) #解决"No D-BUS daemon running".
  90. $>export DBUS_SESSION_BUS_ADDRESS #解决"No D-BUS daemon running".
  91. $>export DBUS_SESSION_BUS_PID #解决"No D-BUS daemon running".
  92. $>export DBUS_SESSION_BUS_WINDOWID #解决"No D-BUS daemon running".
  93. eclipse调试iceweasel
  94. ----------------
  95. $>su
  96. $>eval $(dbus-launch --sh-syntax) #解决"No D-BUS daemon running".
  97. $>export DBUS_SESSION_BUS_ADDRESS #解决"No D-BUS daemon running".
  98. $>export DBUS_SESSION_BUS_PID #解决"No D-BUS daemon running".
  99. $>export DBUS_SESSION_BUS_WINDOWID #解决"No D-BUS daemon running".
  100. $>cd /path/iceweasel-31.8.0esr/build-browser/dist/bin
  101. $>gdbserver :1234 ./iceweasel
  102. $>eclipse #Debug->C/C++ Application->Main,选择iceweasel程序;工程的创建请参考"调试eclipse->注意".
  103. $>source ~/.gdbinit #Display Selected Console->[C/C++ Application] gdb.
  104. 解决"warning: not using untrusted file '.gdbinit'"
  105. ----------------
  106. $>vi .gdbinit
  107. -------------
  108. python sys.path.append("/usr/share/gcc-4.7/python/");
  109. $>source ~/.gdbinit
  110. GIMP图像处理软件
  111. ----------------
  112. $>cd /path
  113. $>dpkg-source -x /home/vsftpd/web/nginx-1.2.1/apt/mirror/ftp.us.debian.org/debian/pool/main/g/gimp/gimp_2.8.2-2+deb7u1.dsc
  114. $>export DEB_CFLAGS_SET="-g -O0 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security"
  115. $>export DEB_CXXFLAGS_SET="-g -O0 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security"
  116. $>cd gimp-2.8.2
  117. $>./debian/rules build
  118. 注意:项目的开发与调试请参考“调试eclipse”.
  119. inkscape图像处理软件
  120. ----------------
  121. $>cd /path
  122. $>dpkg-source -x /home/vsftpd/web/nginx-1.2.1/apt/mirror/ftp.us.debian.org/debian/pool/main/i/inkscape/inkscape_0.48.3.1-1.3.dsc
  123. $>vi ./inkscape-0.48.3.1/debian/rules #修改CFLAGS,CXXFLAGS选项即可.
  124. $>cd inkscape-0.48.3.1
  125. $>./debian/rules build
  126. $>./debian/rules binary-indep
  127. 注意:编译后的二进制文件存储在./src/inkscape.
  128. synergy-1.3.8通用编译选项
  129. ---------------
  130. $>gcc -c -DSYSAPI_UNIX=1 -DHAVE_CONFIG_H -DWINAPI_XWINDOWS=1 -I ../../.. -I . -I ../arch -I ../base -I ../client -I ../common -I ../io -I ../mt -I ../net -I ../platform -I ../server -I ../synergy -I ../../lib/server x.cpp y.cpp z.cpp ...
  131. 注意:是从顶层的cmakefiles/Makefile2文件分析 + base目录下的Makefile分析综合得出来的选项.
  132. Kate高级编辑器
  133. ----------------
  134. $>cd /path
  135. $>dpkg-source -x /home/vsftpd/web/nginx-1.2.1/apt/mirror/ftp.us.debian.org/debian/pool/main/k/kate/kate_4.8.4-1.dsc
  136. $>cd kate-4.8.4
  137. $>./debian/rules build #obj-x86_64-linux-gnu/kate/app(Kate生成目录),obj-x86_64-linux-gnu/kwrite(Kwrite生成目录)
  138. 注意:这个项目是使用CMAKE进行工程管理的.
  139. 开发GTK-3.0应用程序
  140. ----------------
  141. `pkg-config --cflags gtkmm-3.0` #列出头文件.
  142. `pkg-config --libs gtkmm-3.0` #列出库文件.
  143. `pkg-config --cflags --libs gtkmm-3.0` #列出头文件和库文件.
  144. or
  145. $>pkg-config --libs gtkmm-3.0
  146. $>pkg-config --cflags gtkmm-3.0
  147. $>pkg-config --cflags --libs gtkmm-3.0
  148. $>gcc/g++ `pkg-config --cflags --libs gtkmm-3.0` prog.c/.cc
  149. $>gcc/g++ `pkg-config --cflags gtkmm-3.0` `pkg-config --libs gtkmm-3.0` prog.c/.cc
  150. 将输出内容以表格的形式显示出来
  151. ----------------
  152. $>mount | column -t
  153. $>cat /etc/passwd | column -t -s :
  154. 注意:由于mount内容中留了空格,所以输出的形式就美观了起来;那如果想要的分隔符是别的什么符号,比如说冒号(cat /etc/passwd),只需要使用 -s 参数指定分隔符就行了.
  155. 重复执行一个命令直到它运行成功
  156. ----------------
  157. $>while true; do ping -c 1 192.168.10.1 > /dev/null 2>&1 && break; done;
  158. 按内存资源的使用量对进程进行排序
  159. ----------------
  160. $>ps aux | sort -rnk 4
  161. 按CPU资源的使用量对进程进行排序
  162. ----------------
  163. $>ps aux | sort -rnk 3
  164. 检查机器架构
  165. ----------------
  166. $>getconf LONG_BIT
  167. 在会话关掉以后继续运行程序
  168. ----------------
  169. $>nohup ping -c 10 192.168.10.1
  170. $>tail -f nohup.out
  171. 自动对任何命令回答Yes或者No
  172. ----------------
  173. $>yes | apt-get update
  174. 对命令行会话进行记录
  175. ----------------
  176. $>script
  177. $>...
  178. $>exit #所有敲写的内容保存到一个名为 typescriptscript 的文件中,然后在终端中查看即可.
  179. $>cat ./typescript #查看上面保存的命令操作.
  180. TR命令
  181. ----------------
  182. $>mount | tr 'a-z' 'A-Z' > out.txt #将内容全部转换为大写.
  183. $>mount | tr 'A-Z' 'a-z' > out.txt #将内容全部转换为小写.
  184. 强大的xargs命令
  185. ----------------
  186. $>find . -name *.png -type f -print | xargs tar -cvzf images.tar.gz #搜索png文件然后对其进行压缩.
  187. $>cat urls.txt | xargs wget #文件中有一个URL的列表并以不同的方式下载或者处理这些URL.
  188. $>ls /etc/*.conf | xargs -i cp {} ~/Templates
  189. 注意:如果命令需要中间过程的输出,只需要使用 {} 并结合 -i 参数就行了.
  190. 查看GNOME控制中心版本信息
  191. ----------------
  192. $>gnome-control-center --version returns
  193. 将网站输出为PDF
  194. ----------------
  195. $>wkhtmltopdf https/http://url $name.pdf
  196. CLION-IDE使用特性
  197. ----------------
  198. 注意:不能更新,否则激活不了;使用cmake管理工程,重构只对当前目录下的所有文件生效(这个可以使用eclipse来弥补).
  199. blender中文问题
  200. ----------------
  201. 注意:系统blender对中文支持不好,建议使用/home/backup/blender-2.63.tar.bz2中的blender.
  202. Linux系统使用建议
  203. ----------------
  204. $>mkdir /data
  205. $>ln -sf /data /home/$USER
  206. 注意:1.系统启动时需插上网线,否则在开机的时候不能自动登录或自动登录错误.2.用户的主目录应该尽量保持干净整洁并且不要放大的文件;大文件可以在根目录创建文件单独存放.
  207. Linux在没有显示器的情况下使用图形程序[转发整个GDM]
  208. ----------------
  209. $>X :12.0 vt12 2>&1 >/dev/null& #按下CTRL+ALT+F1/[F1~F6],然后在终端输入当前命令;命令完成后需要按下CTRL+ALT+F1/[F1~F6]回车.
  210. $>xterm -display :12.0 -e ssh -4 -C -c blowfish-cbc -X $USER@$IPSRV #按下CTRL+ALT+F12输入密码即可.
  211. or
  212. $>xterm -display :12.0 -e ssh -4 -C -c blowfish-cbc -t -q -o Compression=yes -o CompressionLevel=9 -X hy@$1
  213. $>gnome-session #执行当前命令即可进入GNOME图形系统,然后就可以安装本地的应用一样使用.
  214. $>ibus-setup #启动ibus输入法,否则无法中文.
  215. $>vi .bashrc #配置环境变量.
  216. -------------
  217. export GTK_IM_MODULE=ibus
  218. export XMODIFIERS=@im=ibus
  219. export QT_IM_MODULE=ibus
  220. eth0单网口多ip配置
  221. ----------------
  222. allow-hotplug eth0
  223. auto eth0
  224. iface eth0 inet static
  225. address 192.168.10.88
  226. netmask 255.255.255.0
  227. gateway 192.168.10.1
  228. auto eth0:1
  229. iface eth0:1 inet static
  230. address 10.10.10.100
  231. netmask 255.255.255.0
  232. Linux在没有显示器的情况下使用图形程序[转发界面程序]
  233. ----------------
  234. $>ssh -X $USER@$IPSRV
  235. $>./eclipse #运行eclipse之后,界面将会在本地计算机显示;显示效果没有“Linux在没有显示器的情况下使用图形程序[转发整个GDM]”好,有些图标出不来.
  236. 注意:首先参考“开机进入字符界面”设置需要远程的机器;脚本请直接参考"/home/vsftpd/ssh"目录.
  237. 终端模拟器
  238. ----------------
  239. $>tilda #下拉终端,需要进行设置才好用.
  240. 编译命令脚本并被错误日志
  241. ----------------
  242. #!/bin/bash
  243. #这条命令的作用是自动编译某个工程并记录在编译过程中所有错误.
  244. #需要修改“cd /$SPATH”和"make all/target"
  245. if [ ! -d "./.err" ] ;
  246. then
  247. mkdir ./.err
  248. fi
  249. if [ -f "./.err/errors" ] ;
  250. then
  251. mv ./.err/errors ./.err/`date +%Y%m%d-%H.%M.%S.errors`
  252. fi
  253. cd /$SPATH
  254. make all/target 1>./.err/errors 2>&1 #这里填写Makefile命令.
  255. cat ./.err/errors
  256. SVN搭建
  257. ----------------
  258. $>mkdir -p /application/data #指定svn的数据存储路径
  259. $>mkdir -p /application/passwd #指定svn的配置文件信息路径
  260. $>svnserve -d -r /application/data #启动svn服务
  261. $>svnadmin --help
  262. $>svnadmin help create
  263. $>svnadmin create /application/data/docs #创建docs版本库
  264. $>chmod -R 2777 /application/data/docs
  265. $>cd /application/data/docs/conf/
  266. $>cp -p svnserve.conf svnserve.conf.default
  267. $>vi svnserve.conf
  268. --------
  269. anon-access = none //禁止匿名访问
  270. auth-access = write //认证后有读的权限
  271. password-db = /application/passwd/passwd //指定密码文件
  272. authz-db = /appplication/passwd/authz //指定权限认证文件
  273. 实际操作
  274. ----------------
  275. $>svnadmin create /application/data/docs #svn版本库的创建.
  276. $>ln -sf /application/passwd/passwd /application/data/docs/conf/
  277. $>ln -sf /application/passwd/authz /application/data/docs/conf/
  278. $>sudo svnserve -d -r /application/data/ #启动.
  279. $>svn co svn://localhost/docs --username hy --password 123456 #svn版本库签出.
  280. 注意:"password-db","authz-db"避免每次创建版本库都配置用户名和密码.
  281. $>cp -p authz passwd /application/passwd/
  282. $>cd /application/passwd/
  283. $>chmod 700 authz passwd
  284. $>vi passwd
  285. --------
  286. USER = PASSWD
  287. ...
  288. $>pkill svnserve #重新启动svn服务
  289. $>svnserve -d -r /application/data
  290. $>svn --username=USER co svn://localhost/docs
  291. 注意:SVN在本系统中需要配合CLION,SVN版本选择1.6一起使用;否则功能不全无法使用.
  292. 终端BT下载工具
  293. ----------------
  294. $>sudo mkdir -p /bt/data/temp && sudo chmod -R 4777 /bt/data/temp
  295. $>sudo mkdir -p /bt/data/sessions && sudo chmod -R 4777 /bt/data/sessions
  296. $>sudo mkdir -p /bt/data/download && sudo chmod -R 4777 /bt/data/download
  297. $>sudo mkdir -p /home/hy/bt/ && sudo chmod -R 4777 /home/hy/bt/
  298. $>vi ~/.rtorrent.rc
  299. -------------
  300. min_peers = 1
  301. max_peers = 9999
  302. peer_exchange = yes
  303. use_udp_trackers = yes
  304. directory = "/bt/data/temp"
  305. session = "/bt/data/sessions"
  306. schedule = low_diskspace,5,60,close_low_diskspace=1000M
  307. schedule = watch_directory,5,5,load_start="/home/hy/bt/*.torrent"
  308. system.method.set_key = event.download.finished,rm_torrent,"execute=rm,$d.get_tied_to_file="
  309. system.method.set_key = event.download.finished,move_complete,"xecute=mv,-u,$d.get_base_path=,/bt/data/download;d.set_directory=/bt/data/download"
  310. $>rtorrent #启动bt下载程序,假设"/home/hy/bt"存放着所有"*.torrent"文件.
  311. CTRL+s #开始下载.
  312. CTRL+d #停止下载.
  313. CTRL+d,CTRL+d #移除torrent任务.
  314. CTRL+q #退出.
  315. 注意:按下"Enter"键,即可出现底部窗口"load.normal",下一步输入torrent文件的名字.eg."xxxx.torrent"或者"/home/hy/bt/xxxx.torrent".
  316. 项目学习规范
  317. ----------------
  318. 1.先编译后提交,改正错误后再编译然后提交.
  319. 如何安装帮助文档
  320. ----------------
  321. $>su
  322. $>synaptic #使用"synaptic"安装帮助文档.
  323. $>apt-cache search Documentation |grep -i xxx #搜索需要的文档进行安装.
  324. 浏览器中的快捷键
  325. ----------------
  326. CTRL+SHIFT+I #快速打开开发者工具(使用Firefox和Google浏览器).
  327. CTRL+-/+ #减小/增大字体.
  328. PCB设计工具
  329. ----------------
  330. $>gschem $NAME.sch #创建$NAME.sch电路图,制作好电路图后关闭该文件;执行下面的命令为每个器件自动编号.
  331. $>grenum $NAME.sch #为每个器件自动编号,然后使用gschem重新打开$NAME.sch即可.
  332. $>pcb-gtk #pcb画图工具,印刷电路板布局设计.
  333. $>gnucap #电路模拟仿真.
  334. $>gtkwave #显示电路仿真波形,查看在设计过程中生成的VCD仿真波形.
  335. 注意:
  336. gtkwave源代码目录"/home/vsftpd/gtkwave.tar.gz"
  337. $>./configure --prefix=/usr --with-tcl=/usr/lib/tcl8.5 --with-tk=/usr/lib/tk8.5 #gtkwave编译配置命令.
  338. 将程序放在后台执行
  339. ----------------
  340. $>Command &
  341. $>nohup Command
  342. $>setsid Command
  343. $>disown
  344. 注意:参考"Linux环境编程-第六章 信号的产生".
  345. Linux将IPAD+XServer XSDL作为扩展显示器
  346. ----------------
  347. DEBIAN主机IP:192.168.43.143 #本机连接IPAD热点网络,或者选择局域网.
  348. IPAD主机IP :192.168.43.1
  349. $>vi /etc/inittab
  350. ----------
  351. ...
  352. # The default runlevel.
  353. id:5:initdefault:
  354. ...
  355. 在gnome2桌面环境中按下"CTRL+ALT+F1~F6"进入虚拟终端(eg.CTRL+ALT+F1),然后在终端中输入如下命令:
  356. $>export DISPLAY=192.168.43.1:0
  357. $>gnome-session&
  358. $>synergyc -n Hy-system 192.168.43.143 & #命令完成后"CTRL+ALT+F7"返回gnome2桌面环境,鼠标向左移动即可进入IPAD屏幕中.
  359. FPGA开发前的准备"ds-5"
  360. ----------------
  361. $>xterm -e '/altera/embedded/ds-5_installer/install.sh --destination /home/hy/SoCEDS' #安装"Eclipse for DS-5"程序.
  362. 注意:"Eclipse for DS-5"就选择"Quartus"的“license.dat”即可.
  363. usb-blaster添加
  364. ----------------
  365. $>lsusb
  366. $>vi /etc/udev/rules.d/51-usb-blaster.rules
  367. -----------
  368. #USB-Blaster
  369. SUBSYSTEM=="usb",ATTR{idVendor}=="09fb",ATTR{idProduct}=="6001",MODE="0666",SYMLINK+="usbblaster"
  370. or
  371. SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",SYSFS{idVendor}=="09fb",ATTR{idProduct}=="6001",MODE="0666",NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}",RUN+="/bin/chmod 0666 %c"
  372. $>udevadm control --reload-rules #如果还不行请继续执行下面的步骤.
  373. $>mount --bind /dev/bus /proc/bus
  374. $>ln -s /sys/kernel/debug/usb/devices /proc/bus/usb/devices #重启机器即可.
  375. 开发C51程序
  376. ----------------
  377. $>sdcc $SOURCE.c
  378. $>packihx $SOURCE.ihx > $SOURCE.hex
  379. $>hex2bin $SOURCE.hex #hex2bin程序路径"/home/vsftpd/hex2bin.tar.gz".
  380. $>dmesg | tail
  381. or
  382. $>sdcc $SOURCE.c
  383. $>packihx $SOURCE.ihx > $SOURCE.hex
  384. $>objcopy -I ihex -O binary $SOURCE.hex $SOURCE.bin
  385. $>dmesg | tail
  386. 解压包含中文路径的压缩包
  387. ----------------
  388. $>convmv -f GBK -t utf8 --notest -r . #将GBK编码的文件名转化为UTF8编码,-r表示递归访问目录.
  389. 注意:首先将压缩包的内容到当前目录,然后执行上面的命令即可.
  390. or
  391. $>unar -e help #查看能用的字符编码列表.
  392. $>unar -e GB18030 xxxx.zip #解压包含中文路径的压缩包.
  393. 文档转换
  394. ----------------
  395. $>pandoc $file.md -o $file.docx #将md文件转换成docx.
  396. $>pandoc -s -o $file.html $file.md #将md转换成html.
  397. 在Linux系统中备份磁盘
  398. ----------------
  399. $>fdisk -l #这里需要关注的是"End"数据.
  400. $>dd if=/dev/sd[a...z] of=/dev/sd[a+1...z+1] #全盘拷贝,eg>dd if=/dev/sdb of=/dev/sdb.
  401. $>dd bs=512 count=$End+1 if=/dev/sd[a...z] of=$NAME.IMG #分区拷贝.
  402. $>dd bs=512 count=$End+1 if=/dev/sd[a...z] |gzip -9 > $NAME.IMG.gz #分区拷贝并压缩.
  403. $>dd if=$NAME.IMG of=/dev/sd[a..z] #系统还原.
  404. $>gzip -c -d $NAME.IMG.gz | dd of=/dev/sd[a...z] #解压并进行系统还原.
  405. $>watch -n 5 killall -USR1 dd #查看拷贝进度.
  406. 解决VMWARE启动虚拟机报错
  407. ----------------
  408. $>cd /tmp
  409. $>tar -xvf /usr/lib/vmware/modules/source/vmmon.tar
  410. $>cd vmmon-only/
  411. $>make
  412. $>cp vmmon.ko /lib/modules/3.2.0-4-amd64/misc/
  413. $>modprobe vmmon
  414. $>cd /tmp
  415. $>tar -xvf /usr/lib/vmware/modules/source/vmci.tar
  416. $>cd vmci-only
  417. $>make
  418. $>cp vmci.ko /lib/modules/3.2.0-4-amd64/misc/
  419. $>modprobe vmci
  420. $>tar -xvf /usr/lib/vmware/modules/source/vmnet.tar
  421. $>cd vmnet-only
  422. $>make
  423. $>cp vmnet.ko /lib/modules/3.2.0-4-amd64/misc/
  424. $>modprobe vmnet
  425. rdesktop远程rdp/windows桌面
  426. ----------------
  427. $>su
  428. $>rdesktop -f -N -5 -K -r lspci -r clipboard:PRIMARYCLIPBOARD -r sound:local -r disk:HOME=/home -r disk:TMP=/tmp -x lan -u $USR -p $PWD $SRV & #使用USR/PWD登录SRV,"-r clipboard:PRIMARYCLIPBOARD"共享剪切板,"-r sound:local"启动本地音频设备.
  429. or
  430. $>rdesktop -r -N -5 -K -r lspci clipboard:PRIMARYCLIPBOARD -r sound:local -r disk:HOME=/home -r disk:TMP=/tmp -a 32 -g $WIDTHx$HEIGHT -x lan -u $USER -p $PWD $SRV_IP &
  431. $>cd ~
  432. $>vi ~/.bashrc
  433. ---------------
  434. alias desktop="rdesktop -f -r clipboard:PRIMARYCLIPBOARD -r sound:local -r disk:HOME=/home -r disk:TMP=/tmp -x lan -u $USR -p $PWD $SRV &"
  435. 注意:CTRL+ALT+ENTER退出全屏模式,使用rdesktop远程windows比vinagre体验性要好.
  436. wireshark过滤
  437. ----------------
  438. $>ip.[dst|src] [==|>|<|>=|<=] $ip #过滤源/目的ip.
  439. $>tcp.port [==|>|<|>=|<=] $port #把源端口和目的端口为$port都过滤出来.
  440. $>tcp.srcport ... #只过滤目的端口.
  441. $>tcp.dstport ... #只过滤源端口.
  442. 注意:关键字ip,http,tcp他们都可以在过滤器中搜索到;ip->IPV4/IPV6,http->HTTP-Hypertext Transfer Protocol,TCP->Transmission Control Protocol.
  443. wireshark抓包并使用data进行分析与过滤
  444. -------------------
  445. $>tcpdump -i $ethx -w xx_name.pcap -s 1000 #-i:监听网络接口"$ethx",-w:截取的数据保存到"xx_name.pcap",-s:从截取的数据包中每个数据包最多读取最开始的1000个字节.
  446. or
  447. $>tcpdump -i $ethx -w xx_name.pcap
  448. $>wireshark-filter:data.data[$offset:1/2] == xxxx #通过数据的方式过滤数据包.
  449. 注意:data数据的过滤条件data.data[x:y]表达式中参数x,y的意义分别为:x-指定的字节在data中从头开始的偏移,y-从data中的第x个字节开始选取y个字节作为过滤条件"y<=2"(y必须小于等于2);$offset"为在"data"中所处的位置,在过滤数据的时候"offset:y";y必须<=2,所以offset:1/2分解为[offset:1]或[offset:2]."
  450. Find根据权限查找
  451. ----------------
  452. -perm mode #精确查找
  453. -perm -mode #完全包含此mode时才可以匹配.
  454. -perm +mode or /mode #+mode or /mode任何一位匹配即可.
  455. -executable ! -path ".*" #!的作用是排除其后-path所跟的目录.
  456. eg.
  457. $>find / -type f -perm /0001 -exec ls -alh {} \; #查找具有可以执行权限的文件.
  458. $>find / -type f -perm +0001 -exec ls -alh {} \; #查找具有可以执行权限的文件.
  459. 注意:u+s->4000,g+s->2000;u+s g+s->6000;u+s g+s u+rw->6600.
  460. Find查找指定文件内容包含特定关键字
  461. ----------------
  462. $>find . -type f -name "*.c" -exec awk 'BEGIN{ FS="\n";RS="" }'/关键字1/&&/关键字2/... {print FILENAME}' {} \;
  463. $>find . -type f -name "*.c" -exec awk 'BEGIN{ FS="\n";RS="" }'/关键字1/||/关键字2/... {print FILENAME}' {} \;
  464. eg.
  465. $>find . -type f -name "*.c" -exec awk 'BEGIN{ FS="\n";RS="" } /webs/&&/web/ {print FILENAME}' {} \; #查找包含"web""webs"的文件.
  466. Tar创建压缩包
  467. ----------------
  468. $>tar -czvf $file.tar.gz /$dir #创建压缩包
  469. or
  470. $>tar -cvf $file.tar /$dir
  471. $>tar -uvf $file.tar /$dir #更新目录.
  472. $>tar -uvf $file.tar.gz /$dir/$files #更新某个文件.
  473. $>tar -czvf $file.tar.gz $file.tar #压缩.
  474. 1.$>tar -xzvf $file.tar.gz #下面是对应的解压步骤(1,2).
  475. 2.$>tar -xvf $file.tar
  476. 注意:只有使用“tar -cvf $file.tar /$dir”创建的压缩包才可以更新;tar.gz一般是在发布的时候才创建.
  477. Tar排除指定类型的文件
  478. ----------------
  479. $>tar -cvf $FILENAME.tar.gz /$dir --exclude *.xx --exclude ... #排除.xx类型的文件或者更多.
  480. eg.
  481. $>tar -cvf file.tar.gz /$dir --executable *.o --executable *.txt #排除.o类型的文件.
  482. sshfs挂载
  483. ----------------
  484. sshfs -o allow_other -o sshfs_sync $USR@$IP:$PATH $MNT
  485. sshfs卸载
  486. ----------------
  487. $>fusermount -u $MNT #'$MNT'为挂载点.
  488. eg.
  489. $>fusermount -u /mnt/lfs
  490. Tar排除指定目录
  491. ----------------
  492. $>tar -cvf $FILENAME.tar.gz /$dir --exclude /$path --exclude ...
  493. Tar列出所有文件
  494. ----------------
  495. $>tar -tf $file.tar.gz
  496. Tar列出压缩包的顶层文件
  497. ----------------
  498. $>tar -tf $file.tar.gz | awk -F "/" '{print $1}'| sort | uniq
  499. $>tar -tf $file.tar.gz | awk -F "/" '{print $1}'| tail -n 1
  500. $>tar -tf $file.tar.gz | awk -F "/" '{print $1}'| sed -n '1p'
  501. Tar解压部分文件
  502. ----------------
  503. $>tar -xvf $file.tar.gz $foder/file.xx #解压单个file.xx文件.
  504. $>tar -xvf $file.tar.gz $foder/*.xx.* #解压多个*.xx.*文件.
  505. $>tar -xvf $file.tar.gz $foder #解压$foder目录.
  506. $>tar -xvf $file.tar.gz $foder/*.xx.* -C /$dir #解压多个*.xx.*文件并输出到$dir目录.
  507. 单元覆盖率
  508. ----------------
  509. $>gcc -fprofile-arcs -ftest-coverage -lgcov $NAME.c
  510. or
  511. $>gcc --coverage $NAME.c #在编译框架中使用"--coverage"更方便和快捷.
  512. $>./$NAME.out
  513. export GCOV_PREFIX=.
  514. export GCOV_PREFIX_STRIP=$NUM #eg.编译路径为"/path/src",并且所有的可执行文件和“.gcno”都在"/path/src"下面则$NUM为“2”,如果".gcno","$NAME.out""/path"下面则“$NUM”为3.
  515. $>lcov --capture --directory . --output-file $NAME.info --test-name $NAME #生成.info文件.
  516. $>genhtml $NAME.info --output-directory $PATH -title $TITLE_NAME --show-details --legend #以HTML的方式输出单元覆盖率文档.
  517. 注意:总结“GCOV_PREFIX_STRIP”变量,以编译路径"/path/src"为例($NUM=2,eg."/path/project/src"则$NUM=3),".gcno","$NAME.out"在编译路径的上一级目录中则"$NUM"的值为$NUM=$NUM+1;".gcno","$NAME.out"在编译路径的上二级目录中则"$NUM"的值为$NUM=$NUM+2.或者不使用export变量.
  518. Texlive更新
  519. ----------------
  520. $>tlmgr update --self
  521. $>tlmgr update --all #Texlive更新.
  522. $>tlmgr show <package> #安装失败的包-第一步.
  523. $>tlmgr install <package> #安装失败的包-第二步.
  524. 注意:失败后请多次重试.
  525. ssh克隆会话
  526. ----------------
  527. $>vi ~/.ssh/config
  528. -------------
  529. Host *
  530. ControlMaster auto
  531. ControlPath /tmp/%r@%h:%p
  532. 作用:
  533. 免去多次使用ssh登录远程主机过程中多次输入密码的麻烦.
  534. 注意:
  535. 1.退出所有终端
  536. 2.使用ssh远程登录主机后再次使用ssh登录就无须再次输入密码.
  537. 电路学习工具
  538. ----------------
  539. $>Fritzing #非常适合教育.
  540. $>kicad
  541. Linux配置网桥
  542. ----------------
  543. 1.ip列出物理口
  544. ------------
  545. $>ip -f inet a s
  546. 2.更新"/etc/network/interface"文件
  547. ------------
  548. $>vi /etc/network/interface
  549. ----------
  550. source /etc/network/interface.d/*
  551. 3.配置网桥(br0)
  552. ------------
  553. $>vi /etc/network/interface.d/br0
  554. ---------
  555. auto br0
  556. iface br0 inet static
  557. address 192.168.10.88 #根据具体情况进行修改.
  558. broadcast 192.168.10.255 #根据具体情况进行修改.
  559. netmask 255.255.255.0
  560. gateway 192.168.10.254 #根据具体情况进行修改.
  561. dns-nameservers 192.168.10.254 #根据具体情况进行修改.
  562. bridge_ports eth0 eth1 #根据具体情况进行修改.
  563. bridge_stp off
  564. bridge_waitport 0
  565. bridge_fd 0
  566. 注意:这里的配置经过测试是OK的;修改完后eth0的ip为:192.168.10.88,其他服务正常通过这个ip来使用.
  567. 4.重启并测试
  568. ------------
  569. $>ip a s
  570. $>ip r
  571. $>sudo brctl show
  572. $>ping -c 2 $serv_ip
  573. TCPDump抓包
  574. ------------------
  575. $>tcpdump -i $ETH_no. -w tcpdump_xxx.pcap -s 1000
  576. 注意:tcpdump_xxx.pcap文件使用Wireshark工具打开查看并进行过滤.
  577. 用nc做聊天工具
  578. -------------------
  579. $>ncat -l 8080 #在服务端运行这条命令.
  580. $>ncat $serv_ip #在远程客户端主机上运行这条命令,之后开发发送消息;这些消息会在服务器终端上显示出来.
  581. $>ncat -l 8080 | ncat $proxy_ip 80 #所有发往服务器8080端口的连接都会自动转发到$proxy_ip上的80端口,此时数据只能被单向传输.
  582. $>mkfifo 2way #创建管道,下面解决双向传输.
  583. $>ncat -l 8080 0<2way | ncat $proxy_ip 80 1>2way
  584. 用nc拷贝文件
  585. -------------------
  586. $>ncat -l 8080 > $FILE_NAME #在接收主机上启动nc,并进入监听模式.
  587. $>ncat $cli_ip --send-only < $FILE_NAME #在拷贝的主机上运行这条命令.
  588. 用nc创建后门
  589. -------------------
  590. $>ncat -l 10000 -e /bin/bash #客户端只要连接到服务器上的10000端口就能通过bash获取系统的完整访问权限.
  591. $>ncat $serv_ip 10000
  592. 用nc端口转发
  593. -------------------
  594. $>ncat -u -l 80 -c 'ncat -u -l 8080' #所有连接到80的端口的连接都会转发到8080端口.
  595. 用nc设置连接超时
  596. -------------------
  597. $>ncat -w 10 $serv_ip 8080 #导致连接10秒后终止,只能用于客户端.
  598. 用nc强制nc待命
  599. -------------------
  600. $>ncat -l -k 8080 #即使客户端的连接断开了,服务端也依然处于待命状态.
  601. Linux将文件分割成不同的大小
  602. -------------------
  603. $>split -b 20M $FILE_NAME #分割出来的大小相似(eg.20M),尺寸单位缩写K,M,G,T,P,E,Z,Y等.
  604. $>split -a 3 -d $FILE_NAME $prefix_name #-a:控制编号的数字位置.
  605. $>cat $prefix_name* > $FILE_NAME #将分割后的文件合并.
  606. parallel用法
  607. -------------------
  608. $>list | parallel command #parallel基本用法.
  609. $>find . -type f -name "*.log" | parallel
  610. $>find . -type f -name "*.log" | parallel gzip {}
  611. $>find . -type f -name "*.jpg" -exec cjpeg -outfile LoRes/{} {} ';' #找出所有.jpg文件,然后通过cjpeg对其进行图像压缩.
  612. $>find . -type f -name "*.jpg" | parallel cjpeg -outfile LoRes/{} {}
  613. $>for i in {1..100}; do dd if=/dev/urandom of=file-$i bs=1MB count=10; done #所及创建了100个大约1GB的文件.
  614. $>find . -type f -name "file*" -exec gzip {} ';'
  615. $>find . -type f -name "file*" | parallel gzip {} #parallel与gzip连用.
  616. 解决QT中文输入法的问题
  617. ----------------
  618. $>export QT_IM_MODULE=ibus
  619. $>qtcreator
  620. 注意:文件的编码需要设置为UTF-8否则依然无法输入中文.
  621. 打开终端和使用'sshpass'自动输入密码进行远程登录
  622. -------------------
  623. $>gnome-terminal --hide-menubar --title="$TITLE" --geometry=$WIDTHX$HEIGHT+$X+$Y -x sshpass -p $PWD ssh $USER@$SRV_IP & #eg.>geometry=100X80+0+0100,高80,距离左边0px,距离上边0px.
  624. $>gnome-terminal --hide-menubar --title="$TITLE" --geometry=$WIDTHX$HEIGHT+$X+$Y -x bash --rcfile /$PATH/.bashrc & #启动本地终端bash并指定初始化资源文件为“/$PATH/.bashrc”.
  625. 注意:在工作当中可以将其写入脚本.
  626. 使用"PS-GREP"的时候排除"grep"自身
  627. -------------------
  628. $>ps -ef | grep -i $prog_name | grep -v grep | awk '{print $2}'
  629. $>ps -ef | grep -i $prog_name | grep -v grep | awk '{print $2}' | awk BEGIN{RS=EOF}'{gsub(/\n/,",");print}'
  630. GDB中直接附加到进程调试技巧
  631. -------------------
  632. vi debug.sh
  633. -------------
  634. #!/bin/bash
  635. #杀死"$other_prog_name"进程
  636. kill -9 $(ps -ef |grep -i $other_prog_name |grep -v grep|awk '{print $2}') 2 >/dev/null
  637. #获取需要调试的进程ID.
  638. PROG_PID=$(ps -ef | grep -i $prog_name | grep -v grep | awk '{print $2}')
  639. echo $PROG_PID
  640. #导出环境变量
  641. export LD_LIBRARY_PATH=$PROG_LD_LIBRARY_PATH:$LD_LIBRARY_PATH
  642. #"GDB"附加到进程进行调试
  643. gdb -x /path/debug.cfg -p $PROG_PID
  644. vi debug.sh
  645. -------------
  646. #!/bin/bash
  647. #杀死多个"$other_prog_name"进程
  648. for i in $(ps -ef | grep -i $other_prog_name | grep -v grep | awk '{print $2}' | awk BEGIN{RS=EOF}'{gsub(/\n/," ");print}');
  649. do
  650. kill -9 $i 2 >/dev/null
  651. done
  652. #获取需要调试的进程ID.
  653. PROG_PID=$(ps -ef | grep -i $prog_name | grep -v grep | awk '{print $2}')
  654. echo $PROG_PID
  655. #导出环境变量
  656. export LD_LIBRARY_PATH=$PROG_LD_LIBRARY_PATH:$LD_LIBRARY_PATH
  657. #"GDB"附加到进程进行调试
  658. gdb -x /path/debug.cfg -p $PROG_PID
  659. GDB中直接附加到进程调试技巧
  660. -------------------
  661. vi debug.sh
  662. -------------
  663. #!/bin/bash
  664. #文件后缀.
  665. PREFIX=`date +%Y%m%d-%H:%M:%S.txt`
  666. #整个环境启动
  667. #ENV-START
  668. cnt=`cat /tmp/env_prog` #环境启动标识.
  669. let cnt=$cnt+1
  670. echo $cnt > /tmp/env_prog
  671. #ENV-END
  672. if [ $cnt -ge 1 ]
  673. then
  674. #需要启动的内容,下面添加启动脚本即可.
  675. #...
  676. else
  677. #需要干掉进程,下面添加杀死进程的脚本即可.
  678. #...
  679. fi
  680. #备份前面调试日志和命令历史记录.
  681. mkdir -p ./debug
  682. mkdir -p ./debug/.tmp
  683. touch ./debug/debug.cfg #创建debug.cfg.
  684. touch ./debug/breakpoints #创建breakpoints.
  685. touch ./debug/xdebug.cfg
  686. touch ./debug/xbreakpoints
  687. touch ./debug/.editing
  688. #ENV-START #开发中或已发布调试标识.
  689. eflag=`cat ./debug/.editing`
  690. #ENV-END
  691. if [ $eflag -ge 1 ]
  692. then #调试正在开发的代码.
  693. mv ./debug/.glog ./debug/.tmp/glog_$PREFIX
  694. mv ./debug/.ghistory ./debug/.tmp/ghistory_$PREFIX
  695. else #调试已发布代码.
  696. mv ./debug/.glog ./debug/glog_$PREFIX
  697. mv ./debug/.ghistory ./debug/ghistory_$PREFIX
  698. fi
  699. #杀死多个"$other_prog_name"进程
  700. for i in $(ps -ef | grep -i $other_prog_name | grep -v grep | awk '{print $2}' | awk BEGIN{RS=EOF}'{gsub(/\n/," ");print}');
  701. do
  702. kill -9 $i 2 >/dev/null
  703. done
  704. #获取需要调试的进程ID.
  705. PROG_PID=$(ps -ef | grep -i $prog_name | grep -v grep | awk '{print $2}')
  706. echo $PROG_PID
  707. #导出环境变量.
  708. export LD_PRELOAD=/path/:$LD_PRELOAD #HOOK.
  709. export LD_LIBRARY_PATH=$PROG_LD_LIBRARY_PATH:$LD_LIBRARY_PATH
  710. if [ $eflag -ge 1 ]
  711. then #调试正在开发的代码.
  712. #"GDB"附加到进程进行调试.
  713. gdb -q -x /path/debug/debug.cfg -p $PROG_PID
  714. else #调试已发布代码.
  715. #"GDB"附加到进程进行调试.
  716. gdb -q -x /path/debug/xdebug.cfg -p $PROG_PID
  717. fi
  718. vi ./debug/debug.cfg #常用调试选项.
  719. -------------
  720. set confirm off
  721. set pagination off
  722. set print address on
  723. set print array on
  724. set print elements 0
  725. set print pretty on
  726. set print array-indexes on
  727. set print union on
  728. set print object on
  729. set print vtbl on
  730. set logging on
  731. set logging overwrite off
  732. set logging file .glog
  733. set history filename .ghistory
  734. set history save on
  735. source /path/debug/breakpoints #断点文件.
  736. vi ./debug/xdebug.cfg #常用调试选项.
  737. -------------
  738. set confirm off
  739. set pagination off
  740. set print address on
  741. set print array on
  742. set print elements 0
  743. set print pretty on
  744. set print array-indexes on
  745. set print union on
  746. set print object on
  747. set print vtbl on
  748. set logging on
  749. set logging overwrite off
  750. set logging file .glog
  751. set history filename .ghistory
  752. set history save on
  753. source /path/debug/xbreakpoints #断点文件.
  754. 注意:"GDB"脚本与配置参考"/usr/share/doc/gdb",可以利用HOOK反复练习功能代码的实现机制.
  755. GDB调试框架
  756. -------------------
  757. $>vi ~/.gcfg
  758. -------------
  759. ...
  760. set substitute-path /$PATH/$MNT_/$PATH/$HOME/ #在调试嵌入式设备时指定源代码所在的目录,eg."/$PATH/$MNT/src" and "/$PATH/$HOME/src".
  761. source /$PATH/breakpoints #如何方便则如何设置.
  762. ...
  763. $>vi /$PATH/breakpoints
  764. -------------
  765. ...
  766. b ...
  767. ...
  768. 注意:注释使用"#".
  769. $>vi .profile
  770. -------------
  771. ...
  772. alias g="cd /$PATH && gdb -x ~/.gcfg $PROG"
  773. ...
  774. 将镜像还原到SD
  775. ----------------
  776. $>ddrescue -D --force $IMG /dev/$SDX
  777. Linux制作USB系统启动盘
  778. ----------------
  779. $>mkfs.vfat /dev/sdx -I #将U盘(/dev/sdx)格式为vfat/fat32格式.
  780. $>dd if=/path/x.iso of=/dev/sdx #写入系统iso文件.
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号