[关闭]
@artman328 2019-01-28T07:51:39.000000Z 字数 6117 阅读 1366

Linux 操作系统基础

linux


一、Linux 简介与安装

1. 什么是操作系统?

操作系统,是一套计算机程序的整合,实现装到计算机里,帮我们管理各种硬件设备,如:中央处理器(CPU),内存(Memory),显卡(Display Card),网卡(Network Interface Card, NIC),硬盘(Hard Drive),键盘,鼠标等;它还帮我们管理运行中的程序(进程,Process),帮我们管理网络的连接,帮我们管理用户信息和用户使用系统的权限,帮我们管理系统的安全等。
人是和程序界面打交道的,我们让程序帮我们播放音乐、电影,帮我们保存一篇文章,让我们浏览网站等,这些事情都由相应的程序去委托操作系统做了最基础的工作。

2. Linux 像 Windows 吗?

像也不像。它们都是操作系统,都要完成类似的任务。但它们又有很大的不同,它更像 UNIX 操作系统。

UNIX 是人类最早的功能较为完善的操作系统,最早由Ken Thompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发,后来经过不断完善,成为小型机到巨型计算机的操作系统。这类计算机和当今的个人计算机不同,它们连接着多个“哑”终端(不带计算能力的键盘+显示器+连接盒),人们可同时在不同的终端上使用 UNIX 操作系统。因此,UNIX 是个分时多任务的操作系统。多任务,指操作系统能让计算机同时做多个事情(运行多个程序),而CPU(中央处理器,计算机的计算中枢)是分时间片段轮流做每件事情(运行每个程序)的。

3. Linux 怎么来的?

Linux 是一个由个人兴趣项目到由集体维护的自由软件项目的伟大作品。

被称为“Linux 之父”的林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds),1969年12月28日出生于芬兰赫尔辛基市,1991年就读于赫尔辛基大学。

大学期间,林纳斯经常要用他的终端仿真器(Terminal Emulator)去访问大学主机(UNIX系统)上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了Linux第一个内核的雏形。当时,他年仅21岁。

后来,在自由软件之父理查德·斯托曼(Richard Stallman)自由与共享精神的感召下,林纳斯很快以Linux的名字(来自于他的名字 Linus + UNIX)把这款类Unix(Unix-like,从功能、界面到操作使用上,都与 UNIX 高度类似,但又是完全不同的实现)的操作系统加入到了自由软件基金(FSF)的GNU计划中,并通过GPL的通用性授权,允许用户销售、拷贝并且改动程序,但你必须将同样的自由传递下去,而且必须免费公开你修改后的代码。这说明,Linux并不是被刻意创造的,它完全是日积月累的结果,是经验、创意和一小段一小段代码的集合体。
现在,在 Linus 的主导下,世界上有成千上万的高手在为 Linux 内核的完善和改进做贡献。
Linux 是不要钱的!

4. Linux 操作系统可用来做什么?

几乎无所不能!
严格说来,Linux 主要是指操作系统内核,Linux 操作系统是 Linux 内核加上众多的系统软件(提供系统服务)、工具软件(用于管理系统)等所构成。对它:
安装各种用户软件(办公、管理、教育、娱乐等)后即可做各种事情;
安装相应的服务器软件后作为服务器运行。比如安装了 WEB 服务器软件的 Linux 计算机,就成了 WEB 服务器,我们用浏览器在互联网上浏览的内容,就来自 WEB 服务器。
Linux 操作系统还可嵌入到工业设备、家用电器、游戏设备等,成为智能设备。
另外,安卓手机的操作系统,底层就是 Linux。
和其它一些服务器操作系统相比,Linux 即健壮又免费,它 已经成为互联网上服务器操作系统的主力平台,也是企业内部服务器的主要平台。

5. 谁需要学习 Linux 操作系统?

(1)服务器运行维护人员
(2)软件开发人员
(3)软件部署与维护人员
(4)有兴趣的人

6、安装的前期准备

安装 Windows 工具

  1. 增强型命令窗口
    http://cmder.net/

  2. OpenSSH 客户端
    https://www.mls-software.com/opensshd.html

  3. VirtualBox 虚拟机平台
    http://www.virtualbox.org

7、Linux 版本选择

Linux = Linux 内核 + 软件(系统软件,工具软件等)
有多个组织在打包发行 Linux 操作系统。操作系统虽然免费,但发行 Linux 操作系统的组织可收取技术支持费用。
各种发行版本又有一些衍生版本。
Redhat 是一家著名的 Linux 发行商。针对企业发行的版本Red Hat Enterprise Linux(RHEL)是著名的 Linux 发行版之一。
CentOS是在RHEL发布的基础上将RHEL的构成克隆再现的一个Linux发行版本(去掉了商标,不需要注册购买有偿技术支持)。
本教程选用 CentOS 7.6 作为讲解对象。
系统下载地址:https://www.centos.org

8、实施安装

Linux 操作系统可根据需要进行定制:

