Skip to content

Linux 基础

Linux 是服务器端的首选操作系统。

ssh连接至服务器

shell
ssh -o ServerAliveInterval=300 -o ServerAliveCountMax=48 user@192.168.1.101

使用scp上传文件

shell
scp "C:\Users\LSD\Downloads\harbor-offline-installer-v2.12.2.tgz" root@192.168.1.101:/usr/tmp/

磁盘分区

系统分区

划分 Linux 的分区大小可以根据实际需求和个人使用习惯来进行调整。一般而言,建议将 Linux 系统的分区划分为以下几个部分:

  1. 根分区(/):根分区是 Linux 系统的根目录,包含操作系统的所有文件和子目录。建议将根分区分配较大的空间,一般建议至少 20GB 以上,具体大小可以根据用户需求和系统的应用场景来确定。
  2. 交换分区(swap):交换分区通常用于暂时存储内存中未使用的数据,类似于 Windows 系统中的虚拟内存。一般情况下,交换分区的大小建议为物理内存的 1~2 倍。
  3. /home 分区:/home 分区用于存储用户的个人数据,包括文档、图片、音乐等。建议将较大的空间分配给 /home 分区,以满足用户存储个人文件的需求。
  4. /boot 分区:/boot 分区包含 Linux 内核和启动信息等,建议为其分配约 200MB 的空间。
  5. 其他分区:除了上述几个常见的分区外,根据实际需求还可以创建其他自定义的分区,比如用于存储数据、备份等。

默认分区

在 Linux 系统中,通常会将不同的目录放在不同的分区上,以实现更好的性能、安全性和管理。以下是一些常见的分区以及它们的用途:

  1. /:根分区,包含系统的所有文件和目录。
  2. /boot:用于存放启动相关的文件,如内核和引导加载程序。
  3. /var:用于存放可变数据,例如日志文件、软件包缓存、数据库文件等。
  4. /tmp:用于临时存储文件,系统重启时会清空其中的内容。
  5. /home:用户主目录分区,存放用户的个人文件和设置。
  6. /usr:用于存放用户(非系统管理员)可以访问的文件,如应用程序和共享库。
  7. /opt:用于安装非官方或第三方软件的目录。
  8. swap:交换分区,用于作为物理内存的补充,可以缓解内存不足时的性能问题。

在 Linux 系统中,这些分区并不直接属于根目录(/)下的目录,而是在磁盘上独立的分区。每个分区都可以单独挂载到文件系统中的不同目录,使得系统可以将数据存储在不同的逻辑空间中,以便更好地管理和保护数据。

当你挂载一个分区到系统中时,形成的文件系统会将该分区内的文件与目录与系统其他部分联系起来。所以,尽管这些分区包含了不同的目录结构和数据,它们仍既独立又与根目录(/)下的其他目录相关联,这使得系统可以更有效地进行存储和管理。

关机与重启

shell
# 关机
init 0

#重启
init 6

reboot  #这个也能重启

基础命令

最基础且最常用的任务之一。主要通过命令行工具实现:

查看磁盘使用情况 (Linux 系统)

  1. 使用 df 命令 (查看文件系统整体使用情况)
bash
df -h
  • -h 参数以人类可读的方式显示大小 (G, M, K),非常实用。

  • 输出解读:

    • Filesystem: 磁盘分区或挂载的设备 (如 /dev/vda1, /dev/sdb1 等)。
    • Size: 分区总容量。
    • Used: 已使用的容量。
    • Avail: 剩余可用容量。
    • Use%: 已用容量占总容量的百分比。
    • Mounted on: 分区挂载点 (最重要的挂载点通常是 /,即根目录)。
  • 重点关注: Mounted on 为 / 的那一行,这是系统盘的主要使用情况。Use% 如果接近 100%,就需要清理了。

  1. 使用 du 命令 (查看指定目录/文件的磁盘使用详情):
  • df 告诉你哪个分区满了,du 帮你找到是哪个目录/文件占用空间最大。
    • 查看当前目录下各文件/目录的大小:
    bash
       du -sh *
    • -s: 只显示总大小。
    • -h: 以人类可读格式显示。
    • *: 查看当前目录下所有项目的总大小。你也可以替换为具体路径,例如 du -sh /var/log/。
  • 查找大文件/目录:
    • 进入你怀疑占用空间大的目录(比如 /, /home, /var, /usr)。
    • 按大小排序目录:
    bash
     du -h --max-depth=1 | sort -h
    • --max-depth=1: 只显示当前目录下第一级子目录的大小。
    • | sort -h: 使用 sort 命令的 -h 参数(需要较新的 Linux 发行版支持)将 du 的输出按人类可读的大小进行排序(从小到大)。如果想倒序(从大到小)可以加 -r 参数:sort -hr。

检查系统是否纯净

