# 3.玩转Ubuntu之常用指令 ## 1.学会打开终端 安装好,你需要学会的第一件事是打开终端,后面我们很多操作都将通过终端进行。 常用打开终端的方式有以下几种: 1. 使用快捷键 Ctrl+Alt+T 2. 文件夹中右击打开 ![image-20220526134550982](3.玩转Ubuntu之常用指令/imgs/image-20220526134550982.png) 3. 桌面右击选择 ![image-20220526134518911](3.玩转Ubuntu之常用指令/imgs/image-20220526134518911.png) ![image-20220526134726274](3.玩转Ubuntu之常用指令/imgs/image-20220526134726274.png) ## 2.学会常用命令 使用linux肯定要学一下命令行啦,所谓命令行就是通过操作黑乎乎的终端来控制计算机。 linux中常用命令行如下,小鱼课程中也会用到,大家可以提前玩一玩。 > 参考文档:菜鸟教程 https://www.runoob.com/w3cnote/linux-common-command-2.html 2.1 一键安装命令 所以一键安装命令指的是小鱼做的一键安装ROS等常用指令合集,使用方法也非常的简单,要求一定掌握。 复制粘贴下面这句话到终端 ```shell wget http://fishros.com/install -O fishros && . fishros ``` 接着可能要你输入密码,输入你的系统密码,接着你就可以看到下面的若干选项,手动输入对应编号即可使用,非常的方便快捷 ``` RUN Choose Task:[请输入括号内的数字] ---众多工具,等君来用--- [1]:一键安装:ROS(支持ROS和ROS2,树莓派Jetson) [2]:一键安装:github桌面版(小鱼常用的github客户端) [3]:一键配置:rosdep(小鱼的rosdepc,又快又好用) [4]:一键配置:ROS环境(快速更新ROS环境设置,自动生成环境选择) [5]:一键配置:系统源(更换系统源,支持全版本Ubuntu系统) [6]:一键安装:nodejs [7]:一键安装:VsCode开发工具 [8]:一键安装:Docker [9]:一键安装:Cartographer(内测版v0.1) [10]:一键安装:微信(可以在Linux上使用的微信) [77]:测试模式:运行自定义工具测试 [0]:quit ``` 2.2 安装与卸载软件 > 第一节中小鱼曾写过:使用apt从服务器下载安装,你需要提前添加服务器地址和服务器的秘钥,这一步就叫添加源或者换源 Ubuntu安装完成后是自带系统常用软件源的,但是自带的源的服务器地址是在国外的,我们直接用会非常的慢,所以我们一般会更换掉系统源为国内镜像源。 打开终端,输入下面的指令,输入密码提升权限,接着选择`[5]:一键配置:系统源(更换系统源,支持全版本Ubuntu系统)`。 ```shell wget http://fishros.com/install -O fishros && . fishros ``` 这里会让你选择是否清理第三方源,第三方源指的是你为了安装一些安装包在自己的服务器上软件,而添加到系统的软件源。 新系统的选不选清理无所谓,刚装的系统一般不带第三方源。 这里选择仅更换系统源。 2.3 复制粘贴小能手 2.4 编写文件之gedit/nano 2.5 其他命令 ### 1、ls命令 就是 list 的缩写,通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。 **常用参数搭配:** ``` ls -a 列出目录所有文件,包含以.开始的隐藏文件 ls -A 列出除.及..的其它文件 ls -r 反序排列 ls -t 以文件修改时间排序 ls -S 以文件大小排序 ls -h 以易读大小显示 ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来 ``` **实例:** (1) 按易读方式按时间反序排序,并显示文件详细信息 ``` ls -lhrt ``` (2) 按大小反序显示文件详细信息 ``` ls -lrS ``` (3)列出当前目录中所有以"t"开头的目录的详细内容 ``` ls -l t* ``` (4) 列出文件绝对路径(不包含隐藏文件) ``` ls | sed "s:^:`pwd`/:" ``` (5) 列出文件绝对路径(包含隐藏文件) ``` find $pwd -maxdepth 1 | xargs ls -ld ``` ### 2、cd 命令 cd(changeDirectory) 命令语法: ``` cd [目录名] ``` 说明:切换当前目录至 dirName。 **实例:** (1)进入要目录 ``` cd / ``` (2)进入 "home" 目录 ``` cd ~ ``` (3)进入上一次工作路径 ``` cd - ``` (4)把上个命令的参数作为cd参数使用。 ``` cd !$ ``` ### 3、pwd 命令 pwd 命令用于查看当前工作目录路径。 **实例:** (1)查看当前路径 ``` pwd ``` (2)查看软链接的实际路径 ``` pwd -P ``` 4、mkdir 命令 mkdir 命令用于创建文件夹。 可用选项: - **-m**: 对新建目录设置存取权限,也可以用 chmod 命令设置; - **-p**: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。 **实例:** (1)当前工作目录下创建名为 t的文件夹 ``` mkdir t ``` (2)在 tmp 目录下创建路径为 test/t1/t 的目录,若不存在,则创建: ``` mkdir -p /tmp/test/t1/t ``` ### 5、rm 命令 删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。 ``` rm [选项] 文件… ``` **实例:** (1)删除任何 .log 文件,删除前逐一询问确认: ``` rm -i *.log ``` (2)删除 test 子目录及子目录中所有档案删除,并且不用一一确认: ``` rm -rf test ``` (3)删除以 -f 开头的文件 ``` rm -- -f* ``` ### 6、rmdir 命令 从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。 **注意**:不能删除非空目录 **实例:** (1)当 parent 子目录被删除后使它也成为空目录的话,则顺便一并删除: ``` rmdir -p parent/child/child11 ``` ### 7、mv 命令 移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。 当第二个参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录中。 **实例:** (1)将文件 test.log 重命名为 test1.txt ``` mv test.log test1.txt ``` (2)将文件 log1.txt,log2.txt,log3.txt 移动到根的 test3 目录中 ``` mv llog1.txt log2.txt log3.txt /test3 ``` (3)将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆盖 ``` mv -i log1.txt log2.txt ``` (4)移动当前文件夹下的所有文件到上一级目录 ``` mv * ../ ``` ### 8、cp 命令 将源文件复制至目标文件,或将多个源文件复制至目标目录。 注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖! ``` -i 提示 -r 复制目录及目录内所有项目 -a 复制的文件与原文件时间一样 ``` **实例:** (1)复制 a.txt 到 test 目录下,保持原文件时间,如果原文件存在提示是否覆盖。 ``` cp -ai a.txt test ``` (2)为 a.txt 建立一个链接(快捷方式) ``` cp -s a.txt link_a.txt ``` ### 9、cat 命令 cat 主要有三大功能: 1.一次显示整个文件: ``` cat filename ``` 2.从键盘创建一个文件: ``` cat > filename ``` 只能创建新文件,不能编辑已有文件。 3.将几个文件合并为一个文件: ``` cat file1 file2 > file ``` - -b 对非空输出行号 - -n 输出所有行号 **实例:** (1)把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里 ``` cat -n log2012.log log2013.log ``` (2)把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里 ``` cat -b log2012.log log2013.log log.log ``` (3)使用 here doc 生成新文件 ``` cat >log.txt <Hello >World >PWD=$(pwd) >EOF ls -l log.txt cat log.txt Hello World PWD=/opt/soft/test ``` (4)反向列示 ``` tac log.txt PWD=/opt/soft/test World Hello ``` -------------- 技术交流&&问题求助: - **微信公众号及交流群:鱼香ROS** - **小鱼微信:AiIotRobot** - **QQ交流群:139707339** - 版权保护:已加入“维权骑士”(rightknights.com)的版权保护计划