linux-基础操作

一、文件系统基础

  1. 目录结构 (/)

    • Linux 文件系统采用树形结构,以根目录 / 为起点。
    • 重要目录:
      • /bin:存放系统基本命令(如 ls, cp)。
      • /etc:存放系统配置文件。
      • /home:普通用户的家目录(主目录)。
      • /root:管理员(root)用户的家目录。
      • /usr:存放用户安装的程序和文件。
      • /var:存放经常变化的文件(如日志、邮件)。
      • /tmp:临时文件存放处。
      • /dev:设备文件(如硬盘、U盘)。
      • /proc:虚拟文件系统,反映内核和进程信息。
      • /opt:可选应用程序安装位置。
      • /mnt:临时挂载点(如挂载U盘、光盘)。
      • /boot:存放系统启动相关文件。
      • /lib, /lib64:存放系统库文件。
  2. 路径

    • 绝对路径 :从根目录 / 开始的完整路径。例如:/home/user/Documents/report.txt
    • 相对路径 :相对于当前工作目录的路径。
      • .:当前目录。
      • ..:上一级目录。
      • ~:当前用户的家目录(等价于 /home/用户名)。
      • 例如:当前在 /home/userDocuments/report.txt 就是相对路径。
  3. 文件类型

    • -:普通文件(文本、图片、程序等)。
    • d:目录。
    • l:符号链接(类似 Windows 快捷方式)。
    • c:字符设备文件。
    • b:块设备文件。
    • p:命名管道。
    • s:套接字文件。

二、常用命令

1. 导航与查看
  • pwdP rint W orking D irectory - 显示当前所在目录的绝对路径。

    bash 复制代码
    $ pwd
    /home/user
  • lsL is t - 列出目录内容。

    • 常用选项:
      • -l:长格式显示(详细信息)。
      • -a:显示所有文件(包括隐藏文件,以 . 开头)。
      • -h:以人类可读方式显示文件大小(如 K, M, G)。
      • -t:按修改时间排序(最新在前)。
      • -r:反向排序。
    bash 复制代码
    $ ls -lha
    total 4.0K
    drwxr-xr-x. 2 user user 4.0K May 10 14:30 .
    drwx------. 3 user user 4.0K May  9 10:15 ..
    -rw-r--r--. 1 user user    0 May 10 14:30 .hiddenfile
    -rw-r--r--. 1 user user   12 May 10 14:30 file.txt
  • cdC hange D irectory - 切换目录。

    • cd ~cd:回到家目录。
    • cd ..:进入上一级目录。
    • cd -:回到上一次所在的目录。
    bash 复制代码
    $ cd Documents
    $ pwd
    /home/user/Documents
    $ cd ..
    $ pwd
    /home/user
2. 文件操作
  • touch:创建新的空文件或更新文件的时间戳。

    bash 复制代码
    $ touch newfile.txt  # 创建空文件
    $ touch existingfile.txt  # 更新文件时间戳
  • mkdirM ak e Dir ectory - 创建目录。

    • -p:创建多级目录(如果父目录不存在)。
    bash 复制代码
    $ mkdir newdir
    $ mkdir -p parent/child/grandchild
  • cpC op y - 复制文件或目录。

    • -r:递归复制目录及其内容。
    • -i:覆盖前提示确认。
    bash 复制代码
    $ cp file.txt file_copy.txt  # 复制文件
    $ cp -r dir1 dir2  # 复制目录
  • mvM ov e - 移动或重命名文件/目录。

    bash 复制代码
    $ mv oldname.txt newname.txt  # 重命名
    $ mv file.txt /tmp/  # 移动到 /tmp 目录
  • rmR em ove - 删除文件或目录。

    • -r:递归删除目录及其内容。
    • -f:强制删除,不提示确认。
    • 极其小心rm -rf / 会删除整个系统!永远不要尝试!通常只在自己的目录下使用 rm
    bash 复制代码
    $ rm unwanted_file.txt  # 删除文件
    $ rm -r old_directory  # 删除目录
  • catCat enate - 查看文件内容(适合小文件)。

    bash 复制代码
    $ cat file.txt
    This is the content of file.txt.
  • less / more:分页查看文件内容(适合大文件)。less 功能更强大(支持上下翻页、搜索)。

    bash 复制代码
    $ less largefile.log
  • head:查看文件开头部分(默认前 10 行)。

    • -n :查看前 N 行。
    bash 复制代码
    $ head -n 5 file.txt  # 查看前5行
  • tail:查看文件结尾部分(默认后 10 行)。

    • -n :查看后 N 行。
    • -f:实时追踪文件末尾(常用于查看日志)。
    bash 复制代码
    $ tail -f /var/log/syslog  # 实时查看系统日志
  • grepG lobal R egular E xpression P rint - 在文件中搜索文本模式。

    • -i:忽略大小写。
    • -r:递归搜索目录。
    • -n:显示匹配行号。
    • -v:显示不匹配的行。
    bash 复制代码
    $ grep "error" logfile.txt  # 在 logfile.txt 中搜索 "error"
    $ grep -r "function" /home/user/code/  # 在 /home/user/code/ 目录下递归搜索 "function"
  • find:在目录树中查找文件。

    • -name :按文件名查找。
    • -type :按文件类型查找(f普通文件,d目录)。
    • -size :按文件大小查找(+大于,-小于)。
    bash 复制代码
    $ find /home/user -name "*.txt"  # 在 /home/user 下查找所有 .txt 文件
    $ find / -type f -size +100M  # 在根目录下查找大于 100MB 的文件