“系统纯净”的概念相对主观,但通常指检查主机是否安装了预期之外或可能有害的程序、服务、进程、用户账户等。以下是一些关键的检查点和方法:

  1. 检查运行进程 (ps & top):
  • 查看所有进程 (ps):
    bash
      ps aux
    • 仔细查看 COMMAND 列。寻找名称奇怪、可疑或非预期的进程。注意区分系统进程(如 systemd, sshd, rsyslogd)和你安装的服务进程(如 nginx, mysqld)。
  • 动态监控进程 (top 或 htop):
    bash
    top  # 或者安装并使用更强大的 htop (需先安装:sudo yum install htop 或 sudo apt install htop)
    htop
    • 查看消耗 CPU 或内存异常高的进程。
  1. 检查监听的网络端口 (netstat 或 ss):

文件命令

删除文件

shell
# 删除单个文件
rm filename.txt

# 删除多个文件
rm file1.txt file2.txt file3.txt

删除文件夹

shell
# 删除文件夹(空文件夹)
rmdir folder_name

#删除文件夹(非空文件夹,包含所有子文件和子文件夹)
rm -r folder_name

# 强制删除(不提示确认)
rm -f file.txt          # 强制删除文件
rm -rf folder_name      # 强制递归删除文件夹

常用选项组合

  • -r:递归删除(用于文件夹)

  • -f:强制删除(不提示确认)

  • -i:交互式删除(每次删除前提示确认)

shell
# 删除文件(会提示确认)
rm document.md

# 强制删除文件(不提示)
rm -f document.md

# 删除空文件夹
rmdir empty_folder

# 删除非空文件夹(会提示确认)
rm -r my_folder

# 强制删除非空文件夹(不提示确认)
rm -rf my_folder

# 删除多个特定类型的文件
rm *.log

移动和复制

  • 移动文件
    shell
    mv [选项] 源文件 目标文件
    常用选项
    • -i:交互模式,如果目标文件已存在,会询问是否覆盖。
    • -f:强制模式,如果目标文件已存在,不询问直接覆盖。
    • -n:不覆盖已存在的文件。
    • -v:显示详细操作信息。

将文件移动到另一个目录:

bash
    mv nginx.conf /home/user/documents/

scp命令下载和上传

shell
scp -r ./* username@server_ip:/path/to/destination/

# 使用 *通配符
scp -r * username@server_ip:/path/to/destination/

# 明确指定当前目录
scp -r . username@server_ip:/path/to/destination/

参数说明:

  • -r:递归复制整个目录(包括子目录和文件)

  • username:服务器的用户名

  • server_ip:服务器的 IP 地址或域名

  • /path/to/destination/:服务器上的目标路径 示例:

shell
# 上传到服务器的 /home/user/data 目录
scp -r ./* user@192.168.1.100:/home/user/data/

# 上传到服务器的当前用户的家目录
scp -r * user@example.com:~/

# 使用特定端口(如 2222)
scp -r -P 2222 . user@server_ip:/path/to/destination/

常用命令分类

系统自带(安装即用)

分类命令说明
文件操作ls cd pwd cp mv rm mkdir touch基础的目录浏览与文件操作
文本查看cat less more head tail nl查看文件内容
文本处理grep sort uniq wc cut tr diff搜索、排序、统计、比较
权限管理chmod chown chgrp umask文件权限与属主
进程管理ps top kill killall nohup jobs fg bg查看和管控进程
磁盘管理df du fdisk mount umount lsblk磁盘分区、挂载、空间查看
网络工具ping curl wget ss ip hostname网络连通性测试与信息查看
压缩归档tar gzip gunzip bzip2 xz zcat文件打包与压缩
查找文件find locate which whereis定位文件或命令所在路径
用户管理useradd usermod passwd who id last查看和管理用户
系统信息uname -a lscpu free -h uptime dmesgCPU、内存、内核等信息
文本编辑vi/vim nano命令行文本编辑器

需额外安装(包管理器安装)

这些工具系统不自带,但日常运维中非常有用:

工具安装命令作用
htopapt install htop / yum install htop更友好的进程监控(彩色、可滚动)
ncduapt install ncdu交互式磁盘空间分析
tmuxapt install tmux / yum install tmux终端复用器,保持会话不中断
screenapt install screen另一个终端复用器,系统通常自带
treeapt install tree以树形结构显示目录
rsyncapt install rsync高效的文件同步和传输
jqapt install jq命令行 JSON 解析器
unzip/zipapt install zip unzip解压/压缩 zip 文件
lsofapt install lsof查看进程打开的文件/端口(部分系统自带)
straceapt install strace跟踪系统调用,排查程序行为
tcpdumpapt install tcpdump命令行抓包分析
iotopapt install iotop监控磁盘 I/O
netstatapt install net-tools传统网络统计工具(较新系统已换用 ss
gitapt install git / yum install git版本控制,运维必备
mtrapt install mtr网络路径探测(ping + traceroute 结合)

提示:CentOS/RHEL 用 yumdnf,Ubuntu/Debian 用 apt,Alpine 用 apk,openSUSE 用 zypper

蜀ICP备2025150039号