Skip to content

Linux操作系统常用命令

在CTF(Capture The Flag)竞赛中,Linux命令是必备工具,尤其是在Pwn、Web、Forensics、Misc等题型中。以下是一些常用的Linux命令及其用途:


1. 目录显示

在 Linux 和 Unix 系统中,lsls /ls 文件夹名 的区别在于它们列出的目录不同:

命令作用示例(假设当前目录是 /home/user
ls列出当前目录的内容ls → 显示 /home/user 下的文件
ls /列出根目录 / 的内容ls / → 显示 /bin, /etc
ls 文件夹名列出指定文件夹的内容ls Documents → 显示 /home/user/Documents 下的文件

(1)ls(不带参数)

  • 作用:显示当前工作目录pwd 显示的路径)下的文件和子目录。

  • 示例

    bash
    $ pwd
    /home/user
    $ ls
    Documents  Downloads  Music  file.txt

    → 这里列出的是 /home/user 下的内容。

(2)ls /(带 / 参数)

  • 作用:显示根目录 /(即整个文件系统的顶级目录)下的内容。

  • 示例

    bash
    $ ls /
    bin  boot  dev  etc  home  lib  mnt  opt  proc  root  run  sbin  tmp  usr  var

    → 这里列出的是系统根目录 / 下的标准目录(如 /bin, /etc, /home 等)。

(3)ls 文件夹名(带目录参数)

  • 作用:显示指定目录下的内容(可以是相对路径或绝对路径)。

  • 示例

    bash
    $ ls Documents  # 相对路径(相对于当前目录)
    report.pdf  notes.txt
    
    $ ls /etc       # 绝对路径
    passwd  hosts  ssh  ...

    → 如果 文件夹名 不存在,会报错:ls: cannot access '文件夹名': No such file or directory

(4)总结

命令目标位置适用场景
ls当前目录 (pwd)查看当前文件夹内容
ls /根目录 (/)查看系统根目录结构
ls 文件夹名指定的目录(相对/绝对路径)查看某个特定文件夹的内容

提示

  • 使用 pwd 查看当前目录。
  • 使用 ls -l 显示详细信息(权限、大小、时间等)。
  • 使用 ls -a 显示隐藏文件(以 . 开头的文件)。

(5)实际数据演示

202542222527

2. 查看文件内容

(1) cat

作用:连接文件并打印到标准输出(快速查看文件内容)。 示例

bash
cat /etc/passwd      # 查看文件内容
cat file1 file2      # 合并多个文件并显示到屏幕上
cat file1 file2 > new_file	# 合并多个文件并重定向到new_file文件(存储)

(2) tac

作用:反向显示文件内容(cat 的反序)。 示例

bash
tac /etc/passwd      # 从最后一行开始显示

(3) sort

作用: 对文本按行排序(默认字典序)。

示例:

  1. 基础排序

    bash
    sort file.txt          # 按字母升序
  2. 数字排序

    bash
    sort -n numbers.txt   # 按数值大小(10 > 2)
  3. 降序排列

    bash
    sort -r file.txt      # Z→A 或 100→1
  4. 去重

    bash
    sort -u file.txt      # 合并重复行
  5. 按列排序

    bash
    sort -t',' -k2 data.csv  # 按逗号分隔的第2列排序

(4) vi

**作用:**经典命令行文本编辑器,几乎所有 Unix/Linux 系统预装,vim是由vi改进的。

示例:

bash
vi example.txt  # 打开文件
i               # 进入编辑模式(输入文本)
Esc :wq         # 保存并退出

(5) vim

作用:强大的文本编辑器(也可查看文件)。 常用操作

  • i 进入编辑模式,:wq 保存退出,:q! 强制退出。
  • :/keyword 搜索关键词。

(6) od

作用:以十六进制或其他格式显示文件内容(用于分析二进制文件)。 示例

bash
od -tx1 /bin/ls      # 以十六进制查看ls可执行文件
  • -tx1:指定输出格式为 十六进制(hex),且每字节单独显示。

(7) more / less

作用:分页查看文件(支持上下翻页)。 区别

  • more:仅能向下翻页,不支持回滚。
  • less:功能更强,支持上下翻页、搜索(按 / 输入关键词)。 示例
bash
less /var/log/syslog  # 分页查看日志

(8) head / tail

作用:查看文件开头或结尾部分。 示例

bash
head -n 10 file.log   # 显示前10行
tail -f /var/log/nginx/access.log  # 实时追踪日志新增内容

(9) nl

作用:显示文件内容并添加行号。 示例

bash
nl /etc/hosts        # 带行号输出文件

(10) uniq

作用:过滤重复行(通常需先配合 sort 使用)。 示例

bash
sort file.txt | uniq  # 去重并排序

3.执行函数

(1) system

作用:执行系统命令并直接输出结果。 风险:若参数用户可控,会导致 RCE。 示例

php
system("ls -l /");  // 列出根目录

(2) shell_exec

作用:执行命令并返回输出(无直接回显)。 示例

php
$output = shell_exec("id");
echo $output;       // 显示命令结果

(3) popen

作用:打开进程文件指针,用于双向命令交互。 示例

php
$handle = popen("/bin/ls", "r");
echo fread($handle, 1024);
pclose($handle);

(4) proc_open

作用:更复杂的进程控制(可操作 STDIN/STDOUT/STDERR)。 示例

php
$process = proc_open("ls", [["pipe","r"],["pipe","w"],["pipe","w"]], $pipes);
echo stream_get_contents($pipes[1]); // 获取输出

(5) 反引号 ``

作用:等价于 shell_exec示例

php
$result = `whoami`;  // 执行命令

(6) passthru

作用: 直接执行外部系统命令,并将 原始输出直接发送到浏览器/终端(不返回结果,适合处理二进制数据如图片压缩、视频流等)。

语法:passthru(string $command, int &$return_var = ?): void

  • $command:要执行的系统命令(如 ls -l)。
  • $return_var(可选):存储命令的退出状态码(0 通常表示成功)。

示例

  1. 执行命令并显示输出

    php
    passthru("ls -l /tmp");  // 列出/tmp目录内容(直接输出)
  2. 获取命令状态码

    php
    passthru("whoami", $status);
    echo "Exit status: " . $status;  // 输出状态码(如0)
  3. 处理二进制数据

    php
    header("Content-Type: image/png");
    passthru("cat image.png");  // 直接输出PNG图片

滇ICP备2025057983号-1