Linux入门学习

〇、写在前边

Linux操作系统的使用对于科研是必要的技能。本文将学习Linux常用的操作、命令、文件结构等,满足工作中的基本使用需求。本文使用阿里云云服务器ubuntu_24_04_x64_20G练习Linux使用。

一、目录

  1. Linux发展史
  2. Linux环境配置
  3. Linux文件系统
  4. Linux常用命令
  5. Linux用户和文件管理
  6. Linux权限管理
  7. Linux文本操作
  8. VIM文本编辑器
  9. (未完结)

二、内容

1. Linux发展史

image-20250709115948571

Linux分为内核版本、发行版本。

内核版本:https://www.kernel.org/

image-20250709120818545

2. Linux环境配置

2.1 VirtualBox虚拟机

2.2 虚拟机网络模式:

  1. NAT模式(虚拟机能访问外网,与主机不能互通)
  2. 网桥模式(虚拟机能访问外网,与主机能够互通)
  3. Internal模式(虚拟机与虚拟机的访问,不访问外网)
  4. Host-Only模式

2.3 CentOS 8

Download - The CentOS Project

3. Linux的文件系统

3.1 FHS文件规范

image-20250709124407482

image-20250709125950261

  • bin 存放二进制可执行文件(Is,cat,mkdir等)

  • boot 存放用于系统引导时使用的各种文件

  • dev 用于存放设备文件

  • etc 存放系统配置文件

  • home 存放所有用户文件的根目录

  • lib 存放跟文件系统中的程序运行所需要的共享库及内核模块

  • mnt 系统管理员安装临时文件系统的安装点

  • opt 额外安装的可选应用程序包所放置的位置

  • proc 虚拟文件系统,存放当前内存的映射

  • root 超级用户目录

  • sbin 存放二进制可执行文件,只有root才能访问

  • tmp 用于存放各种临时文件

  • usr 用于存放系统应用程序,比较重要的目录/usr/local本地管理员软件安装目录

  • var 用于存放运行时需要改变数据的文件

3.2 VFS虚拟文件系统

内核层抽象出通用的文件系统接口。

面向对象的方法:VFS抽象对象:

  1. 超级块:文件系统
  2. 目录项:文件路径
  3. 索引节点:具体文件
  4. 文件:进程打开的文件

3.3 文件系统特点

  1. 树形分层结构
  2. 一切皆文件(文件、设备统一管理)

3.4 Linux格式化磁盘与挂载

fdisk

3.4 目录存储结构

inode(存储数据的元数据) + 数据块(存储数据本身)

1
2
3
df -i
ls -i
stat a.txt

4. Linux的常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
man xxx # 查看命令

pwd # 查看当前路径

tree # 查看树状目录
tree -a # 包括隐藏文件

find #
find -name "*.txt"

tar # 归档压缩
tar cvf a.tar xxx xxx
tar xvf a.tar
tar -zcvf a.tar.gz xxx xxx
tar -zxvf a.tar.gz

ps # 查看进程
ps -a
ps -u
ps -ef | grep ssh # 管道查找

ss
ss -t -a
ss -u -a

cat # 查看文件
cat -n a.txt > b.txt

head
head -n 2 a.txt

uniq
sort a.txt | uniq -c/-d

sort
sort -r -u a.txt
sort -n -r -u a.txt

ls # 列举当前目录下的内容
cd # 进入某目录

top
htop
free
free -m

5. Linux用户和文件管理

5.1 Linux用户管理

image-20250709205245717

image-20250709205308657

1
2
3
4
5
6
7
8
useradd xxx -s -p -e -f -g
cat passwd
groupadd
userdel
groupdel
usermod
whoami # 当前用户
passwd user # 设置用户密码

5.2 Linux文件管理

image-20250709205932840

image-20250709210007428

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ls -l # 查看
ll # 查看
cd / # 切换目录
cd ./
cd ../

mkdir # 创建目录
touch new.txt # 创建文件
mv new.txt 1.txt # 重命名
mv 1.txt ../ # 移动文件
cp 1.txt 2.txt # 复制文件
cp -r old new # 递归操作复制
rm 1.txt # 删除文件
rm -r old # 递归删除
rm -f 1.txt # 暴力删除

6. Linux权限管理

image-20250709211109123

image-20250709211151575

