ROS安装教程网址
我的环境:Ubuntu 16.04
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
1、作用
进行设置,使计算机能够接受来自于packages.ros.org的软件。
2、sudo sh -c
echo "信息1" > test.asc
是向文件中写入信息的快捷方式。
(其中的 > 有时也用 >> ,二者的区别是 > 表示将文档内的内容替换成输入内容, >> 表示将输入内容添加到文档已有的内容后面)
如果文档的权限是只有 root 用户才能写,那么就不能仅仅在前面加上 sudo 变成 sudo echo "信息2" > test.asc
来实现
会产生 -bash: test.asc: Permission denied
的报错。这是因为重定向符号 > 和 >> 也是 bash 的命令,使用 sudo 只是给了 echo 命令 root 权限,但 > 和 >> 命令并没有 root 权限。
可以利用 “sh -c” 命令解决这一问题,该命令让 bash 把一个字符串看做完整的命令来执行,可以将 sudo 的影响范围扩展到整条命令。具体用法如下:
sudo sh -c 'echo "信息2" > test.asc'
也可以使用管道和 tee 命令实现同样的功能,该命令可以从标准输入中读入信息并将其写入标准输出或文件中,具体用法如下:
echo "信息3" | sudo tee -a test.asc
(tee 命令的 “-a” 选项的作用等同于 >> 命令,如果去除该选项,那么 tee 命令的作用就等同于 > 命令)
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
1、作用
设置秘钥
2、apt-key
每个发布的 Debian 软件包都是通过密钥认证的,apt-key 命令用于管理 Debian Linux 系统中的软件包密钥。
apt-key adv
用于设置 key 的高级配置,可以从网络上下载 key。--keyserver
作用是指定域名- “C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654” 这一长串是秘钥的 fingerprint(指纹)
- recv 是 receive 的缩写,指接收,所以
--recv-key
指接收秘钥 - 所以整个命令意思是,指定从域名是“hkp://keyserver.ubuntu.com:80”(密钥服务器)上接收 key(秘钥)