| title |
Linux 基础学习 |
| tags |
|
| categories |
|
| date |
2025-05-14 09:00:00 -0700 |
| excerpt |
Linux 学习笔记 |

- 内核(
kernel )的作用:
- 管理硬件资源:
- cpu——>进程调度;
- 内存——>内存管理;
- 外部设备——>文件管理、网络通信、设备驱动...
- 对上层应用程序提供接口(接口:系统调用)
- 系统调用(
system calls ):内核给上层应用程序提供的接口( API )
- 库函数(
library functions ):对系统调用的封装
- 例如:
- 库函数:
malloc() -> 系统调用: sbrk
- 库函数:
printf() -> 系统调用:write
- 对于不同的操作系统,它们的系统调用是不一样的
- 具有以下性质:
- 命令解释器(
shell ):shell 命令
shell 命令是一类程序,如 sh、bash、csh、zsh、ksh...
- 命令:一般来说,就是一些简单的可执行程序
- 脚本:命令的集合

- 使用
man( manual )命令可以查看 Linux 内置的帮助手册。该手册分为多卷,比较重要的是前三卷:
- 第一卷是用来查看
shell 命令的;
- 第二卷是用来查看系统调用相关信息的;
- 第三卷是用来查看库函数信息的。

man [手册编号] cmd
man man
man mkdir
man 3 mkdir

- 常见命令:
- 创建用户:
useradd
- 删除用户:
userdel
- 修改用户密码:
passwd
- 切换用户:
su
- 退出切换:
exit
- Linux 用户
root:根用户,超级用户,拥有最高权限
sudoers:管理用户,安装 ubuntu 的时候,创建的用户默认为 sudoers
- 普通用户













touch 创建空文件或改变文件时间戳
- 文件存在则改变文件时间戳;
- 文件不存在则创建空文件。
echo 创建文件并输入简短内容,例如:
echo "hello world!" # 仅关联到屏幕
echo "hello world!" > text1 # 重定向到text1这个文件
- 使用
which 命令来查找可执行程序的路径:
which 命令是根据 PATH 环境变量中的路径依次去查找的,然后显示第一个匹配项,或者显示所有匹配项。










grep 命令可以用于搜索文件内容,功能非常强大!
grep 命令按照正则表达式去搜索文件,如果文件中某一项匹配指定的正则表达式,grep 命令则会显示这一项。









umask 命令文件创建掩码:
- 文件和目录在创建的时候都有一个默认的权限,该权限是由文件创建掩码
umask 决定的。
- 表示想去掉的权限。





- 符号链接(软链接)的用法:
- 对于大多数命令(
rm 命令除外 ),如果参数是符号链接,其实操作的是符号链接指向的文件(类似指针的解引用操作)。







- 条件编译,就是在预处理阶段决定包含还是排除某些程序片段。














- core 文件:程序异常终止时的内存快照(堆、栈、寄存器...)
- 用于错误复现和恢复场景




- Makefile 是一个脚本文件,使用 make 工具来解释执行。
- Makefile 的作用:
- 实现自动编译
- 实现增量编译(只编译新增和修改过的
.c 文件,得到新的 .o 文件)
- 特点:Makefile 的语法要求非常严格,写好之后使用
make 命令即可构建整个项目。






SRCS := $(wildcard *.c)
Outs := $(patsubst %.c, %, $(SRCS))
CC := gcc
CFLAGS = -Wall -g
all: $(Outs)
%: %.c
$(CC) $(CFLAGS) $< -o $@
.PHONY: clean rebuild all
clean:
$(RM) $(Outs)
rebuild: clean all




