OS-Linux 学习备忘[BUAA-OS]
Linux 假期预习备忘
Hello, Linux!
- 什么是 Linux?
- Linux 是基于 Linux 内核的开源操作系统,由 Linus Torvalds 于 1991 年首次发布。
- Linux 发行版包括 Ubuntu、Debian 等,本教程使用 Ubuntu 22.04.1 LTS。
初识 CLI Shell
- CLI Shell 概念
- CLI(Command Line Interface):命令行界面,通过命令行与操作系统交互。
- Shell 是操作系统的外壳,用于访问操作系统服务,分为 CLI Shell 和 GUI Shell。
- 为什么使用 CLI Shell?
- 节约资源:在资源有限的设备上,运行 GUI Shell 会增加系统负担。
- 高效自动化操作:CLI Shell 可以通过脚本实现复杂操作。
- 精准操作:命令行操作可以精确控制,便于复现和传播。
Linux 基础操作
- 命令格式
- 命令名 [选项] [参数] …
- 目录操作
cd
:切换目录。ls
:列出目录内容。mkdir
:创建新目录。rmdir
:删除空目录。pwd
:显示当前目录的绝对路径。
- 文件操作
touch
:创建新文件或更新文件时间戳。rm
:删除文件或目录。cp
:复制文件或目录。mv
:移动或重命名文件或目录。diff
:比较两个文件的差异。
- 查找操作
find
:查找文件。grep
:搜索文件内容。tree
:显示目录树结构。
开源文本编辑器——Vim
- Vim 基本操作
- 创建文件:
touch helloworld.c
- 打开文件:
vim helloworld.c
- 进入插入模式:按
I
键。 - 保存并退出:
:wq
- 创建文件:
- Vim 配置
- 配置文件:
.vimrc
,位于用户主目录下。
- 配置文件:
实用工具介绍
- GCC
- 编译器:
gcc hello.c
- 执行:
./a.out
- 编译器:
- make & Makefile
- 编写 Makefile 文件,使用
make
命令构建项目。
- 编写 Makefile 文件,使用
- ctags
- 代码跳转工具,使用
ctags -R *
创建符号索引文件tags
。
- 代码跳转工具,使用
- tmux
- 终端复用工具,支持分屏操作和会话管理。
Git 简易教程
- Git 基本概念
- 三种储存位置:工作区、暂存区、储存库。
- 四种储存状态:未跟踪、未修改、已修改、已暂存。
- 常用命令
git init
:初始化仓库。git clone
:克隆仓库。git status
:查看仓库状态。git add
:添加文件到暂存区。git restore
:恢复文件。git checkout
:切换分支。git commit
:提交更改。git push
:推送更改到远程仓库。git pull
:拉取远程仓库的更改。
Shell 脚本教程
- Shell 脚本基础
- 创建脚本文件:
touch hello.sh
- 编写脚本:
#!/bin/bash
,echo "Hello, world!"
- 运行脚本:
chmod +x hello.sh
,./hello.sh
- 创建脚本文件:
- 变量和参数
- 定义变量:
var_name=value
- 脚本参数:
$1
,$2
,$#
,$*
- 定义变量:
- 条件与循环
if
语句:条件判断。while
语句:循环操作。
- 函数
- 定义函数:
function fun_name() { ... }
- 调用函数:
fun_name param1 param2 ...
- 定义函数:
用命令编辑和输出文本——sed 的使用
- sed 基本用法
sed [选项] '命令' 输入文本
- 常用选项:
-n
(安静模式),-i
(直接修改文件) - 常用命令:
a
(新增),c
(取代),i
(插入),d
(删除),s
(替换)
1 | sed [选项] '命令' 输入文本 |
重定向和管道
- 重定向
- 输出重定向:
>
,>>
- 输入重定向:
<
- 输出重定向:
- 管道
command1 | command2 | command3 | ...
部分实践内容
-
Git 操作
- 克隆分支:
git clone <URL>
- 切换分支:
git checkout lab2
- 撤销修改:
git restore <filename>
- 添加文件到暂存区:
git add .
- 移出暂存区:
git restore --staged <filename>
- 恢复文件:
git restore <filename>
- 提交更改:
git commit -m "git is so easy"
- 推送更改:
git push
- 克隆分支:
-
Shell 脚本
- 创建脚本文件:
touch hello.sh
- 编写脚本:
#!/bin/bash
,echo "Hello, world!"
- 运行脚本:
chmod +x hello.sh
,./hello.sh
- 创建脚本文件:
-
sed 操作
- 替换内容:
sed 's/str1/str2/g' my.txt
- 删除行:
sed '2d' my.txt
- 替换内容:
-
重定向和管道
标准输入(stdin):文件描述符为0;标准输出(stdout):文件描述符为1;标准错误(stderr):文件描述符为2。- 输出重定向:
ls / > lsoutput.txt
- 输入重定向:
cat < input.txt
- 管道操作:
cat hello.txt | grep "Hello"
- 输出重定向:
参考资料
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 theUHO!
评论