文章目录(Table of Contents)
简介
从这篇开始,我们会开始介绍 Linux 的基础知识。这第一篇,我们会介绍以下的两个大的方面:
- Linux 简单介绍
- Linux 的历史
- Linux 的发行版
- Linux 的一些简单命令操作
- pwd 命令,查看当前路径;
- ls 命令,打印目录清单;
- cd 命令,在不同目录间进行切换;
- wget 命令,从网络上下载资源;
- cp 命令,复制文件或是目录;
- rm 命令,删除文件或是目录;
- mkdir 命令,创建指定名称的目录;
- cat 命令,显示文件内容;
本文的大部分内容根据实验楼课程,「楼+ 之运维进阶实战」进行改编。
Linux 简单介绍
Linux 是一套可以免费使用和自由传播的类 Unix 操作系统,并且是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。和我们熟悉的 Windows 操作系统以及 Mac OS 系统一样都是用于管理和控制计算机硬件和软件资源的计算机程序。不过,Linux 区别于其它操作系统的最突出的特点就是它是一款完全免费且开放源代码(open source)的操作系统。
Linux 作为一个操作系统主要包括内核和系统调用两个部分,介于「硬件」 和「应用程序」之间,就像一座桥梁连通着底层硬件和用户之间的信息交流。
Lunix 能够运行主要的 UNIX 工具软件、应用程序和网络协议,同时也支持 32 位和 64 位硬件。事实上严格来讲,Linux 这个单词只是表示 Linux 内核,不过实际生活中人们已经习惯将 Linux 来代表整个基于 Linux 内核,且使用 GNU 工程各种工具和数据库的操作系统。
「Linux 之父」 Linus Torvalds 所开发的 Linux 可以在 x86 架构下运行,同时可以被移植到其它主机上来运行。除此之外,Linux 还具有完全免费、兼容 POSIX1.0 标准、多用户、多任务和支持多种平台等优点。
Linux 的历史
在 Linux 之前,UNIX 经过长时间的发展已经是一个相当稳定且成熟的操作系统了。
- 1977 年通过
Bill Joy
释出 BSD(Berkeley Software Distribution),从而出现了 UNIX like 操作系统。 - 1984 年
Andrew Tannenbaum
开发出了 Minix 操作系统。 - 1984 年
Richard Stall
提倡自由软件,同时提出了 GNU 项目,规范出 GPL(General Public License) 模式。 - 在 1991 年
Torvalds
开发了 Linux 的内核,并且将其放在网络上供大家下载。
目前,Linux 的内核开发主要是两个版本:
- 开发中版本的奇数版,如:
2.5.x
,主要用于测试和开发的环境; - 稳定版本的偶数版,如:
2.6.x
,主要适用于一般家庭或者企业环境中;
Linux 的发行版
Linux 操作系统从诞生、发展到现在已经推出了许多的版本,而每个版本都拥有相当规模的用户。 下面列出的是当下比较常见的几款 Linux 发行版。
- Debian:
Debian
在运行起来极其稳定,这使得它非常适合用于服务器。Debian 平时维护三套正式的软件库和一套非免费软件库,它有 37500 多个软件包。Debian 使用apt
或aptitude
来安装和更新软件。 Debian 操作系统比较适合系统管理员和高级用户。
- Gentoo:与 Debian 一样,
Gentoo
操作系统也包含数量众多的软件包。Gentoo 并非以预编译的形式出现,而是每次需要针对每个系统进行编译。Gentoo 的安装和使用很困难,不过它也是最佳学习对象,可以进而了解 Linux 操作系统的内部运作原理。Gentoo 使用portage
来安装和更新软件。 Gentoo 操作系统适合对 Linux 已经完全驾轻就熟的用户。
- Ubuntu:
Ubuntu
是 Debian 的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu 侧重于市场的应用,在服务器、云计算和一些运行 Ubuntu Linux 的移动设备上。作为 Debian Gnu Linux 的一款衍生版,Ubuntu 的进程、外观看起来大多数仍然与 Debian 一样。同样使用apt
软件管理工具来安装和更新软件。 Ubuntu 是新手用户最易上手的一款操作系统。 - Kali Linux:
Kali Linux
是 Debian 的另一款衍生版。Kali 旨在用于渗透测试。Kali 的前身是 Backtrack。用于 Debian 的所有 Binary 软件包都可以安装到 Kali Linux 上。Kali 随带许多的渗透测试工具,无论是 Wifi、数据库还是其它任何工具,都设计成立马就可以使用的状态。Kali 使用APT
来管理软件包。 Kali Linux 是一款渗透测试工具,可以说是文明黑客较为青睐的操作系统。
- CentOS:
CentOS
是一款企业级 Linux 发行版,使用红帽企业级 Linux 中的免费源代码重新构建而成。这款重构版完全去掉了注册商标,在 Binary 程序包方面有一个非常细微的变化。CentOS 的外观和行为似乎与母发行版红帽企业级 Linux 十分相似。 CentOS 使用YUM
来管理软件包,是非常稳定的程序包。 同样 CentOS 也是新手用户容易上手的一款操作系统。
Linux 简单命令操作
在开始介绍 Linux 的命令之前,我们首先说明一下 Linux 的命令格式。在 Linux 中命令的操作至关重要,那么规范的命令格式在学好 Linux 过程中会起到举足轻重的作用。
下面是 Linux 的命令说明,其中 options 有两种写法,长选项(--)跟完整单词,短选项(-)跟单个字符。在参数部分,不同符号表示的意思不同。例如 []
表示可省略内容,<>
表示必须提供。完整的说明如下所示:
command [options] [arguments] command:命令 options:选项,定义命令的执行特性,有长短两种选项: 长选项: 用 -- 引导,后面跟完整的单词,如 --help 短选项: 用 - 引导,后面跟单个的字符, 如 -a argument: 参数,表示命令的作用对象。 在 linux 中,命令的选项和参数所使用的符号也有相应的含义: [] : 可省略的内容 <> : 必须提供 a|b : 二选一或多选一 ... : 前面的内容可重复出现多次
pwd 命令
pwd
命令主要用于显示当前用户的工作目录,可以得到用户目前所在的工作目录和绝对路径。如下所示,我们查看当前的工作目录,可以看到当前的路径为「/home/wmn7」:
ls 命令
ls
命令主要用于显示文件的相关信息,默认情况下,ls
用来打印当前目录清单。同时,ls
命令还可以查看目录中包含的文件、子目录、文件权限等信息。
如下图所示,我们输入相应的命令后,敲回车键,执行命令,会显示相应的结果。目前当前路径下包含三个文件夹和一个文件:
ls 命令支持以下的参数:
-a
,显示包含隐藏文件在内的所有文件;-l
,以长格式显示目录下的内容列表,包含文件的创建时间,创建者,文件的权限;-d
,仅显示目录名,而不显示目录下的内容列表;-r
,以文件反序排列并输出目录内容列表;-k
,以 KB 为单位显示文件大小,需要与 -l 一同进行使用;
例如我们希望显示所有文件(包含隐藏文件),同时显示文件和目录的详细信息(以长格式进行输出),那么我们就可以使用下面的方式(下面两种方式是等价的):
ls -al # 第一种写法 ls -a -l # 第二种写法
最终的结果如下图所示,可以看到详细的显示了所有文件和文件夹的信息:
cd 命令
用于在不同目录间切换,同时要确保有进入目的目录的权限。我们可以使用「绝对路径」或是「相对路径」来进行切换:
wget 命令
wget 命令用于从网络上下载文件或资源的命令。如果不指定目录,文件将默认下载到当前目录。wget
支持 HTTP
,HTTPS
和 FTP
协议,可以使用 HTTP
代理。
wget <网址>
cp 命令
cp 命令主要用于复制文件和目录,将一个或多个文件或目录复制到目标目录。下面是 cp 的语法:
cp [选项] [源目录] [目的目录]
其实有以下的两个常用的选项:
-a
,复制时保留原文档的所有属性,或者叫创建备份;-r
,复制目录和目录里面的所有项目;
例如我们希望复制「文件夹 ~/2」中所有内容到新目录「~/2-2/ 」下(也就是将原来的文件 2 和其中所有的内容,转移到新的文件夹 2-2 内)。
rm 命令
主要用于删除文件或目录,也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。这个命令在使用的时候要特别小心,避免误删了重要文件;下面是 rm 命令的语法:
rm [选项] [文件]
其中有以下三个常用的选项:
-f
,忽略不存在的文件且不提示,强制删除;-r
,递归删除,将选项中列出的全部目录和子目录均递归的进行删除;-i
,删除前会有提示;
例如下面我们删除文件夹 2-2 和其中所有的内容,可以看到删除过程中会逐一进行询问:
mkdir 命令
mkdir 命令可
以用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。下面是 mkdir 的简单语法:
mkdir [选项] [目录]
其中选项可以有参数 p
,用来建立多级目录。下面的例子我们来建立多级目录;
cat 命令
cat 命令主要用于连接文件或标准输入并打印。常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。cat 命令的基本语法如下所示:
cat [选项] [文件]
cat 命令有以下的三个常用选项:
-A
,展示所有,等价于 -vET;-b
,对非空输出行编号;-n
,从 1 开始对输出的所有行进行编号;
例如下面我们查看文件「readme.md」的内容,并对所有行进行编号:
- 微信公众号
- 关注微信公众号
- QQ群
- 我们的QQ群号
评论