01-Linux Basic
1. Linux
GPL许可证:可以随便用,但不能拿去卖钱
2. 安装系统
2.1. 硬盘分区
2.2. 硬盘组织方式
- 硬盘组织方式:决定分区在磁盘上怎么组织
- MBR: Master Boot Record
- 只能有4个主分区,1个主分区可以变成4个逻辑分区$
- 最大支持4T
- GPT: GUID Partition Table Scheme
- 会浪费空间
- 支持4T以上
- MBR: Master Boot Record
2.3. 文件系统
- 文件系统
- OS中负责存取和管理文件的部分,决定数据在分区里怎么放
- Linux中常见:EXT4
- Windows:NTFS
每个系统对自己的文件系统支持最好
2.4. 统一目录结构
- 统一目录结构
- /
2.5. 引导
- Linux常见引导程序:GRUB
3. 安装软件
- 从源码安装,make/cmake
- cmake: 用于生成makefile
- make:编译
- make install:从Makefile中读取指令,将编译好的文件复制到指定的安装目录中
- 安装包
tar:打包
gz:压缩,只压缩单个文件
4. 👍文件类型
Linux下的文件类型:
- regular file
- 普通文件
- text, code data, video;
- 没有特定的内部结构
- directory
- 目录
- 会存放该目录下的文件列表
- character special file
- 字符设备
- /dev
- block special file
- 块设备
- 位于/dev目录
- socket
- 网络接口
- symbolic link
- 符号链接
- pipe
- 管道文件
- FIFO
字符设备和块设备的驱动不同
- hard link只能给regular file创建,不能跨分区和文件系统
- 硬链接依赖于inode号(索引节点号),而在不同的文件系统中,inode号是重新计算的
- 不同的磁盘分区有独立的文件系统
Hard links and soft links in Linux explained | Enable Sysadmin
5. 目录结构
Filesystem Hierarchy Standard - Wikipedia
unified file system
- 从/开始的树状结构
/home:普通用户目录
/root:root用户目录
/mnt:插入新的存储设备会在/mnt下创建新文件夹,并挂在在这个文件夹
/dev:设备文件
- 包含实际设备和虚拟设备(只有驱动,没有实际的硬件)
- 例:随机数发生器,没有实际硬件
/bin, /sbin:系统自带的可执行文件
/usr:系统资源
/etc:系统和应用的配置文件
/var, /proc:虚拟文件,反应当前内核状态
6. 👍基本命令
- ls:list the contents of directories
- -l:长列表格式显示
- -a:显示隐藏文件
- -R:递归显示子目录
- cd:change directory
- pwd:print work directory
- mkdir: make directory
- rmdir:remove a empty directory
- touch:只修改文件的更新时间为当前时间
- cp:copy files
- mv:move and rename files
- ln:link files
- hard link:一个文件有两个名字,需要文件系统支持,不能跨分区
- symbolic link:快捷方式
- rm: remove files
- cat: print file contents
- more/less: display files page by page
7. 文件权限
7.1. 类型
- Access Levels
- User: The user that created the file
- Group: All users in the group that owns the file
- Others: All others
- Permissions
- Read
- Write
- Execute: Excute file ad program or use directory as active directory
7.2. 修改
- chmod
- 三位八进制数
- +/-/= [rwx]
- 默认权限
- file -rw-r–r– 644
- directory drwxr-xr-x 755
8. 进程
8.1. 概述
进程是一个正在执行的程序实例。由执行程序、它的当前值、状态信息以及通过操作系统管理此进程执行情况的资源组成。
- Linux中每个进程都有父进程(除了init/init.rb),形成树状结构
- init是kernel启动的第一个用户进程,PID 1
- shell下起一个任务,父进程是shell
- 图形界面下启一个程序,父进程是图形界面
- 结束进程
- 自己退出
- 系统信号强制退出
8.2. 常用命令
- ps: report process status
- pstree: display a tree of processes
- jobs, fg, bg, <\ctrl-z>: job controlling
- kill: Send the processes identified by PID or JOBSPEC the signal named by
SIGSPEC or SIGNUM.kill {{process_id}}
,默认发送SIGTERM,终止进程kill -{{9|KILL}} {{process_id}}
,发送SIGTERMkill -{{17|STOP}} {{process_id}}
,停止进程,直到收到SIGCONT信号
- nohup: run a command, ignoring hangup signals
- nice, renice: 调整进程优先级
- nice: 修改默认优先级
- renice: 修改已经运行的进程优先级
- top: display top CUP processes
- 列出文件: ls
- 创建特殊文件: mkdir
- 文件操作:cp, mv, rm
- 修改文件: chmod, chown, chgrp, touch
- 查找文件: locate, find
- find / -name “*.txt “
- find / -type f -exec ls -lh {} \;
- 字符串匹配: grep, egrep
- grep ““ NaN
- 其他: who, whoami, passwd, uname
- who: 用于显示当前登录到系统的所有用户的信息
9. 系统层次
上层调用下层
- 系统调用是Linux中内核和用户态程序的分界线
- Windows下叫做Windows API
10. 重定向
- 标准输入,标准输出,标准错误
- shell提供的功能,不是命令提供
- 对应文件描述符:0,1,2
- C语言变量:stdin, stdout, stderr
1 | kill –HUP 1234 > killout.txt 2> killerr.txt |
11. 管道
一个进程的输出作为后一个进程都输入
- 例子
ls | wc -l
ls -lF | grep ^d
正则表达式搜索
12. 环境变量
- 操作环境的参数
- 查看和设置环境变量
- echo $PATH
- env
- set
PATH里的目录下的可执行文件都能直接在shell中调用
13. 高级命令和正则表达式
- find
find {{root_path}} -name "{{*.ext}}"
- find / -type f -exec ls -lh {} \;
- grep
- 在文件里查找字符串
grep "{{search_pattern}}" {{path/to/file}}
- sed
- 可以用来替换
sed 's/apple/mango/g'
- 标题: 01-Linux Basic
- 作者: Charlie
- 创建于 : 2024-02-26 09:02:00
- 更新于 : 2024-07-05 12:55:04
- 链接: https://chillcharlie357.github.io/posts/e81c84af/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论