3. 权限管理
  • 权限概念

    • 每个文件/目录有 3 组权限:所有者 (u)、所属组 (g)、其他用户 (o)。
    • 每组权限有:读 (r)、写 (w)、执行 (x)。
  • ls -l 查看权限:

    bash 复制代码
    -rw-r--r--. 1 user group 0 May 10 15:00 file.txt
    • 第一位:文件类型 (- 普通文件)。
    • 接下来 9 位:三组权限(rw- 所有者可读写不可执行,r-- 组用户可读,r-- 其他用户可读)。
    • user:所有者。
    • group:所属组。
  • chmodCh ange Mod e - 修改文件/目录权限。

    • 数字模式 :用数字表示权限(r=4, w=2, x=1)。每组权限是数字之和。
      • 例如:chmod 755 file.txt -> rwxr-xr-x (7=4+2+1, 5=4+1, 5=4+1)
    • 符号模式
      • u/g/o/a:用户/组/其他/所有。
      • +/-:添加/移除。
      • r/w/x:读/写/执行。
      • 例如:chmod u+x script.sh(给所有者添加执行权限)。
  • chownCh ange Own er - 修改文件/目录的所有者。

    • -R:递归修改。
    bash 复制代码
    $ chown newuser:newgroup file.txt  # 修改所有者和所属组
    $ chown -R user:group directory/  # 递归修改目录下所有文件
4. 进程管理
  • psP rocess S tatus - 查看当前进程快照。

    • aux:常用组合,显示详细信息。
    bash 复制代码
    $ ps aux
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.1 225708  9632 ?        Ss   May09   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 31
    ... (其他进程)
  • top / htop:实时动态查看系统进程状态和资源占用。htop 是增强版。

  • kill:向进程发送信号(默认 SIGTERM,请求终止)。

    • -9:发送 SIGKILL,强制终止。
    bash 复制代码
    $ kill 1234  # 请求终止 PID 为 1234 的进程
    $ kill -9 1234  # 强制终止 PID 为 1234 的进程
  • bg:将挂起的作业放到后台运行。

  • fg:将后台作业调到前台运行。

  • jobs:查看当前 shell 的后台作业。

  • &:在命令后添加 &,让命令在后台运行。

    bash 复制代码
    $ long_running_command &  # 在后台启动命令
    $ jobs  # 查看后台作业
    $ fg %1  # 将作业号 1 的作业调到前台
5. 系统信息
  • uname:查看系统信息。

    • -a:显示所有信息(内核名称、主机名、内核版本、硬件架构等)。
    bash 复制代码
    $ uname -a
    Linux myserver 5.4.0-150-generic #167-Ubuntu SMP Wed Jan 11 16:38:42 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
  • dfD isk F ree - 查看磁盘空间使用情况。

    • -h:人类可读格式。
    bash 复制代码
    $ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda1        20G   15G  4.5G  77% /
    tmpfs           1.9G     0  1.9G   0% /dev/shm
  • duD isk U sage - 查看目录/文件磁盘使用情况。

    • -h:人类可读格式。
    • -s:仅显示总计。
    bash 复制代码
    $ du -sh /home/user/Documents
    1.5G    /home/user/Documents
  • free:查看内存使用情况。

    • -h:人类可读格式。
    bash 复制代码
    $ free -h
                  total        used        free      shared  buff/cache   available
    Mem:           1.9G        1.1G        123M         15M        700M        640M
    Swap:          2.0G        256M        1.7G
  • uptime:查看系统运行时间、用户数和负载平均值。

    bash 复制代码
    $ uptime
     15:30:01 up 2 days,  3:45,  1 user,  load average: 0.00, 0.01, 0.05
