2020-2021-1 20209322《Linux内核原理与分析》第一周作业

汇总初学习Linux时遇到的问题。

1.关于apt-get update,为什么安装软件前要先调用update更新?这个更新是更新什么?

在学习前几个实验的过程中,看到很多次安装某个软件的时候,都会出现如下的指令:

sudo apt-get update
sudo apt-get install 软件名

在安装前都要先update一下,心里就会产生疑问,为什么需要update,这个更新到底更新了什么?于是就试了试在不输入update指令的情况下,直接安装会怎么样,实验过程中发现,不进行update操作会出现很大的问题。百度了一些资料,了解到“apt-get 是用于处理 apt包的公用程序集,我们可以用它来在线安装、卸载和升级软件包”,在apt-get update命令里,update就是更新本地的软件索引,根据你配置的站点的目录来更新。此时不会去下载软件,只是更新目录。update会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。update之后,在install的时候才会根据索引去你配置的站点下载相应的软件源。所以,要养成习惯,install之前update一下,看看和站点的同步不同步。
而用来更新软件的指令是upgrade指令,注意在更新前也还是需要update一下。

sudo apt-get update
sudo apt-get upgrade

2.关于管道

管道的作用是连接前一个命令的输出,并将其作为下一个命令的输入。

例如,找出当前目录下面占用最大的前十个文件,du命令的输出作为sort命令的输入,sort的输出作为head命令的输入。

du -a | sort -nr | head -n 10

3.关于cgdb

在虚拟机上安装完vim、gcc和cgdb之后,尝试用vim编写简单的测试程序,

#include <stdio.h>
int main(){
      printf("hello~\n");
      return 0;
}

在编译之后

gcc test.c

和上课老师讲的一样,生成了a.out文件,这时我想利用cgdb进行调试,尝试使用cgdb test.c 和cgdb a.out指令,但是,进入cgdb之后却没有代码,通过查阅博客,才知道,cgdb是进入可执行程序进行调试,因此在编译的时候,需要用gcc编译出一个可执行程序。

gcc -o test test.c

这样,再次使用

cgdb test

就可以进行调试了。

4.向上翻屏

使用 “指令 --help” 指令时,会在终端直接输出内容,当内容太多时,只能看到最后的部分,习惯性使用“↑”却是历史记录,这时需要使用shift+PgUp进行上翻操作,可以查看上一个屏幕的内容。

总结,对于Linux的学习还是任重道远,很多指令还没有熟练掌握,很多指令的使用技巧还不清楚,要多看书,多操作。

posted @ 2020-10-11 20:34  逐北  阅读(52)  评论(0编辑  收藏  举报