ubuntu日常使用指南

ubuntu日常使用指南

安装软件包/编译常见软件包

有些包用apt去装就可以了,或许需要添加ppa源;有些包则版本太老,需要从源码编译安装。

查找包

aptitude search pkgName

pkgName可以有多个(空格分隔)

ffmpeg

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
sudo apt-get update
sudo apt-get install ffmpeg

编译安装opencv和opencv contrib 以及python接口

罗嗦版:http://www.cnblogs.com/zjutzz/p/6714490.html

mkdir -p ~/work/gitdown
cd $_
git clone https://github.com/opencv/opencv
git clone https://github.com/opencv/opencv_contrib
cd opencv
mkdir build
cd build
cmake \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local/opencv-git-master \
-D WITH_CUDA=OFF \
-D WITH_VTK=OFF \
-D WITH_MATLAB=OFF \
-D BUILD_DOCS=ON \
-D OPENCV_EXTRA_MODULES_PATH=/home/chris/work/gitwhat/opencv_contrib/modules \
-D PYTHON2_EXECUTABLE=/usr/bin/python \
-D PYTHON3_EXECUTABLE=/usr/bin/python3 \
-D PYTHON_INCLUDE_DIR=/usr/include/python2.7 \
-D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python2.7 \
-D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so \
-D PYTHON2_NUMPY_INCLUDE_DIRS=/usr/lib/python2.7/dist-packages/numpy/core/include/ \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3.5/dist-packages/numpy/core/include/ \
..

期间容易出现ippicv等第三方包下载不下来的情况。找到对应的.cmake文件,把下载地址拼接出来自行下载,注意替换掉md5的hash值。下载的文件放到<opencv_root>/.cache目录下,例如:

.cache
├── ippicv
│   └── 1469ff5ced054be500921d2d46278ef4-ippicv_linux_20151201.tgz
├── protobuf
│   └── bd5e3eed635a8d32e2b99658633815ef-protobuf-cpp-3.1.0.tar.gz
├── tiny_dnn
│   └── adb1c512e09ca2c7a6faef36f9c53e59-v1.0.0a3.tar.gz
└── xfeatures2d
    ├── boostdesc
    │   ├── 0ae0675534aa318d9668f2a179c2a052-boostdesc_lbgm.i
    │   ├── 0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i
    │   ├── 202e1b3e9fec871b04da31f7f016679f-boostdesc_binboost_064.i
    │   ├── 232c966b13651bd0e46a1497b0852191-boostdesc_bgm_bi.i
    │   ├── 324426a24fa56ad9c5b8e3e0b3e5303e-boostdesc_bgm_hd.i
    │   ├── 98ea99d399965c03d555cef3ea502a0b-boostdesc_binboost_128.i
    │   └── e6dcfa9f647779eb1ce446a8d759b6ea-boostdesc_binboost_256.i
    └── vgg
        ├── 151805e03568c9f490a5e3a872777b75-vgg_generated_120.i
        ├── 7126a5d9a8884ebca5aea5d63d677225-vgg_generated_64.i
        ├── 7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i
        └── e8d0dcd54d1bcfdc29203d011a797179-vgg_generated_48.i

新编译出来的cv2.so位于/usr/local/opencv-git-master/lib/cv2.so

sudo apt-get remove python-opencv
sudo ln -sf /usr/local/opencv-git-master/lib/python2.7/dist-packages/cv2.so /usr/lib/python2.7

或者设定PYTHONPATH也可以

编译安装protobuf3.2

apt装的protobuf是2.5版本. pip装的protobuf是3.2版。 使用了python layer的网络,如果用tools/caffe.cpp编译出的工具build/caffe来执行网络,会报protobuf版本问题,需要protobuf-cpp的版本装3.2版

编译装protobuf3.2

卸载apt的protobub

sudo apt-get remove --purge libprotobuf-dev

如果你是ubuntu-desktop用户,那你的桌面有可能被误删。立即安装(不要重启):

sudo apt-get install ubuntu-desktop -y
sudo apt-get install unity -y
sudo apt-get install compiz-gnome -y
sudo apt-get install libcompizconfig0 -y

静态编译protobuf(产生libprotobuf.a而不是.so文件,否则caffe编译会报错)

sudo apt-get install autoconf automake libtool curl make g++ unzip
cd ~/work/gitdown
git clone https://github.com/google/protobuf
git checkout -b 3.2.x origin/3.2.x
cd protobuf

vim configure

修改2658行和2661行,引号里面都换成"-fPIC"

./autogen.sh
./configure --disable-shared
make -j8
sudo make install

sudo ldconfig

