linux 操作 day 2

练习1

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

1、回顾练习:

题目1~5、7、8对文件的创建(mkdir,touch)、移动(cp,mv)、列出(ls,tree)、删除(rm,rmdir)进行,以及工作目录的转换复习。

//回到家目录
ubuntu@ubuntu:/$ cd

*****************************************************************************************
//mkdir 创建目录文件
ubuntu@ubuntu:~$ mkdir dir1
//touch 创建文件
ubuntu@ubuntu:~$ touch file1
ubuntu@ubuntu:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面  a.out  a.txt  dir1  file1  snap  txt.a

*****************************************************************************************
//mkdir -p连续嵌套创建目录文件
ubuntu@ubuntu:~$ mkdir -p dir1/dir2/dir3/dir4/dir5
ubuntu@ubuntu:~$ tree dir1
dir1
└── dir2
    └── dir3
        └── dir4
            └── dir5

4 directories, 0 files
*****************************************************************************************
//cd 进入目录文件
ubuntu@ubuntu:~$ cd dir1/dir2/dir3/dir4/

*****************************************************************************************
/*mv移动指令      ../表示返回上一级*/
ubuntu@ubuntu:~/dir1/dir2/dir3/dir4$ mv ~/file1  ~/dir1/dir2/dir3/
ubuntu@ubuntu:~/dir1/dir2/dir3/dir4$ tree ../
../
├── dir4
│   └── dir5
└── file1s

*****************************************************************************************
//在dir4目录下创建一个目录文件 test
ubuntu@ubuntu:~/dir1/dir2/dir3/dir4$ mkdir test
ubuntu@ubuntu:~/dir1/dir2/dir3/dir4$ ls
dir5  text

2、cp指令

cp      复制文件1到文件2中  (具有覆盖的特性)

cp  -r  用于非空目录文件的复制

注意:a、目标目录文件必须存在,cp命令不能创建新的目录文件。

           b、复制的文件没有权限,则会显示出错。

例题:将test 复制到上一级的dir3中

 

ubuntu@ubuntu:~/dir1/dir2/dir3/dir4$ cp -r test ../
ubuntu@ubuntu:~/dir1/dir2/dir3/dir4$ tree ../
../
├── dir4
│   ├── dir5
│   └── test
├── file1
└── test

3、cat指令

cat具有三种功能:

a、查看文件全部内容(全部一起显示)

b、复制并粘贴文件,

      cat     1.c>2.c         2.c具有和1.c一样的内容

c、将几个文件合为一个 文件,文件内容也按顺序合并。

cat 1.c 2.c >3.c

cat dir1 dir2 >dir3

拓展

        echo 文件1>文件2 的作用是新建一个文件2,将“文件2”这串文字写入到文件2中。

在dir4中直接回到家目录 删除刚才创建的目录 dir1

ubuntu@ubuntu:~$ rm -r dir1
ubuntu@ubuntu:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面  a.out  snap
ubuntu@ubuntu:~$ 

练习2

  1. 创建目录24081C,在该目录下创建目录dir1 dir2 文件file1
  2. 使用echo在file1中打印一首古诗【执行调整格式】
  3. 复制file1给file2
  4. 将file1移动到dir1
  5. 将file2移动到dir2
  6. 在file1后面追加一行语句“我爱C语言”
  7. 查看file1内容

2.1创建目录24081C,在该目录下创建目录dir1 dir2 文件file1 

ubuntu@ubuntu:~$ mkdir 24081C
ubuntu@ubuntu:~$ cd 24081C/           
ubuntu@ubuntu:~/24081C$ mkdir dir1 dir2
ubuntu@ubuntu:~/24081C$ touch file1
ubuntu@ubuntu:~/24081C$ tree ~/24081C
/home/ubuntu/24081C
├── dir1
├── dir2
└── file1

2 directories, 1 file

 2.2 echo指令

 echo(英译:重复、附和)

功能:a、在屏幕上显示字符串;                      echo     字符

                                                                          echo     "字符"

                                                                          echo      `字符` 

                echo -n        显示字符不会独占一行

                echo -e        可以解析特殊字符(eg:\n     \t)

           b、在文件中写入要写的内容;

                echo -e   "字符串” > file1将字符串写入file1【若执行多次只保留最后一次】
                echo -e "字符串">>file1将字符串追加到file1

           c、在脚本编辑时显示某一变量的值;

题目:

使用echo在file1中打印一首古诗【执行调整格式】

