当前位置: 首页 > news >正文

Linux终端常用命令

一、基本语法

1. 命令的基本结构

Linux 命令通常长这样:

命令[选项][参数]

例如:

ls-l/home/nvidia

意思是:

ls命令:列出文件-l选项:用详细格式显示 /home/nvidia 参数:要查看的目录

再比如:

cptest.py /home/nvidia/catkin_ws/src/

意思是:

cp命令:复制 test.py 参数1:源文件 /home/nvidia/catkin_ws/src/ 参数2:目标位置

2. 选项的写法

Linux 选项一般有两种:

短选项:-l 长选项:--help

例如:

ls-lls--help

多个短选项可以合并:

ls-a-l

可以写成:

ls-al

含义:

-a:显示隐藏文件 -l:详细显示

3. 查看命令帮助

你不知道一个命令怎么用时,可以用:

命令--help

例如:

ls--help

也可以用:

man命令

例如:

manls

退出man页面按:

q

常用查帮助方式:

命令--help#查看这个命令的简短使用说明man命令#查看这个命令的完整说明书命令-h#查看帮助,但它不一定每个命令都支持

二、目录和路径命令

这是最基础的一类,主要用于进入目录、查看当前在哪、创建文件夹。

1. 查看当前目录:pwd

pwd

作用:显示你当前所在的位置。

例如输出:

/home/nvidia/catkin_ws

说明你现在在:

/home/nvidia/catkin_ws

2. 进入目录:cd

cdchange directory,意思是切换目录。

cd目录路径

例如进入工作空间:

cd~/catkin_ws

进入src文件夹:

cd~/catkin_ws/src

返回上一级:

cd..

返回用户主目录:

cd~

或者直接:

cd#等价于cd ~

返回上一次所在目录:

cd-

例如:

cd~/catkin_ws/srccd..

原来在:

/home/nvidia/catkin_ws/src

执行cd ..后就到了:

/home/nvidia/catkin_ws

3. 查看目录内容:ls

ls

作用:查看当前目录里面有哪些文件和文件夹。

常用写法:

lsls-lls-als-alls-lh

解释:

ls普通查看ls-l详细查看ls-a显示隐藏文件ls-al详细显示所有文件,包括隐藏文件ls-lh以更容易看懂的方式显示文件大小

例如:

ls-al~/.ros

意思是查看.ros隐藏文件夹里面的所有内容。


4. 创建文件夹:mkdir

mkdir文件夹名

例如:

mkdirtest

创建多级目录:

mkdir-p~/catkin_ws/src/my_package/scripts

解释:

-p:如果中间目录不存在,就自动创建

如果没有-p,中间某个目录不存在时会报错。


5. 常见路径符号

符号含义例子
/根目录/home/nvidia
~当前用户主目录~/catkin_ws
.当前目录./test.py
..上一级目录cd ..
-上一次目录cd -

例如:

cd~/catkin_ws/src

等价于:

cd/home/nvidia/catkin_ws/src

前提是当前用户是nvidia


三、文件操作命令

这一类用于创建、复制、移动、删除、查看文件。

1. 创建文件:touch

touch文件名

例如:

touch~/catkin_ws/src/my_package/scripts/test_node.py

作用:创建一个空文件。

如果文件已经存在,touch不会清空它,只会更新时间。


2. 复制文件或文件夹:cp

复制文件:

cp源文件 目标位置

例如:

cptest.py ~/catkin_ws/src/

意思是把test.py复制到~/catkin_ws/src/里面。

复制并改名:

cptest.py test_backup.py

复制文件夹要加-r

cp-rmy_package ~/backup/

解释:

-r:递归复制,用于复制文件夹

3. 移动或重命名:mv

移动文件:

mv文件名 目标目录

例如:

mvtest.py ~/catkin_ws/src/

重命名文件:

mvold.py new.py

移动文件夹:

mvmy_package ~/catkin_ws/src/

mv不需要加-r,文件和文件夹都可以移动。


4. 删除文件或文件夹:rm

删除文件:

rmtest.py

删除文件夹:

rm-rmy_package

强制删除:

rm-rfmy_package

解释:

-r:递归删除文件夹 -f:强制删除,不询问

非常危险的命令:

sudorm-rf/

这个意思是强制删除整个系统,千万不要执行。

你平时删除时建议先用:

ls文件名

确认以后再:

rm文件名

5. 查看文件内容

查看全部内容:cat

cat文件名

例如:

catpackage.xml

适合查看短文件。


分页查看:less

less文件名

例如:

