China FreeBSD

RASBERRY系统安装与配置

  • 贡献者:HHJ
  • 阅读:684
  • 类别:其他
  • 更新时间:2017-11-09 02:10:32

制作系统

从树莓派官方 http://www.raspberrypi.org/downloads 下载Raspbian lite版,解压缩

 # unzip 2017-07-05-raspbian-jessie-lite.img.zip

写入SD卡

 # dd if=2017-07-05-raspbian-jessie-lite.img of=/dev/mmcsd0 bs=1M

开启SSH服务

raspberry系统默认关闭了SSH服务,若开启该服务,需要在boot分区下添加一个名为“ssh”的文件。

 # touch /media/mmcsd0s1/ssh

SSH disabled by default; can be enabled by creating a file with name "ssh" in boot partition

ROOT 账号设置

如果你安装的是官方的 Raspbian 系统,那么默认的登录帐号为 pi 密码是 raspberry。为了方便折腾,建议第一时间启用 ROOT 账号。

设置 root 账号的密码,会让你输入两次新密码

 sudo passwd root

启用 root 账号登录

 sudo passwd --unlock root

执行完之后,用 reboot 命令重启就可以用 root 登录啦。

树莓派用户管理

树莓派的用户管理需要在命令行终端上处理。默认的用户名是pi,密码为raspberry。你可以添加用户并修改每一个用户的密码。

修改用户密码

当你使用pi用户登录之后,你可以使用passwd命令修改你的密码。 如果你使用的用户拥有sudo权限,你可以通过其他用户的用户名和passwd命令修改他们的密码。例如,

sudo passwd bob

将允许你设置bob用户的密码,以及用户的其他可选值(例如姓名)。可以简单按回车跳过这些选项。 在命令行中输入passwd,然后按回车。命令行终端会提示你输入当前的密码进行验证,验证通过后会要求你输入新的密码。

删除用户密码

你可以通过sudo passwd bob -d命令删除用户bob的密码。

创建一个新用户

你可以使用adduser命令在你的树莓派设备上创建其他用户。 输入sudo adduser bob,将会提示你输入新用户bob的密码,也可以直接回车留空白表示不设置密码。

3.1 HOME FOLDER(Home文件夹) 当你创建一个新的用户,新的用户将会在/home/目录下创建自己的home文件夹。pi用户的home文件夹位于/home/pi/。

3.2 SKEL 上面创建了一个新的用户,/etc/skel/目录下的文件也会复制一份到用户的home文件夹下。你可以根据你自己的喜好添加或者修改类似/etc/skel/中.bashrc这样以“.”开头的文件,这些修改后的版本将会被应用到新创建的用户上。

sudo用户

树莓派上默认的pi用户是一个sudoer(sudo用户)。这种类型的用户在命令行上输入命令之前先输入sudo就能拥有root权限执行命令,也能够通过sudo su完全切换到root用户。

添加一个用户到sudoer用户组,需要使用一个sudo用户输入sudo visudo命令打开配置文件,找到文件中“# User privilege specification”下面的“root ALL=(ALL:ALL) ALL”。复制这一行并将其中的root替换为对应的用户名。为了免验证密码使用root权限,修改为NOPASSWD:ALL。下面的例子给予了bob用户免密码访问sudo权限:

bob ALL = NOPASSWD: ALL 

保存并退出以完成修改。

删除用户

你可以使用userdel命令将你系统上的一个用户删除掉。附加-r标签可以同时删除它们的home文件夹: [plain] view plain copy sudo userdel -r bob

更换软件源(apt-get sources)

编辑 /etc/apt/sources.list 文件,删除原有内容,添加中科大源:

 deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi
 deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free

然后执行 apt-get update 命令更新软件列表。


经过证明这样的源是最好的,对中国用户来说:

 deb http://mirror.devunt.kr/raspbian/raspbian/ wheezy main contrib non-free rpi
 deb ftp://ftp.kaist.ac.kr/raspbian/ wheezy main contrib non-free rpi
#deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
 deb http://mirror.nus.edu.sg/raspbian/raspbian/ wheezy main contrib non-free rpi
 deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi

说明

 deb      : debian包
 deb-src  : debian源码包
 http://  : dibian镜像地址
 jessie   : 版本代号
 main     : 自由软件
 contrib  : 半自由软件
 non-free : 非自由软件

设置静态 IP 地址

编辑 /etc/network/interfaces 文件,如果你要设置的是有线网卡的 IP 地址,那么把 eth0 的 dhcp 改成 static 然后在下一行追加 IP 信息,结果大概如下:

 iface eth0 inet static
 address 192.168.1.200 # 设定的静态IP地址
 netmask 255.255.255.0 # 网络掩码
 gateway 192.168.1.1    # 网关

