手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

在windows系统中使用ubuntu虚拟机进行linux开发

时间:2025-01-15 12:04:05

1、1: 熟悉ubuntu操作界面1) 打开vmWare, 打开虚拟机2) 运行虚拟机,第一次需要选择“我已复制此虚拟机”3) 熟悉简单的命令 Ctrl + ALT + T 可以得到新的终端窗口(1)pwd 显示完整目录(2)ls list 列举出指定目录下的内容或者是查看文件的信息gec@ubuntu:~$ ls 默认是查看当前目录下的内容 等价于 ls ./gec@ubuntu:~$ ls /home 查看/home目录下的内容ls -a 列举出指定目录下的全部内容,包括隐藏文件(以.开头的)ls -l 列举出指定目录下的详细信息,包括文件的类型、文件的权限等信息ls -al(3)clear 清空屏幕(4)mkdir 创建一个工作目录gec@ubuntu:~$ mkdir gz1812就有了这么一个工作目录 /home/gec/gz1812(5)cd change directory切换目录在当前位置gec@ubuntu:~$ cd /home/gec/gz1812 (完整目录、绝对路径)cd ./gz1812 (相对路径,当前目录的gz1812)cd gz1812 (默认是当前目录的gz1812)常见错误: No such file or directory 找不到对应的目录或者文件,原因: 1:没有弄清楚自己的位置 2:输入文件名时候输错了

在windows系统中使用ubuntu虚拟机进行linux开发
在windows系统中使用ubuntu虚拟机进行linux开发
在windows系统中使用ubuntu虚拟机进行linux开发

2、(6)使用【tab】键自动补齐,可以避免长命令时候错误的发生(7)使用上键和下键对历史命令进行选择(8)仅仅创建一个普通文件touch filename(9) rm 删除命令 removerm filenamerm dirname -r(10) mv 文件重命名或者文件移动 movemv main1-c main.c (把main1-c重命名为main.c)mv main1-c /home/gec (把main1-c移动到/home/gec目录下)mv dir1 dir2 (如果dir2是存在的, 就是把dir1移动到dir2下;如果dir2是不存在的,就把dir1重命名为dir2)

3、(11) cp 复制命令 copycp filename new_path&namecp dirname1 dirname2 -r(12) man 用户手册 提供帮助查看cp命令的帮助文档 man cp(13) 新建文件并开始编辑或者是编辑已存在文件vim 或者 vi1)进入文件后,默认是出于命令模式,2)需要用切换到编辑模式(输入模式) 键入 i a o 这3个按键可以切换3)开始输入代码4)退出输入模式,返回到命令模式 按【ESC】键返回到命令模式 在命令模式键入 冒号+w表示保存:w 保存:w newname 另存、:wq 保存并退出:q! 强制退出(14) gcc编译器常用写法: gcc -o 目标文件 所有依赖的文件(.c)Linux中整个编译过程分4步完成1) 预处理 把所有的#开头的内容都替换掉#include #define #ifdef...#endifgec@ubuntu:~/gz1812/0409$ gcc -E -o target.i main.cgec@ubuntu:~/gz1812/0409$gec@ubuntu:~/gz1812/0409$ file target.itarget.i: C source, ASCII text2) 编译 检查一个文件的语法,得到汇编文件gec@ubuntu:~/gz1812/0409$ gcc -S -o target.s main.cgec@ubuntu:~/gz1812/0409$ file target.starget.s: assembler source, ASCII text3) 汇编 检查外部调用声明和全局变量有没有问题gec@ubuntu:~/gz1812/0409$ gcc -c -o target.o main.cgec@ubuntu:~/gz1812/0409$gec@ubuntu:~/gz1812/0409$gec@ubuntu:~/gz1812/0409$ file target.otarget.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not strip4) 链接 检查是否所有的外部调用声明都有定义gec@ubuntu:~/gz1812/0409$gcc -o target main.cgec@ubuntu:~/gz1812/0409$ file targettarget: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=3db137490e899cdb30d48b1cd07826a93cae7516, not stripped(15) file 命令查看文件的属性gec@ubuntu:~/gz1812/0409$ gcc -o target main.cgec@ubuntu:~/gz1812/0409$ lsmain.c targetgec@ubuntu:~/gz1812/0409$ file main.cmain.c: C source, ASCII textgec@ubuntu:~/gz1812/0409$ file targettarget: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=3db137490e899cdb30d48b1cd07826a93cae7516, not stripped

在windows系统中使用ubuntu虚拟机进行linux开发
在windows系统中使用ubuntu虚拟机进行linux开发
在windows系统中使用ubuntu虚拟机进行linux开发
在windows系统中使用ubuntu虚拟机进行linux开发

4、2: C语言基础知识a: 常量和变量常量:在代码里面出现所有的数字、字符、字符串int a = 100;char c = ‘x’ ;char buf [100] = “hello world”;变量 在运行过程中数值会改变变量名是由字母或者下划线开头,由字母、数字、下划线组成的基本数据类型表示对应的变量在内存中占用的字节数char 占用1Byteint 占用4B(在32位机) ,在16位机上是2B,在64位机上4Blong 占用4B(在32位机) ,在16位机上是4B, 在64位机上8Bchar buf [100] 由100个char类型的数据组成的数组变量,占用100B运算符= 是赋值运算符== 判断左值和右值是否相等> 判断左值是否大于右值< 判断左值是否小于右值++ 变量值自加1后再给自身赋值如a为10 , a++之后a变成11-- 变量值自减1后再给自身赋值如a为10 , a--之后a变成9b: main函数的定义1)int main(void) { } 不带参数的main函数2) int main(int argc , char * argv[ ]) 带参数的main函数, 在终端输入执行命令的时候,给它的参数进行了赋值

5、c: 简单的格式化IO语句格式化输出printf(“hello world \n”); 直接在终端上输出字符串“hello world \n”int i = 8;int x = 100;printf("Hello world %d \n", i ); 输出一个变量的十进制值printf("Hello world %d , %d \n", i, x ); 输出两个变量的十进制值int i = 8;int x = 100;printf("Hello world %d \n", i ); %d输出一个变量的十进制值printf("Hello world %o , %x \n", i, x ); %o 输出一个变量的八进制值 %x 输出一个变量的十六进制值gec@ubuntu:~/gz1812/0409$ ./targetHello world 8Hello world 10 , 64char buf [100] = “hello world”;printf(“buf is %s \n” , buf ) ; %s是直接输出字符串\n 换行 相当于enter键\t 制表符 相当tab键

6、格式化输入:int i = 8; printf("please change the i value: ");scanf("%d", &i); 从键盘上读十进制数(0~~9)放在i的地址中(&i)char buf [100] = “hello world”;scanf(“%s”, buf ); 从键盘上读数据给字符串赋值(遇到空格或者换行enter键就停止)!!! 只需要写字符串变量名, 不要加&scanf的格式不能随意加格式,因为你设置的格式必须在输入的时候也输入d: 简单的控制流语句分支跳转:if(a>b) // 如果a的值比b大,max的值就是a值;{ max = a;}else // 否则 max的值就是b值;{max = b;}循环语句:for( ; ; )for(初始语句 ; 条件判断 ; 执行完循环体之后执行的语句){循环体;}*****************************************编译不能有warning也不处理!每个printf()必须加\n, 除非有特殊的人机对话需求*****************************************

在windows系统中使用ubuntu虚拟机进行linux开发
© 手抄报圈