Java_004_前置知识

linux基本概念

linux架构

本质只有 计算资源 和 存储资源 通过内核进行管理

  • 唯一的接口——系统调用
    敲键盘从物理信号 到 电子信号
  • 内核(抽象化硬件资源,来管理硬件)
  • 硬件

文件系统

  • 接口
  • 抽象——对不同分区分层,解耦
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/ 根目录

/home 用户目录

/var 经常变化的文件,如日志

/usr 用户程序/库

/bin 可执行文件

/boot 引导系统启动

/tmp 临时文件

/lib /lib64 系统库文件

/etc 配置文件信息

终端 shell 管道

  • 终端(终端模拟器)
  • shell-linux系统内核和用户交互的接口
  • 管道-程序和程序通信的方式,对接输入和输出
  • linux一切皆文件
    • 标准输入
    • 标准输出
    • 标准错误

命令行

  • ls 查看目录文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ls
    ls -l 查看文件
    ls -al 查看所有文件

    < ls -al
    > -rw-r--r-- 1 admin staff 513 1 10 10:33 a001.ts
    > -rw-r--r-- 1 admin staff 169 1 10 10:34 a002.js
    > -rw-r--r-- 1 admin staff 263 1 10 10:34 a002.ts

    第一字段的后面9个字母表示文件的权限.
    r表是读 (Read)
    w表示写 (Write)
    x表示执行 (eXecute)

    其中前三个表示文件属主的权限,中间三个表示组用户权限,最后三个表示其他用户权限.
  • cd 切换目录

  • mkdir 新建目录
  • pwd 当前目录
  • mv,cp,rm 移动,复制,删除
  • cat 查看文件内容
  • chmod 修改文件权限
  • chown 修改文件所属
  • apt-get 包管理软件
  • vim 文本编辑器
  • sudo 临时获得超级管理员权限执行一些命令
  • man 命令 查看这个命令的帮助文档

    1
    2
    man ls
    man mv
  • | 管道

    • 原理就是把一个命令的输出 当作另一个命令的输入
    • 可以把很多命令结合起来
    • pipeline
  • grep 搜索一些字符串
    1
    2
    3
    4
    5
    # 在 a.txt里查找 a出现的地方
    cat a.txt | grep a

    # 结合管道命令 统计日志里 error 出现的次数
    cat a.log | grep error | wc -l

linux 下目录的构成

  • 绝对路径 以 “/“ 开头的 从根路径开始
  • 相对路径 以”.” 开头 “.”代表当前路径 “..” 代表上一级路径

如何把内容整到文件中呢?

任务

1.Linux操作系统内核的作用和解决的问题

操作系统的主要功能就是操作设备平台的各个硬件,将用户和具体的硬件操作隔离开来,只留下操作接口供使用,这样使用者就不必直接操作硬件,解耦,只需要通过api接口来间接操作硬件。

  1. 内存管理
  2. 进程调度
  3. 硬件设备管理
  4. 用文件系统来管理块存储设备

linux解决的问题

  • 解耦,功能拆分
  • Linux主机允许同时多人上线工作,相比于Windows的单人多任务系统要稳定许多。
  • 它是开源的操作系统,软件成本低

2.Linux 管道的定义和它解决的问题

是一种最基本的IPC机制,作用于进程之间,完成数据传递。

  1. 其本质是一个伪文件(实为内核缓冲区)
  2. 由两个文件描述符引用,一个表示读端,一个表示写端。
  3. 规定数据从管道的写端流入管道,从读端流出。
  • 一个命令的输出做为另一个命令的输入。

解决的问题:

  • 链接多个命令

管道到底是什么

3.了解命令 find, 请搜索相应文档, 并链接到答案里.

find顾名思义就是查找,Linux下find命令提供相当多的查找条件,因此功能比较强大,可以在众多文件或目录下查找你想要的任何文件或目录。

1
2
3
4
5
6
7
8
find ./ -name test.sh 查找当前目录下所有名为 test.sh的文件
find ./ -name .sh 查找当前目录下所有后缀为 .sh的文件
find ./ -name "[A-Z]" 查找当前目录下所有以[A-Z]大写字母开头的文件
find /tmp -size 2M 查找/tmp目录下所有等于2M的文件
find /tmp -size +2M 查找/tmp目录下所有大于2M的文件
find /tmp -size -2M 查找/tmp目录下所有小于2M的文件
find ./ -size +4k -size -5M 查找当前目录下所有大于4k小于5m的文件
find ./ -perm 0777 查找当前目录下权限为777文件或目录

4.了解命令 grep, 请搜索相应文档, 并链接到答案里. 请用命令cat, grep和wc, 管道来统计一个文件中出现关键字 “error” 的行数

5.列出一个自己课程中感兴趣的概念或者知识点, 搜索相关的资料, 并分享到答案.

扩展阅读

UNIX传奇

引导

  • 了解Unix的历史和开源软件的历史
  • 了解UNIX设计原则

书籍

必读

推荐阅读章节

  1. 计算机概论
  2. Linux是什么
  3. Linux如何学习
  4. Linux文件权限与目录配置
  5. Linux文件与目录管理
  6. vim程序编辑器
  7. 认识与学习Bash

扩展阅读 (长期)

任务

  • Linux 入门
  • 命令行 入门
  • Java 开发环境
  • IDE: Intellij IDEA 安装配置
  • 对于 Windows 的同学,可下载安装Cmder,模拟 Linux 命令行环境。

PPT: 前置知识.pdf