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

2025-10-16 14:54:46

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  删除命令  remove

rm  filename

rm  dirname  -r

(10) mv  文件重命名或者文件移动  move

mv   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  复制命令  copy

cp   filename   new_path&name

cp   dirname1   dirname2    -r

(12)  man  用户手册  提供帮助

查看cp命令的帮助文档

     man  cp

(13)  新建文件并开始编辑或者是编辑已存在文件

vim 或者  vi 

1)进入文件后,默认是出于命令模式,

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...#endif

 gec@ubuntu:~/gz1812/0409$ gcc -E -o  target.i    main.c

gec@ubuntu:~/gz1812/0409$

gec@ubuntu:~/gz1812/0409$ file target.i

target.i: C source, ASCII text

2) 编译   检查一个文件的语法,得到汇编文件

gec@ubuntu:~/gz1812/0409$ gcc -S -o  target.s    main.c

gec@ubuntu:~/gz1812/0409$ file  target.s

target.s: assembler source, ASCII text

3) 汇编  检查外部调用声明和全局变量有没有问题

gec@ubuntu:~/gz1812/0409$ gcc -c  -o  target.o    main.c

gec@ubuntu:~/gz1812/0409$

gec@ubuntu:~/gz1812/0409$

gec@ubuntu:~/gz1812/0409$ file  target.o

target.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not strip

4) 链接  检查是否所有的外部调用声明都有定义

gec@ubuntu:~/gz1812/0409$gcc  -o  target    main.c

gec@ubuntu:~/gz1812/0409$ file  target

target: 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.c

gec@ubuntu:~/gz1812/0409$ ls

main.c  target

gec@ubuntu:~/gz1812/0409$ file   main.c

main.c: C source, ASCII text

gec@ubuntu:~/gz1812/0409$ file  target

target: 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   占用1Byte

int     占用4B(在32位机) ,在16位机上是2B,在64位机上4B

long    占用4B(在32位机)  ,在16位机上是4B, 在64位机上8B

char  buf [100]  由100个char类型的数据组成的数组变量,占用100B

运算符

 =  是赋值运算符

 ==   判断左值和右值是否相等

 >     判断左值是否大于右值

 <     判断左值是否小于右值

++    变量值自加1后再给自身赋值

如a为10 ,  a++之后a变成11

--     变量值自减1后再给自身赋值

如a为10 ,  a--之后a变成9

b:  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$ ./target

Hello world 8

Hello world 10 , 64

char  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开发

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