在学习ROS之前应该先对linux的基本命令有所了解。wiki里ROS教程最上面就有unix基础教程。
If you are new to Linux: You may find it helpful to first do a quick tutorial on common command line tools for linux. A good one is here.
点击here处就可以。内容大致如下:
ls 列出当前目录下的文件
ls -a 列出当前目录所有文件,包括隐藏的文件
mkdir mt 创建名为mt的目录
cd mt 改变目录进入mt
cd . 当前目录
cd .. 父目录
pwd 打印绝对路径
cd ~ 家目录
cp file1 file2 复制file1并将其命名为file2
mv file1 file2 将file1移动并重命名为file2
rm 删除文件
rmdir 删除目录
clear 清屏
cat file 显示文件内容
less file 一次显示一个页面的文件(q退出,'/'+内容,可以搜索)
head 显示文件前10行
tail 显示文件尾10行
grep Science science.txt 在science.txt 中搜索文字,区分大小写
grep -i science science.txt 不区分大小写
grep -i 'spinning top' science.txt 不区分大小写搜索 spinning top
-v 反选
-n 在选中的行前显示行号
-c 打印选中的总的行数
grep -ivc science science.txt 不含science或者Science的行数
wc word count
wc -w science.txt 计算文本里的字数(不是字节数)
wc -l science.txt 计算文本里的行数
cat 重定向输出(本来是输出到终端,现在输出到文本中)
Cat > list1 添加 到list1,会覆盖原来的内容
cat >>list1 添加到list1,不会覆盖原来的内容
Ctrl+d 停止进程
cat list1 list2 > biglist 将list1和list2的内容合并到biglist
sort 重定向输入(本来是在键盘输入,现在可以利用一个文件当做输入)
sort < biglist 将biglist打印到屏幕
sort < biglist > slist 输出到slist
who 查看系统上有哪些用户
pipe 管道(管道可以连接两个命令,将前一个命令的输出数据当做到后一个命令的输入,管道符号为 |(shift+\))
who | wc -l 显示登录了多少用户
* 通配符
ls *.txt 列出所有txt格式的文件
?号 匹配一个字符(比如?ouse会匹配house或者mouse而不是grouse)
whatis wc 显示wc的单行的帮助,省略选项等其他信息。
命名文件和目录的时候尽量不要使用空格,应使用字母,数字,字符(即_)和.(句点)。不要使用有特殊含义的字符。
文件名以字母开头后面跟 . 再跟表示文件类型的字母。如C程序,以 .c结尾。这样查找所有C文件时,只要输入ls *.c就可以。
man wc 显示详细的帮助文档
apropos keyword 打印出所有含有关键字的命令
ls-l列出目录信息如 -rwxrw-r-- 1 ee51ab beng95 2450 Sept29 11:52 file1
从左到右,第一个字符是文档属性,然后是三组共九个权限,分别是拥有者、用户组、其他用户的读(r)、写(w)、执行(x)的权限,没有权限用'-'代替,之后是用户名,用户组名,文件大小,创建时间和文件名。
chmod 改变权限
chmod a+rw biglist 将biglist的读写权限授予所有人
ps 查看进程
& 后台运行命令
sleep 等待
sleep 10 & 后台等待10秒
可用ctrl+z暂停一个进程,然后用bg使它在后台运行。
jobs 查看暂停或者在后台运行的进程
fg %jobnumber 激活暂停的进程
只输入fg则激活最近暂停的进程
kill %jobnumber 用jobnumber杀死进程
kill PID号 用进程编号杀死进程
kill -9 PID号 强制杀死进程
quota 显示磁盘使用情况和限额
df . 显示文件系统的剩余空间
du 显示每个子目录使用的kb数。常用来查看哪个文件最大
gzip 压缩
gunzip 解压
zcat 阅读压缩的文件内容,无需解压
file 根据数据类型对文件进行分类
diff 比较两个文件内容并显示差异
find 查找
find -name "*.txt" -print 从当前目录开始,遍历所有目录,查询以.txt为扩展名的文件,然后将文件名称打印到屏幕上。
find -size +1M -ls 查找大小大于1M的文件,并将其结果显示为长列表。
history 显示输入的历史命令
!! 重新调用上一个命令
!-3 重新调用倒数第三个命令
!5 重新调用第五个命令
!grep 重新调用以grep开头的命令
set history=100 增加历史缓冲区的大小
安装软件的步骤:
1.下载源码安装包
2.解压源码
3.编译代源码
4.安装可执行文件
5.设置安装目录的路径
编译源代码:
所有的语言代码必须转换为计算机能够理解的形式。比如C语言会转变为更低级的汇编语言,然后汇编语言再转变为目标语言,这是一种计算机可以直接理解的代码碎片。最后一步是链接目标语言到包含特定内置函数的代码库。最后阶段会产生一个可执行程序。
手动去做这些步骤对于一个新手来说是复杂而且超出他们的能力的。于是为了帮程序员和终端用户简化步骤,开发了许多的实用程序和工具。
Make和Makefile:
Make命令允许程序员处理大的的程序或者程序组。它可以通过跟踪整个程序的哪些部分被改变了帮助开发大型程序,只编译被改变的程序部分。
make程序从一个名为Makefile的文本文件中获取它的一组编译规则,该文件保存在与源文件相同的目录中。它包含如何编译软件的信息,例如优化级别,是否在可执行文件中包含调试信息。它还包含了在哪里安装完成编译的二进制文件(可执行文件)、手册页、数据文件、依赖库文件、配置文件等信息。
有些安装包需要你去手动编辑makefile文件以设置最后的安装目录和其他参数。但是,现在发布的许多安装包都带有GUN的通用配置。
The simplest way to compile(编译) a package is:
- cd to the directory containing the package's source code.
- Type ./configure to configure the package for your system.
- Type make to compile the package.
- Optionally, type make check to run any self-tests that come with the package.
- Type make install to install the programs and any data files and documentation(文档).
- Optionally, type make clean to remove the program binaries(二进制) and object files from the source code directory
7.2到8.3略
变量:
变量有环境变量和shell变量之分。是全局和局部的区别。全局变量名用大写字母。
使用和设置变量。
在登录时,C shell首先读取.cshrc,然后是.login
.login用于设置将应用于整个会话的条件,并执行仅在登录时相关的操作。
.cshrc用于设置特定于shell和它的每次调用的条件和执行操作。
警告:不要在.cshrc或.login文件中放置运行图形显示(例如web浏览器)的命令。
例如,要更改保存在历史列表中的shell命令的数量,需要设置shell变量history。默认情况下它被设置为100,但是如果您愿意,可以增加这个值。
但是,这只设置了当前shell的生命周期的变量。如果您打开一个新的xterm窗口,它将只有默认的历史值设置。需要将set命令添加到.cshrc文件中。
首先在文本编辑器中打开.cshrc文件。一个易于使用、用户友好的编辑器是nedit。
nedit ~/.cshrc
在其他命令列表之后添加以下行。
set history = 200
保存文件并强制shell使用source命令重新读取它的.cshrc文件。
source .cshrc
检查是否有效
echo $history
当您输入命令时,您的path(或PATH)变量将定义shell在其中查找您输入的命令的目录。如果系统返回一条消息说 "command: Command not found",这表明该命令在系统上根本不存在,或者根本不在您的路径中。
例如,要运行单元,您需要直接指定单元路径(~/units174/bin/units),或者需要在路径中包含目录~/units174/bin。
您可以通过发出以下命令将其添加到现有路径的末尾($path表示此路径):
set path = ($path ~/units174/bin)
通过尝试在单元所在的其他目录中运行单元来测试这一点。
cd
units
要永久地添加此路径,请在其他命令列表之后将以下行添加到.cshrc中。
set path = ($path ~/units174/bin)