专栏文章

CSP-S Linux相关知识

个人记录参与者 1已保存评论 1

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
1 条
当前快照
1 份
快照标识符
@minw9sak
此快照首次捕获于
2025/12/02 09:23
3 个月前
此快照最后确认于
2025/12/02 09:23
3 个月前
查看原文

一、Linux 基本概念

  1. 文件系统结构
    • 根目录:整个文件系统的起点,表示为 /
    • 家目录(Home Directory):用户登录后所在的初始目录。普通用户的家目录通常在 /home/用户名/ 下,root超级用户的家目录是 /root
    • 当前目录:用户当前所在的工作目录,用 . 表示。
    • 上级目录:当前目录的上一级目录,用 .. 表示。
  2. 路径
    • 绝对路径:从根目录 / 开始的完整路径,如 /usr/bin/g++
    • 相对路径:从当前目录开始的路径,如 ./test../doc/1.txt
  3. 文件权限: Linux系统中,每个文件和目录都有三组权限,分别对应三种身份:
    • 用户(User, u):文件的所有者。
    • 组(Group, g):文件所属用户组的成员。
    • 其他(Other, o):既不是所有者,也不是组成员的其他人。 每组权限都由三个字符表示,顺序永远是 读(r)写(w)执行(x)。如果没有某个权限,则用 - 表示。 示例:-rwxr-xr--
    • 第一个字符 - 表示这是一个普通文件(如果是 d 则表示目录)。
    • rwx:用户(u)有读、写、执行权限。
    • r-x:组(g)有读、执行权限,无写权限。
    • r--:其他(o)只有读权限。

二、必考命令详解

1. 文件和目录操作(最核心)

  • ls - 出目录内容
    • ls:列出当前目录下的文件和目录(不包含隐藏文件)。
    • ls -l:以长格式显示,可以看到详细信息(权限、所有者、大小、修改时间等)。必考!
    • ls -a:显示所有文件,包括隐藏文件(以 . 开头的文件)。
  • cd - 换当前工作
    • cd /home:切换到绝对路径 /home
    • cd ..:切换到上级目录。
    • cd ~cd:切换回当前用户的家目录
    • cd -:切换回上一次所在的目录。
  • pwd - 打印当前工作录的绝对路径。
  • mkdir - 创建目
    • mkdir dirname:创建名为 dirname 的目录。
    • mkdir -p parent/child:一次性创建多级目录(如果 parent 不存在也会被创建)。
  • rm - 除文件或目录
    • rm file.txt:删除文件 file.txt删除后极难恢复!
    • rm -r dirname递归删除目录 dirname 及其内部所有内容。非常危险!
    • rm -f file:强制删除,不提示确认。
  • cp - 制文件或目录
    • cp source.txt dest.txt:将 source.txt 复制为 dest.txt
    • cp -r sourcedir destdir:递归复制整个目录。
  • mv - 动文件或目录(也可用于重命名)
    • mv old.txt new.txt:将 old.txt 重命名为 new.txt
    • mv file.txt /tmp/:将 file.txt 移动/tmp/ 目录下。
  • cat - 连文件并打印到标准输出设备上(用于查看文件内容)
    • cat hello.cpp:在屏幕上显示 hello.cpp 的全部内容。
  • find - 查找文件
    • find . -name "*.cpp":在当前目录(.)及其子目录中查找所有后缀为 .cpp 的文件。

2. 权限管理命令(重中之重!)

  • chmod - 修改文件或目录的权限模式。这是考得最多的命令,必须掌握两种用法。
    1. 数字表示法(绝对模式):最常考! 权限用三位八进制数表示,分别对应 用户(u)组(g)其他(o)
      • r (读) = 4
      • w (写) = 2
      • x (执行) = 1
      • - (无权限) = 0 将一组权限的数字相加即可。
      • 7 = 4+2+1:读、写、执行(rwx)
      • 6 = 4+2:读、写(rw-)
      • 5 = 4+1:读、执行(r-x)
      • 4 = 4:只读(r--)
      常见考题
      • chmod 755 file
        • 用户(u):7 -> rwx
        • 组(g):5 -> r-x
        • 其他(o):5 -> r-x
        • 这是给可执行程序的典型权限。
      • chmod 644 file
        • u=rw- (6), g=r-- (4), o=r-- (4)
        • 这是给普通文本文件的典型权限。
    2. 符号表示法chmod [谁][操作符][权限] 文件名
      • u(用户), g(组), o(其他), a(所有人)
      • 操作符+(添加), -(移除), =(设置)
      • 权限r, w, x
      • 示例:
        • chmod o+x file:给其他人增加执行权限。
        • chmod g-w file:移除组的写权限。
        • chmod a=rw file:给所有人设置为读写权限。

3. 文本和输出处理命令

  • grep - 在文件中搜索指定的字符串模式。
    • grep "hello" file.txt:在 file.txt 中查找包含 "hello" 的行。
    • grep -n "hello" file.txt:显示匹配行的行号
    • ps -aux | grep "python":(常考管道|)将 ps 命令的输出传递给 grep,过滤出包含 "python" 的行。
  • wc - 数统计
    • wc -l file.txt:统计文件行数
    • wc -w file.txt:统计单词数。
    • wc -c file.txt:统计字节数。
  • | - 管道:将一个命令的输出作为另一个命令的输入
    • 示例:cat file.txt | grep "main" | wc -l:这个命令组合的意思是:先显示file.txt的内容,然后从内容中搜索包含"main"的行,最后统计这些行的行数。
  • >>> - 输出重定向
    • command > file:将命令的输出重定向到 file 中(覆盖原有内容)。
    • command >> file:将命令的输出追加到 file 的末尾。

三、编译和运行C++程序

这是参加CSP-S必须掌握的实践技能,笔试中会考察基本命令和参数。
  • g++ - GNU C++ 编译器
    • g++ hello.cpp:编译 hello.cpp,默认生成一个名为 a.out 的可执行文件(在Linux上无后缀)。
    • g++ -o hello hello.cpp:编译 hello.cpp,并指定输出的可执行文件名为 hello-o 参数非常重要且常考!
    • g++ -c hello.cpp:只编译不链接,生成目标文件 hello.o
    • g++ -O2 -std=c++11 hello.cpp:使用O2优化,遵循C++11标准进行编译。
  • 运行程序
    • ./a.out:运行当前目录下的 a.out 程序。注意:前面的 ./ 是必须的,它告诉系统从当前目录查找程序。

四、备考建议与总结

  1. 记忆命令全称:理解命令英文全称有助于记忆(如 ls=list, cd=change directory, cp=copy)。
  2. 重点攻克 chmod:务必熟练掌握数字表示法(755,644等),10次考试9次都会考到。
  3. 理解管道和重定向:明白 |, >, >> 的作用和区别。
  4. 动手实践:如果条件允许,可以在自己的电脑上安装一个Linux虚拟机(如VirtualBox + Ubuntu)或者使用WSL(Windows Subsystem for Linux),亲手敲一遍这些命令,印象会非常深刻。光靠死记硬背容易混淆。
  5. 刷真题:找近几年的CSP-J/S第一轮真题来做,看看Linux题是怎么出的,考点分布在哪里。

评论

1 条评论,欢迎与作者交流。

正在加载评论...