lessCMakeLists.txt

操作:

上下方向键:滚动 空格:下一页 q:退出

查看前几行:head

head文件名

查看前 20 行:

head-n20文件名

查看后几行:tail

tail文件名

实时查看日志:

tail-f文件名

例如:

tail-f~/.ros/log/latest/rosout.log

-f的意思是文件更新时,终端也跟着显示。


6. 编辑文件

常用编辑器有:

nano文件名 gedit 文件名vim文件名

新手推荐:

nanotest.py

nano 里面常用操作:

Ctrl + O:保存 Enter:确认文件名 Ctrl + X:退出

图形界面可以用:

gedit test.py

如果没有图形界面,就用:

nanotest.py

四、查找、过滤、压缩和传输

这一类在调试 ROS、找文件、传 rosbag、传代码时特别常用。

1. 查找文件:find

基本语法:

find查找范围 条件

按文件名查找:

find~/catkin_ws-name"package.xml"

查找所有.py文件:

find~/catkin_ws-name"*.py"

查找所有 launch 文件:

find~/catkin_ws-name"*.launch"

解释:

~ /catkin_ws:查找范围 -name:按名字查找"*.py":所有以 .py 结尾的文件

2. 搜索文件内容:grep

基本语法:

grep"关键词"文件名

例如:

grep"cmd_vel"test.py

在整个文件夹里搜索:

grep-r"cmd_vel"~/catkin_ws/src

解释:

-r:递归搜索文件夹

忽略大小写:

grep-i"error"log.txt

显示行号:

grep-n"error"log.txt

常用组合:

grep-rn"move_base"~/catkin_ws/src

意思是:

在 ~/catkin_ws/src 中递归搜索 move_base,并显示行号

3. 管道:|

管道的作用是:把前一个命令的输出,交给后一个命令处理

例如:

rostopic list|grepcmd

意思是:

rostopic list:列出所有 ROS 话题grepcmd:只筛选包含 cmd 的行

再比如:

psaux|greproscore

意思是:

psaux:查看所有进程greproscore:筛选 roscore 相关进程

4. 压缩和解压

tar.gz 压缩

压缩文件夹:

tar-czvfbackup.tar.gz my_package

解释:

-c:创建压缩包 -z:使用gzip压缩 -v:显示过程 -f:指定文件名

解压:

tar-xzvfbackup.tar.gz

解压到指定目录:

tar-xzvfbackup.tar.gz-C~/catkin_ws/src/

zip 压缩

压缩文件夹:

zip-rbackup.zip my_package

解压:

unzipbackup.zip

5. 远程传输文件:scp

你的小车和笔记本在同一个局域网时,可以用scp

从笔记本传到小车:

scptest.py nvidia@192.168.31.23:/home/nvidia/

意思是:

把 test.py 传到 IP 为192.168.31.23 的小车 /home/nvidia/ 目录

从小车传回笔记本:

scpnvidia@192.168.31.23:/home/nvidia/test.bag ./

意思是:

把小车上的 test.bag 传到当前目录

复制文件夹:

scp-rmy_package nvidia@192.168.31.23:/home/nvidia/catkin_ws/src/

6. 同步文件夹:rsync

rsyncscp更适合反复同步代码。

rsync-avmy_package/ nvidia@192.168.31.23:/home/nvidia/catkin_ws/src/my_package/

解释:

-a:保留文件属性 -v:显示同步过程

注意:

my_package/

/表示复制文件夹里面的内容。

my_package

不带/表示连这个文件夹本身一起复制。


五、权限、用户、进程和服务

这一类用于解决“没有权限”“程序卡住”“端口被占用”“roscore 已经运行”等问题。

1. 管理员权限:sudo

sudo命令

例如:

sudoaptupdate

意思是用管理员权限更新软件源。

修改系统文件时经常需要sudo

sudonano/etc/hosts

注意:不要随便给删除命令加sudo


2. 修改文件权限:chmod

查看权限:

ls-l

例如:

-rw-r--r--1nvidia nvidia1234test.py

让 Python 文件可以执行:

chmod+x test.py

然后可以这样运行:

./test.py

常见写法:

chmod+x 文件名chmod755文件名

755大概可以理解为:

自己:可读、可写、可执行 别人:可读、可执行

ROS 里面 Python 节点经常需要:

chmod+x scripts/node.py

3. 修改文件所属用户:chown

sudochown用户名:用户名 文件名

例如:

sudochownnvidia:nvidia test.py

修改整个文件夹:

sudochown-Rnvidia:nvidia ~/catkin_ws

