Linux-Ch03 软件安装和SSH

Linux软件安装

make和makefile

Linux C语言程序的编译:

  • gcc命令

    1
    2
    gcc -o 编译后的文件名 欲编译的文件
    # 不指定编译后的文件名,默认为a.out
  • 编译相关文件:

    • 基本头文件在/usr/include,附加头文件在/usr/include/sys或/usr/include/linux中
    • gcc -l选项引入不在默认路径的头文件
    • 标准库文件位于/lib或/usr/lib中

多个源文件带来的问题及其解决:

  • make工具会在必要时重新编译所有受影响的文件。

  • make的功能主要依赖于makefile文件,makefile文件一般和项目其他源文件放在同一目录下。

  • make命令常用功能:

    • -k:发生错误时继续执行
    • -n:输出将执行的步骤而不是真正执行
    • -f < filename >:指定makefile文件

包管理工具和软件源

Linux系统软件安装的基本概念:

  • 软件都是以源代码方式发布的
  • 一般采用归档压缩文件的方式(tar.gz),称为软件包

包管理工具:

  • 由于软件和软件和库之间存在依赖关系,所以诞生了包管理工具和软件仓库。

  • 主流软件包管理工具:

    • RPM:RedHat Package Manager,用于Fedora、CentOS等

    • DPKG:Debian Packager,Ubuntu使用,如命令apt-get

    • YUM:基于RPM的前端软件包管理工具,主要特点:

      1. 从指定服务器自动下载RPM包并安装
      2. 自动处理包依赖关系
      3. 引入仓库和容器概念
    • apt:Ubuntu的包管理工具,底层是dpkg

      1
      2
      apt-get install 软件名
      # install -f 可以自动解决依赖

远程访问服务器SSH

Telnet:

  • 默认使用23端口
  • 简单易用高效,明文传输,不安全

SSH:

  • 基于加密机制的安全连接远程服务器Shell的协议

使用SSH进行远程登录:

  1. 口令登录

    1
    2
    3
    ssh user@host
    ssh root@ip地址
    ssh -p 220 root@202.197.64.6

  2. 公钥登录

    用户将自己的公钥存在远程主机上。登陆时,远程主机向用户发送一段随机字符串,用户用自己的私钥加密后,发回来。远程主机用实现储存的公钥进行解密,如果成功,证明用户可信,允许登录

SSH存在的漏洞:中间人攻击