Linux之Ubuntu学习记录 一
Shell 的一些常见命令
ls的一些常见用法
2021/6/16 补充 以 . 开头的文件如“.vscode”,用ls是看不见的,需要用“ls -a”
“ls”,查看当前文件夹下的文件
“ ls 文件名/* ” 查看指定文件夹下的文件
网络信息查看
ifconfig
文件操作与用户权限切换
“ls”命令用来打印出当前目录下的所有文件和文件夹。
“ls -1”同样是打印出当前目录下的所有文件和文件夹,但同时会列出文件和文件夹的详细信息
“ls /目录”打印出指定目录的文件和文件夹。
==Pwd :==用来显示当前目录的绝对路径,不需要任何的参数。
使用“sudo su”才能切换到最高权限用户root,注意”su + 用户名”可以将切换到指定用户下,不加“用户名”默认切换成root,不过此时如果是普通用户,需要用“sudo”提一下权限,才能切换。
“touch ”文件名”用来创建一个新的文件
”mkdir”用来创建文佳夹
文件以及目录的删除命令
不过常用“rmdir”命令直接删除文件夹,当遇到文件夹无法删除的情况时便可以考虑“rm”命令
文件名自动补全命令
当我们输入文件的首字母之后,按下TAB键,系统会自动补全文件名。如果有首字母相同的文件,则无法补全,此时再次按下TAB键就会得到,可以选择的文件名
软件配置与更新
用==“ifconfig”==显示和配置网络属性命令
软件的安装命令“sudo apt-get intstall 软件名称”
软件更新命令“sudo apt-get upgrade package-name”
软件卸载命令“sudo apt-get remove package-name”
Vim文本编辑器常用命令
vim中常用的基础配置,见下链接(如:与windows共享剪贴板
set clipboard+=unnamed)
点击进入vim常用基础配置
常用命令a来进入文本输入模式
一般用“wp”进行保存文档并退出
用“:/”命令可以对指定内容在文本中进行搜索
根目录下一些重要文件的说明
“cp”复制文件命令常见的一些用法
touch a.c //首先在本目录下创建一个 a.c文件
cp a.c b.c //复制a.c,并将其更名为b.c
cp a.c b.c /test2 //将a.c b.c 复制到文件夹test2中
复制文件夹,通用命令
cp 文件夹1名/* ./文件夹2名 -rf
例:
cp 3_ledc_stm32/* ./4_leds/ -rf
“mv”移动文件命令的常见用法
mv a.c b.c //移动a.c到当前文件下,并重命名为d.c
mv a.c b.c /文件所在地/ //将本文件夹下的文件 移动到其他文件夹下
文件压缩命令
“zip”和“unzip”这两个命令只适用于.zip格式的压缩和解压
/* 当可执行文件没有执行权利时,呈现为白色,当被赋予执行权利之后,变成绿色*/
tar 【参数】 【压缩文件名】 【被压缩文件名】 //注意先后顺序,被压缩文件名在后面
tar -vcjf tast1.tar.bz2 tast1 //压缩为.bz2格式
tar -vczf tast.tar.gz tast1 //压缩为.gz格式
文件删除
使用/* sudo rm 文件名 -rf */基本上可以对所以的文件以及文件夹进行删除了
文件权限管理
Linux的磁盘管理
chmod 777 文件名 //可以给文件赋予可执行权利
gcc的使用
gcc 的常用命令格式为
gcc main.c -o main / /生成链接文件
./main //最后进行编译
其参数选择如下
GCC编译器的编译流程是:预处理,编译,汇编和链接 。预处理就是展开所以的头文件,替换程序中的 宏,解释条件编译并添加到文件中去。编译是将预处理后的代码编译成汇编代码。汇编,就是汇编程序生成二进制文件。 链接是将生成的多个二进制文件链接在一起。
何为Mikefile
首先创建一个Mikefile的文件,在文件内输入(main.c input.c calcu.c 的三个C文件开始已经创建)
1 main: main.o input.o calcu.o
2 gcc -o main main.o input.o calcu.o
3 main.o: main.c
4 input.o : input.c
5 gcc -c input.c
6 calcu.o : calcu.c
7 gcc -c calcu.c
8
9 clean:
10 rm *.o
11 rm main
~
Make的执行过程
1、make命令会在当前目录下查找以Makefile命名的文件
2、当找到Makefile文件以后 就会按照Makefile中定义的规则去编译最终的目标文件
3、当发现目标文件不存在,或者目标所依赖的文件比目标文件新(也就是最后修改时间比目标文件晚)的话就会执行后面的命令来更新目标
这就是make的执行过程,make工具就是在Makefile中一层一层的查找依赖关系,并执行相应的命令。
/其具体内容,暂时不写了,以后用得多了,有自己的体验了再写/
不过说工程编译的过程,有利于更好的理解Makefile的作用,我们可以通过它写一个适合自己工程的IDE
无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这就是链接(link)。
编译时,只要所有的语法正确,编译器就可以编译出中间目标文件。一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件)。
链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件(O文件或是OBJ文件)来链接我们的应用程序。链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File),在大多数时候,由于源文件太多,编译生成的中间目标文件太多,而在链接时需要明显地指出中间目标文件名,这对于编译很不方便,所以,我们要给中间目标文件打个包,在Windows下这种包叫“库文件”(Library File),也就是 .lib 文件,在UNIX下,是Archive File,也就是 .a 文件。
Linux下交叉编译常见的Makefile命令
objs := star.o main.o //“ := ”类似于C 语言中的 #define ,起到的是替换作用
ld := arm-linux-gnueabinf-ld // 链接命令,生成.elf文件
gcc := arm-Linux-gnueabinf-gcc //编译命令有,用来生成.o文件
objcopy := arm-linux-gnueabinf-objcopy // 将.elf文件转换成目标文件.bin文件
objdump := arm-linux-gnueabinf-objdump //生成反汇编文件 .dis文件
查看Ubuntu下的外接设备
命令: ls /dev/sd*
VS code 保存所有文件快捷键
Ctrl +shift + s
VS code 头文件配置方法
问题:VS code 出现找不到头文件的错误
解决步骤:
1、在工作区下创建一个文件名为 .vscode 的文件夹
2、按下ctrl+shift+p,进入配置搜索界面
3、在搜索界面输入 c/c++:Edit configurations(JSON)/一般输入c/c++ :Edit 后面就会跟着出来/
4、点击进入如步骤三的选项后,会在文件 .vscode 下自动生成文件 {} c_pp_Properties.json
然后以这样的格式配置好头文件路径就可
VS code 对本文件进行搜索
快捷键: ctrl + f