重新编译caffe

cd ~/work/caffe-BVLC
make clean
make -j8
make pycaffe

py-faster-rcnn

http://www.cnblogs.com/zjutzz/p/6034408.html

android-studio

真机调试:需要先设定udev的规则。
参考:http://www.jianshu.com/p/958361328ae5

exfat无法挂载?

sudo apt-get install exfat-utils

flash

sudo apt-get install flashplugin-installer

耳机插入后没声音

需要手动设置下,参考:
http://www.linuxdiyf.com/linux/25058.html

refs

http://blog.csdn.net/linyushan11/article/details/10378419

https://github.com/BVLC/caffe/issues/19

好用的命令与参数搭配

将所有文件的编码,转换为UTF-8

find . ! -type d -exec enca -L zh_CN -x UTF-8 {} \;

将指定目录下所有文件权限设定为644

find . ! -type d -exec chmod 644 {} \;

将指定目录下所有目录权限设定为755

find .  -type d -exec chmod 755 {} \;

替换文本文件中行尾换行符,从dos(CRLF)为unix行尾换行符:

find . -name '*.php' | xargs -I {} perl -pi -e 's/\r//g' {}

批量删除所有.svn子目录:

find . -type d -name ".svn"|xargs rm -rf

对目录下所有文件执行同种操作,比如文件名追加"pop":

for file in "$(ls)"; do echo -e "$file"pop; done

计算md5加密:

echo -n "你的字符串" | openssl md5

其中-n参数一定要有,否则结果就不一样了(掺杂了回车的结果)

查看CPU是几核的:

cat /proc/cpuinfo | grep 'procossor' | wc -l

持续查看某条命令结果:用watch。例如每隔一秒监控一次nvidia显卡显存占用:

watch -n 1 nvidia-smi

几个简单方便的脚本

cmake项目的编译脚本

cmake执行后产生log,希望保存log方便后续查看。
cmake可能有很多参数,一下子记不住。
那么使用这个脚本:

#!/bin/bash
# compile.sh
set -x   #把本行后的脚本执行内容,打印到屏幕。用于调试
set -e   #本行后,如果某行执行结果返回值不是true,那么终止

LOG="log.build"
touch $LOG
rm $LOG

exec &> >(tee -a "$LOG")   #将屏幕输出内容,同时写入log文件:便于后续查找

echo "Logging to $LOG"

BUILD_ROOT=build
if [ -d $BUILD_ROOT ]; then
    rm -rf $BUILD_ROOT
fi
mkdir -p $BUILD_ROOT
cd $BUILD_ROOT
echo "building root folder is $BUILD_ROOT"

echo "Now do cmake"

cmake ..

echo "Now do make"

make -j8

echo "Done"

在此基础上可以添加sudo make install,以及cmake的各种option值。

使用外部库的CMakeLists.txt

dlib

比如使用dlib库写自己的代码。那么自行下载并编译dlib,会同时生成静态库libdlib.a和动态库libdlib.dylib文件。

要使用dlib(静态库、动态库都可以),假设我的代码只有一个assignment_learning_ex.cpp文件(来自dlib的tutorial),那么它配套的CMakeLists.txt这样写:

cmake_minimum_required(VERSION 2.8.12)

project(examples)

set (CMAKE_CXX_STANDARD 11)  # -std=c++11

set(INC_DIR /Users/tusdk/work/dlib)   #dlib头文件路径,改成你的

set(LINK_DIR /Users/tusdk/work/dlib/build/dlib)  #dlib库文件路径,改成你的

include_directories(${INC_DIR})

link_directories(${LINK_DIR})

add_executable(assignment_learning_ex assignment_learning_ex.cpp)

target_link_libraries(assignment_learning_ex dlib)

.cpp文件和CMakeLists.txt文件放同一目录下,执行:

mkdir -p build
cd build
cmake ..
make -j8

完成编译,可以运行了。

这种写法,应该是比较方便使用的,每次只编译自己代码就好了,dlib不用重新编译。

而dlib官方的文档,意思是自己的调用dlib库的程序(用cmake构建),每次都重新编译dlib。虽然说了一堆道理,但是编译dlib对我来说没有必要,浪费时间,不如去掉,所以,用我贴出来这个脚本会方便。

在cmake项目中使用自行编译的opencv

find_package时指定opencv编译的build目录即可。其实前面的dlib,原则上这么做应该也行。但是dlib生成的.cmake脚本不在同一目录有点麻烦。

caffe2中有个Dependencies.cmake,稍作修改,把opencv的部分拿出来:

