ubuntu linux基础与树莓派使用心得

简介

  • linux需要登陆、关闭系统等;
  • linux系统有普通用户和超级用户
  • 普通用户用户名:任意
  • 超级用户用户名:root
  • linux文件系统大小写严格区分!!!

安装

时间太长忘了安装过程,下次装的时候再补,不过挂载时需要加上’\’文件夹

在忘记root密码时修改密码

  1. 开机按 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​输入两次新的密码即可.​

目录结构

ubuntu linux基础与树莓派使用心得_第1张图片

启动后常规设置

  • 命令行与桌面的切换

    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个标准文件
    1. 标准输入文件
    2. 标准输出文件
    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硬链接,相当于复制,因为删除源文件后
      • 硬链接不能跨文件系统,且不能为目录创建硬链接
  • 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:指令的帮助手册

文本编辑

  1. vi
    • vi filename:对文本进行编辑
  2. 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 :系统自启动以来产生的所有的消息

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
  • 其他:相关链接

文本编辑器

有用链接

  • link1
  • link2

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
      • 时区配置
      • 修改密码
  • 为方便以后登陆时不用老查询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顺序排列的管脚

有用的网站

  • gpio
  • uart
  • picamera

进入树莓派的图形化界面

  • 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格式的文件,可以参考上面的链接。
  • 树莓派摄像头实现实时监控和视频数据传输

    • 网址
  • 注:写地址时,记得加上http://,否则显示无法打开

树莓派搭建服务器

  • 为方便上传与下载文件使用(图片、视频等)
  • 步骤
    • 安装vsftpd
    • 配置各种关于vsftpd的文件
      • 有用的链接:配置过程详解 文件详细说明
      • 在遇到530、453等网络问题时,基本都是配置文件出现问题,按照文件详细说明中进行配置即可
  • 搭建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

你可能感兴趣的:(ubuntu linux基础与树莓派使用心得)