一.ubuntu的基本操作

ctrl+alt+t:启动终端

ctrl+shift++:终端字体变大

ctrl+-:终端字体变小

ctrl+shift+c/v:终端复制/粘贴文本

cat/etc/issue:查看操作系统的版本

tab键:自动补齐

上下键:历史命令

二.linux常用的shell命令

1. linux@ubuntu:~$:命令提示符

解释:用户名 @ 主机名:

           ~:表示是家目录,会发生变化,例如;/ 表示根目录

           $:表示当前用户是普通用户      #:表示当前用户是系统管理员

2. ls:查看当前目录(文件夹)下的文件名

        ls -a:查看当前目录下的所有文件,包含隐藏文件(以.开头)

        ls -l:查看当前目录下的文件的详细信息,别名:ll

                

                解释:类型              用户权限       组用户      其他用户

                           d(目录类型)   rwx               r-x             r-x

                           -(普通文件)                        

                           1:硬连接数,对于文件,文件的内容,有几个文件名关联

                            linux linux:文件或者目录的创建者,组用户名

                            426:文件的大小,单位为字节。

                            Apr 22 18:02:文件最后的修改时间  月  日  时  分

3. man:帮助手册

使用方法:man ls:查看ls命令的帮助,查看命令有哪些选项

4. 创建目录命令:mkdir

使用方法:mkdir 20260422 //创建目录,目录名为20260422

5. 删除目录命令:rmdir

使用方法:rmdir 20260422  //删除20260422这个目录,注意:目录必须是空才可删除成功

6. 目录切换指令:cd

使用方法:cd 20260422 //进入20260422这个目录

                  cd ..  //返回上一层目录

                  cd /  //进入根目录

                  cd 或者 cd ~  //进入家目录

7. 创建一个空白文件:touch 

使用方法:touch aaa  //创建一个名为aaa的空白文件,如果文件存在则更新时间戳

8. 删除文件:rm

使用方法:rm aaa  //删除aaa这个文件夹

                  rm -fr 20260422 //删除名为20260422这个目录,-f表示直接删除,不询问y/n,-r表示删除目录。

9. 显示当前路径:pwd

使用方法:pwd

10. 文件复制:cp

使用方法:cp ../test.c test.c //复制上层目录的test.c文件并命名为test.c。

                  注意:源文件必须存在,目标文件不存在则创建,存在则覆盖。

                  cp ../20260422/ . -av //将上层目录为20260422的所有文件,复制到本层,目录名不变 

11. 移动/剪切文件:mv

使用方法:mv test.c 20260422/ //将test.c移动到20260422这个目录下

12. 查看文本文件内容:cat

使用方法:cat test.txt

三.vim的使用

使用vim的方法:1. vi test.c或者vim test.c进入vim

                            2. 按i键,进入编辑状态

                            3. 按esc退出编辑状态,再输入:wq 保存并退出,也可使用 q! 进行不保存退出。

vim的其他命令:

yy:复制当前行

dd:删除/剪切当前行

p:粘贴

u:撤回上一次操作

3yy:从当前行向下复制3行

5dd:从当前行向下删除5行

3p:粘贴3次

:3,10y:3到10行复制

:2,5d:2到5行删除

/ok:查找,会高亮,n:向下查找  N:向上查找

gg:光标跳到文件开头

GG:光标跳到文件结尾

gg v GG:文件全选操作

=:自动格式化代码

四.gcc编译器

gcc test.c :编译源文件,生成可执行文件,文件名是a.out

gcc test.c -o test :将可执行文件命名为test

./a.out :执行当前目录下的a.out文件

gcc编译的四个过程:预处理,编译,汇编,链接

预处理:gcc test.c -E -o test.i :生成test.i文件

编译:gcc test.c -S -o test.s :生成test.s文件

汇编:gcc test.c -c -o test.o :object,生成test.o文件

链接:gcc test.c -o test :生成可执行文件

四个过程详细说明:

1. 预处理:在编译前,做一些准备工作,生成的文件后缀是.i。例如:处理# 号开头的指令。

                   1、将#include包含的头文件的内容粘贴到对应的位置。

                   2、完成所有#define的替换

                   3、处理条件编译,例如#if  #endif等   

                   4、删除注释         
2. 编译: 1、把预处理那步处理好的文件,编译为汇编文件,注意这里还不是机器指令二进制码。

                2、还会进行语法,语义的检查。

        ​​​​​​​        3、文件后缀为.s
3.汇编:  1、把汇编文件转换为 obj文件(目标文件),二进制 ,文件后缀为.o

                2、任然不可执行,因为缺少库函数的地址,符号未解析。如果需要查看的话,需要使                          用命令:od -t x1 1.o |less

        od:专门查看二进制的文件。

        -t:指定格式输出。

        x1:十六进制显示,每一个字节隔开。

        

        |:管道,连接2个命令

        less:显示的内容满一页自动停止,按空格显示下一页,按q退出。

4. 链接:把需要使用的外部库函数,与a.out 内部,发生关联关系。当a.out 运行起来后,直到在系统的那个位置,找到对应函数的实现。

               1、合并多个.o文件

               2、链接系统库/动态库/静态库

               3、解析符号引用,为变量、函数等分配真实的内存地址

               4、整理代码段数据段,生成操作系统可以加载的完整可执行程序

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