# ---[ OpenCV
if(USE_OPENCV)
  # OpenCV 3
  find_package(OpenCV QUIET COMPONENTS core highgui imgproc imgcodecs
      CONFIG
      PATHS "/Users/tusdk/work/opencv/build/")
  if(NOT OpenCV_FOUND)
    # OpenCV 2
    find_package(OpenCV QUIET COMPONENTS core highgui imgproc)
  endif()
  if (OpenCV_FOUND)
    include_directories(SYSTEM ${OpenCV_INCLUDE_DIRS})
    list(APPEND Caffe2_DEPENDENCY_LIBS ${OpenCV_LIBS})
    message(STATUS "OpenCV found (${OpenCV_CONFIG_PATH})")
  else()
    message(WARNING "Not compiling with OpenCV. Suppress this warning with -DUSE_OPENCV=OFF")
    set(USE_OPENCV OFF)
  endif()
endif()

==== update =====

也是被opencv和cmake折腾的醉了。仔细看了下cmake的find_package的文档后,才知道怎么master这些包(比如opencv)

对于自行编译的opencv 假设安装在了/opt/opencv-git-master 那么通过在CMakeLists.txt里设定CMAKE_PREFIX_PATH,能最高优先级地设定opencv的查找路径。e.g.:

cmake_minimum_required(VERSION 3.2)
project(play)

message("CMAKE_MODULE_PATH is: ${CMAKE_MODULE_PATH}")
message("CMAKE_SYSTEM_PREFIX_PATH: ${CMAKE_SYSTEM_PREFIX_PATH}")
message("CMAKE_SYSTEM_FRAMEWORK_PATH: ${CMAKE_SYSTEM_FRAMEWORK_PATH}")
message("CMAKE_SYSTEM_APPBUNDLE_PATH: ${CMAKE_SYSTEM_APPBUNDLE_PATH}")

list(APPEND CMAKE_PREFIX_PATH "/opt/opencv-git-master")  ##!! 这里在设定
# 假如是apt装的opencv,那么先通过dpkg -L libopencv-dev查询知道,.cmake文件在/usr/share/OpenCV,那么用下面这行:
#list(APPEND CMAKE_PREFIX_PATH "/usr/share/OpenCV/")
message("CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}")

find_package(OpenCV
    #NO_CMAKE_PATH
    #NO_CMAKE_ENVIRONMENT_PATH
    #NO_SYSTEM_ENVIRONMENT_PATH
    #NO_CMAKE_PACKAGE_REGISTRY
    #NO_CMAKE_SYSTEM_PATH
    )

message(${OpenCV_DIR})

#add_executable(hello main.cpp)

而如果你opencv安装在/usr/local或者/usr/local/opencv开头的路径中,那么不用设定CMAKE_PREFIX_PATH就能被找到,当然设定这个变量会有更高优先级。

具体参考cmake官方文档中find_package()的内容,或者cmake简明使用指南.

启动后提示硬盘出错,进入busybox的initramfs界面

这问题今天(2017-11-21 11:44:35)第一次遇到,解决办法是手动调用磁盘修复命令。虽然它提示了手动修复,但是我怎么知道哪些参数?还是靠百度,靠网友的经历了。
参考http://blog.csdn.net/babyfish13/article/details/51190148,我用的文中第二种方式。

提示"boot"分区空间不足

是旧的内核太多了。保险的方式是安装byobu后操作。
purge-old-kernels在byobu软件包中,首先,安装byobu:

sudo apt install byobu

运行purge-old-kernels卸载旧内核:

sudo purge-old-kernels

为了保险它会保留最新的两个Linux内核。

参考:http://blog.topspeedsnail.com/archives/6069

时间: 2024-11-27 19:47:24

ubuntu日常使用指南的相关文章

Ubuntu桌面生存指南 (1) --- 选择 Linux

缘起 我大概是从2010年4月份开始把自己的桌面开发环境从 Windows XP 迁移到 Ubuntu 10.04 的,说起来也已经有两年半的 Ubuntu 使用经验.那次迁移的原因大致是因为某个阶段特别迷恋如何高效的操作电脑,当时把 Windows 整的很伏贴,但是说到高效的使用电脑,不可能对 Linux 系统视而不见.其次就是瞥到一个同事在捣鼓 Ubuntu, 加上毕竟 Windows 环境生存了十几年时间,再多的新鲜感也用尽了,当时很想试试在 Linux 下是不是可以完成在 Windows

Ubuntu 快速设置指南

