目录
练习一
1.在用户的家目录下创建 目录文件 dir1 和 普通文件file1
2.在家目录下给dir1目录嵌套创建 dir1/dir2/dir3/dir4/dir5
3.在家目录下直接一步进入到 dir4 里面
4.在dir4目录中将家目录下的file1 移动到上一级的dir3中
5.在dir4目录下创建一个目录文件 test
6.将test 复制到上一级的dir3中
7.在dir4中直接查看dir3中有哪些文件
8.在dir4中直接回到家目录 删除刚才创建的目录 dir1
-
在用户的家目录下创建 目录文件 dir1 和 普通文件file1
-
ubuntu@ubuntu:~$ mkdir dir1
ubuntu@ubuntu:~$ touch file1
ubuntu@ubuntu:~$ ls
在家目录下给dir1目录嵌套创建 dir1/dir2/dir3/dir4/dir5
ubuntu@ubuntu:~$ mkdir -p dir1/dir2/dir3/dir4/dir5
ubuntu@ubuntu:~$ tree dir1
dir1
└── dir2
└── dir3
└── dir4
└── dir5
在家目录下直接一步进入到 dir4 里面
ubuntu@ubuntu:~$ cd dir1/dir2/dir3/dir4
ubuntu@ubuntu:~/dir1/dir2/dir3/dir4$ \
在dir4目录中将家目录下的file1 移动到上一级的dir3中
ubuntu@ubuntu:~/dir1/dir2/dir3/dir4$ mv ~/file1 ../
ubuntu@ubuntu:~/dir1/dir2/dir3/dir4$ ls ../dir4 file1
在dir4目录下创建一个目录文件 test
ubuntu@ubuntu:~/dir1/dir2/dir3/dir4$ mkdir test
ubuntu@ubuntu:~/dir1/dir2/dir3/dir4$ ls
dir5 test
将test 复制到上一级的dir3中
ubuntu@ubuntu:~/dir1/dir2/dir3/dir4$ cp -r test ../
在dir4中直接查看dir3中有哪些文件
ubuntu@ubuntu:~/dir1/dir2/dir3/dir4$ ls ../
dir4 file1 test
在dir4中直接回到家目录 删除刚才创建的目录 dir1
ubuntu@ubuntu:~/dir1/dir2/dir3/dir4$ cd ~
ubuntu@ubuntu:~$ rm -rf dir1
ubuntu@ubuntu:~$ tree dir1
dir1 [error opening dir]0 directories, 0 files
练习二
1.创建目录24081C,在该目录下创建目录dir1 dir2 文件file1
2.使用echo在file1中打印一首古诗【执行调整格式】
3.复制file1给file2
4.将file1移动到dir1
5.将file2移动到dir2
6.在file1后面追加一行语句“我爱C语言”
7.查看file1内容
创建目录24081C,在该目录下创建目录dir1 dir2 文件file1
ubuntu@ubuntu:~$ mkdir -p 24081C/dir1
ubuntu@ubuntu:~$ cd 24081C
ubuntu@ubuntu:~/24081C$ mkdir dir2
ubuntu@ubuntu:~/24081C$ touch file1ubuntu@ubuntu:~/24081C$ ls
dir1 dir2 file1
使用echo在file1中打印一首古诗【执行调整格式】
ubuntu@ubuntu:~/24081C$ echo -e "\t\t\t停车坐爱枫林晚,\n\t\t\t霜叶红于二 月花" >> file1
ubuntu@ubuntu:~/24081C$ cat file1
停车坐爱枫林晚,
霜叶红于二月花
复制file1给file2
ubuntu@ubuntu:~/24081C$ cp file1 file2
ubuntu@ubuntu:~/24081C$ ls
dir1 dir2 file1 file2
ubuntu@ubuntu:~/24081C$ cat file2
停车坐爱枫林晚,
霜叶红于二月花
将file2移动到dir2
ubuntu@ubuntu:~/24081C$ mv file2 dir2
ubuntu@ubuntu:~/24081C$ ls
dir1 dir2 file1
ubuntu@ubuntu:~/24081C$ cd dir2
ubuntu@ubuntu:~/24081C/dir2$ ls
file2
在file1后面追加一行语句“我爱C语言”
ubuntu@ubuntu:~/24081C$ echo "我爱C语言" >>file1
查看file1内容
ubuntu@ubuntu:~/24081C$ cat file1
停车坐爱枫林晚,
霜叶红于二月花
我爱C语言
练习三
1.使用gcc 程序编译生成可执行文件的步骤分为________、________、________、________ 。
预处理、编译、汇编、链接
2.GCC编译器中 -S 选项完成的工作是________ 。
编译
3写出gcc分步编译的详细步骤。
gcc分为四个步骤:预处理,编译,汇编和链接
-
预处理(Preprocessing):
- 调用预处理器(cpp),处理C源代码中的预处理指令,如宏定义(#define)、条件编译指令(#ifdef, #ifndef, #endif等)、文件包含(#include)等。
- 展开所有被#include指令包含的头文件,并进行宏替换,即将宏变量替换成具体的数值或表达式。
- 去除源代码中的所有注释。
- 预处理完成后,生成一个预处理后的文件(通常以.i为后缀)。例如,使用命令
gcc -E hello.c -o hello.i
来生成预处理文件hello.i。
-
编译(Compilation):
- 调用编译器(cc1),检查预处理后的代码是否符合C语言的语法规则。
- 将C代码转换成汇编语言代码。如果只想生成汇编代码而不进行后续的汇编和链接,可以使用
-S
选项,如gcc -S hello.i -o hello.s
。 - 生成的汇编代码文件(通常以.s为后缀)包含了程序的汇编指令。
-
汇编(Assembly):
- 调用汇编器(as),将汇编语言代码转换成机器码(即二进制代码)。
- 将汇编文件转换成目标文件(object file),这些文件包含了程序的目标代码(通常以.o为后缀)。例如,使用命令
gcc -c hello.s -o hello.o
来生成目标文件hello.o。
-
链接(Linking):
- 调用链接器(ld),将程序中的目标文件以及程序需要的库文件(如标准C库libc.so.6)合并成一个可执行文件。
- 链接过程中,链接器会解决目标文件之间的外部引用(即函数调用和变量引用),生成最终的可执行文件(在Linux下默认生成a.out,但可以使用
-o
选项指定输出文件名)。例如,使用命令gcc hello.o -o hello
来生成可执行文件hello。
1.C语言的程序的入口函数是什么,请写出全称?(山东丁一)
int main(int argc, char *argv[]){
return 0;
}
2.用户编写了一个文本文件a.txt,想要得到一个名为txt.a的该文件,可以使用哪些指令呢?
1.mv a.txt txt.a (a.txt会消失,变成txt.a)
2.cp a.txt txt.a (复制,所以a.txt不会消失)
3.cat a.txt>txt.a (同时出现a.txt和txt.a)
3.分析一下#include <stdio.h>的意思
#表示:#
是一个预处理指令的标识符。
include表示:include
是预处理指令之一,用于指示预处理器在当前文件中包含(插入)另一个文件的内容。
stdio.h表示:stdio.h
是标准输入输出库的头文件,它是C语言标准库的一部分。这个头文件中定义了进行输入和输出操作的函数,比如 printf
、scanf
、fopen
、fclose
等。
<>可以改为””吗?二者的区别是什么?
<> 直接从库文件找 /usr/include/stdio.h。
"" 先在当前目录找,找不到再去库文件找。