• 20191310李烨龙第一二章读书笔记


    第一二章读书笔记


    知识点

    1 引言

    第一章主要是对全书的内容进行一个总体介绍,它深入浅出地说明了全书的整体脉络,介绍了Linux的发展史。之后,它教授了通过Virtual Box和Vmware两款软件安装和启动Linux,简单地介绍了一下文件系统组织、简单命令和系统管理。
      记录一下几个比较重要的Linux命令:

    cd:更改目录
    exit:退出
    logout:注销
    sudo apt install:安装应用程序
    sudo:使用root权限执行
    ls:lsdirname:列出CWD或目录的内容。
    pwd:打印CWD的绝对路径名。
    touch filename:更改文件名时间戳(如果文件不存在,则创建文件)。
    cat filename:显示文件内容。
    cp src dest:复制文件。
    mv src dest:移动或重命名文件。
    mkdir dirname:创建目录。
    rmdir dirname:移除(空)目录。
    rm filename:移除或删除文件。
    find:搜素文件
    grep:搜索文件中包含模式的行。
    ssh:登录到远程主机
    tar-zcvffile.tgz:从当前目录创建压缩tar文件。
    tar-zxvffile.tgz:从tgz文件中解压文件。
    man:显示在线手册页。
    zip file.zip filenames:将文件压缩为.zip文件。
    unzip file.zip:解压.zip文件。
    history:查看历史命令。
    !数字:执行第"数字"条命令。
    

    以上命令在日常使用Linux命令行中会经常使用到,需要勤加练习记忆。
      关于我的虚拟机,我使用的软件是Vmware,在我看来,它比Virtual Box“智能”多了,相比之下,后者使用过程中体验十分不好,经常会出现一些不明所以的错误。由于曾经安装过Ubuntu和Kali,所以不再演示安装过程。Ubuntu个性化GUI看起来很酷,但是实际用起来反而感觉UI是多余的坠饰,或许是我还仅仅是浅尝辄止,没有探索出Ubuntu的UI真正的奥秘吧。

    ​ Kali里面有许多很酷很实用的应用都提前安装好了,看一眼它的菜单栏就会被其强大的功能所折服。虽然自己还没有很好地发挥其真正的功效,但是还是很感谢当时给我推荐这个的老哥,因为Kali看起来真的太有逼格了!

    ​ 补充今天上课所记录的几个使用Linux敲代码时所需的快捷键:

    	1. `^ + alt + t`		             打开命令行
    	2. `^ + shift + t`                  创建新标签
    	3. `alt + number`               在新标签之间跳转
    

    ​ 命令行中实用技巧:

    1. `history  —  !number`  查询过往代码
    2. `odd`  以二进制格式读取文件
    3.  `gcc  -E  xx.c  -o  xx.i`     预处理
    4.  `gcc  -S  xx.i  -o  xx.s`     编译
    5.  `gcc -c  xx.s  -o  xx.o`     汇编
    6.  `gcc  -Iinclude  +  头文件路径`    链接库
    

    2.7 makefile

    ​ makefile算是比较困难的一个内容,还没看的时候就听舍友在宿舍哭诉完全听不懂。简单浏览书本,发现书上关于makefile还是占了很大一部分内容,但是一开始还是没有简单介绍一下makefile是什么,可能是默认我们都已经有所了解了。

    ​ makefile其实就是包含了多条Linux命令的一个脚本文件,如果利用得当可以提高效率,特别是在管理大型项目时,可以省去很多时间编译整个项目。

    ​ make文件由目标项依赖项规则组成。

    target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label),对于标签这种特性,在后续的“伪目标”章节中会有叙述。

    prerequisites就是,要生成那个target所需要的文件或是目标。

      **command**也就是make需要执行的命令。(任意的Shell命令)
    
    	**tips**:$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件。
    

    makefile教程,可以参考云班课资源中的ppt,深入浅出地讲述了makefile的用法。

    ​ 链接2,这一篇看起来更加专业也更加助于理解:https://blog.csdn.net/weixin_38391755/article/details/80380786

    2.9-2.12 数据结构、算法

    ​ 书中降到了C语言中的结构提、指针等基础内容,之后介绍了数据结构和算法相关内容。在大一下我们上了C语言编程课程,大二上我们学习了数据结构和算法课程,书中的知识就是帮助我们进行一个温习,怕是我们重新拾起C语言,又一点基础都没有了!


    问题

    1. 在1.16.3中讲到了sudo命令,其中讲到Ubuntu禁用了超级用户账户,但是在后面又说了有一种方法可杜绝这种情况,但不方便透露。这种方法是什么呢?

    解决方法:

    ​ 先给root用户配置一个密码,具体看是什么操作系统
    ​ 比如ubuntu:sudo passwd root 提示输入密码2遍
    ​ 配置后可立即在terminal中切换到root,指令sudo su
    ​ 重启可在登录界面用户中输入root,密码正确可root权限登录

    image-20210913212512633

    ​ 结果真的可以登录超级用户

    ​ 可能是考虑到超级用户权限过大,对系统安全构成了一种挑战,如果root用户被操控就没有系统安全可言了!所以日常还是使用命令sudo -i来对用户进行一个提权更加安全一些。

    链接:https://zhidao.baidu.com/question/470704080.html

    2.在2.1.1中提到了所见即所得(WYSIWYG)编辑器,这是什么意思?

    解答:这是我之前看书时标注的问题,今天在准备写笔记时偶然得到了答案。为了编辑markdown文件,我下载了一个编辑器Typora,这个编辑器就是典型的所见即所得编辑器,可以对


    实践

    ​ 安装openeuler,和安装Linux虚拟机是一样的,下载并安装镜像文件即可。

    ​ 链接:https://blog.csdn.net/huangsxint/article/details/114758542

    ​ 下面是手把手跟娄老师学编程:

    1. 创建文件夹(命令mkdir + filename),在文件夹中部署好各类型文件夹。

         1.   src      源文件(.c)
         2.   docs        说明文档
         3.   include        头文件(.h)
         4.   libs        预处理文件(.o)
         5.   bin        可执行文件(.out)
      

    	2. 使用软件编辑代码,此处使用最简单的Hello World来进行演示。
    
     头文件的编写:
    

     源文件的编写:
    

    3.编写makefile文件,make后出现错误:

    ​ 解决方法:删除头文件一开始的定义,就不会出现问题。其实还不是很清楚一开始的定义是什么意思,只知道其功能是防止多个文件链接调用一个头文件时出现重复调用,在没有定义的时候就进行了调用从而引发错误。

    4.运行成功截图:

  • 相关阅读:
    原生JS 碰撞检测
    sdw
    无题
    什么是递归?递归大讲义
    C#中常用的经典文件操作方法
    rpm包时遇到Header V3 DSA signature: NOKEY时解决办法
    Linux vim命令
    Linux yum命令详解
    visual studio 2013 快捷键大全
    D_S 线性表的顺序表示和实现
  • 原文地址:https://www.cnblogs.com/sisterben/p/15269729.html
Copyright © 2020-2023  润新知