如果你要设置的是无线网卡的,那么除了把 wlan0 的 dhcp 改成 static 之外,还需要填写无线网的名称和密码,编辑后的结果大概如下:

 iface wlan0 inet static
 wpa-ssid Your_Wifi_SSID
 wpa-psk Your_Wifi_Password
 address 192.168.1.200 # 设定的静态IP地址
 netmask 255.255.255.0 # 网络掩码
 gateway 192.168.1.1   # 网关
 network 192.168.1.1   # 网络地址
 #wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf   ▲ 注意注释掉最后一行

搞定之后,咱们用 poweroff 命令关掉树莓派,等到机器上的绿灯不闪了,把电源拔掉,再把网线拔掉,重新连接电源,稍等一会,看看是不是就通过无线网络的 IP 地址可以访问了。


常用命令

apt-get

联网下载、安装、删除软件包的命令(一般是用root身份),这个命令是Debian linux系统用的,功能很强

 sudo apt-get update          //升级列表中的软件包 
 sudo apt-get upgrade         //升级所有已安装的软件 
 sudo apt-get install vsftpd  //下载并安装vsftpd(一个ftp服务器)
 sudo apt-get remove vsftpd   //删除vsftpd
 apt-cache search gcc         //在apt cache中查找有否一个名为gcc的包
 dpkg -i  1.deb               //安装名为1.deb的包

useradd

useradd或adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。命令如下:

 useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name

主要参数

 -c:加上备注文字,备注文字保存在passwd的备注栏中。
 -d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
 -D:变更预设值。
 -e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。
 -f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.
 -g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。
 -G:指定用户所属的附加群组。
 -m:自动建立用户的登入目录。
 -M:不要自动建立用户的登入目录。
 -n:取消建立以用户名称为名的群组。
 -r:建立系统账号。
 -s:指定用户登入后所使用的shell。默认值为/bin/bash。
 -u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。

账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。

应用实例,建立一个新用户账户testuser1,并设置UID为544,主目录为/usr/testuser1,属于users组:

 #useradd -u 544 -d /usr/testuser1  -g users -m  testuser1


Raspberry(树莓派) 2 B 之内网穿透

想在树莓派上开一个Minecraft服务器来试试性能(zuosi),但是,有一个问题。
因为,树莓派是放在校园网里面的,没有公网IP。所以外网的人就访问不了我的服务器。
刚好,我有一台Aliyun的服务器,有公网IP。那么,我们就可以利用SSH端口转发来实现内网穿透!

首先,我们来看几条命令:

ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host

参数解释:

-R port:host:hostport

将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-L port:host:hostport

将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-f Fork into background after authentication.

后台认证用户/密码,通常和-N连用,不用登录到远程主机。

-C Enable compression.

压缩数据传输。

-N Do not execute a shell or command.

不执行脚本或命令,通常与-f连用。

将树莓派的25565端口转发到公网服务器B的25566端口,再在公网服务器内部将端口25565转发到端口25566,这也就意味着,只要客户端访问服务器B的25565端口,那么流量就会被转发到B:25566端口,进而转发到A:25565

有木有很绕?其实就两行命令的事情:首先,在树莓派上输入:

ssh -NfR *:25566:127.0.0.1:25565 服务器B的用户名@服务器B的IP -p 22

然后输入密码,如果成功就会在后台运行ssh。然后,再在服务器B上运行:

ssh -CNfg -L 25565:localhost:25566 服务器B的用户名@localhost

一样,输入密码,搞定!这样就可以通过访问服务器B的IP:25565来连接我们的MC服务器了!

关闭所有转发。(会KILL掉所有的SSH)

sudo killall ssh

Debian包管理

主要命令

 1.apt = 		advanced packaging tool
 2.检查程序是否安装	dpkg –l vsftpd
 3.查看进程		ps –aux | grep vsftpd
 4.开机自启动		vi /etc/rc.loca添加/etc/init.d/vsftpd start
 5.更改系统时区
tzselect sudo cp /usr/share/zoneinfo/Asia/ShangHai /etc/localtime sudo ntpdate cn.pool.ntp.org 6.修改时间
date -s "YYYY/MM/DD hh:mm:ss" date -s 'YYYY/MM/DD hh:mm:ss' date -s MM/DD/YYYY date -s hh:mm:ss 7.sources.lst软件源 http://mirrors.geekbone.org/ http://cn.archive.ubuntu.com/

dpkg包管理工具