本教程不安装桌面系统,采用最小化安,以后,可根据需要逐步安装和配置软件。

9、本地登录系统

  1. CentOS Linux 7 (Core)
  2. Kernel 3.10-862.el7.x86_64 on an x86_64
  3. yntc-server login: _

以上界面是启动后的界面。如果你不需要做什么,就这样开着,绝大多数的 Linux 服务器启动后就停留在这样的状态下。请不要被表面上的“风平浪静”所迷惑!事实上,操作系统里有许多服务程序(决定于你以前安装的服务的多少)在运行着,时刻等待着为外界服务!

为了管理服务器,Linux 操作系统有一个超级用户叫 root 。现在,从键盘敲入 root 并回车,然后输入安装时确定的密码(注意:屏幕上不会有任何显示),然后回车。正确登录后,将进入一下界面:

  1. ...
  2. Last Login: ...
  3. [root@yntc-server ~] _

默认情况下,你有 6 个独立的登录界面,叫虚拟控制台,在系统里叫 tty1 ~ tty6。你可用 ALT + F1ALT + F6 进行切换。

10、远程登录系统

为了远程管理系统,我们需要远程登录系统。
在安装了 OpenSSH for Windows 的 Windows 机器的命令窗口或其他 Linux 机器的命令行,用:

  1. ssh 用户名@IP地址或域名 [-p 端口]

进行远程登录。
登录后,界面和操作都和本地登录完全一致。

二、初识 Linux

1. Linux 的文件系统

(1)文件组织形式

电脑是用来存储和处理信息的。我的电脑里有什么,存在哪里?在 Windows 中,我们用“资源管理器”进行查看。在 Linux 的 shell 里,我们怎么看?
计算机组织和管理信息的方法、手段及形式,叫文件系统。虽然计算机有不同的文件系统,但它们的组织形式在外观上几乎都是一致的:
把信息存储为文件,把文件放到文件夹(又叫目录,以后二者可混用)里。文件夹可以再装文件夹,形成树形结构。
DirectoryStructureWin.png-9.7kB
(Windwos 文件系统的树形结构,一个磁盘(分区)一棵树)

DirectoryStructureLinux.png-18.8kB
(Linux 文件系统的树形结构,一棵树,每个树枝都可以是一个单独的硬盘或分区)

在 Windows 里,一个盘(分区)有自己一棵树,比如:“D盘的Java文件夹里的beginner文件夹里的那个 Hello.java 文件(D:\Java\beginner\Hello.java)”;“C盘里的Windows文件夹里的 System32 文件夹里的 notepad.exe 文件(C:\Windows\System32\notepad.exe)”等。

在 Linux 里,不论你有几个硬盘或分区,却只有一棵树,树根叫做“/(注意方向)” 。其余树枝存储什么有推荐的标准FHS,如下表所示。

目录 内容
/bin 实用程序,由系统、管理员和所有用户实用
/boot 启动相关文件与内核文件vmlinuz。
/dev 设备文件,Linux 中用文件代替实际的硬件设备,对文件的操作由系统转换为对实际设备的操作。
/etc 用于存储系统及用户软件的配置文件和数据
/home 用户的家目录就在此目录下,每个用户对自己的家目录有完整的操作权限
/initrd (对某些发行版)存储启动信息
/lib 系统程序和用户程序的程序库文件
/lib64 同上,64位版本
/lost+found 存储意外损坏的文件
/misc 存储杂类文件
/media 光盘、U盘等移动存储的挂载点
/mnt 通用挂载点,临时挂载其它文件系统
/net 远程文件系统的挂载点
/opt 第三方软件
/proc 虚拟文件系统,包含内存中系统资源的状态或数据
/root root 的家目录
/sbin 系统及系统管理用户使用的程序
/tmp 临时目录,保存临时文件,重启后删除
/usr 程序、库和文档,大多数软件安装到此目录
/var 存储内容可变的文件,任务队列等

(2)Linux 的路径

路径,指从根开始到达某个目录或文件所经过的目录的途径,各目录之间(目录与文件之间)用 / 进行分隔。这是绝对路径。如果路径不从根开始,而是从某个目录开始,就叫相对于某个目录的相对路径

如:/usr/share/man/man1/perl.1.gz 是到达文件 perl.1.gz 文件的绝对路径;
而:man/man1/perl.1.gz 是相对于/usr/share/到达文件 perl.1.gz 文件的绝对路径;

如果路径的最后没有斜线 / ,最后部分可以是文件或目录,相反则是指目录。
如:/etc/whatever 中的 whatever 可指文件或目录;
而:/etc/whatever/ 中的 whatever 就一定是指目录。

(2)Linux 的文件类型

根据其内容,Linux 的文件类型分为两大类。一类是文本文件,其内容由可见字符和部分不可见字符(回车、换行等)的二进制编码字节(8位二进制数)构成,可用编辑软件打开阅读。另一类是非文本文件,由所有可能的8位二进制字节构成,其内容可能是计算机指令和数据的混合体,也可能是某种编码的数据(jpg图像,mp3歌曲,pdf 文档等)。

