zoukankan      html  css  js  c++  java
  • Linux的相关概念

    1 Linux的相关概念

    1.1 什么是操作系统?

    操作系统(英语:operating system,缩写:OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

    1.2 操作系统的分类

    Windows、Linux、Unix

    1.3 Unix及其衍生(可参考<<浪潮之巅>>)

    1.4 Linux是什么?(有兴趣可以看Linus Torvalds的传记,中文名<<只是为了好玩>>)

    Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为Linux操作系统。

    内核官网:https://www.kernel.org/

    谭邦宁教授:minix(微内核)

    Linux的几大派系

    Debian系----ubuntu(deb包管理方式)

    Redhat系----fedora, Centos(rpm包管理方式)

    1.5 GNU、自由软件、开源、自由软件、GPL许可证和基金会(FSF)

    GNU(GNU is no Unix)GNU于1983年由Richard Stallman(rms)发起,意在为所有软件用户能够自由控制自己的计算而构建一款由大家共同努力开发而成的操作系统。rms今天仍然是GNU的首席搞事者。

    GNU的基本目标和一贯目标是提供一个和Unix兼容的100% 自由软件的操作系统。不是95%、也不是99.5%、而是100%自由。这个系统的名字叫GNU,是GNU's Not Unix的首字母递归缩写—这是对Unix的技术思想致敬的一种方法,同时表达GNU有所不同。从技术上说,GNU很像Unix。但是它不同于Unix,GNU给予其用户自由。

    "自由软件"尊重用户的自由,并且尊重整个社区。粗略来讲,一个软件如果是自由软件,这意味着用户可以自由地运行,拷贝,分发,学习,修改并改进该软件。因此,"自由软件"是关乎自由的问题,与价格无关,软件如何定价并不影响它是否被归类为自由软件。而Free Software中的Free是指"自由言论"中的自由,而非"免费"这一意项。为避免歧义,在使用英文时,我们也会借用法语或西班牙语的"Libre Software"来指自由软件。

    开源软件(英语:open source software,英文缩写:OSS,中文也称:开放源代码软件)是一种源代码可以任意获取的计算机软件,这种软件的版权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改、增进提高这款软件的质量。开源协议通常匹配开放源代码的定义的要求。一些开源软件被发布到公有领域。开源软件常被公开和合作地开发。开源软件是开放源代码开发的最常见的例子,也经常与用户生成内容做比较[1]。 开源软件的英文"open-source software"一词出自自由软件的营销活动中。

    GNU通用公共许可协议(英语:GNU General Public License,简称 GNU GPL、GPL)是广泛使用的免费软件许可证,可以保证终端用户得自由运行,学习,共享和修改软件。许可证最初由GNU项目的自由软件基金会 (FSF)的理查德·斯托曼(Richard Matthew Stallman)撰写,并授予计算机程序的收件人自由软件定义的权利。 GPL是一个Copyleft许可证,这意味着派生作品只能以相同的许可条款分发。 这与许可免费软件许可证有所区别 ,其中BSD许可证和MIT许可证是广泛使用的示例。 GPL是第一个普遍使用的Copyleft许可证。

    自由软件基金会(英语:Free Software Foundation,FSF)是一个致力于推广自由软件的美国民间非营利性组织。它于1985年10月由理查德·斯托曼建立。其主要工作是运行GNU计划,开发更多的自由软件。

    2 虚拟机

    实验环境的搭建

    环境:Centos7.4+Vmware Worksation12

    终端:Xshell

    阿里云镜像站:https://opsx.alibaba.com/mirror

    Centos历史镜像:http://vault.centos.org/

    共享资源站:r.aminglinux.com

    Centos7.aminglinux.com

    操作系统安装过程(略)

    注意点:

    a 选择Centos64位

    b 网络模式选NAT或桥接

    c 分区方案

    自定义分区

    分区 /boot 200M

    Swap 不超过8G, 小于8G内存的2倍

    剩余:/

    d 软件包选择

    最小化安装(把开发工具装上)

    e 系统安装完成后一定要做快照,如需多台虚拟机,可以通过克隆链接方式实现

    3 配置网络

    a 图形化方式修改nmtui

    b修改配置文件方式

    [root@bogon ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32

    vim /etc/sysconfig/network-scripts/ifcfg-ens32

    TYPE="Ethernet"

    PROXY_METHOD="none"

    BROWSER_ONLY="no"

    BOOTPROTO="none"

    DEFROUTE="yes"

    IPV4_FAILURE_FATAL="no"

    IPV6INIT="yes"

    IPV6_AUTOCONF="yes"

    IPV6_DEFROUTE="yes"

    IPV6_FAILURE_FATAL="no"

    IPV6_ADDR_GEN_MODE="stable-privacy"

    NAME="ens32"

    UUID="f78a6b73-f367-498a-b3ee-47f6b29ceab4"

    DEVICE="ens32"

    ONBOOT="yes"

    IPADDR="192.168.1.211"

    PREFIX="24"

    GATEWAY="192.168.1.1"

    DNS1="8.8.8.8"

    DNS2="223.5.5.5"

    "/etc/sysconfig/network-scripts/ifcfg-ens32" 21L, 419C

    修改后wq保存,重启网络服务

    [root@bogon ~]# systemctl restart network.service

    终端快捷键(emac编辑模式set -o | grep emac查看是emac模式)

    CTRL-C 中断(有时是delete或者del)

    CTRL-Z 暂停(放入后台执行)

    CTRL-I 清屏,相当于clear

    CTRL-D 退出终端

    CTRL-S 锁定终端

    CTRL-Q 解锁终端

    CTRL-B 左移光标

    CTRL-F 右移光标

    CTRL-P 查看上一条命令(或上移光标)

    CTRL-N 查看下一条命令(或下移光标)

    CTRL-A 移动光标至行首

    CTRL-E 移动光标至行尾

    CTRL-W 删除前一个词

    CTRL-U 删除从光标至行首的内容

    CTRL-K 删除光标至行尾的内容

    CTRL-Y 粘贴已删除的文本(例如ctrl-u删除的内容)

    CTRL-H 删除字符

    M-b 向左移动一个单词(先按esc键,再按b键)

    M-f 向右移动一个单词(先按esc键,再按f键)

    tab 命令补全,没事多按tab键

    4 远程登录

    a 使用PuTTY远程连接Linux

    putty下载(下载完整绿色包)

    https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

    调缓冲区大小(调到最大)

    调语言为utf-8

    调日志记录

    调整完以后记得保存session

    b 使用xshell连接Linux

    c PuTTY密钥认证

    1. 生成密钥对

    1. 生成密钥对

    1. 在Linux服务器上新建.ssh目录和authorized文件(以root用户例)

    /root/.ssh/ 权限700

    /root/.ssh/authorized_keys 权限600

    将公钥内容复制到authorized_keys文件,保存

    1. 关闭seliux

    [root@bogon ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config

    1. 配置putty使用证书登录

    验证

    d xshell密钥认证

    1. 进入用户密钥生成向导

    2 生成密钥对

    3     在Linux服务器上新建.ssh目录和authorized文件(以root用户例)

        /root/.ssh/ 权限700

        /root/.ssh/authorized_keys 权限600

    将公钥内容复制到authorized_keys文件,保存

    4     关闭selinux

    [root@bogon ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config

    5 配置xshell使用证书

    e Linux机器相互登录

    1 生成密钥对

    2 后续步骤与putty/xshell和xshell的密钥登录一致,参考上述putty或shell的密钥登录。

    简述如下

    在需要访问的Linux服务器上(以root用户登录为例)新建.ssh目录和authorized文件

    /root/.ssh/ 权限700

    /root/.ssh/authorized_keys 权限600

    将公钥内容复制到authorized_keys文件,保存

    3 关闭selinux

    [root@bogon ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config

    4 通过ssh username@ip_addr 方式连接

    注意:如果需要使用密钥登录,需要登录的每个用户都需要单独做公钥上传动作。比如你想使用xxx用户名登录,就需要在该用户家目录下建立.ssh目录和authorized_keys。上传公钥。

    5 运行级别的概念

    实际上Centos7以上的版本已经没有了运行级别的概念。init程序已经由原来的sysinit方式改变为systemd。

    转而用target的概念,运行级的说法只是为了向前兼容。

    systemctl基础用法

    a 列出服务列表

    [root@bogon ~]# systemctl list-units --type=service

    UNIT LOAD ACTIVE SUB DESCRIPTION

    abrt-ccpp.service loaded active exited Install ABRT coredump hook

    abrt-oops.service loaded active running ABRT kernel log watcher

    abrtd.service loaded active running ABRT Automated Bug Reporting Tool

    auditd.service loaded active running Security Auditing Service

    chronyd.service loaded active running NTP client/server

    crond.service loaded active running Command Scheduler

    ……

    b 启动服务(以网络服务为例)

    [root@bogon ~]# systemctl restart network.service

    c 停止服务

    [root@bogon ~]# systemctl stop network.service

    d 重启服务

    [root@bogon ~]# systemctl restart network.service

    e 默认启动级别

    [root@bogon ~]# systemctl get-default

    multi-user.target

    Centos7中的运行级

    [root@bogon ~]# ls -l /usr/lib/systemd/system/runlevel*.target

    lrwxrwxrwx. 1 root root 15 Apr 20 23:18 /usr/lib/systemd/system/runlevel0.target -> poweroff.target

    lrwxrwxrwx. 1 root root 13 Apr 20 23:18 /usr/lib/systemd/system/runlevel1.target -> rescue.target

    lrwxrwxrwx. 1 root root 17 Apr 20 23:18 /usr/lib/systemd/system/runlevel2.target -> multi-user.target

    lrwxrwxrwx. 1 root root 17 Apr 20 23:18 /usr/lib/systemd/system/runlevel3.target -> multi-user.target

    lrwxrwxrwx. 1 root root 17 Apr 20 23:18 /usr/lib/systemd/system/runlevel4.target -> multi-user.target

    lrwxrwxrwx. 1 root root 16 Apr 20 23:18 /usr/lib/systemd/system/runlevel5.target -> graphical.target

    lrwxrwxrwx. 1 root root 13 Apr 20 23:18 /usr/lib/systemd/system/runlevel6.target -> reboot.target

    其他有需要参考man 1 systemd

    有用链接:

    https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-managing_services_with_systemd-services

    https://www.ibm.com/developerworks/cn/linux/1407_liuming_init3/index.html

    6 单用户模式

    将下图红色圆圈部分修改为:rw init=/sysroot/bin/sh , 然后执行ctrl+x 启动

    修改密码

    更新selinux信息

    exit退出chroot, reboot重启

    7 设置grub密码

    a 生成密钥

    b 编辑/boot/gurb2/grub.cfg

    c 保存,退出

    d 重启验证

    进入单用户模式需要密码,说明配置成功

    8 光盘救援模式

    修改为光盘启动模式

    改完密码以后,执行exit退出chroot

    然后重启重新进入系统。

    扩展链接:

    https://www.cnblogs.com/clsn/p/7839965.html

    http://blog.51cto.com/13055758/2086322

    参考链接

    https://commons.wikimedia.org/wiki/File:Unix_history-simple.svg

    https://www.gnu.org/gnu/about-gnu.html

    https://zh.wikipedia.org/wiki/%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6

    http://ask.apelearn.com/question/18012

  • 相关阅读:
    【转自己的落谷博客】联通块的dfs
    STL中map的简单使用&常数优化
    转自自己的关于落谷计数器【p1239】的题解
    计算机网络三种模型
    docker的常用的一些配置
    容器整体性理解
    如何在类中定义装饰器?
    如何实现属性可修改的函数装饰器?
    如何定义带参数装饰器?
    如何为被装饰的函数保存元数据?
  • 原文地址:https://www.cnblogs.com/minn/p/9022428.html
Copyright © 2011-2022 走看看