文章目录
1.本方向内学习内容:
1.1.完成了基于ARM64架构下pd虚拟机中Ubuntu Linux的安装:
由于本人使用MacOS
,对pd虚拟机操作更加熟悉,于是放弃使用vm虚拟机及配套安装教程,但由此会引发一些问题,如:教程少、学习成本高、适配性较差等。所以花了更多时间去找ARM架构的安装包。但是官方不提供该系列安装包的18.版本而且不提供可视化图形界面
,我在下载安装后又去谷歌等搜索引擎上搜索安装图形化操作界面的命令,经过一番操作后终于完成了22.04版本的安装(虽与工程机18版本不同但鉴于学习目的,无伤大雅),并且完成了系统环境参数的配置。
1.2.学习了Linux基本命令行操作:
命令 | 描述 | 例子 |
---|---|---|
pwd | 显示当前工作目录的路径 | pwd |
ls | 列出目录中的文件和子目录 | ls |
cd | 切换目录 | cd <目录路径> |
cp | 复制文件或目录 | cp <源文件/目录> <目标目录> |
mv | 移动文件或目录,也可用于重命名文件 | mv <源文件/目录> <目标目录/文件> |
rm | 删除文件或目录 | rm <文件/目录> |
mkdir | 创建新目录 | mkdir <目录名> |
rmdir | 删除空目录 | rmdir <目录名> |
touch | 创建空文件或更新文件的时间戳 | touch <文件名> |
cat | 查看文件内容 | cat <文件名> |
nano | 在终端中编辑文本文件 | nano <文件名> |
vim | 在终端中编辑文本文件 | vim <文件名> |
grep | 在文件中搜索文本模式 | grep <模式> <文件名> |
chmod | 更改文件或目录的权限 | chmod <权限> <文件/目录> |
chown | 更改文件或目录的所有者 | chown <新所有者> <文件/目录> |
ps | 显示当前运行的进程 | ps |
kill | 终止进程 | kill <进程ID> |
一些重要子命令:
cd
命令的子命令:
子命令 | 描述 | 例子 |
---|---|---|
cd ~ | 进入当前用户的主目录 | cd ~ |
cd / | 进入根目录 | cd / |
cd .. | 进入上级目录 | cd .. |
cd - | 返回上一个工作目录 | cd - |
cd /path/to/directory | 进入指定路径的目录 | cd /path/to/directory |
cd ../relative/path | 进入相对于当前目录的子目录 | cd ../relative/path |
cd -P | 强制进入物理路径而非符号链接路径 | cd -P /path/to/symlink |
cd -L | 强制进入符号链接路径而非物理路径 | cd -L /path/to/symlink |
rm
命令的子命令:
子命令 | 描述 | 例子 |
---|---|---|
rm -f | 强制删除文件或目录 | rm -f <文件/目录> |
rm -r | 递归删除目录及其内容 | rm -r <目录> |
rm -i | 在删除前进行提示 | rm -i <文件/目录> |
rm -v | 显示每个被删除的文件 | rm -v <文件/目录> |
rm -- | 指示后续内容不是选项 | rm -- <文件/目录> |
rm -rf | 强制递归删除目录及其内容 | rm -rf <目录> |
rm -r --preserve-root | 保护根目录,避免意外删除 | rm -r --preserve-root / |
rm -d | 删除目录本身而非其内容 | rm -d <目录> |
ls
命令的子命令:
子命令 | 描述 | 例子 |
---|---|---|
ls -l | 以详细列表形式显示文件信息 | ls -l |
ls -a | 显示所有文件,包括隐藏文件 | ls -a |
ls -lh | 以人类可读格式显示文件大小 | ls -lh |
mkdir
命令的子命令:
子命令 | 描述 | 例子 |
---|---|---|
mkdir <目录名> | 创建新目录 | mkdir my_directory |
mkdir -p | 创建多级目录 | mkdir -p path/to/my_directory |
mkdir -m | 指定权限创建目录 | mkdir -m 755 my_directory |
mkdir --help | 显示帮助信息 | mkdir --help |
mkdir --version | 显示版本信息 | mkdir --version |
cp
命令的子命令:
子命令 | 描述 | 例子 |
---|---|---|
cp -r | 复制目录及其内容 | cp -r <源目录> <目标目录> |
cp -i | 在覆盖文件前进行提示 | cp -i <源文件> <目标目录> |
cp -u | 仅复制更新的文件 | cp -u <源文件> <目标目录> |
mv
命令的子命令:
子命令 | 描述 | 例子 |
---|---|---|
mv -u | 仅在目标文件更新时移动 | mv -u <源文件/目录> <目标目录> |
mv -i | 在覆盖文件前进行提示 | mv -i <源文件/目录> <目标目录> |
mv -b | 在移动前创建备份 | mv -b <源文件/目录> <目标目录> |
chmod
命令的子命令:
子命令 | 描述 | 例子 |
---|---|---|
chmod +x | 赋予文件执行权限 | chmod +x <文件> |
chmod -r | 递归地更改目录及其子目录的权限 | chmod -r <权限> <目录> |
chmod u+w | 赋予文件所有者写权限 | chmod u+w <文件> |
ps
命令的子命令:
子命令 | 描述 | 例子 |
---|---|---|
ps -ef | 显示所有进程的详细信息 | ps -ef |
ps aux | 显示所有用户的进程信息 | ps aux |
ps -e --forest | 以树形结构显示进程关系 | ps -e --forest |
1.3完成海龟仿真:
运行海龟仿真节点程序:
ros2 run turtlesim turtlesim_node
再打开一个终端,获取键盘读取信息:
ros2 run turtlesim turtle_teleop_key
打印正在运行的节点信息:
ros2 node list
打印某节点具体信息:
ros2 node info <运行的某节点>
打印(可获取的)(正在发布订阅的)所有话题信息:
ros2 topic list
详细打印某个话题信息:
ros2 topic echo <某话题>
1.4.完成了工作空间与功能包的创建:
工作空间
(workspace)是一个存放项目开发相关文件的文件夹;是开发过程的大本营。
src
:代码空间(Source Space)
install
:安装空间(Install Space)
build
:编译空间(Build Space)
log
:日志空间(Log Space)
1.4.1.创建工作空间:
1.4.2.自动安装依赖:
跳转到工作空间根目录后输入以下命令:
sudo apt install python3-pip
sudo pip3 install rosdepc
rosdepc install -i --from-path src --rosdistro humble -y
sudo apt install python3-colcon-ros
colcon build
直到编译成功:
1.4.3.配置环境变量:
source install/local_setup.sh
可在.bashrc中添加命令:
1.4.4.功能包创建:
ros2 pkg create --build-type ament_cmake <功能包名字>//创建c++功能包
ros2 pkg create --build-type ament_python <功能包名字>//创建py功能包
2.本方向外学习内容:
2.1.完成了C语言的学习:
2.1.1.完成了井字棋、扫雷的游戏:
本人于去年寒假完成了两个小游戏,并将详细过程写成了博客,链接如下:
https://editor.csdn.net/md/?articleId=132046946(扫雷)
https://editor.csdn.net/md/?articleId=131962318(井字棋)
2.1.2.完成了贪吃蛇小游戏:
本人于本学期运用win32API完成了基于c语言命令行版本的贪吃蛇小游戏,还未来得及写成博客,后续可能会跟进。
相关代码我已放在本人gitee与github中:
本人gitee:https://gitee.com/wpcnb
本人github:https://github.com/402308383
2.1.3.完成了校内C语言期末考核:
本人以98分的成绩顺利完成校内期末C语言考核。
2.2.学习了部分数据结构并即将结束JAVA SE的学习:
本人在空闲时间学习JAVA,现在即将完成JAVA SE的学习。
本人亦在空闲时间学习了部分数据结构,包括但不限于顺序表,(单/双)链表等,基于单链表的数据结构完成了简单的通讯录。
本人CSDN: