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操作系统。
谭邦宁教授: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密钥认证
- 生成密钥对
- 生成密钥对
- 在Linux服务器上新建.ssh目录和authorized文件(以root用户例)
/root/.ssh/ 权限700
/root/.ssh/authorized_keys 权限600
将公钥内容复制到authorized_keys文件,保存
- 关闭seliux
[root@bogon ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config
- 配置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://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
Linux的相关概念的更多相关文章
- Linux网络相关概念和修改IP地址的方法
2.1.1 网卡的命名规则 CENTOS6的网卡命名方式:它会根据情况有所改变而非唯一且固定,在CENTOS6之前,网络接口使用连续号码命名: eth0. eth1等,当增加或删除网卡时,名称可能会 ...
- Linux 入门记录:六、Linux 硬件相关概念(硬盘、磁盘、磁道、柱面、磁头、扇区、分区、MBR、GPT)
一.硬盘 硬盘的功能相当简单但很重要,它负责记录系统所需要的各种数据.硬盘记录数据有两个方面,一个是硬件方面的存储原理和结构,另外一方面则是软件方面的数据和文件系统.硬盘的主要行为就是数据的存放和取出 ...
- linux文件系统相关概念
struct task_struct { ......................... struct mm_struct*mm;//内存描述符的指针 struct files_struct *f ...
- 第3章(1) Linux内核相关概念
Linux内核的组成 1. Linux内核源代码的目录结构 arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如 i386.arm. arm64.powerpc.mips 等.Linu ...
- linux终端相关概念解释及描述
基本概念: 1. tty(终端设备的统称): tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被 ...
- Linux高级运维 第二章 Linux基本操作和自己动手组装服务器
2.1 Linux网络相关概念和修改IP地址的方法 2.1.1 网卡的命名规则 Centos 6的网卡命名方式:它会根据情况有所改变而非唯一且固定,在CENTOS6之前,网络接口使用连 ...
- LINUX capability概念及配置
写的不错的一片博客,可以参考熟悉相关概念,主要将了linux系统的系统调用,以及用法这里就不重新造轮子了 https://www.cnblogs.com/iamfy/archive/2012/09/2 ...
- linux学习笔记整理(一)
第二章 Linux基本操作 2.1 Linux网络相关概念和修改IP地址的方法2.2 关闭防火墙并设置开机开不启动2.3 临时和永久关闭Selinux2.4 设置系统光盘开机自动挂载2.5 配置本地 ...
- Linux 网卡操作与安全初始化
一.Linux网络相关概念和修改IP地址的方法 1.1 网卡命名方式 CENTOS6的网卡命名方式: 它会根据情况有所改变而非唯一且固定,在CENTOS6之前,网络接口使用连续号码命名: eth0. ...
随机推荐
- <转>jmeter(十八)关联之XPath Extractor
本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...
- Html p 标签
Html p 标签 <html> <body> <!-- p标签:输出跳到下一段落--> <p>内容</p> 注:段落之前各空出一行. &l ...
- Shell 实践、常用脚本
(1)计算1-100的和. #!/bin/bash n= ` do n=$[$i+$n] done echo $n (2)输一个数字,然后计算出1到数字的和,要求如果输入数字小于1,则重新输入,知道输 ...
- phpstorm 安装yaf代码提示文件
安装yaf代码提示:https://www.jianshu.com/p/dc719ae74f97 4.下载代码提示文件 下载地址: https://github.com/xudianyang/yaf. ...
- Build Tool
building tool: 一.building tools 为什么主流? Gradle 是目前比较流行的构建工具之一,Android Studio 中集成的就是 Gradle,并针对 Androi ...
- Docker安装准备
第一次写作下笔记: 以centos6.5安装yum优先级插件 yum install yum-priorities 1.epel简介: https://fedoraproject.org/wiki/E ...
- loj#2483. 「CEOI2017」Building Bridges 斜率优化 cdq分治
loj#2483. 「CEOI2017」Building Bridges 链接 https://loj.ac/problem/2483 思路 \[f[i]=f[j]+(h[i]-h[j])^2+(su ...
- P4312 [COCI 2009] OTOCI / 极地旅行社
思路 LCT维护和的板子 注意findroot的时候要先access一下,修改点权之前要先splay到根 代码 #include <cstdio> #include <algorit ...
- abstract class和interface的异同
含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象.含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必 ...
- 页面Vue
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...