先修知识速查手册:Linux操作
这一部分包括了一些关于Linux操作系统和软件的先修知识——方便起见,该手册只包括与GAAS教程相关的Linux和常用工具软件的内容。
由于ROS和PX4等相关软件都是以Linux操作系统为基础的,因此需要掌握Linux平台的基本操作,主要是在shell命令行中进行基本操作。 下图为Linux终端的界面示例:

Linux终端
与Windows系统类似,Linux系统也使用目录树的形式来组织文件,典型的Linux的文件系统结构如下图所示:

/
为Linux文件系统的起始点,在/
以下会有很多其他的文件和文件夹:
Linux系统的权限机制使得每一个用户默认都只能操作自己的家(Home)文件夹,这个文件夹的路径为
/home/用户名
。例如,若当前用户名为
gi
,则家目录的路径为:/home/gi
——这个路径也可以直接用~
替代,即/home/gi/GAAS
等价于~/GAAS
。./
表示当前目录——要执行某个当前目录下的程序,需要在前面加上./
——例如当前目录下有一个程序hello
,执行该程序需要输入以下命令并回车:./hello
类似地,
../
表示上一级目录。 以下列出了一些较为常用的命令:
man
显示用户手册,在man
后面接某一个命令可以显示这个命令的详细使用指南;ls
显示指定路径下的所有内容,不指定路径则显示当前文件夹里的所有内容,常用参数为ls -l
,指定文件夹以列表形式显示;cd
进入某一路径,使用cd ..
可以进入上级目录;mkdir
建立一个指定名字的目录;cp
复制,用法为cp 源文件 目标路径
,若要复制一个目录则需要加上参数-r
; mv
移动,用法同cp
,但移动目录不需要-r
参数;cat
显示一个文本文件的内容;clear
清除当前终端显示的所有内容;touch
新建一个指定名字的空的文本文件若要终止一个正在运行的程序,可以按键盘上的组合键 Ctrl+C
输入
ls -l
可以看到列表形式显示的文件的详细信息:
在
/
目录下输入ls -l
可以发现大部分文件是系统所有的(即所有者为root
),因此默认情况下用户不能修改这些文件,否则会提示访问被拒绝permission denied
。此时如果当前用户具有root
权限的话,则可以直接在要执行的命令前加上sudo
,例如在/
目录下建立一个文本文件text.txt
,如下所示:sudo touch text.txt
此时会要求输入密码——注意此时你输入的字符不会被显示在终端上,这是正常现象。

输入密码时没有字符显示
关于权限机制,有以下命令较为常用(执行时需加
sudo
):chown
更改某个文件或文件夹的所有者——该命令较为常用的场景是,若用sudo
执行某命令,生成了一些文件,则这些文件的所有者也会是root
,执行移动之类的操作会遇到权限问题;chmod
为某个文件添加指定的权限——常用的场景是chmod +x
为某个文件(例如自己写的shell脚本)添加可执行权限,若无此权限则无法直接执行。1、环境变量介绍:
环境变量的作用是,指明一个路径,让Linux shell和通过shell启动的程序,可以从指定的路径查找程序和文件。
例如
ls
命令,实际上是一个单独的程序。位于/bin
目录——通过which
命令可以查看某一个命令对应的程序的路径:
提示:若遇到形如"xxx not found"的报错,xxx为某组件,但该组件已经安装,请首先考虑环境变量问题。
2、bashrc文件
bashrc
是Linux自带shell的一个脚本,该文件位于家目录,为隐藏文件(文件名以.
开头),实际的路径为:~/.bashrc
。当系统新建一个shell命令行窗口时,该脚本就会被执行一次,因此可以修改这个脚本以实现添加配置环境变量等功能。注意,修改并保存该文件并不会让环境变量马上生效,必须重新打开一个新的终端窗口,或者执行以下命令:
source ~/.bashrc
例如,在已经通过
apt-get
安装ROS的情况下,若不配置环境变量,则运行时会提示找不到roscore
:
需要将以下命令添加到
bashrc
中并执行source