🌀 鱼油のB10g

✦ 不定期更新技术随想

✦ 分享奇妙发现

📌 近期动态:

探索AI和工具使用...

第二章 第12课-Linux的各种命令行工具

Linux 常用命令详解

以下是一些在 Linux 环境中非常基础且频繁使用的命令:

1. 文件和目录管理命令

  • ls: 列出目录内容。

    • ls: 列出当前目录的文件和子目录。
    • ls -l: 以长格式(详细信息)列出。
    • ls -a: 显示所有文件,包括隐藏文件(以 . 开头)。
    • ls -lh: 以人类可读的方式显示文件大小(例如 1.2K, 3.4M)。
    • ls -al: 组合 -a-l
  • cd: 改变当前工作目录。

    • cd /path/to/directory: 切换到指定目录。
    • cd ~cd: 切换到用户主目录。
    • cd ..: 切换到上一级目录。
    • cd -: 切换到上次所在的目录。
  • pwd: 显示当前工作目录的路径。

    • pwd: 打印当前目录的完整路径。
  • mkdir: 创建新目录。

    • mkdir directory_name: 创建一个名为 directory_name 的目录。
    • mkdir -p /path/to/new/directory: 递归创建目录(如果父目录不存在也会创建)。
  • rmdir: 删除空目录。

    • rmdir directory_name: 删除一个空目录。
  • cp: 复制文件或目录。

    • cp source_file destination_file: 复制文件。
    • cp -r source_directory destination_directory: 递归复制目录及其内容。
    • cp -i source destination: 交互式复制,如果目标存在则提示。
    • cp -u source destination: 仅当源文件比目标文件新时才复制。
  • mv: 移动或重命名文件/目录。

    • mv source destination: 移动文件或目录。
    • mv old_name new_name: 重命名文件或目录。
  • rm: 删除文件或目录。

    • rm file_name: 删除文件(默认会提示确认,取决于系统配置)。
    • rm -f file_name: 强制删除文件,不提示。
    • rm -r directory_name: 递归删除目录及其内容。
    • rm -rf directory_name: 强制递归删除目录及其内容(慎用!)。
  • touch: 创建空文件或更新文件时间戳。

    • touch new_file.txt: 创建一个名为 new_file.txt 的空文件。
    • touch existing_file.txt: 更新 existing_file.txt 的访问和修改时间。
  • find: 在目录树中查找文件。

    • find . -name "filename": 在当前目录及其子目录中查找名为 filename 的文件。
    • find /path -type f -name "*.log": 在 /path 下查找所有 .log 结尾的文件。
    • find /path -type d -name "my_dir": 查找指定目录。
    • find . -size +1M: 查找大于 1MB 的文件。

2. 文件内容查看和编辑

  • cat: 连接文件并打印到标准输出。

    • cat file.txt: 显示 file.txt 的全部内容。
    • cat file1.txt file2.txt > combined.txt: 合并两个文件。
  • less: 分页查看文件内容。

    • less large_file.log: 分页显示大文件,可向上/向下滚动,按 q 退出。
  • more: 类似 less,但功能较少,只能向下滚动。

    • more large_file.log: 分页显示大文件。
  • head: 显示文件开头部分。

    • head file.txt: 显示文件的前 10 行。
    • head -n 5 file.txt: 显示文件的前 5 行。
  • tail: 显示文件末尾部分。

    • tail file.txt: 显示文件的后 10 行。
    • tail -n 5 file.txt: 显示文件的后 5 行。
    • tail -f file.log: 实时追踪文件末尾的新增内容(常用于查看日志)。
  • grep: 在文件中搜索指定模式(文本)。

    • grep "pattern" file.txt: 在 file.txt 中搜索包含 "pattern" 的行。
    • grep -i "pattern" file.txt: 忽略大小写搜索。
    • grep -r "pattern" directory/: 递归搜索目录下的所有文件。
    • grep -v "pattern" file.txt: 显示不包含 "pattern" 的行。
    • grep -l "pattern" *: 只列出包含 "pattern" 的文件名。
  • wc: 统计文件中的行数、单词数和字符数。

    • wc file.txt: 统计 file.txt 的行、单词和字符。
    • wc -l file.txt: 只统计行数。

3. 权限管理

  • chmod: 改变文件或目录的权限。

    • chmod 755 script.sh: 设置 script.sh 为所有者可读写执行,组用户和其他用户只读执行。
      • 权限数字解释:4=读(r), 2=写(w), 1=执行(x)
      • 所有者(owner) | 组(group) | 其他(others)
      • rwx (4+2+1=7) | r-x (4+0+1=5) | r-x (4+0+1=5)
    • chmod +x script.sh: 添加执行权限。
    • chmod u+rwx,g+rx,o+rx file: 使用符号模式设置权限。
  • chown: 改变文件或目录的所有者。

    • chown user file.txt: 将 file.txt 的所有者改为 user
    • chown user:group file.txt: 将 file.txt 的所有者改为 user,组改为 group
    • chown -R user:group directory/: 递归改变目录及其内容的拥有者和组。
  • chgrp: 改变文件或目录的所属组。

    • chgrp group file.txt: 将 file.txt 的所属组改为 group

4. 用户和组管理 (通常需要 root 权限)

  • useradd: 创建新用户。
    • useradd -m newuser: 创建一个新用户 newuser,并创建其主目录。
  • passwd: 为用户设置或修改密码。
    • passwd username: 为 username 设置密码。
  • usermod: 修改用户属性。
  • userdel: 删除用户。
  • groupadd: 创建新组。
  • groupdel: 删除组。