1. dpkg --info "软件包名" --列出软件包解包后的包名称.
2. dpkg -l --列出当前系统中所有的包.可以和参数less一起使用在分屏查看.
3. dpkg -l |grep -i "软件包名" --查看系统中与"软件包名"相关联的包.
4. dpkg -s 查询已安装的包的详细信息.
5. dpkg -L 查询系统中已安装的软件包所安装的位置.
6. dpkg -S 查询系统中某个文件属于哪个软件包.
7. dpkg -I 查询deb包的详细信息,在一个软件包下载到本地之后看看用不用安装.
8. dpkg -i 手动安装软件包(这个命令并不能解决软件包之前的依赖性问题),如果在安装某一个软件包的时候遇到了软件依赖的问题,可以用apt-get -f install在解决信赖性这个问题.
9. dpkg -r 卸载软件包.不是完全的卸载,它的配置文件还存在.
10. dpkg -P 全部卸载(但是还是不能解决软件包的依赖性的问题)
11. dpkg -reconfigure 重新配置

apt高级包管理工具

GTK图形的"synaptic",这是APT的前端工具."aptitude",这也是APT的前端工具.用APT管理工具进行包的管理,可以有以下几种方法做源:

(1)拿安装盘做源 	apt-cdrom ident 扫描光盘的信息

apt-cdrom add 添加光盘源

(2)把源添加到/etc/apt/source.list中,之后更新apt-get update

apt-cache 加上不同的子命令和参数的使用可以实现查找,显示软件,包信息及包信赖关系等功能.

1. apt-cache stats 显示当前系统所有使用的Debain数据源的统计信息.
2. apt-cache search +"包名",可以查找相关的软件包.
3. apt-cache show +"包名",可以显示指定软件包的详细信息.
4. apt-cache depends +"包名",可以查找软件包的依赖关系.
5. apt-get upgrade 更新系统中所有的包到最新版
6. apt-get install 安装软件包
7. apt-get --reinstall install 重新安装软件包
8. apt-get remove 卸载软件包
9. apt-get --purge remove 完全卸载软件包
10. apt-get clean 清除无用的软件包
11. 用apt-get install之前,是先将软件包下载到/var/cache/apt/archives中,之后再安装.所以可以用apt-get clean清除/var/cache/apt/archives目录中的软件包. 源码包安装
12. apt-cache showsrc 查看源码包的文件信息(在下载之前)
13. apt-get source 下载源码包.
14. apt-get build-dep +"包名" 构建源码包的编译环境.


apt-get与dpkg的一些基本用法

1. apt-get install packagename #安装一个新软件包
2. apt-get remove packagename #卸载一个已安装的软件包(保留配置文件)
3. apt-get --purge remove packagename #卸载安装的软件包(删除配置文件)
4. dpkg --force-all --purge packagename #强制卸载,风险大!
 5. apt-get upgrade #更新所有已安装的软件包
6. apt-get dist-upgrade #将系统升级到新版本
7. apt-get clean #清理所有软件缓存
8. apt-get autoclean #清理旧版本的软件缓存
9. apt-get autoremove #删除系统不再使用的孤立软件
10. apt-cdrom add #增加一个光盘源
11. auto-apt run ./configure #编译时缺少h文件的自动处理
12. apt-cache search 正则表达式 #在软件包列表中搜索字符串
13. dpkg -l 正则表达式 #列出所有与模式相匹配的软件包
14. dpkg -l |grep ^rc|awk '{print $2}' | #xargs dpkg -P #清除所有已删除包的残馀配置文件
15. dpkg -i, --install XXX.deb #安装 XXX.deb软件包
16. dpkg -r, --remove, -P, --purge package...|-a|--pending


安装ftp服务器

vsftpd是开源的轻量级的常用ftp服务器.

1,安装vsftpd服务器 (约400KB)

sudo apt-get install vsftpd

2,启动ftp服务

sudo service vsftpd start

3,编辑vsftdp的配置文件

sudo nano /etc/vsftpd.conf

找到以下行,定义一下

anonymous_enable=NO  表示:不允许匿名访问
local_enable=YES     设定本地用户可以访问。
write_enable=YES     设定可以进行写操作
local_umask=022    设定上传后文件的权限掩码。

存盘退出

4, 重启vsftpd服务

sudo service vsftpd restart

5, 测试一下, OK

通过ftp连接树莓派系统,以用户名pi登录,密码是raspberry。ftp的根目录是/home/pi,即pi用户的HOME目录。可上传或下载文件了。



利用raspberry pi搭建typecho笔记(一) nginx PHP server quick start

https://www.cnblogs.com/kururu/p/3536416.html