Linux 基础
ssh连接至服务器
ssh -o ServerAliveInterval=300 -o ServerAliveCountMax=48 user@192.168.1.101
使用scp上传文件
scp "C:\Users\LSD\Downloads\harbor-offline-installer-v2.12.2.tgz" root@192.168.1.101:/usr/tmp/
磁盘分区
系统分区
划分 Linux 的分区大小可以根据实际需求和个人使用习惯来进行调整。一般而言,建议将 Linux 系统的分区划分为以下几个部分:
- 根分区(/):根分区是 Linux 系统的根目录,包含操作系统的所有文件和子目录。建议将根分区分配较大的空间,一般建议至少 20GB 以上,具体大小可以根据用户需求和系统的应用场景来确定。
- 交换分区(swap):交换分区通常用于暂时存储内存中未使用的数据,类似于 Windows 系统中的虚拟内存。一般情况下,交换分区的大小建议为物理内存的 1~2 倍。
- /home 分区:/home 分区用于存储用户的个人数据,包括文档、图片、音乐等。建议将较大的空间分配给 /home 分区,以满足用户存储个人文件的需求。
- /boot 分区:/boot 分区包含 Linux 内核和启动信息等,建议为其分配约 200MB 的空间。
- 其他分区:除了上述几个常见的分区外,根据实际需求还可以创建其他自定义的分区,比如用于存储数据、备份等。
默认分区
在 Linux 系统中,通常会将不同的目录放在不同的分区上,以实现更好的性能、安全性和管理。以下是一些常见的分区以及它们的用途:
- /:根分区,包含系统的所有文件和目录。
- /boot:用于存放启动相关的文件,如内核和引导加载程序。
- /var:用于存放可变数据,例如日志文件、软件包缓存、数据库文件等。
- /tmp:用于临时存储文件,系统重启时会清空其中的内容。
- /home:用户主目录分区,存放用户的个人文件和设置。
- /usr:用于存放用户(非系统管理员)可以访问的文件,如应用程序和共享库。
- /opt:用于安装非官方或第三方软件的目录。
- swap:交换分区,用于作为物理内存的补充,可以缓解内存不足时的性能问题。
在 Linux 系统中,这些分区并不直接属于根目录(/)下的目录,而是在磁盘上独立的分区。每个分区都可以单独挂载到文件系统中的不同目录,使得系统可以将数据存储在不同的逻辑空间中,以便更好地管理和保护数据。
当你挂载一个分区到系统中时,形成的文件系统会将该分区内的文件与目录与系统其他部分联系起来。所以,尽管这些分区包含了不同的目录结构和数据,它们仍既独立又与根目录(/)下的其他目录相关联,这使得系统可以更有效地进行存储和管理。
关机与重启
# 关机
init 0
#重启
init 6
reboot #这个也能重启
基础命令
最基础且最常用的任务之一。主要通过命令行工具实现:
查看磁盘使用情况 (Linux 系统)
- 使用 df 命令 (查看文件系统整体使用情况)
df -h
-h 参数以人类可读的方式显示大小 (G, M, K),非常实用。
输出解读:
- Filesystem: 磁盘分区或挂载的设备 (如 /dev/vda1, /dev/sdb1 等)。
- Size: 分区总容量。
- Used: 已使用的容量。
- Avail: 剩余可用容量。
- Use%: 已用容量占总容量的百分比。
- Mounted on: 分区挂载点 (最重要的挂载点通常是 /,即根目录)。
重点关注: Mounted on 为 / 的那一行,这是系统盘的主要使用情况。Use% 如果接近 100%,就需要清理了。
- 使用 du 命令 (查看指定目录/文件的磁盘使用详情):
- df 告诉你哪个分区满了,du 帮你找到是哪个目录/文件占用空间最大。
- 查看当前目录下各文件/目录的大小:
du -sh *- -s: 只显示总大小。
- -h: 以人类可读格式显示。
- *: 查看当前目录下所有项目的总大小。你也可以替换为具体路径,例如 du -sh /var/log/。
- 查找大文件/目录:
- 进入你怀疑占用空间大的目录(比如 /, /home, /var, /usr)。
- 按大小排序目录:
du -h --max-depth=1 | sort -h- --max-depth=1: 只显示当前目录下第一级子目录的大小。
- | sort -h: 使用 sort 命令的 -h 参数(需要较新的 Linux 发行版支持)将 du 的输出按人类可读的大小进行排序(从小到大)。如果想倒序(从大到小)可以加 -r 参数:sort -hr。
检查系统是否纯净
“系统纯净”的概念相对主观,但通常指检查主机是否安装了预期之外或可能有害的程序、服务、进程、用户账户等。以下是一些关键的检查点和方法:
- 检查运行进程 (ps & top):
- 查看所有进程 (ps):
ps aux- 仔细查看 COMMAND 列。寻找名称奇怪、可疑或非预期的进程。注意区分系统进程(如 systemd, sshd, rsyslogd)和你安装的服务进程(如 nginx, mysqld)。
- 动态监控进程 (top 或 htop):
top # 或者安装并使用更强大的 htop (需先安装:sudo yum install htop 或 sudo apt install htop) htop- 查看消耗 CPU 或内存异常高的进程。
- 检查监听的网络端口 (netstat 或 ss):
文件命令
删除文件
# 删除单个文件
rm filename.txt
# 删除多个文件
rm file1.txt file2.txt file3.txt
删除文件夹
# 删除文件夹(空文件夹)
rmdir folder_name
#删除文件夹(非空文件夹,包含所有子文件和子文件夹)
rm -r folder_name
# 强制删除(不提示确认)
rm -f file.txt # 强制删除文件
rm -rf folder_name # 强制递归删除文件夹
常用选项组合
-r:递归删除(用于文件夹)
-f:强制删除(不提示确认)
-i:交互式删除(每次删除前提示确认)
# 删除文件(会提示确认)
rm document.md
# 强制删除文件(不提示)
rm -f document.md
# 删除空文件夹
rmdir empty_folder
# 删除非空文件夹(会提示确认)
rm -r my_folder
# 强制删除非空文件夹(不提示确认)
rm -rf my_folder
# 删除多个特定类型的文件
rm *.log
移动和复制
- 移动文件常用选项
mv [选项] 源文件 目标文件- -i:交互模式,如果目标文件已存在,会询问是否覆盖。
- -f:强制模式,如果目标文件已存在,不询问直接覆盖。
- -n:不覆盖已存在的文件。
- -v:显示详细操作信息。
将文件移动到另一个目录:
mv nginx.conf /home/user/documents/
scp命令下载和上传
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/:服务器上的目标路径 示例:
# 上传到服务器的 /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/