image-20250709211337502

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 权限操作
chmod # + 对象 u g o a + 操作 (+ - =) + 权限模式 r w x
chmod u + x b.txt
chmod 764 b.txt


# 所有者操作
chown user:group b.txt
chown -r user:group b.txt

# ACL 访问控制列表权限
setfacl -m u:test:rwx a.txt
getfacl

su user # 切换用户

7. Linux文本操作

7.1 Awk

文本处理工具

1
2
3
4
5
awk -F '{print $1}' a.txt # $x 第x列
awk -F '{print NR}' a.txt
awk 'BEGIN{FS=":";total=0} {print $1;total+=1} END{print total }'

# 除此之外还有操作符、数组、循环等内容

7.2 Grep

文本搜索工具

常配合正则表达式:

image-20250709221734286

image-20250709221812115

1
2
3
4
5
6
grep -r -n xxx x.txt
ls -l | grep txt # 使用通道
grep -r --exclude-dir=.git xxx
grep ^123 / $123 / $[123] 1.txt
grep -E "xxx" 2.txt # 正则表达式
grep -i xxx 1.txt # 忽略大小写

7.3 Sed

流编辑器,文本处理工具

image-20250710003658360

image-20250710003716197

image-20250709222950535

1
2
3
sed -n -e -r -i -f  a c d i p s

sed -n 's/xxx/yyy/p' 1.txt

8. VIM文本编辑器

VIM优点:支持多级撤销;跨平台运行;支持语法高亮;支持图形界面。

VIM有三种模式:命令模式、输入模式、低行模式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
vim abc

# 首先进入命令模式
i #切换输入模式
esc # 低行模式
:wq # 保存退出

dd # 删除一行

vim + abc # 光标定位最后一行
vim +3 abc # 光标定位第三行

# 低行模式
:w # 保存
:q # 退出
:! # 忽略修改,强制退出
:ls #
:n
:15
/xxx
?xxx # 向前搜索

# 命令模式
h # 左
j # 下
k # 上
l # 右
dd # 删除行
o # 下方插入一行
yy # 复制所在行
p # 下方粘贴

image-20250709225015710

三、参考资料

  1. Linux速成班-慕课网
  2. Linux基础安装入门视频教程I-慕课网
  3. Linux系统编辑管理视频教程II-慕课网
  4. Linux 教程 | 菜鸟教程
  5. 鸟哥的Linux私房菜:基础学习篇 第四版 | 鸟哥的 Linux 私房菜:基础学习篇 第四版
  6. Linux入门教程(非常详细)从零基础入门到精通,看完这一篇就够了_linux学习-CSDN博客(这一篇内容很全,推荐)

Hexo使用指南

一、搭建流程

  1. 工具准备
1
2
3
4
5
6
# Node.js
node -v
npm -v

# git
git --version
  1. Github配置
1
2
3
4
5
6
7
8
9
10
11
# 配置用户名和邮箱
git config --global user.name "GitHub 用户名"
git config --global user.email "GitHub 邮箱"

# 生成密匙
ssh-keygen -t rsa -C "GitHub 邮箱"

# 之后在Github上添加密匙。

# 测试连接
ssh -T git@github.com
  1. 创建仓库

仓库命名为:用户名.github.io

博客地址:https://用户名.github.io

  1. Hexo本地安装
1
2
# Hexo安装
npm install -g hexo-cli
  1. 配置修改
1
2
3
4
deploy:
type: git
repository: git@github.com:用户名/用户名.github.io.git
branch: master
  1. 非命令创建.md文件

设置markdown文件的开头为:

1
2
3
4
5
6
7
8
9
10
11
12
13
---
title: Hello World # 标题
date: 2019/3/26 hh:mm:ss # 时间
categories: # 分类
- Diary
tags: # 标签
- PS3
- Games
---

摘要
<!--more-->
正文

二、常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 初始化
hexo init

# 组件安装
npm install

---------------------------

# 清除缓存和已生成的静态页面
hexo clean

# 添加博客
hexo new "title"

# 生成页面
hexo g

# 本地预览
hexo s
hexo server -p 4000

# 部署页面
hexo d

# 生成并部署
hexo g -d

# 新建页面
hexo new page "title"

# 帮助
hexo help

三、参考资料

  1. 使用 Hexo+GitHub 搭建个人免费博客教程(小白向) - 知乎
  2. 文档 | Hexo