6. 网络工具
  • ping:测试网络连通性(向目标主机发送 ICMP 回显请求)。

    bash 复制代码
    $ ping google.com
    PING google.com (142.250.191.110) 56(84) bytes of data.
    64 bytes from fra24s06-in-f14.1e100.net (142.250.191.110): icmp_seq=1 ttl=117 time=12.6 ms
    ... (按 Ctrl+C 停止)
  • ifconfig / ip addr:查看和配置网络接口(ip 命令更现代)。

    bash 复制代码
    $ ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:aa:bb:cc brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
           valid_lft 86389sec preferred_lft 86389sec
  • netstat / ss:查看网络连接、路由表、接口统计等(ss 命令更现代)。

    bash 复制代码
    $ ss -tuln  # 查看监听中的 TCP/UDP 端口
    Netid State      Recv-Q Send-Q Local Address:Port               Peer Address:Port
    udp   UNCONN     0      0      *:68                            *:*
    tcp   LISTEN     0      128    *:22                            *:*
    tcp   LISTEN     0      128    :::80                           :::*
  • wget:从网络下载文件。

    bash 复制代码
    $ wget https://example.com/file.zip
  • curl:强大的 URL 数据传输工具(用于下载、上传、测试 API 等)。

    bash 复制代码
    $ curl -O https://example.com/file.zip  # 下载文件 (类似 wget)
    $ curl https://api.example.com/data  # 获取 API 数据
7. 压缩与解压
  • tarT ape Ar chive - 打包文件(不压缩),常与压缩工具结合。

    • -c:创建归档文件。
    • -x:解压归档文件。
    • -v:显示过程。
    • -f:指定归档文件名。
    • -z:使用 gzip 压缩/解压。
    • -j:使用 bzip2 压缩/解压。
    • -J:使用 xz 压缩/解压。
    bash 复制代码
    $ tar -czvf archive.tar.gz dir1/ file1.txt  # 打包并用 gzip 压缩
    $ tar -xzvf archive.tar.gz  # 解压 .tar.gz 文件
  • gzip / gunzip:压缩/解压 .gz 文件。

  • bzip2 / bunzip2:压缩/解压 .bz2 文件(压缩率更高)。

  • zip / unzip:压缩/解压 .zip 文件(跨平台兼容性好)。

    bash 复制代码
    $ zip archive.zip file1.txt dir1/
    $ unzip archive.zip
8. 文本编辑
  • 命令行编辑器

    • nano:简单易用的文本编辑器。
    • vim / vi:功能强大的模态编辑器(学习曲线陡峭,但效率极高)。是大多数 Linux 发行版默认安装的编辑器。
      • 基本模式:普通模式(导航、操作)、插入模式(输入文本)、命令行模式(保存、退出等)。
      • 常用命令(普通模式下):
        • i:进入插入模式。
        • Esc:返回普通模式。
        • :w:保存。
        • :q:退出(如果未修改)。
        • :q!:强制退出(不保存修改)。
        • :wq:保存并退出。
        • dd:删除当前行。
        • /pattern:向下搜索 pattern
        • ?pattern:向上搜索 pattern
        • n:查找下一个匹配项。
    bash 复制代码
    $ nano file.txt  # 使用 nano 编辑
    $ vim file.txt   # 使用 vim 编辑

三、帮助信息

  • man :查看命令的手册页(man ual pages),是最权威、最详细的帮助文档。例如 man ls
  • --help:查看命令的快速帮助信息(通常比 man 简短)。例如 ls --help
  • info :查看 GNU 风格的帮助文档(比 man 更结构化,但不如 man 普及)。例如 info coreutils

四、用户管理 (通常需要 root 权限 sudo)

  • sudoS uper U ser DO - 以超级用户(root)权限执行命令(需要当前用户在 sudoers 列表中)。

    bash 复制代码
    $ sudo apt update  # 以 root 权限更新软件包列表
  • suS witch U ser - 切换用户(默认切换到 root)。

    bash 复制代码
    $ su -  # 切换到 root 用户(需要 root 密码)
    $ su - username  # 切换到指定用户(需要该用户密码或 root 权限)
  • useradd / adduser:添加用户(adduser 是交互式脚本)。

  • usermod:修改用户属性(如所属组)。

  • passwd:修改用户密码。

    bash 复制代码
    $ sudo passwd username  # root 修改其他用户密码
    $ passwd  # 修改当前用户自己的密码
  • userdel:删除用户。

    • -r:同时删除用户的家目录和邮件池。
    bash 复制代码
    $ sudo userdel -r olduser  # 删除用户及其家目录
  • groupadd:添加组。

  • groupmod:修改组属性。

  • groupdel:删除组。

  • groups:查看用户所属的组。

    bash 复制代码
    $ groups username
    username : username adm cdrom sudo dip plugdev lpadmin sambashare

五、软件包管理

