整理一下之前的学习笔记,方便刚入门Linux的同学学习,顺便做个备忘。
什么是 Linux
当我们谈论Linux时,可以把它想象成一种特殊的操作系统,就像你电脑上可能使用的Windows或macOS一样。Linux是由一群志愿者合作开发的,它的内核(可以理解为操作系统的核心)是1991年由林纳斯·托瓦兹在赫尔辛基大学上学时创立的。
Linux的内核可以与计算机的硬件进行交互,就像你的大脑与身体的各个部分进行沟通一样。它负责管理计算机的各种资源,如处理器、内存和硬盘,并让各种软件和应用程序可以在计算机上运行。
Linux很特别的地方在于它是开源的,这意味着任何人都可以查看、修改和共享Linux的代码。这使得Linux变得非常灵活和可定制,就像你可以调整乐高积木来搭建不同的组件一样。
Linux被广泛应用于服务器、个人电脑、手机和其他设备上,具有相当的稳定性、安全性,并且可以通过个人定制适应各种不同的需求。大部分Linux发行版都是免费提供的。
引申
当我们谈论计算机系统时,我们可以将其比作一个城市。
操作系统(Operating System): 操作系统就像城市的市政府,它是计算机系统的管理者和组织者。
- 类似于市政府提供城市的基础设施和公共服务,操作系统提供计算机系统的核心功能和服务。它管理和控制计算机硬件资源,例如处理器、内存和硬盘,并提供各种功能,如进程管理、文件系统和网络通信等。
内核(Kernel): 内核就像城市的基础设施架构,包括道路、电力、供水和交通管制等。
- 类似于基础设施支撑城市的运行,内核是操作系统的核心组件,直接与计算机硬件交互。内核负责管理和分配硬件资源,处理设备驱动程序,提供与硬件的通信接口,确保计算机系统的稳定运行。
- Linux就是一种开源的操作系统内核,它被广泛用于许多Linux发行版中。
发行版(Distribution): 发行版就像城市的行政区域,如不同的县、区等。类似于行政区域在城市基础设施上添加不同的服务和规划。
- 发行版是基于内核构建的特定版本,为用户提供了一套完整的操作系统。不同的发行版可能在用户界面、软件包管理、预配置设置等方面有所差异,以满足不同用户的需求和偏好。例如,Ubuntu、Debian和Fedora等都是基于Linux内核的发行版。
- 发行版是在操作系统基础上构建的具体版本,是操作系统的一种实现,提供了对操作系统的定制和扩展,以满足特定用户群体的需求。
总结一下,把整个计算机系统比作一个城市,操作系统就像城市的市政府,内核类似于城市的基础设施,发行版则相当于城市的划分的行政区域。Linux是一种开源的操作系统内核,它作为基础设施被许多发行版采用,并构建了不同的发行版,为用户提供各种功能和服务。
命令行界面
这个界面就是命令行界面
,又叫CLI
,类似于windows系统的桌面,只是没有可视化的图标。只是一堆简单的文字介绍和指令。不同的vps以及不同的Linux系统看到的界面信息会略有不同。但一般会显示系统内核版本、上次登录时间及IP等。
看图中命令行最下面一行,[root@racknerd-21d7f2 ~]#
闪动的光标左边,有一串字符。这串字符的含义可以简单解释如下:
- 现在登录的用户是
root
root
所在的服务器是racknerd-21d7f2
root
现在所在的文件夹是~
#
之后是你可以输入命令的地方
你所要做的就是在输入提示符 # 号
后面输入你的指令。
引申
- 命令行界面(Command Line Interface,简称
CLI
),通过输入文本命令来完成各种任务。 图形用户界面(Graphical User Interface,简称
GUI
),使用图形元素(如窗口、按钮和菜单)进行交互。比如我们熟悉的Windows用户界面,用图形元素,如窗口、按钮、菜单和图标等,来提供用户与计算机交互的方式。Windows同时也提供了一种称为命令提示符(Command Prompt)的命令行界面(快捷键win+R,输入cmd回车)。在命令提示符下,你可以输入命令来执行各种操作,类似于Linux系统的命令行界面。
软件"包"(package)
在Linux系统中,每个软件或者说应用程序都被称为一个"包"(package)
。
而管理应用程序的程序则被称为"软件包管理器"(Package Manager)
。
通过包管理器,你可以安装、更新、卸载各种软件,甚至更新Linux系统本身。
牛刀小解
当谈到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" 的主机的网络连接 |
test
测试