整理一下之前的学习笔记,方便刚入门Linux的同学学习,顺便做个备忘。

什么是 Linux linux_PNG21

当我们谈论Linux时,可以把它想象成一种特殊的操作系统,就像你电脑上可能使用的Windows或macOS一样。Linux是由一群志愿者合作开发的,它的内核(可以理解为操作系统的核心)是1991年由林纳斯·托瓦兹在赫尔辛基大学上学时创立的。

Linux的内核可以与计算机的硬件进行交互,就像你的大脑与身体的各个部分进行沟通一样。它负责管理计算机的各种资源,如处理器、内存和硬盘,并让各种软件和应用程序可以在计算机上运行。

Linux很特别的地方在于它是开源的,这意味着任何人都可以查看、修改和共享Linux的代码。这使得Linux变得非常灵活和可定制,就像你可以调整乐高积木来搭建不同的组件一样。

Linux被广泛应用于服务器、个人电脑、手机和其他设备上,具有相当的稳定性、安全性,并且可以通过个人定制适应各种不同的需求。大部分Linux发行版都是免费提供的。

引申

当我们谈论计算机系统时,我们可以将其比作一个城市。

  1. 操作系统(Operating System): 操作系统就像城市的市政府,它是计算机系统的管理者和组织者。

    • 类似于市政府提供城市的基础设施和公共服务,操作系统提供计算机系统的核心功能和服务。它管理和控制计算机硬件资源,例如处理器、内存和硬盘,并提供各种功能,如进程管理、文件系统和网络通信等
  2. 内核(Kernel): 内核就像城市的基础设施架构,包括道路、电力、供水和交通管制等。

    • 类似于基础设施支撑城市的运行,内核是操作系统的核心组件,直接与计算机硬件交互。内核负责管理和分配硬件资源,处理设备驱动程序,提供与硬件的通信接口,确保计算机系统的稳定运行。
    • Linux就是一种开源的操作系统内核,它被广泛用于许多Linux发行版中。
  3. 发行版(Distribution): 发行版就像城市的行政区域,如不同的县、区等。类似于行政区域在城市基础设施上添加不同的服务和规划。

    • 发行版是基于内核构建的特定版本,为用户提供了一套完整的操作系统。不同的发行版可能在用户界面、软件包管理、预配置设置等方面有所差异,以满足不同用户的需求和偏好。例如,Ubuntu、Debian和Fedora等都是基于Linux内核的发行版。
    • 发行版是在操作系统基础上构建的具体版本,是操作系统的一种实现,提供了对操作系统的定制和扩展,以满足特定用户群体的需求。

总结一下,把整个计算机系统比作一个城市,操作系统就像城市的市政府,内核类似于城市的基础设施,发行版则相当于城市的划分的行政区域。Linux是一种开源的操作系统内核,它作为基础设施被许多发行版采用,并构建了不同的发行版,为用户提供各种功能和服务。

命令行界面

image_539

这个界面就是命令行界面,又叫CLI,类似于windows系统的桌面,只是没有可视化的图标。只是一堆简单的文字介绍和指令。不同的vps以及不同的Linux系统看到的界面信息会略有不同。但一般会显示系统内核版本、上次登录时间及IP等。

看图中命令行最下面一行,[root@racknerd-21d7f2 ~]# 闪动的光标左边,有一串字符。这串字符的含义可以简单解释如下:

你所要做的就是在输入提示符 # 号后面输入你的指令。

引申

软件"包"(package)

在Linux系统中,每个软件或者说应用程序都被称为一个"包"(package)

而管理应用程序的程序则被称为"软件包管理器"(Package Manager)

通过包管理器,你可以安装、更新、卸载各种软件,甚至更新Linux系统本身。

111

牛刀小解

当谈到Linux系统的"包"和"包管理器"时,可以把它们比作购物的概念。想象一下,你去超市购物,你需要买各种商品,比如食物、洗护用品等等。

在Linux系统中,"包"就像是这些商品,它们是预先打包好的软件或程序。每个包通常包含一个或多个文件,这些文件组合在一起形成一个功能完整的软件。

而"包管理器"就像是你在超市里的导购员或者购物车。它是一个工具或者程序,用于帮助你下载、安装、更新和卸载软件包。你可以通过包管理器来获取和管理软件包。包管理器会管理软件包之间的依赖关系,确保安装和更新过程的顺利进行。

有许多不同的包管理器,最常见的包管理器之一是"apt",它用于Debian和Ubuntu等Linux发行版系统。"apt"可以让你在命令行中使用简单的命令来安装、更新和卸载软件包。

例如,如果你想安装一个叫做"firefox"(火狐)的网页浏览器,你可以使用命令 sudo apt install firefox("sudo"可以用root权限运行某个命令,在某些发行版中可能需要使用"apt-get"替代"apt")。这个命令会告诉包管理器下载并安装"firefox"软件包,让你能够在Linux系统上使用这个浏览器。

另一个常见的包管理器是"yum",它主要用于基于Red Hat的发行版,比如Fedora和CentOS等Linux发行版系统。类似地,你可以使用"yum"命令来安装、更新和卸载软件包。

eg:
假如系统提示:nano: command not found
这是因为在Linux中没有安装 nano ,我们只需要安装一下就好了.
安装命令 :yum install nano
遇到选择: 一路Y就行了

这只是包管理器的基本概念,不同的发行版可能使用不同的包管理器,并且命令也会有所不同(你可以参考你所使用的Linux发行版的文档或官方网站)。但是它们的目标都是帮助你方便地管理软件包,让你能够快速获取所需的软件,并保持系统的安全和更新。

Linux常用基础命令

下面是一些初学者需要掌握的常用Linux基础命令,以及它们的释义和举例:

命令名称命令释义举例
man查看命令的帮助文档man ls - 查看 ls 命令的帮助文档。对于每个命令都可以使用 man 命令查看它们的详细用法和参数说明。
ls列出目录内容ls - 列出当前目录的文件和文件夹
ls -l - 以详细格式列出目录内容
cd切换当前工作目录cd Documents - 进入名为 "Documents" 的目录
cd .. - 返回上级目录
cp复制文件或目录cp file.txt new_dir/ - 将名为 "file.txt" 的文件复制到名为 "new_dir" 的目录中
cat显示文件内容cat file.txt - 显示名为 "file.txt" 的文件的内容
df显示磁盘空间使用情况df -h - 以人类可读的格式显示磁盘空间使用情况
du显示文件和目录的磁盘使用情况du -sh directory - 显示名为 "directory" 的目录的磁盘使用情况
pwd显示当前工作目录pwd - 显示当前所在的目录路径
mkdir创建新目录mkdir new_dir - 创建名为 "new_dir" 的新目录
rm删除文件或目录rm file.txt - 删除名为 "file.txt" 的文件
rm -r dir/ - 递归删除名为 "dir" 的目录及其内容
mv移动文件或目录,或者重命名文件或目录mv file.txt new_dir/ - 将名为 "file.txt" 的文件移动到名为 "new_dir" 的目录中
mv old_name.txt new_name.txt - 将名为 "old_name.txt" 的文件重命名为 "new_name.txt"
touch创建新文件或修改文件的时间戳touch file.txt - 创建名为 "file.txt" 的新文件
chmod修改文件或目录的权限chmod 755 script.sh - 将名为 "script.sh" 的脚本文件权限设置为 755
grep在文件中搜索指定模式的文本grep "keyword" file.txt - 在名为 "file.txt" 的文件中搜索包含关键词 "keyword" 的文本
history显示最近执行过的命令列表history - 显示最近执行过的命令列表
sudo以超级用户权限执行命令sudo apt update - 使用超级用户权限执行软件包更新命令
top实时显示系统中运行的进程和资源使用情况top - 实时显示系统中运行的进程和资源使用情况
wget从网络上下载文件wget http://example.com/file.txt - 从网络上下载名为 "file.txt" 的文件
ssh远程登录到其他计算机ssh user@hostname - 使用SSH协议远程登录到名为 "hostname" 的计算机
scp在本地和远程主机之间进行安全的文件传输scp file.txt user@hostname:/remote/path - 将名为 "file.txt" 的文件从本地复制到远程主机的指定路径
tar打包和解包文件tar -cvf archive.tar files/ - 将名为 "files" 的目录打包为名为 "archive.tar" 的文件
zip创建压缩文件zip archive.zip files/ - 将名为 "files" 的目录压缩为名为 "archive.zip" 的文件
unzip解压缩文件unzip archive.zip - 解压名为 "archive.zip" 的压缩文件
find在指定目录下查找文件find /path/to/directory -name filename - 在指定目录下查找文件名为 "filename" 的文件
sed流编辑器,用于对文本进行替换和转换sed 's/old_text/new_text/g' file.txt - 将名为 "file.txt" 的文件中的 "old_text" 替换为 "new_text"
awk文本处理工具,用于处理和提取结构化文本数据awk '{print $1}' file.txt - 提取名为 "file.txt" 的文件中每行的第一个字段
ps显示系统中运行的进程ps aux - 显示所有进程的详细信息
kill终止正在运行的进程kill PID - 终止进程ID为PID的进程
ifconfig显示和配置网络接口信息ifconfig eth0 - 显示名为 "eth0" 的网络接口信息
ping测试与指定主机的网络连接ping example.com - 测试与名为 "example.com" 的主机的网络连接