不同的 Linux 发行版有不同的包管理工具:

  • Debian/Ubuntu (.deb)
    • apt:高级包管理工具(apt-get, apt-cache 的现代替代)。
      • sudo apt update:更新软件包列表。
      • sudo apt upgrade:升级所有可升级的软件包。
      • sudo apt install :安装软件包。
      • sudo apt remove :卸载软件包(保留配置文件)。
      • sudo apt purge :卸载软件包并删除配置文件。
      • apt search :搜索软件包。
      • apt show :显示软件包详细信息。
  • Red Hat/CentOS/Fedora (.rpm)
    • dnf (Fedora/CentOS 8+/RHEL 8+):Dandified YUM,新一代包管理工具。
    • yum (CentOS 7/RHEL 7):Yellowdog Updater, Modified。
      • sudo dnf/yum update:更新软件包。
      • sudo dnf/yum install :安装软件包。
      • sudo dnf/yum remove :卸载软件包。
      • dnf/yum search :搜索软件包。
      • dnf/yum info :显示软件包详细信息。
  • Arch Linux (.pkg.tar.zst)
    • pacman:包管理工具。
      • sudo pacman -Syu:同步软件库并升级系统。
      • sudo pacman -S :安装软件包。
      • sudo pacman -R :卸载软件包(保留依赖)。
      • sudo pacman -Rs :卸载软件包及其不再需要的依赖。
      • pacman -Ss :搜索软件包。
      • pacman -Si :显示软件包详细信息。

六、其他实用技巧

  • Tab 键补全 :输入命令、路径、文件名时,按 Tab 键可以自动补全,提高效率。

  • 命令历史 :按 / 箭头键可以浏览之前执行过的命令。history 命令列出历史记录。!n 执行历史记录中编号为 n 的命令。

  • 重定向

    • >:将标准输出重定向到文件(覆盖)。
    • >>:将标准输出重定向到文件(追加)。
    • <:将文件内容作为标准输入。
    • 2>:将标准错误重定向到文件(覆盖)。
    • 2>>:将标准错误重定向到文件(追加)。
    • &>:将标准输出和标准错误都重定向到文件。
    bash 复制代码
    $ ls > filelist.txt  # 将 ls 结果覆盖写入 filelist.txt
    $ ls >> filelist.txt # 将 ls 结果追加到 filelist.txt
    $ grep "pattern" < input.txt  # 在 input.txt 中搜索 "pattern"
    $ command 2> error.log  # 将错误信息写入 error.log
  • 管道 | :将一个命令的标准输出作为另一个命令的标准输入。

    bash 复制代码
    $ ps aux | grep nginx  # 查找包含 "nginx" 的进程
    $ cat access.log | grep "404" | sort | uniq -c  # 统计 access.log 中 404 错误的出现次数(去重排序后)
  • 通配符

    • *:匹配任意多个字符(包括零个)。
    • ?:匹配一个字符。
    • []:匹配括号内的任意一个字符(如 [abc] 匹配 a、b、c)。
    • [!][^]:匹配不在括号内的任意一个字符。
    bash 复制代码
    $ ls *.txt  # 列出所有 .txt 文件
    $ rm file?.log  # 删除 file1.log, file2.log 等
    $ cp [abc]* /backup/  # 复制以 a, b 或 c 开头的文件到 /backup/

总结

这份指南涵盖了 Linux 命令行操作的核心基础。熟练掌握这些命令和概念是高效使用 Linux 系统的关键。学习 Linux 是一个持续的过程,最好的方法是多动手实践,结合 man 手册查阅命令的详细用法。遇到问题时,善用搜索引擎(如加上 "linux" 或命令名)通常能找到解决方案。

相关推荐
一个有温度的技术博主2 小时前
网安实验系列二:服务器信息收集
运维·服务器
bwz999@88.com2 小时前
ubuntu24.04更换国内源
linux·运维·服务器
腾科IT教育2 小时前
红帽认证考试全国考点信息新发布,便捷参考
运维·服务器·红帽认证·linux考试·rhcsa考试
历程里程碑2 小时前
Protobuf 环境搭建:Windows 与 Linux 系统安装教程
linux·运维·数据结构·windows·线性代数·算法·矩阵
软件资深者2 小时前
OpenClaw 本地安装 vs 网页版龙虾:全方位对比 + 2026 最新一键安装客户端(新手零门槛搭建专属 AI 助理)
运维·人工智能·自动化·飞书·数字员工·openclaw·龙虾
XXOOXRT2 小时前
Ubuntu搭建Java项目运行环境(JDK17+MySQL8.0)超详细教程
java·linux·mysql·ubuntu
吴声子夜歌2 小时前
TypeScript——类型基础(二)
linux·ubuntu·typescript
vvw&3 小时前
如何从 Ubuntu 24.04 升级到 Ubuntu 25.04
linux·运维·服务器·ubuntu
CDN3603 小时前
CSDN 交流|360CDN 系列产品使用感受与避坑建议
运维·网络安全