Linux 环境适应 Day 1 全面笔记

一、Linux 基础命令体系

1. 文件与目录操作

命令 作用 示例
pwd 查看当前工作路径 pwd
ls -al 查看所有文件(包括隐藏文件) ls -al
mkdir 创建目录 mkdir test
cd 进入目录 cd test
rm 删除文件或目录 rm file / rm -rf dir
cp 复制文件 cp a.txt b.txt
mv 移动或重命名 mv a.txt old.txt
cat 查看文件内容 cat a.txt
echo 输出文本或写入文件 echo "hello" > a.txt

2. 权限管理与执行控制

每个文件有三组权限:

复制代码
-rwxr-xr-x
含义 拥有者
rwx 读 / 写 / 执行 用户
r-x 读 / 执行 所属组
r-x 读 / 执行 其他用户
常用命令:
命令 功能
chmod +x file.sh 给脚本添加执行权限
chmod 744 file 数字方式设置权限:7(111)=rwx, 4(100)=r--
chown user file 修改文件所有者
chgrp group file 修改文件所属组

3. 打包与查找

命令 功能 示例
tar -czf name.tar.gz dir 打包压缩目录 tar -czf backup.tar.gz ./src
tar -xzf name.tar.gz 解压缩 tar -xzf backup.tar.gz
find path -name "pattern" 查找文件 find . -name "*.cpp"
find path -mtime +3 查找 3 天前的旧文件 find . -mtime +3

二、Shell 脚本基础(file_ops.sh 案例)

1. 脚本开头

复制代码
#!/bin/bash

表示使用 Bash 解释器运行脚本。

2. 脚本功能实现

复制代码
WORKDIR="$HOME/linux_practice/workspace_$(date +%Y%m%d)"
mkdir -p "$WORKDIR"
echo "已创建目录:$WORKDIR"

echo "Hello Linux $(date)" > "$WORKDIR/a.txt"
echo "当前用户:$USER" > "$WORKDIR/info.txt"
touch "$WORKDIR/test.cpp"
echo "文件生成完毕"

tar -czf "$WORKDIR.tar.gz" -C "$(dirname "$WORKDIR")" "$(basename "$WORKDIR")"
echo "已压缩为:$WORKDIR.tar.gz"

find "$HOME/linux_practice" -maxdepth 1 -type d -name "workspace_*" -mtime +3 -exec rm -rf {} \;
echo "已清理三天前旧目录"

3. 命令说明

语句 解释
WORKDIR=... 变量定义:日期命名的文件夹
mkdir -p 创建目录(若不存在)
echo "..." > file 输出并写入文件
tar -czf 创建压缩包
find ... -exec 批量查找并执行命令
$HOME $USER 系统内置变量
$(date +%Y%m%d) 命令替换,获取当前日期

4. 文件执行流程

复制代码
chmod +x file_ops.sh  # 赋予执行权限
./file_ops.sh          # 运行脚本

执行结果:

复制代码
已创建目录:/home/elias/linux_practice/workspace_20251030
文件生成完毕
已压缩为:/home/elias/linux_practice/workspace_20251030.tar.gz
已清理三天前旧目录

三、C++ 在 Linux 下的编译运行

1. 编译器验证

复制代码
g++ --version

输出:

复制代码
g++ (Ubuntu 11.4.0-1ubuntu1~22.04.2)

→ 表示编译器安装成功。

  1. 示例程序

hello.cpp

cpp 复制代码
#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    vector<string> words = {"Hello", "Linux", "C++", "World!"};
    for (const auto& w : words)
        cout << w << " ";
    cout << endl;
    return 0;
}

编译运行命令

复制代码
g++ hello.cpp -o hello
./hello

输出:

复制代码
Hello Linux C++ World!

3. 编译流程理解

C++ 编译四阶段:

阶段 命令 说明
预处理 g++ -E 展开宏与头文件
编译 g++ -S 转为汇编代码
汇编 g++ -c 生成目标文件 .o
链接 g++ 链接生成可执行程序

四、环境与系统变量理解

变量 含义 示例
$HOME 当前用户主目录 /home/elias
$USER 当前用户名 elias
$PATH 可执行文件搜索路径 /usr/bin:/usr/local/bin

查看环境变量:

复制代码
echo $PATH

修改临时变量:

复制代码
export PATH=$PATH:/home/elias/mytools

五、思维与总结

今日学习核心

模块 掌握内容
Linux 命令 文件操作、权限、打包、查找
Shell 脚本 脚本结构、变量、执行权限
C++ 编译 g++ 编译、运行与执行流程
环境理解 环境变量、路径机制
  • Shell 不是独立知识,而是 操作系统接口

  • Linux 下写 C++,命令行是你的 IDE。

相关推荐
取地址符4 分钟前
Rust学习笔记(基于Rustlings)(2):数据结构与集合
笔记·学习·rust
进阶的猪14 分钟前
Linux 内核移植过程学习
linux·学习
来一碗刘肉面26 分钟前
C++中的引用语法
c++·算法
杜子不疼.31 分钟前
【Qt初识】工程起步:项目创建、代码解读与对象树
数据库·c++·qt
A.零点41 分钟前
期末复习,408考研数据结构:第一章绪论完整知识梳理与真题深度解读
c语言·数据结构·笔记·考研
茯苓gao1 小时前
嵌入式开发笔记:工业机器人通信协议深度解析——从现场总线到工业以太网
笔记·嵌入式硬件·学习·机器人·信息与通信
取地址符1 小时前
Rust语法学习 (基于Rustlings)(1):基础语法
经验分享·笔记·学习·rust
不会调制解调的猫2 小时前
笔记 | 什么是 rp_filter(反向路径过滤)?
服务器·网络·笔记
汉克老师2 小时前
GESP2026年6月认证C++八级( 第二部分判断题(1-10))精讲
c++·归并排序·dijkstra·二分·互斥·gesp8级·可重复组合
星马梦缘2 小时前
ACM CSP竞赛笔记(二十三)——线段树 与 树状数组
笔记·线段树·acm·树状数组·csp