快速设置指南 本文仅仅适用于采用i386安装光盘安装的系统,部分内容并不适合Amd64和PPC安装. 因为中间部分包没有相应的Amd64和PPC的对应包,因此会出现找不到该包的情况.如果你是属于这样的系统,请到论坛咨询.   当你刚刚安装完毕之后,我们来花10分钟设置一下系统,让其有一个更加舒适的中文环境. 当你安装完毕后,进入,不论你进入的是中文,还是英文,都来和我一起来创建一个合适的环境. 如果您看到 "$", 的符号, 意思是你必须在终端状态下运行此命令. (应用程序 ->

Ubuntu系统联网指南

局域网 如果电脑连接到 http://www.aliyun.com/zixun/aggregation/33934.html">Modern,Modern自动拨号,那只需要(假定你第一块网卡名是eth0) sudo ifconfig eth0 up   #激活网卡 sudo dhclient eth0 #自动分配地址 最简单了,什么interfaces和NetworkManager都不用去管. 其实这部分桌面用户不怎么需要,这是最简单的联网功能,随后提到的工具点点鼠标都可以完成. pppo

Ubuntu Gnome快捷键指南

通用快捷键 Alt + F1 类似Windows下的Win键,在GNOME中打开"应用程序"菜单(Applications) Alt + F2 类似Windows下的Win + R组合键,在GNOME中运行应用程序 Ctrl + Alt + D 类似Windows下的Win + D组合键,显示桌面 Ctrl + Alt + L 类似Windows下的Win + L 组合键,锁定桌面,不同在于同时启动屏幕保护程序 Ctrl + Alt + → / ← 在不同工作台间切换 Ctrl + A

Ubuntu桌面生存指南 (2) --- Ubuntu桌面体验简介

选择 Ubuntu 对于准备迁徙到 Linux 的用户来说,另一个头疼的问题就是选择发行版.所谓发行版是指在同一个 Linux Kernal 上由不同厂商,社区定制包装了不同桌面管理系统和附带了常用软件的 Linux 发行版本,通俗来说就是可以交付给用户安装的 Linux 系统.常见的发行版有 Ubuntu, Mint,RedHat, Fedora 等等,总数不下几百种.面对数量庞大的发行版,新人总是很难做出选择.好在每个发行版本都比较有针对性,有些是针对桌面应用,有些是针对服务器系统,还有 一

Ubuntu字体设置指南

Sans-serif=无衬线体=黑体:并不是具体一款字体,而是一类字体,选择它其实等于选择这类字体中优先级最高的那款字体. Serif=衬线体=白体:同上 Monospace=等宽字体,意思是字符宽度相同:同上 点阵字体=位图字体 无衬线体更适合电脑屏幕阅读,衬线体适合打印.--因为衬线可以使得人视线平齐于一行.也就是说不会读破行. 中文显示时有不同的方式,一方面因为中文本身拥有的横和同高度就可以导致这种平齐.行距对中文更重要. Linux字体 字体文件存放路径 /usr/share/fonts

Ubuntu安装配置指南:西厢计划

西厢计划提供一组工具,使得用户在一次设置之后,能够以普通程序直连目标网络,而避免GFW的大部分影响.其命名是为了向中国古典文学史上翻墙的先驱者张某致敬.西厢计划现在已经达到alpha可用状态,在初步的测试中可以让用户以普通浏览器无障碍地直连Youtube. 特性 西厢计划要解决GFW造成的两个方面的问题:TCP连接重置和DNS劫持(污染).为此西厢计划提供了两种特性: TCP连接混淆:在每次连接中,通过对GFW的入侵检测系统进行注入,混淆连接,使得GFW无法正确解析连接和检测关键词,从而在有关键

KDE 4.5 Ubuntu环境配置指南

音频,视频播放 sudo apt-get install kubuntu-restricted-extras 系统设置 -> 多媒体 -> 把http://www.aliyun.com/zixun/aggregation/33972.html">PulseAudio调到最上方(不这样做,容易导致声卡独占只有一个程序能发声或是各种莫名其妙的Amarok问题). openoffice.org的kde整合 sudo apt-get install openoffice.org-kde

网上“口碑”你敢相信吗

中介交易 SEO诊断 淘宝客 云主机 技术大厅 看电影.买书.进餐馆.旅游--不由自主先看看网友评价再做决定.随着网络的普及,越来越多的人欣然接受这种全新的生活消费方式.然而,"口碑决定购买"的潮流能否改变固有的消费方式?此外,过度依赖没有"认证"的口碑又会带来怎样的副作用? "口碑决定购买"潮流悄然兴起 在银川市一事业单位工作的汪小梅前段时间很忙,一直没有时间观看新上映的电影."之前老看见报纸.电视宣传<十全九美>,我就想