ubuntu linux基础与树莓派使用心得
简介
- linux需要登陆、关闭系统等;
- linux系统有普通用户和超级用户
- 普通用户用户名:任意
- 超级用户用户名:root
- linux文件系统大小写严格区分!!!
安装
时间太长忘了安装过程,下次装的时候再补,不过挂载时需要加上’\’文件夹
在忘记root密码时修改密码
- 开机按 F12 (或长按Shift), 进入GRUB界面.
- 一开始可能有奇奇怪怪的东西,按相应的按键即可进行选择;
- 选择 Advanced options for Ubuntu
- 选择Ubuntu, Linux 3.5.0-17-generic
- Ubuntu, Linux 3.5.0-17-generic (恢复模式) (或recovery mode)
- 在恢复模式处, 按e, 进入Ubuntu恢复模式的脚本编辑界面,找到以下语句: 开头是linux, 后面有
… ro recovery nomodeset
,将ro recovery nomodeset
,改为rw single init=/bin/bash
(注:如不修改此处, 后面进入root后,但是不能修改文件) - 以上修改意为改为可读可写的单用户模式, 之后按
Ctrl + x
, 进入单用户模式, 此时的用户即位root用户(以上步骤是为了进入可读写的root用户模式.以下步骤为修改root密码) - 进入命令行后, 在命令行中执行
passwd root
输入两次新的密码即可.
目录结构
启动后常规设置
命令行与桌面的切换
ctrl+alt+F7 命令行->桌面 ctrl+alt+F1~F6 桌面->命令行
常用指令
安装与卸载
apt-get install xxx :安装xxx
apt-get remove xxx :卸载xxx
apt-get remove –purge xxx :卸载xxx同时删除配置文件
apt-get update :更新软件信息数据库
apt-get upgrade :进行系统升级
apt-cache search :搜索软件包
用户设置
- who
查看现在有谁在登陆状态
- who am i
查看我的用户名等 - date
显示当前日期 - locale
显示环境变量 echo
显示信息,如历史记录、日期等
echo $HOME
:显示当前文件夹echo string
:显示字符串- 加’\’可以在第二行继续输入
alias
alias rm='exam'
将某一常用命令取一个别名清除屏幕:
- ctrl+l:(快捷键)
- clear:(cmd)
- reset:(cmd)
文件
- cd
- cd :返回家目录
- cd /path :设置当前目录为/path
- sudo mkdir filepath
新建文件夹(exam等)
- sudo rmdir filepath
删除文件夹 chmod
改变文件属性(rw…)
如’chmod -w file.c’删除了当前目录下file.c的可写属性- more
more filename查看当前文件夹下的文件内容
- cat
新建文件
- cat > filename:新建一个名为filename的文件,回车后会需要继续输入文件内容,结束后按回车,再ctrl+D结束输入(直接ctrl+C也可以)
pwd
显示当前目录
ls
显示当前文件夹下的文件(可见的)
- 若使用
ls -a
,则显示所有文件,包括不可见的 - ls -l显示文件夹里文件的详细信息,如读写状态,编辑日期等
- 若使用
- find
find . -name "*.c"
:在当前文件夹下查找后缀名为.c文件
find / -name "*.c"
:在根目录下查找后缀名为.c文件
find filepath -name "*.c"
:在filepath目录下查找后缀名为.c文件 - grep
grep content filename查找filename里与content相同的行
grep content filename -c查找filename里与content相同的行,并显示行号 - sort
对文件中的行进行排序 - comm
对文件进行比较
- comm file1 file2 先输出相同的行,再输出仅在某一文件中出现的行
- cp
cp file1 file2
复制文件 - diff
diff file1 file2
比较2个文件 rm
rm filename
删除文件rm filename -i
删除文件时会有提示确认删除- mv
mv file1 file2
- wc
wc filename
:依次显示行数、单词数、字符数、文件名
磁盘
free
显示内存使用情况
命令的输入与输出
- 执行shell命令时,有3个标准文件
- 标准输入文件
- 标准输出文件
- 标准错误输出文件
cat
- cat后面不接任何提示符时,表示一直接受标准输入,每次按回车,都会将输入的内容输出到屏幕上
- 要想结束输入,只需按下ctrl+D
cat < filename
将文件里的内容输出到屏幕上cat > filename
写文件(冲掉原来的内容)cat >> filename
向文件里添加内容
echo
echo content > filename
:将content写进filename中(冲掉原来的内容)cat < file1 > file2
:将file1中的内容输出到file2,即相当于复制
|
- 名为”无名管道”,连接内容,前面的是输出到管道,后面的是从管道输入数据
ls -l | wc -l
:ls -l
内容输出到管道,wc -l
从管道获取输入- `command
表示command为一个命令(反引号引起来)echo
`pwd` 为执行pwd命令
文件与目录的概念
- 用’/’表示目录与子目录等
linux服从FSSTND规范,一些典型目录
- / : 根目录
- /bin : 可执行文件
- /boot : 系统启动时用到的文件,引导linux等时用到其中的一些信息
- /dev : 包含所有linux系统中使用的外部设备,但外设的驱动程序不在这里(一般放在内核中或者model中)
- /etc : 存放系统管理时要用到的各种配置文件
- /sbin : 存放系统管理员的系统管理程序
- /home : 如果建立一个用户名,为”guoruoyu”,则系统在/home下会有一个/home/guoruoyu的路径,存放用户的主目录
- /lib : 存放系统动态链接库
- /mnt: (empty generally)一般为空,可以将别的文件系统挂载在该目录下
- /proc:获取系统信息
- /root:超级用户的主目录
- /tmp:存放不同程序执行时产生的临时文件
- /usr:linux系统中占用硬盘空间最大的目录
连接
- ln:为文件新建一个链接,常分为符号链接和硬链接
- ln -s file1 newfile1符号链接,新建一个newfile1的名称,但是它是file1的内容
- 建立符号链接后,删除链接没关系,但是不能删除源文件,否则more newfile1时,会显示no such file or directory
- ln file1 file2硬链接,相当于复制,因为删除源文件后
- 硬链接不能跨文件系统,且不能为目录创建硬链接
- ln:为文件新建一个链接,常分为符号链接和硬链接
chmod
设置文件访问权限- 方法
- 使用字符串设置权限
- 使用8进制数设置权限
chown
改变文件所有权
chown username filename
改变文件主人为username
- 普通用户不能将文件所有权改变为
root
chgrp
改变组
- 方法
gzip 压缩和解压缩文件
gzip filename压缩文件压缩,后缀名会加上.gz
gunzip filename将文件解压缩
gzip -d filename将文件解压缩,和上面一样tar文件打包
- tar cvf fileg.tar file1
- tar zcvf fileg.tar.gz file1
man获取联机帮助
- man ls
which文件或指令的位置
- whereis cmd:指令的帮助手册
文本编辑
- vi
- vi filename:对文本进行编辑
- emacs
系统管理
用户和工作组管理
- head /etc/passwd 查看用户属性
- ls -l /etc passwd shadow查看用户的权限对加密后的登陆信息的访问权限(普通用户没有读的权限)
- /etc/group存放着组的基本信息
- useradd username:添加一个用户,用户名为username,如果不给它设置参数,它不自动生成/home下的主目录、用户密码和系统的shell
- adduser username新建用户名为username的用户,系统会产生提示,最终创建一个用户(适合初级用户,因为不像上面需要记住很多参数选项)
- userdel username删除用户,没有参数时只删除username,userdel -r user删除用户的同时删除该用户主目录
- deluser username删除用户
- usermod 改变用户的名称
- groupadd:添加组,
- groupadd -r groupname 建立系统组账号,id不能大于500
- groupadd groupname建立组,id大于500
*groupmod 删除
密码管理
- passwd
- gpasswd -a username groupname 添加用户到组
- gpasswd -d username groupname 将用户从组删除
- su - username切换到其他用户
进程管理
进程
ps:输出最近的进程,不会输出其他字段
- ps -eu
ps u -e列出所有的进程信息
sleep 2000& :产生一个进程 ps -l kill 4678 :杀死进程(4678是sleep的PID号) ps -l :查看进程(发现产生的进程消失)
sleep 2000 睡眠2000s,&表示后台进程
ctrl+C:(快捷键)终止当前进程
kill -9 PID:PID为bash的PID,相当于登陆,如果不加-9,登录状态的进程杀不掉
线程
进程中的一个执行体,一个进程中的各个线程共享进程拥有的资源
可以把一个进程分成若干个线程
提高进程执行效率
进程分工细化
查看登录用户及日志文件
- w
- 查看登录信息,返回登录时间、时长等信息
- 查看日志文件系统
- 日志在/var/log下,包含许多日志文件
- dmesg :系统自启动以来产生的所有的消息
- 日志在/var/log下,包含许多日志文件
linux网络基础
基本指令
- hostname:显示主机名称
ifconfig:显示网络配置
- ifconfig eth0:查看系统的配置
- ifconfig eth0 ipaddress:修改网络ip地址为ipaddress
- ifconfig eth0 down:关闭本地连接
- ifconfig eth0 up
sudo /etc/init.d/networking restart
- sudo /etc/init.d/networking start:开启网络服务(和redhat linux有所不同)
- sudo /etc/init.d/networking stop
- service network:查看网络服务
- more /etc/init.d/networking存储网络信息的文件
route:查看路由信息
- destination:路由的目标ip地址
- gateway:网关使用的主机名或者ip地址
- route add ipaddress:增加路由的ip地址
ping网络测试指令
- ping netaddr -c num:向网址发送num个报文,检测收发状态
traceroute:跟踪网络
netstat:显示各种与网络相关的状态信息
- netstat -i:网络统计信息
- netstat -r显示网关信息
nslookup:查询DNS数据库
- 输入指令后,输入网址即可查询网址ip地址等信息
tcpdump
网络文件
- 网络设置:/etc/sysconfig/network
- 端口号和服务器之间的映射:/etc/services
- 配置DNS客户 /etc/resolv.conf
- 主机地址、子网掩码和网关:/etc/init.d/network(这个版本好像不行)
intranet服务器
samba(一组软件)
linux gcc使用
安装gcc
sudo apt-get install build-essential
- 查看版本
gcc --version
编译、链接等指令
- 无选项编译链接
- gcc file.c:预处理、编译、链接生成a.out
- ./a.out:执行a.out
- file a.out:查看文件的类型(一般是elf类型的可执行程序,说明后缀不影响文件类型)
- 选项-o
- gcc file.c -o file.o:生成file.out
- 其他:相关链接
文本编辑器
有用链接
vi/vim使用
- 安装vim
- apt-get install vim(vi一般是自带的,ubuntu没有自带vim)
vim的状态
- 命令行模式
- 按esc到达命令行模式
- 插入模式
- 按i到达插入模式
- 底行模式
- 将文件保存或者退出vi,也可以设置编辑环境
- [esc]+:+q+!:不保存退出
- [esc]+:+w+q:保存后退出
进程创建系统调用
进程创建
指令: fork(主要) vfork clone
int var = fork();
var<0:创建不成功
var=0:
var>0:
raspberry 使用手册
登陆
- root yourname(超级用户)
- pi yourname(系统自动创建的用户)
- gf yourname(处理网页的用户)
显示器、键盘连上直接登陆
远程登陆
- 工具
- advanced ip scanner
- putty
- 网口和路由器相连,为路由器上接个口和树莓派相连,用advanced ip scanner扫描树莓派的ip地址,用putty连上即可
- 这个找了好长时间。。之前树莓派没地址,用dos尝试ping了一个地址,再次扫描时就发现树莓派的地址变成它了。
- 首次登陆,需要配置
- rasp-config要配置,有几个比较重要的地方
sudo raspi-config
(没有空格)- expand filesystems
- 时区配置
- 修改密码
- rasp-config要配置,有几个比较重要的地方
- 为方便以后登陆时不用老查询ip地址,可以设置静态ip地址
- 自己上网找,反正我没试成功,最后还得重新写SD卡
*激活root用户
* sudo passwd root
软件安装与删除
sudo apt-get remove [package name]
删除软件或包sudo apt-get install [package name]
安装软件或包
无线驱动的安装与使用
远程登陆树莓派的图形界面
- 网址
- 如果提示找不到,可以尝试修改软件源。
- 安装之后,用
vncserver :1
启动服务,在windows上用VNC viewer即可登陆图形界面,比如说ip地址为192.168.0.111,开启的端口号为1,则需要同192.168.0.111:1进行链接即可。
- 注:这块树莓派的口令是########
文件传输
- 直接打开winscp直接拖拽文件即可。
开机自启动文件
- /etc/rc.local 在该文件中添加相应命令即可
gpio操作
下载wiringPi的库
测试语句
- gpio -v :版本号
- gpio readall :gpio的所有管脚定义
基本
- 在/root/wiringPi/examples中有许多例子,可以参考
lsusb
查看usb接口使用细节- 开机自动发送ip到邮箱:网址
各种库的说明
- 使用wiringPi库时,用C语言开发,此时管脚定义是
gpio readall
中的wPi对应的管脚,设置时,直接用相应的数字即可。 - 使用python开发时对应的管脚,就是按照physical顺序排列的管脚
有用的网站
进入树莓派的图形化界面
- python
- mathematic
python 开发
进入
- 命令行敲入python即可
摄像头模块使用
- 安装与使能
- sudo apt-get update 更新
- sudo raspi-config点击”enable camera”
- 重启即可
使用
- raspistill -o filename.jpg -t time
- 当前目录下于time秒之后拍照,生成一张filename.jpg的图片
- 如果要查看命令的全部选项,直接
raspistill
,回车即可
- raspivid -o filename.h264 -t 10000
- 拍视频,生成10s、filename.h264的视频。
raspivid
直接回车,可以查看全部选项- 如果需要转成MP4格式的文件,可以参考上面的链接。
- raspistill -o filename.jpg -t time
树莓派摄像头实现实时监控和视频数据传输
- 注:写地址时,记得加上http://,否则显示无法打开
树莓派搭建服务器
- 为方便上传与下载文件使用(图片、视频等)
- 步骤
- 搭建web服务器的方法链接
- 之后只需登陆该界面即可查看各种树莓派上生成的网页
树莓派基于webiopi的网页控制
- 相关链接:http://blog.csdn.net/xukai871105/article/details/20799551
运行webiopi
webiopi -d -c /etc/webiopi/config
一般端口为8000,之后只需登录”http://192.168.0.111:8000/“即可,用户名是webiopi,密码是raspberry
- 登录之后可以通过点击按钮控制GPIO的状态
- 要想修改初始化文件,只需修改’/etc/webiopi/config’文件即可
- 连接
启动方法(root下)
cd /etc/init.d ./webiopi start
若要停止该服务,只需要./webiopi start
即可
树莓派上python2.7的计算机视觉编程
安装PIL库(在树莓派上这个方法似乎不可行,因为几种文件格式都不支持)
- 下载包
wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz
- 解压
tar xvfz Imaging-1.1.7.tar.gz
找到Imaging-1.1.7/setup.py,修改以下的语句
TCL_ROOT = "/usr/lib64/" JPEG_ROOT = "/usr/lib64/" ZLIB_ROOT = "/usr/lib64/" TIFF_ROOT = "/usr/lib64/" FREETYPE_ROOT = "/usr/lib64/" LCMS_ROOT = "/usr/lib64/"
- 安装检查
python /root/nowamagic_venv/Imaging-1.1.7/setup.py build_ext -i
- 安装
python /root/nowamagic_venv/Imaging-1.1.7/setup.py install
- 下载包
更多推荐
所有评论(0)