5. 进程管理

  • ps: 显示当前运行的进程。

    • ps aux: 显示所有用户的所有进程(包括没有控制终端的进程)。
    • ps -ef: 显示所有进程的完整格式列表。
  • top: 实时显示系统进程状态。

    • 动态显示 CPU、内存使用情况以及进程列表。按 q 退出。
  • kill: 终止进程。

    • kill PID: 终止指定 PID(进程 ID)的进程(默认发送 SIGTERM 信号)。
    • kill -9 PID: 强制终止指定 PID 的进程(发送 SIGKILL 信号,不可被捕获,慎用!)。
  • htop: 交互式的进程查看器(通常需要安装)。

    • top 更用户友好,有彩色界面和鼠标支持。

6. 系统信息

  • df: 显示磁盘空间使用情况。

    • df -h: 以人类可读格式显示磁盘空间。
  • du: 估算文件或目录的磁盘使用空间。

    • du -h directory/: 以人类可读格式显示目录大小。
    • du -sh directory/: 只显示目录的总大小。
  • free: 显示内存使用情况。

    • free -h: 以人类可读格式显示内存使用。
  • uname: 显示系统信息。

    • uname -a: 显示所有系统信息(内核名称、版本、架构等)。
  • hostname: 显示或设置系统的主机名。

    • hostname: 显示当前主机名。
  • ip addr (或 ifconfig): 显示或配置网络接口信息。

    • ip addr: 显示所有网络接口的 IP 地址和其他信息。
    • ifconfig (旧版命令,在新版系统中可能已被 ip 命令取代): 显示网络接口信息。

7. 网络工具

  • ping: 测试网络连通性。

    • ping www.google.com: 测试与 Google 的连通性。按 Ctrl+C 停止。
    • ping -c 4 www.google.com: 发送 4 个数据包后停止。
  • netstat: 显示网络连接、路由表、接口统计等。

    • netstat -tuln: 显示所有 TCP、UDP 监听端口及其对应的程序(不解析服务名和主机名)。
    • netstat -antp: 显示所有 TCP 连接(包括监听和已建立),显示 PID 和程序名。
  • ss: 更快更现代的 netstat 替代品。

    • ss -tuln: 类似 netstat -tuln
  • ssh: 安全地远程登录到另一台计算机。

    • ssh username@hostname_or_ip: 连接到远程服务器。
  • scp: 通过 SSH 安全地复制文件。

    • scp local_file.txt username@remote_host:/path/to/remote/: 将本地文件复制到远程。
    • scp username@remote_host:/path/to/remote/file.txt local_directory/: 从远程复制文件到本地。
  • wget: 从 Web 下载文件。

    • wget http://example.com/file.zip: 下载文件。
  • curl: 数据传输工具,支持多种协议。

    • curl http://example.com: 显示网页内容。
    • curl -O http://example.com/file.zip: 下载文件并保存为原文件名。
    • curl -I http://example.com: 只显示 HTTP 头部信息。

8. 归档和压缩

  • tar: 打包和解包文件。

    • tar -cvf archive.tar directory/: 创建一个 .tar 归档文件。
    • tar -xvf archive.tar: 解压 .tar 归档文件。
    • tar -czvf archive.tar.gz directory/: 创建并使用 gzip 压缩(.tgz)。
    • tar -xzvf archive.tar.gz: 解压 .tar.gz 文件。
    • tar -cjvf archive.tar.bz2 directory/: 创建并使用 bzip2 压缩(.tbz)。
    • tar -xjvf archive.tar.bz2: 解压 .tar.bz2 文件。
  • gzip / gunzip: gzip 压缩和解压缩。

    • gzip file.txt: 压缩 file.txtfile.txt.gz
    • gunzip file.txt.gz: 解压缩 file.txt.gz
  • zip / unzip: zip 压缩和解压缩。

    • zip archive.zip file1 file2: 压缩文件。
    • unzip archive.zip: 解压文件。

9. 杂项和实用工具

  • man: 查看命令手册页。

    • man ls: 查看 ls 命令的详细手册。按 q 退出。
  • history: 显示历史命令。

    • history: 显示之前执行过的命令列表。
  • clear: 清除终端屏幕。

  • echo: 打印文本或变量。

    • echo "Hello World": 打印 "Hello World"。
    • echo $PATH: 打印 PATH 环境变量的值。
  • alias: 为命令创建别名。

    • alias ll='ls -al': 创建 llls -al 的别名(临时有效)。
  • date: 显示或设置系统日期和时间。

  • reboot: 重启系统 (需要 root 权限)。

  • shutdown: 关闭系统 (需要 root 权限)。

    • shutdown -h now: 立即关机。
    • shutdown -r now: 立即重启。
  • sudo: 以超级用户权限执行命令。

    • sudo command: 以 root 权限执行 command
  • systemctl: 管理 systemd 服务(启动、停止、重启、查看状态)。

    • systemctl status service_name: 查看服务状态。
    • systemctl start service_name: 启动服务。
    • systemctl stop service_name: 停止服务。
    • systemctl enable service_name: 开机自启动服务。

以上涵盖了 Linux 日常使用和管理中最常见的命令。掌握它们将大大提高您在 Linux 环境中的工作效率。

posted on 2025-07-01 17:54  鱼油YOU  阅读(18)  评论(0)    收藏  举报