ubuntu@ubuntu:~/24081C$ echo -e "\t\t\t登高\n\t\t\t 唐·杜甫\n\t\t风急天高猿啸哀 ,渚清沙白鸟飞回.\n \t\t无边落木萧萧下,不尽长江滚滚来。\n \t\t万里悲秋常作客, 百年多病独登台。\n\t\t艰难苦恨繁霜鬓,潦倒新停浊酒杯。" >file1 
ubuntu@ubuntu:~/24081C$ cat file1 
			登高
			 唐·杜甫
		风急天高猿啸哀,渚清沙白鸟飞回.
 		无边落木萧萧下,不尽长江滚滚来。
 		万里悲秋常作客,百年多病独登台。
		艰难苦恨繁霜鬓,潦倒新停浊酒杯。

复制file1给file2

 方法一:cp指令 

ubuntu@ubuntu:~/24081C$ cp file1 file2
ubuntu@ubuntu:~/24081C$ ls
dir1  dir2  file1  file2

 方法二:cat指令 

 ubuntu@ubuntu:~/24081C$ cat file1>file2

ubuntu@ubuntu:~/24081C$ ls
dir1  dir2  file1  file2

 2.3 mv指令

功能:进行剪切并粘贴

mv file1 file2 剪切file1,粘贴为file2【此时file2的内容是file1的内容】;

mv dir1 dir2 剪切dir1,若dir2存在粘贴到dir2;若dir2不存在将dir1重命名为dir2;

mv file1 dir1 剪切file1,粘贴到dir1里面;

 

 题目:

将file2移动到dir1 

将file1移动到dir2

ubuntu@ubuntu:~/24081C$ mv file2 dir1
ubuntu@ubuntu:~/24081C$ mv file1 dir2
ubuntu@ubuntu:~/24081C$ tree
.
├── dir1
│   └── file2
└── dir2
    └── file1

 在file1后面追加一行语句“我爱C语言”

查看file1内容

ubuntu@ubuntu:~/24081C$ echo "我爱C语言">>./dir2/file1
ubuntu@ubuntu:~/24081C$ cat dir2/file1
			登高
			 唐·杜甫
		风急天高猿啸哀,渚清沙白鸟飞回.
 		无边落木萧萧下,不尽长江滚滚来。
 		万里悲秋常作客,百年多病独登台。
		艰难苦恨繁霜鬓,潦倒新停浊酒杯。
我爱C语言

 

练习3

使用gcc 程序编译生成可执行文件的步骤分为   预处理   编译  汇编  链接 

GCC编译器中 -S 选项完成的工作是  编译   

注释:

源文件(高级语言代码)——>通过  gcc -E ——>生成后缀为xxx.i的文件 (该过程为预处理);

xxx.i文件——>通过 gcc -S ——>生成后缀为xxx.s的文件 (该过程为编译);

xxx.s文件——>通过gcc -c ——>生成后缀为xxx.o的文件   (该过程为汇编)  ;

将xxx.o文件与链接计算机函数库,让xxx.o中使用的库中函数得到解释,从而达到使用函数的功能。  (该过程为链接)。

C语言的程序的入口函数是什么,请写出全称?

入口函数是 “main”

全称是 “int main(void)” 

        或 “int main(int argc, char *argv[])”

        这里的 “int`”表示 “main”函数的返回值类型是整型

        “void”表示 “main”函数没有参数

        “argc” 是命令行参数的个数,        

        “argv”是命令行参数的数组

 

分析一下#include <stdio.h>的意思

在C语言中,`#include <stdio.h>` 的作用是将标准输入输出头文件 `stdio.h` 的内容包含到当前源文件中。

        `#` 表示预处理指令的开始。在C语言中,`#` 用于引导预处理指令,这些指令在编译之前由预处理器处理。注:以#开头,并且结尾不能加分号【不是C语言语句】

        `include` 表示包含(或引入)某个文件的指令。它告诉预处理器将指定的文件内容插入到当前文件中。

        `stdio.h` 是标准输入输出库的头文件。它包含了用于输入输出操作的函数声明,比如 `printf`、`scanf`、`fopen` 等。注:.h后缀是头文件

`<>` 和 `""` 的区别在于文件的查找方式:
        `<>` 表示标准库头文件的查找路径。预处理器首先在系统的标准库目录中查找指定的头文件。这种方式通常用于标准库的头文件,如 `stdio.h`、`stdlib.h` 等。

        `""` 表示用户自定义头文件的查找路径。预处理器首先在当前目录中查找指定的头文件。如果找不到,再去标准库目录中查找。这种方式通常用于用户编写的头文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值