2. 用户界面 shell

(1)shell 的样子

shell, 英文的“壳”的意思。它是一个程序,提供一个纯字符界面,负责人与操作系统的交流。
交流采用向 shell 输入命令,shell 运行命令后把结果输出的方法进行。

  1. [root@yntc-server ~] _

以上就是 shell 的典型界面,由一个提示符[root@yntc-server ~] 后面加上一个闪烁的光标所构成,命令就从光标闪烁处开始输入。

shell 有多种,我们主要以叫做 bash 的 shell 为例。

(2)与 shell 交互

shell 的命令有两类,一类是 shell 本身的功能,叫内部命令;一类是程序或命令脚本(多条命令按逻辑组织起来的可执行文件)。

shell 命令的格式是:
命令   [-单字符选项/--单词选项    [选项值]]...    [参数]...
中括号表示可选(可有可无),省略号表示可重复多项。
命令结束后要按回车。
如果命令过长,可用 "\回车" 在下一行继续输入命令。
注意:各部分之间至少有一个空格。

输入命令时,可用 TAB 键帮助输入命令和路径。
可用上下键查找之前输入的命令。

三、了解你的软硬件系统

1. 硬件

功能 命令
获取硬件信息 lshw
PCI/USB接口信息 lspci/lsusb
注意:分别需要安装 pciutils 和 usbutils 软件包
显示 cpu 信息 lscpucat /proc/couinfo
检查硬件虚拟化支持 egrep --color "vmx|svm" /proc/cpuinfo
显示物理内存大小 free -mcat /proc/meminfo | grep MemTotal

2. 系统

功能 命令
查看主机名 hostname / hostnamectl
查看系统发行版本 cat /etc/system-release
查看操作系统信息 uname -a
显示机器架构 arch
显示系统加载的内核模块 lsmod
查看系统启动信息 dmesg

3. 存储

功能 命令
显示系统中的块设备
(块设备:以存储块为单位随机存取数据的设备,
如硬盘、光盘等;字符设备:以字符为单位顺序存取数据的设备,
如:键盘、串口等)
lsblk
显示磁盘分区 fdisk -l/gdisk -l / parted -l
显示磁盘使用情况 df -h

4. 本地化

功能 命令
查看日期时间 timedatectl / date
查看语言支持与键盘设置 localectl

5. 软件

功能 命令
查看启用的软件源(仓库) yum repolist
查看已安装的使用软件包 yum list installed / rpm -qa
检查是否有可用的软件包更新 yum check-update / yum list updates
注意:新系统一定要用 yum update 更新系统

6. 网络

功能 命令
显示网络接口参数 ip addr show / ifconfig
显示路由信息 ip route show / route
显示网络状态信息 ss / netstat
显示防火墙规则 firewall-cmd --list-all / iptables -nvL

四、Shell 文件系统操作

1. 在树中穿行和查看文件

序号 命令 常用选项 功能
1 help 查看 shell 的内部命令
(查看大多数外部命令,用 ls /binls /sbin
2 help 内部命令 查看内部命令的说明
(查看外部命令帮助,用 命令 --helpman 命令
3 ls [选项]... [目录或文件]... -l: 长格式,一条记录一行;
-a: 显示所有文件
列出目录和文件
4 cd [目录] 转到指定的目录,未指定,则默认转到用户的家目录
5 cat [选项]... [文本文件]... 把文件内容输出到屏幕上
6 head [选项]... [文本文件]... 把文件的前10行(可用选项指定)输出到屏幕上
7 tail [选项]... [文本文件]... 把文件的末尾10行(可用选项指定)输出到屏幕上
8 more [选项] 文本文件 先满屏显示文件内容,然后可逐行向下滚动查看
9 less [选项] 文本文件 与 more 类似,但也可逐行向上滚动查看
10 echo 字符串 -e 解释字符串中的特殊字符含义;
-E 不解释字符串中的特殊字符含义;
-n 不在字符串末尾添加换行符
在屏幕上输出指定字符串。
特殊字符:
\n 换行符
\r 回车
\ 斜线“\”
...

2. 目录操作

序号 命令 常用选项 功能
1 mkdir [选项]... [目录]... -p 允许创建级联目录 创建指定的目录
2 mv 原目录名 新目录名 将目录改名
3 rmdir 目录 删除指定目录,目录必须为空才能成功
4 rm -R 目录 级联删除指定目录下的所有内容后再删除指定目录
5 ln -s 目录名 新目录名

3. 文件操作

序号 命令 常用选项 功能
1 touch [选项]... [文件]... 把文件的访问时间和最后修改时间设置到当前时间;如果文件不存在,则创建新文件
2 cp [选项] 源文件 目的文件(路径) 把源文件复制到目的文件或路径下的同名文件
3 mv [选项]... 文件1 文件2 把文件从文件1挪动到文件2(如果在相同的位置则相当于改名)
4 rm [选项] 文件... -f 强制删除 删除指定文件

五、Shell 命令的连续执行

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注