本文记录一些使用 Raspberry Pi 的过程中遇到的问题,还有作为备忘,不定期更新。
####系统设置
#####一般信息设置
一般信息可通过 Raspberry Pi 自带的工具来设置,比如自动登录,开机终端模式:
1 | sudo raspi-config |
####账户/权限/等相关修改
#####解锁 root 账户
树莓派使用的linux是debian系统,所以树莓派启用root和debian是相同的。
debian里root账户默认没有密码,但账户锁定。
当需要root权限时,由默认账户经由sudo执行,Raspberry pi 系统中的Raspbian
默认用户是pi 密码为raspberry
重新开启root账号,可由pi用户登录后,在命令行下执行
1 | sudo passwd root |
执行此命令后系统会提示输入两遍的root密码,输入你想设的密码即可,然后在执行
1 | sudo passwd --unlock root |
这样就可以解锁root账户了。
#####修改用户名
Linux 更改用户名不像Windows 重命名那么简单,首先你要知道在Linux中创建了一个用户,除了生成UID外还会有一个GID,当你对原用户名修改后,别忘了对GID也进行更新。
修改用户名:
以root身份登录,然后使用下列命令进行修改
1 | usermod -l NewUser -d /home/NewUser -m OldUser |
-l 修改用户名
-d 修改登录后使用的路径
-m 修改登录名称的同时将目录名称一同修改
修改组名称:
继上面操作后,继续执行下列命令
1 | groupmod -n NewUser OldName |
-n 修改组的名称
另外其实也可以通过直接修改文件的方式来修改用户信息,可参照这篇文章。
####远程操控
#####ssh 登录
首先打开树莓派,并且让你的树莓派连上网。接着从路由器的客户端列表里面找到你的树莓派 iP 地址。又或者利用 nmap 命令(下面会提到)来查找 RaspberryPi 的 ip 地址。
然后在终端利用 ssh 登录:
1 | ssh pandara@192.168.0.136 |
为了以后登录方便,不用输入密码,可以使用私钥登录。生成密钥对,公钥和私钥:
1 | ssh-keygen -t rsa |
保存位置直接选默认,这样生成的私钥为 ~/.ssh/id_rsa
,
然后,将公钥 ~/.ssh/id_rsa.pub 拷贝到树莓派的 ~/.ssh/authorized_keys:
1 | ssh-copy-id pandara@192.168.0.136 |
#####TightVNC
安装tightvnc server,设置8位最长的登录密码,这个密码将在连接的时候使用。然后直接用命令启动一个 server:
1 | tightvncserver |
也可以指定一个分辨率
1 | tightvncserver -geometry 800x600 |
图方便的话,也可以将这个命令放在启动 shell 里面执行。
然后在 client 用 tightvnc viewer 连接,需要知道ip,端口从5900开始,我用的时候是5901,这个跟登录系统的账号有关。
#####利用 nmap 查找 RaspberryPi 的 ip 地址
方法一
打印 ip 地址与 mac 地址的对应关系:
1 | sudo nmap -sP 192.168.0.0/24 | awk '/Nmap scan report for/{printf $5;}/MAC Address:/{print " => "$3;}' | sort |
然后会得到类似下面的输出:
1 | 192.168.0.1 => 88:25:93:63:6E:2C |
接着对应上你的 wlan 或者 eth 网卡的 mac,就查找到 RaspberryPi 的 ip 了。
方法二
stackOverFlow 上还有一种更加简便的方法:
1 | nmap -sP 192.168.0.0/24 |awk -v mac="b8:27:eb:10:84:f1" '/report for/{ip=$5}$0~mac{print ip}' |
不过我没成功,估计是哪里有问题,暂时没时间研究。
有关 nmap 的参考资料:
网络扫描和嗅探工具之Nmap
Nmap速查手册
#####vim+Python
树莓派默认安装的 vim 在编译时貌似没有加入对 Python 的支持,所以折腾起来有点麻烦。没办法只好删掉自己重新编译。卸载:
1 | sudo apt-get remove vi |
下载 vim 源码:
1 | wget ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2 |
然后解压:
1 | tar -xjvf vim-7.4.tar.bz2 |
进入资源目录:
1 | cd ~/DownLoads/vim74 |
设置编译属性,注意将 --with-python-config-dir
后面的值替换为自己的 python 路径,我的是 ‘/usr/lib/python2.7/config-arm-linux-gnueabihf/‘,原文中使用的配置如下,后来出现了问题,所以我做了删减,保留我必须的。这是原文的配置:
1 | ./configure --with-features=huge --enable-rubyinterp --enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config-arm-linux-gnueabihf/ --enable-perlinterp --enable-gui=gtk2 --enable-cscope --enable-luainterp --enable-perlinterp --enable-multibyte --prefix=/usr |
- –with-features=huge:支持最大特性
- –enable-rubyinterp:启用Vim对ruby编写的插件的支持
- –enable-pythoninterp:启用Vim对python编写的插件的支持
- –enable-luainterp:启用Vim对lua编写的插件的支持
- –enable-perlinterp:启用Vim对perl编写的插件的支持
- –enable-multibyte:多字节支持 可以在Vim中输入中文
- –enable-cscope:Vim对cscope支持
- –enable-gui=gtk2:gtk2支持,也可以使用gnome,表示生成gvim
- –with-python-config-dir=/usr/lib/python2.7/config-i386-linux-gnu/ 指定 python 路径
- –prefix=/usr:编译安装路径
我自己的配置:
1 | ./configure --with-features=huge --enable-pythoninterp=yes --with-python-config-dir=/usr/lib/python2.7/config-arm-linux-gnueabihf/ --prefix=/usr |
需要重新配置可 输入 make distclean #清理一下上一次编译生成的所有文件。
我在这一步收到报错:
1 | ... |
但是我想要安装 libncurses5-dev 的时候,又提示我另外的错误:
1 | The following packages have unmet dependencies: |
于是手贱的我异想天开,决定 remove 掉这些库,然后当我 remove 掉 libtinfo5 这个库,发现 apt-get 命令都找不到了…于是只好又要装回来,先安装
安装 gnupg:
1 | cd ~/DownLoads |
安装 raspbian-archive-keyring:
1 | wget http://mirrors.aliyun.com/raspbian/raspbian/pool/main/r/raspbian-archive-keyring/raspbian-archive-keyring_20120528.2_all.deb |
安装 apt:
1 | wget http://mirrors.aliyun.com/raspbian/raspbian/pool/main/a/apt/apt_0.9.7.9+rpi1+deb7u7_armhf.deb |
接着尝试安装 libncurses5-dev 失败,按照提示执行了这个命令:
1 | sudo apt-get -f install |
最终无力折腾,选择重装 RaspberrPI…
——–重装的分割线———
要注意的是安装 vim-nox 跟 python-dev 的时候国内的软件源都无法满足,需要使用树莓派默认的软件源,可参照下面软件源章节。之后跟着第4篇教程走,一切顺利。
接着安装 YCM,github 上 YCM 的 readme 也有详细的安装说明。
最后根据第5篇教程添加一些需要的插件,配置成一个完全体。但是第5篇教程中提到的关于安装有 python support 的 vim 的方法并不正确。
好吧,内容好像太多了,我需要新开一篇文章来谈谈我的 vim + Python 配置。
这部分参考了这几篇教程:
1.Linux中源码安装编译Vim
2.启用 VIM 中的 Python 自动补全及提示功能
3.Building Vim from source
4.Raspberry Pi install Vim and YouCompleteMe
5.Vim与Python真乃天作之合
####文件拷贝
将某个文件夹里的所有文件,包括隐藏文件,都复制到其他地方:
1 | cp -R /home/usera/. /mnt/temp |
vim上手技巧
1.这是一篇我用的比较多的 vim 命令速查汇总帖:链接
2.转贴自知乎上的答案
- 不按Esc而是按^[或者^c,速度快很多
- 学会几个定位键的区别:0, $, {, }, g, G, w, e, b…
- o, O分别是当前位置下面/上面插入一个新行并进入插入状态
- Shift+V选定几行,然后用 一起移动
- Ctrl+V选定行首或行尾的字符,然后用shift+i做插入,或者shift+x做删除
- 学会用y,d 和p, P做粘贴剪切
- 学会用^W的窗口操作。打开文件用sp或者vs
- 学会记录宏的命令。用q加任意键开始录制,再按q保存。然后可用@加这个任意键回放,在@前加数字可定义回放次数。
- “.”重复上一个命令,”u”取消上一个命令,”^r”反取消
- ^n, ^p用buf里的关键词补全。
- 学会搜索替换”:%s/要搜的东西/要换成的东西/g”
- 任何时候移到一个单词上按#的话可以高亮这个文档里所有一样的单词
- 用“/”做搜索, 按n或N 上一个/下一个
- “:!命令 &”可直接运行这个命令,用”:!命令 %&”如果你想让这个命令对当前所编辑文件做操作。
- 任何时候可用”:cd %:p:h”来切换目录到当前编辑文件所在目录。
#####翻墙
主要参考这篇文章,利用 shadowsocks 的命令行程序。
- 安装 pip
- 安装 shadowSock
- 编辑服务器信息 json 文件
- 启动命令可以添加一个 alias 来快速启动:
1
sslocal -c /home/Pandara/shadowsocks/shadowsocks.json
在最末尾添加:1
vim ~/.bashrc
需要翻墙时,在终端输入 ss 就可以了。1
alias ss='sslocal -c /home/Pandara/shadowsocks/shadowsocks.json'
####其他
#####软件源修改
这里有一些国内的镜像源:树莓派及其他硬件平台国内外Linux镜像站全汇总,我选用了 阿里云 跟 搜狐 还有一些大学的源:
1 | vim /etc/apt/sources.list |
添加下面这些:
1 | deb http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib |
然后执行:
1 | sudo apt-get update |
另外,有时候可能遇到一些依赖的版本无法被满足:
1 | The following packages have unmet dependencies: |
这时候就要将树莓派默认的软件源给添加回来,一般都能满足:
1 | deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi |