Linux相关知识点小白入门

2023-07-09 Sun Views Linux | 教程方法3036字12 min read

整理一下之前的学习笔记,方便刚入门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 ~]# 闪动的光标左边,有一串字符。这串字符的含义可以简单解释如下:

  • 现在登录的用户是 root
  • root 所在的服务器是 racknerd-21d7f2
  • root 现在所在的文件夹是 ~
  • # 之后是你可以输入命令的地方

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

引申

  • 命令行界面(Command Line Interface,简称CLI),通过输入文本命令来完成各种任务。

  • 图形用户界面(Graphical User Interface,简称GUI),使用图形元素(如窗口、按钮和菜单)进行交互。比如我们熟悉的Windows用户界面,用图形元素,如窗口、按钮、菜单和图标等,来提供用户与计算机交互的方式。

    image_555
    • Windows同时也提供了一种称为命令提示符(Command Prompt)的命令行界面(快捷键win+R,输入cmd回车)。在命令提示符下,你可以输入命令来执行各种操作,类似于Linux系统的命令行界面。

      image_556

软件"包"(package)

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

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

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

牛刀小解

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

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

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

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

例如,如果你想安装一个叫做"firefox"(火狐)的网页浏览器,你可以使用命令 sudo apt install firefox(在某些发行版中可能需要使用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" 的主机的网络连接

EOF
返回上一页