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。

相关推荐
A.A呐9 小时前
【C++第二十七章】C++类型转换
c++
新手小新10 小时前
C#学习笔记1-在VS CODE部署C#开发环境
笔记·学习·c#
Mapleay10 小时前
Ubuntu 源的重要性!之 libgmp-dev 无法安装
linux·服务器·windows
呼啦啦56110 小时前
C++vector
java·c++·缓存
Benszen10 小时前
Linux容器:轻量级虚拟化革命
java·linux·运维
2401_8920709810 小时前
顺序栈(动态数组实现) 超详细解析(C++ 语言 + 可直接运行)
数据结构·c++·顺序栈
ZC跨境爬虫10 小时前
Dan koe视频笔记: 个人成长与目标设定的重要性
人工智能·笔记·搜索引擎
念恒1230611 小时前
Linux初识
linux·服务器·c++
开开心心就好11 小时前
能把网页藏在Word里的实用摸鱼工具
linux·运维·服务器·windows·随机森林·逻辑回归·excel
旖-旎11 小时前
哈希表(存在重复元素)(3)
数据结构·c++·学习·算法·leetcode·散列表