解释:

-R:递归修改整个文件夹

如果你发现文件是root的,普通用户改不了,就可能需要chown


4. 查看进程:ps

查看所有进程:

psaux

筛选某个进程:

psaux|greproscore

例如:

psaux|grepros

可以查看有哪些 ROS 相关程序正在运行。


5. 杀死进程:kill

先查进程:

psaux|greproscore

假设看到进程号是12345,杀掉它:

kill12345

强制杀死:

kill-912345

杀死某个名字的进程:

pkillroscore

杀死所有 ROS 节点时常用:

killall-9roscorekillall-9rosmaster

或者:

pkill-fros

这个会杀掉很多 ROS 相关进程,使用前要确认。


6. 查看系统服务:systemctl

查看服务状态:

systemctl status 服务名

例如查看 ssh:

systemctl statusssh

启动服务:

sudosystemctl startssh

停止服务:

sudosystemctl stopssh

重启服务:

sudosystemctl restartssh

开机自启:

sudosystemctlenablessh

取消开机自启:

sudosystemctl disablessh

如果你要用scp或远程连接,小车上一般要有 ssh 服务。


六、网络、磁盘和软件安装

这一类对你的小车非常重要,因为你经常要查 IP、ping 小车、配置网络、装依赖。

1. 查看 IP 地址

常用:

ipaddr

或者:

hostname-I

查看网卡:

iplink

你可能看到:

eth0 有线网卡 wlan0 无线网卡 lo 本机回环地址

例如:

ipaddr show wlan0

查看无线网卡 IP。


2. 测试网络:ping

pingIP地址

例如:

ping192.168.31.23

如果能一直返回:

64bytes from192.168.31.23

说明能连通。

停止按:

Ctrl + C

测试外网:

pingbaidu.com

测试本机:

ping127.0.0.1

3. 查看端口:ss

查看端口监听:

ss-tulnp

解释:

-t:TCP -u:UDP -l:监听中的端口 -n:显示数字端口 -p:显示进程

查看 11311 端口:

ss-tulnp|grep11311

ROS Master 默认端口就是:

11311

4. SSH 远程登录

ssh用户名@IP地址

例如:

sshnvidia@192.168.31.23

意思是登录到这台小车。

退出远程终端:

exit

5. 查看磁盘空间

查看磁盘容量:

df-h

查看当前文件夹大小:

du-sh.

查看某个文件夹大小:

du-sh~/catkin_ws

解释:

-h:人类容易看懂的格式,比如 GB、MB -s:只显示总大小

查看当前目录下每个文件夹大小:

du-h--max-depth=1

rosbag 很容易占空间,可以用这个查:

du-sh~/.rosdu-sh~/outdoor_test_bag

6. 软件安装:apt

更新软件源:

sudoaptupdate

升级软件:

sudoaptupgrade

安装软件:

sudoaptinstall软件名

例如:

sudoaptinstallopenssh-server

删除软件:

sudoaptremove 软件名

搜索软件:

aptsearch 软件名

查看是否安装:

dpkg-l|grep软件名

例如:

dpkg-l|grepros-noetic

七、命令组合、高级符号和 ROS 常用命令

这一类是把前面的命令组合起来用,是 Linux 最核心的能力。

1. 重定向:>>>

把输出写入文件:

echohello>test.txt

查看:

cattest.txt

结果:

hello

注意:

>

会覆盖原文件。

追加内容用:

echoworld>>test.txt

>>不会覆盖,会追加到文件末尾。


2. 后台运行:&

命令&

例如:

roscore&

意思是让roscore在后台运行。

不过 ROS 调试时,新手不建议经常这样用,因为不容易看日志。


3. 顺序执行:;&&

不管前面成功失败,都执行后面:

cd~/catkin_ws;catkin_make

前面成功了才执行后面:

cd~/catkin_ws&&catkin_make

推荐用&&,因为如果cd失败,就不会继续编译。

例如:

cd~/catkin_ws&&sourcedevel/setup.bash&&roslaunch my_pkg test.launch

4. 通配符:*

*表示任意内容。

查看所有.py文件:

ls*.py

删除所有.bag文件:

rm*.bag

查找所有 launch 文件:

find~/catkin_ws/src-name"*.launch"

注意:

rm*.bag

会删除当前目录下所有.bag文件,执行前最好先:

ls*.bag

确认一下。


5. 引号的区别

双引号:

echo"$HOME"

会解析变量。

单引号:

echo'$HOME'

不会解析变量。

例如:

echo"$HOME"

输出可能是:

/home/nvidia

而:

echo'$HOME'

输出就是:

$HOME

6. 环境变量

查看环境变量:

echo$变量名

例如:

echo$HOMEecho$PATHecho$ROS_MASTER_URIecho$ROS_PACKAGE_PATH

临时设置变量:

exportROS_MASTER_URI=http://192.168.31.23:11311

设置本机 IP:

exportROS_IP=192.168.31.100

这些设置只对当前终端有效。想长期有效,一般写进:

~/.bashrc

然后执行:

source~/.bashrc

7.source的作用

source的意思是:让当前终端加载某个脚本里面的环境配置。

ROS 里面最常见:

source/opt/ros/noetic/setup.bashsource~/catkin_ws/devel/setup.bash

作用:

第一句:加载 ROS Noetic 基础环境 第二句:加载你自己的工作空间环境

如果不 source,可能会出现:

找不到功能包 找不到 roslaunch 找不到自定义消息

8. 常用 ROS 相关 Linux 命令

进入工作空间:

cd~/catkin_ws

编译工作空间:

catkin_make

加载环境:

sourcedevel/setup.bash

启动 roscore:

roscore

启动 launch 文件:

roslaunch 功能包名 launch文件名

例如:

roslaunch scout_bringup scout.launch

查看话题:

rostopic list

查看话题数据:

rostopicecho/cmd_vel

查看话题频率:

rostopic hz /fix

查看话题类型:

rostopictype/cmd_vel

查看节点:

rosnode list

查看节点信息:

rosnode info /节点名

查看 TF:

rosrun tf view_frames

录制 rosbag:

rosbag record-Otest.bag /odom /imu/data /fix /tf /tf_static

播放 rosbag:

rosbag play test.bag

查看 bag 信息:

rosbag info test.bag
http://www.jsqmd.com/news/994020/

相关文章:

  • BibiGPT终极指南:5种高效批量处理音视频内容的专业方案
  • KMS_VL_ALL_AIO:实战深度解析Windows与Office智能激活方案
  • Node.js 开发环境完整部署指南(精简优化版)
  • 高效构建智能AI代理的实战解决方案:DeerFlow 2.0深度指南
  • 模块化设计与接口契约
  • 题解:学而思编程 逆序对
  • P8xC591 CAN控制器寄存器详解与驱动开发实战
  • 告别手动抬杆!用Java调用海康威视HCNetSDK实现道闸远程开关(附完整代码)
  • MPC8323E处理器接口电气特性与PCB布局实战指南
  • AI Agent 系统设计:工具调用的容错机制与回退策略
  • Xilinx FPGA DDR3读写控制工程(Vivado 2017.4,含完整源码与约束)
  • 2026南京闲置LV回收TOP排名,收的顶高分夺冠稳居龙头地位 - 奢侈品回收评测
  • 如何在三星上备份照片 ?
  • 如何5分钟快速上手Cat-Printer:终极开源蓝牙热敏打印解决方案
  • 粤鄂湘三地车牌识别工程:含定位、分割、汉字识别与双模型(SVM+ANN)实现
  • 如何高效整合阅读笔记:Obsidian微信读书插件的完整配置指南
  • MUSIC算法实战:从原理到MATLAB代码的DoA/AoA估计全解析
  • 医疗数据集成终极指南:5分钟掌握Mirth Connect核心实战
  • MPC8349EA时钟系统配置:从PLL原理到硬件设计的嵌入式实战指南
  • PCA9533 I2C LED驱动芯片:GPIO扩展与PWM调光实战指南
  • MSC7118 DSP时钟、DDR与电源时序设计实战指南
  • MOOTDX终极指南:Python通达信数据接口的完整免费解决方案
  • P89LPC938单片机:80C51内核加速与高集成度设计实战解析
  • 搬家寄大件快递怎么省钱?比价攻略来了 - 快递物流资讯
  • 还在手动申请和续签 SSL 证书?自动化到底能帮你省多少时间和事故?
  • (干货整理)实测好用的AI论文工具,毕业党收藏备用
  • 终极指南:如何使用Auto_Simulated_Universe实现崩坏星穹铁道模拟宇宙全自动挂机
  • 2026 深圳黄金回收优质渠道盘点 本地贵金属变现攻略 - 靖昱黄金回收
  • 用 OpenCV 5 DNN 跑 PP-OCR:一个适合新手学习的 C++ 动态库 + C# 可视化测试项目
  • VRCX:重新定义VRChat社交管理的智能伴侣