Linux学习系列(一):从认识Linux到基础命令

这是我的 Linux 学习系列第一篇笔记。

最初学习 Linux 时,我认为 Linux最大的特点就是"通过命令行操作系统"。但通过学习,我发现 Linux的核心并不仅仅是一堆命令,而是一套完整的系统设计思想,包括文件组织方式、路径管理、程序执行方式、开源生态以及系统管理理念。

总览


一、Linux 初识

1. Linux 的来源

Linux 的发展离不开 UNIX。

UNIX 最初由贝尔实验室开发,它提出了许多重要思想:

  • 多用户;
  • 多任务;
  • 文件统一管理;
  • 小工具组合使用。

1991 年,Linus Torvalds 发布 Linux 内核。Linux 最初受到 Minix的启发,后来结合 GNU 工具链,逐渐发展成为完整操作系统。

需要注意:

严格来说:

Linux 是操作系统内核。

而我们平时说的 Linux 系统,通常指:

Linux 内核 + GNU工具 + 软件生态组成的完整操作系统。


二、Linux 为什么重要?

Linux 目前广泛应用:

1. 服务器领域

大量服务器运行 Linux。

原因:

  • 稳定;
  • 开源;
  • 资源占用低;
  • 方便自动化管理。

2. 云计算和大数据

目前:

  • 云服务器;
  • 容器技术;
  • 大数据平台;

大量依赖 Linux 环境。


3. 嵌入式领域

Linux 具有:

  • 可移植;
  • 可裁剪;
  • 成本低;

等特点。

Android 系统也是基于 Linux 内核开发。


三、Linux 开源思想

Linux 最大的特点之一就是开源。

开源意味着:

  • 可以查看源码;
  • 可以修改源码;
  • 可以重新发布。

Linux 使用 GPL 等开源协议,推动了大量软件生态发展。

这也是 Linux 能够快速发展的重要原因。


四、Linux 发行版本

Linux 有很多发行版。

常见:

发行版 特点
Ubuntu 适合初学者
Debian 稳定,服务器常见
CentOS/Rocky Linux 企业服务器环境常见
Fedora 尝试新技术
Kali Linux 安全测试方向

不同发行版,本质上都是 Linux 内核加不同的软件组合。


五、Linux 操作系统结构

操作系统的核心目标:

让计算机更加方便、高效地被使用。

Linux 大致结构:

用户应用程序
      |
Shell命令解释器
      |
Linux系统调用
      |
Linux内核
      |
硬件设备

其中:

  • 用户通过 Shell 输入命令;
  • Shell 负责解析命令;
  • 内核负责真正管理硬件资源。

六、Shell 与命令行

Shell 是用户和 Linux 内核之间的桥梁。

用户输入命令 -> Shell解析 -> 调用对应程序 -> 内核执行 -> 返回结果

Linux 中:

命令本质上也是一个可执行程序。

例如:

which ls

可以查看:

/usr/bin/ls

七、Linux 文件系统思想

linux文件系统结构

Linux 使用树状文件系统。

所有文件从:

/

根目录开始。

结构:

/
├── home
├── bin
├── usr
├── etc
├── var
├── root
├── dev
└── tmp

特点:

  • 文件和目录统一组织;
  • 每个节点只有一个父节点;
  • 通过路径唯一定位文件。

八、路径概念

1. 绝对路径

从根目录开始:

例如:

/home/user/test.txt

特点:

  • 唯一;
  • 不依赖当前目录。

2. 相对路径

相对于当前目录:

例如:

cd test

3. 特殊目录

Linux 自动提供:

.
..

含义:

符号 含义
. 当前目录
.. 上级目录

九、基础Linux命令

Linux基础命令

1. pwd

查看当前目录:

pwd

2. cd

切换目录:

cd 目录

进入家目录。

cd ~

返回最近访问目录。

cd -

3. ls

查看目录内容:

ls

查看详细信息。

ls -l

显示隐藏文件。

ls -a

隐藏文件:

Linux 中以 . 开头的文件默认隐藏。


4. mkdir

创建目录:

mkdir test

递归创建:【即可创建具有包含关系的文件夹】

mkdir -p a/b/c
a
├──b
   └──c

5. touch

创建文件:

touch test.txt

同时可以修改文件时间。


十、Linux 文件时间概念

stat与文件时间关系

Linux 使用:

stat 文件名

查看文件详细信息。

三个重要时间 (MAC 时间):

Access(atime)

访问时间:

表示最后一次读取文件内容。

例如:

cat file.txt

Modify(mtime)

修改时间:

表示最后一次修改文件内容。

例如:

  • vim编辑;
  • echo重定向。

Change(ctime)

状态变化时间:

表示文件属性变化。

例如:

  • chmod修改权限;
  • mv移动文件。

注意:

ctime不是创建时间。


十一、目录查看工具 tree

tree 可以显示目录结构:

tree

安装:

CentOS:

yum install -y tree

Ubuntu:

apt install tree

十二、删除命令

rmdir

删除空目录:

rmdir test

rm

删除普通文件:

rm file.txt

删除目录:

rm -r dir

危险

rm -rf

含义:

  • 强制删除;
  • 递归删除。

实际服务器操作中必须谨慎


十三、复制命令 cp

复制普通文件:

cp source target

复制目录:

cp -r source target

但要注意同一个目录下不能有同名文件

默认拷贝到相同路径下,但是可以指定拷贝到的路径

cp srcfile dstfile
cp srcfile dstdir/
cp srcfile dstdir/dstfile

cp srcfile/srcdst 目录拷贝目录的时候会把指定文件拷贝到指定的目录内部。
通俗的说就是,如果要拷贝到的目标目录是不存在的,那就生成这个目录;但如果指定的目标目录已经存在了,那就会把指定文件拷贝到这个目录的内部


十四、命令帮助 man

Linux 命令参数很多,不需要全部记忆。

使用:

man 命令

例如:

man ls

章节:

章节 内容
1 普通命令
2 系统调用
3 库函数
5 配置文件
8 系统管理命令

例如:

查看系统调用:

man 2 fork

十五、alias 命令别名

给命令设置快捷方式:

例如:

alias ll='ls -l'

以后 ll 就等价于 ls -l


十六、学习总结

在过程中我总结了一些Linux中重点需要理解的知识:

  1. Linux 是一种设计思想;
  2. 文件系统采用树状结构;
  3. 命令本质是程序;
  4. Shell 是用户和内核之间的桥梁;
  5. 路径帮助我们定位系统资源;
  6. Linux 强大的原因来自开源生态。
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