win10 Ubuntu16.04
装了无数次,老是无法重启,无法进入,最后把Ubuntu跟Win10都装SSD上看着好些了,但是还是感觉不够完美
查看Ubuntu版本号
cat /etc/issue
查看内核版本
uname -r
Google Chrome安装
1.下载安装包
sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
2.安装两个依赖
sudo apt-get -f install libappindicator1 libindicator7
3.安装Chrome
sudo dpkg -i google-chrome-stable_current_amd64.deb
4.google-chrome-stable启动即可
Hosts修改
sudo gedit /etc/hosts
安装搜狗输入法
1.去搜狗官网下载到deb包
2.然后下一个小工具GDebi:sudo apt-get install gdebi
GDebi它会根据软件仓库这一实用的特性,来解算依赖关系,很方便
3.装完后cd到输入法deb包的那个目录进行安装:sudo gdebi sogoupinyin.deb
4.重启或者注销完成
安装NVIDIA驱动
附件驱动-->附加驱动-->选择NVIDIA的专有驱动--->应用更改
更重启后,闪屏的问题要好点了,暂时没有发现这个现象了
安装smplayer
sudo apt-get install smplayer
安装QQ
下载地址:http://www.ubuntukylin.com/applications/showimg.php?lang=cn&id=23
下载完解压出来
sudo dpkg -i fonts-wqy-microhei_0.2.0-beta-2_all.deb
sudo dpkg -i ttf-wqy-microhei_0.2.0-beta-2_all.deb
sudo dpkg –I wine-qqintl_0.1.3-2_i386.deb //这一条我没有成功,最后我用sudo gdebi wine-qqintl_0.1.3-2_i386.deb完成的
装完Dash里面好像没有看到qq,也没有去仔细找了,直接打命令:wine-qqintl可以启动
设置终端字体大小
直接右键-->配置文件->配置文件首选项 里面可以改
常用命令
Ctrl+U 剪切文本直到行的起始(可以用于清空行)
Ctrl+Y 粘贴最近剪切的文本
Ctrl+Shift+C 复制选中的内容
Ctrl+Shift+V 粘贴
Ctrl+L 清空屏幕(功能相当于命令clear)
Ctrl+D 退出当前Shell(功能相当于命令exit) 或者 删除当前的字符 试了下这个只有在shell中内容空的时候才能退出
Ctrl+Shift+Q 退出终端 这个就不管有没有内容都会退出
复制cp ,剪切 mv ,删除 rm,删除文件夹 rmdir
Ctrl+Alt+L 锁屏
Ctrl+Alt+0 最小化窗口
super+Ctrl+向上箭头 最大化窗口 // 换成向下箭头 可以恢复窗口大小
Ctrl+u 剪切光标之前的字符(可以用来清空刚输入的命令哈)
Ctrl+y 剪切光标之后的字符
Ctrl+y 粘贴刚才剪切的字符
终端命令
ctrl + r 搜索之前的命令 (卧槽这个感觉好吊)
ctrl + u 清除光标到行首的字符
ctrl + k - 清除光标到行尾的字符
ctrl + shift + t 新建标签页
ctrl + shift + w 关闭标签页
ctrl + PageUp(PageDown) 切换标签页 或者 alt + 1 , 2 ,3……
安装OpenCVC
1.官网下zip包,下了一个2.4.13的
2.然后参考官方文档http://docs.opencv.org/3.0-last-rst/doc/tutorials/introduction/linux_install/linux_install.html进行了如下步骤
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
如果遇到“XXX 没有可安装的候选者” sudo apt-get update即可
3.创建opencv目录,并将安装包放到里面,解压
4.创建在opencv目录下创建一个目录where you want to put the generated Makefiles, project files as well the object files and output binaries and enter there.
跟官网一样创建一个build目录
5.在build目录中执行 cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
6.在build目录中执行 make -j7
7.在build目录中执行 sudo make install
CV例程测试
1.在某个目录下新建test.cpp
#include <cv.h>
#include <highgui.h>
using namespace cv;
int main(int argc, char* argv[])
{
Mat image;
image = imread(argv[1], 1);
if (argc != 2 || !image.data)
{
printf("No image data
");
return -1;
}
namedWindow("Display Image", CV_WINDOW_AUTOSIZE);
imshow("Display Image", image);
waitKey(0);
return 0;
}
2.写一个cmake的makefile,CMakeLists.txt
project(test)
find_package(OpenCV REQUIRED)
add_executable(test test)
target_link_libraries(test ${OpenCV_LIBS})
cmake_minimum_required(VERSION 2.8)
3.编译运行
cmake .
make
得到可执行文件test
在该目录下放一张图片,如test.png
执行:./test test.png
如果能显示图片,那么就成功了,哦也!
关于编译和链接
http://www.cnblogs.com/luchen927/archive/2012/02/05/2339002.html
一般来说,无论是C还是C++,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile),一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。
编译时,编译器需要的是语法的正确,函数与变量的声明的正确。对于后者,通常是你需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中),只要所有的语法正确,编译器就可以编译出中间目标文件。
链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件(O文件或是OBJ文件)来 链接我们的应用程序。链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File),在大多数时候,由于源文件太多,编译生成的中间目标文件太多,而在链接时需要明显地指出中间目标文件名,这对于编译很不方便,所以,我们要给 中间目标文件打个包,在Windows下这种包叫“库文件”(Library File),也就是 .lib 文件,在UNIX下,是Archive File,也就是 .a 文件。
makefile
makefile定义了一系列规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。
CMake
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。
CMake的所有的语句都写在一个叫CMakeLists.txt的文件中。当CMakeLists.txt文件确定后,可以用ccmake命令对相关 的变量值进行配置。这个命令必须指向CMakeLists.txt所在的目录。配置完成之后,应用cmake命令生成相应的makefile(在Unix like系统下)或者 project文件(指定用window下的相应编程工具编译时)。
通常的流程:
- $> ccmake directory
- $> cmake directory
- $> make
第一条语句用于配置编译选项,如VTK_DIR目录 ,一般这一步不需要配置,直接执行第二条语句即可,但当出现错误时,这里就需要认为配置了,这一步才真正派上用场;
第二条命令用于根据CMakeLists.txt生成Makefile文件;
第三条命令用于执行Makefile文件,编译程序,生成可执行文件; make会在当前目录下找名字叫“Makefile”或“makefile”的文件。
所以关键在于CMakeLists.txt文件的编写
Lantern
https://imjad.cn/archives/lab/installation-and-configuration-of-lantern-in-ubuntu
根据这里提供的下载地址下到安装包 然后 gdebi 安装 运行即可
Android Studio
下到zip包后,解压到要安装的目录,比如我放到home下,cd到该目录的bin目录下,执行
./studio.sh
开始安装,完成安装后,如果要在终端里直接启动还需要配置环境变量,参考
http://jingyan.baidu.com/article/db55b609a3f6274ba30a2fb8.html
1.设置系统环境变量
sudo gedit /etc/environment
将之前的bin目录地址复制到PATH后面,用:隔开
使其立即生效
source /etc/environment
这里搞完好像只能在~下输入studio.sh才有效,所以需要继续配置下面的
2.设置当前用户环境变量
sudo gedit ~/.bashrc
在文件末尾加入
export PATH=/YOUR_PATH:$PATH
这里的YOUR_PATH就是bin目录
使其立即生效,输入
source ~/.bashrc
这下基本打开终端就可以studio.sh来启动AS了
Lua安装
https://www.lua.org/download.html 这个页面下载安装包
cd到下载目录
tar zxf lua-5.3.3.tar.gz
cd lua-5.3.3
make linux test
如果遇到错误:fatal error: readline/readline.h: 没有那个文件或目录。说明缺少一个依赖包
sudo apt-get install libreadline-dev
再执行make linux test
网上其他地方有写继续执行make install 不过官网没写 我也执行了下
写一个print("hello world") 保存为test.lua
lua test.lua
得到输出,成功
卷boot仅剩0字节的硬盘空间
原因大概是系统升级后,之前的Linux内核依然会留在boot分区中。所以解决办法是删掉以前的那些内核
0.可以查看boot分区的空间看下
df
boot分区果然可用为0了。
注意:这里显示的空间大小貌似是byte,不是很好看,用df -h 可以增加可读性
1.查看已安装的linux-image各版本
dpkg --get-selections |grep linux-image
会列出很多,然而你可能不知道哪个才是你正在使用的内核版本
install表示已安装的,deinstall大概是已经卸载了的?反正本来有几个以前的版本是install,我删掉后,就变成deinstall了
2. 查看当前使用的是哪个版本,这里看到是4.4.0-72这个版本
uname -a
3. 卸载掉不用的版本
sudo apt-get purge linux-image-3.5.0-generic
4.再查看一下
df -h
这样就腾出50%空间了
高分屏显示问题
感觉Ubuntu在高分屏这里处理的还算不错,
系统设置-- 显示--菜单和标题栏的缩放比例 可以调到一般比较满意的缩放
然后就是终端的字体,进入终端,右键配置文件,然后可以设置字体以及字体大小
检测到系统程序出现问题
总而言之,让他不要报错了比较好,因为你反正也不会填写错误报告
禁止Apport
$ gksu gedit /etc/default/apport
将enabled=1改为=0即可。同理,以后要打开就再改为1就好了
此操作需要从未验证的源安装软件包
打开update-manager的时候出现这个问题,也就是在检查软件更新的时候。
然后尝试 sudo apt-get update 出现 无法认证来自该源的数据 所以使用它会带来潜在风险。
用sudo apt-get dist upgrade 试了下 貌似是开始下载了,但是是404,下的东西好像也没有很敏感吧,就是smplayer也是404,这就奇怪了
截图
shift+Ctrl+Prt 选择一块区域截图到剪切板
源
参考:http://www.jianshu.com/p/57a91bc0c594#
sudo apt-get update 是更新软件源,不是更新软件。在终端下载软件是根据软件源的信息进行下载,所以软件源更新之后再安装软件就能安装源中的最新版本。
源,相当于软件库,,需要什么软件,只要记得正确的软件名就可以用命令安装:
sudo apt-get install 软件名
要删除软件时,
sudo apt-get remove 软件名
Ubuntu 中安装软件的方式:
在 Ubuntu 中软件安装的方式和 Windows 系统中双击 exe 文件的傻瓜式软件安装的方式有很大的不同,它主要可以分为下面三种安装方式:
- 通过 apt 包管理工具从软件源中安装
- 通过 deb 格式的软件包安装
- 从软件源码手动编译安装
通过软件源安装软件的原理:
其实通过软件源安装软件的原理非常简单,Ubuntu 系统中自带了一个名为 apt的软件包管理工具,它的主要功能就是负责 Ubuntu 系统中所有软件包的管理,包括从软件源中下载软件,卸载系统中已经安装的软件等。而每当我们通过 sudo apt-get install <package-name>命令去安装一个软件时,apt 包管理工具就会从系统中一个叫做源列表的文件中去读取软件源的网址信息,查找可以包含该软件的软件源的网址,然后就从这个网址上把指定的软件给下载下来,然后由 apt 包管理工具在本地进行一些解压和安装的其他操作。
软件源的分类:
在 Ubuntu 中软件源其实还细分为下面两种:
- Ubuntu 官方软件源
- PPA 软件源
Ubuntu 官方软件源:
Ubuntu 官方软件源中包含了 Ubuntu 系统中所用到的绝大部分的软件,它对应的源列表
是 /etc/apt/sources.list。在这个文件中,记录了 Ubuntu 官方源的地址
PPA 软件源:
PPA 源出现的背景是因为系统自带的源是很有限的,我们肯定需要一些其他的软件包然而如果是直接下载deb格式的文件的话,又不能获取到更新和维护,所以这就用到了十分重要的 PPA 源了。
所谓 PPA 源,就是指 “Personal Package Archives” ,也就是个人软件包集。这其实是一个网站,即-launchpad.net。Launchpad 是 Ubuntu 母公司 Canonical 有限公司所架设的网站,是一个提供维护、支援或联络 Ubuntu 开发者的平台。由于不是所有的软件都能进入 Ubuntu 的官方的软件库,launchpad.net 提供了 PPA,允许开发者建立自己的软件仓库,自由的上传软件。供用户安装和查看更新。
检查源的速度
可以通过ping源地址来检测速度,比如 ping mirrors.aliyun.com
添加PPA源
添加 PPA 软件源的命令:sudo add-apt-repository ppa:user/ppa-name
删除 PPA 软件源的命令:sudo add-apt-repository --remove ppa:user/ppa-name
当我们添加完 PPA 源之后,系统就会在 /etc/apt/sources.list.d/ 文件夹里创建了两个文件:一个是 ***.list 一个是***.list.save
拿搜狗输入法来说,***.list里面是这样的,其实跟sources.list里面写的东西是一样的,大概是区分一下官方和非官方源
XShell通过VirtualBox连接Ubuntu1604
http://www.linuxidc.com/Linux/2016-08/134086.htm
XShell与VirtualBox中的Ubuntu之间的文件传输
http://www.linuxidc.com/Linux/2015-05/117975.htm
Ubuntu中需要安装rz
所以在XShell中输入 sudo apt install lrzsz
然后在XShell中 文件--》属性--》文件传输。填好下载路径和加载路径,这里可以设置为不一样,我图省事就用一个文件夹
然后在XShell中输入rz就会打开Windows的加载路径了
rz和sz都是使用Zmodem文件传输协议,所以rz和sz是这样的缩写:
rz: Receive Zmodem
sz: Send Zmodem
在公司使用VirtualBox,Ubuntu连xshell失败
原文地址:http://php-z.com/blog-200052-155.html
公司网络环境,VirtualBox安装Ubuntu 16.04虚拟机,桥接无法连网。在家可以!
解决方案:
1、启用两个网卡,代替“桥接网卡”
2、网卡1连接方式设置为“网络地址转换(NAT)”
3、网卡2连接方式设置为“仅主机(Host-Only)适配器”
4、启动虚拟机,以Ubuntu 16.04为例,修改配置文件:
编辑配置文件“/etc/network/interfaces”
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
# Virtualbox Host-only mode
auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0
#network 192.168.56.0
# Virtualbox Bridged mode
#auto eth1
#iface eth1 inet static
#address 192.168.0.190
#netmask 255.255.255.0
#gateway 192.168.0.1
该配置将虚拟机在内部网络中的IP地址设置为静态分配(192.168.56.101),方便宿主机在hosts中绑定该IP访问虚拟机。保存配置后,执行如下命令重启网络服务:
$ sudo /etc/init.d/networking restart
这里的restart我失败了,但是依然连上了,然后xshell就可以连上了!!!太爽了!!
即可实现虚拟机使用NAT通过宿主机来正常访问外部网络,同时因为使用了Host-Only模式,宿主机可以通过虚拟机在内部网络的IP地址访问虚拟机,即使外部网络不可用也不影响宿主机对虚拟机的访问。
安装mysql
sudo apt-get install mysql-server
然后中间会提示要输入root密码
安装完后,直接输入 mysql 会报错。正确的登陆方式是 mysql -uroot -pYouPassword
-u表示user,哪个用户,-p就是密码,-p和密码之间不需要空格
解压xz文件
先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包。
无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)
强制解锁,命令
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
解决依赖问题
1.不要用默认的源
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
把上面的替换/etc/apt/sources.list中的,不放心可以备份下这个文件
然后sudo apt-get update
2.aptitude
如果还不行,就尝试用aptitude。用sudo aptitude install *** 来安装软件,这个东西会自动查找依赖,会给出三个选项,如果选择n 一般都能解决问题,只是他会降级软件来安装
安装ss
先装pip
sudo apt-get python3-pip
再装ss
sudo pip3 install shadowsocks
配置ss