Linux 常用系统管理与文件操作命令
在Linux系统运维与日常操作中,date、history、scp、rsync等命令是高频实用工具,涵盖时间管理、命令追溯、文件传输、内存监控等核心场景。这些命令操作简洁、功能强大,既能满足基础操作需求,也能通过参数组合实现复杂运维任务,是Linux使用者必备的技能基础。本文将结合实操案例,详细拆解各命令的功能与用法。free命令是Linux系统内存监控的基础工具,通过其输出可快速掌握内存整体状态
前言
在Linux系统运维与日常操作中,date、history、scp、rsync等命令是高频实用工具,涵盖时间管理、命令追溯、文件传输、内存监控等核心场景。这些命令操作简洁、功能强大,既能满足基础操作需求,也能通过参数组合实现复杂运维任务,是Linux使用者必备的技能基础。本文将结合实操案例,详细拆解各命令的功能与用法。
一、date
1.1 date功能
date命令核心用于显示当前系统日期时间,支持自定义输出格式,也可手动设置系统时间,是时间管理与脚本编程中常用的基础命令。
1.2 date详细案例
- 显示当前系统默认格式时间:
输出示例:dateWed Aug 14 16:24:51 UTC 2025 - 自定义时间格式(年-月-日 时:分:秒):
输出示例:date "+%Y-%m-%d %H:%M:%S"2025-08-14 16:24:51 - 显示时间戳(从1970年1月1日至今的秒数):
输出示例:date +%s1692017091 - 手动设置系统日期(需root权限):
sudo date +%Y-%m-%d -s "2025-08-14" - 同时设置日期与时间:
sudo date -s "2025-08-14 16:30:00"
二、cal
2.1 cal功能
cal命令用于显示日历,支持查看当前月份、指定年月或全年日历,方便快速查询日期信息。
2.2 cal详细案例
- 显示当前月份日历:
输出示例(2025年8月):calAugust 2025 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 显示指定年月日历(2025年12月):
cal 12 2025 - 显示全年日历(2025年):
cal -y 2025
三、history(重点)
3.1 history功能
history命令用于查看当前用户的命令执行历史,默认保存1000条记录(可配置),支持过滤查询、重复执行历史命令等操作,是故障排查与操作追溯的重要工具。历史记录默认存储在~/.bash_history文件中。
3.2 history详细案例
- 查看所有命令历史:
history - 查看最近10条命令历史:
history 10 - 过滤包含指定关键字的历史命令(如查找mkdir相关命令):
history | grep "mkdir" - 执行指定编号的历史命令(执行编号为2的命令):
!2 - 快速重复执行上一条命令(4种方式):
!! # 方式1 !-1 # 方式2 上方向键 # 方式3 Ctrl+P # 方式4 - 显示命令执行时间戳(临时生效):
输出示例:export HISTTIMEFORMAT='%F %T' history | more1 2025-08-14 16:24:55 ls - 永久设置时间戳(写入全局配置文件):
echo 'export HISTTIMEFORMAT="%F %T"' >> /etc/profile source /etc/profile - 调整历史记录保存条数(永久生效):
echo 'export HISTSIZE=100000' >> /etc/profile echo 'export HISTFILESIZE=100000' >> /etc/profile source /etc/profile - 剔除连续重复的命令:
export HISTCONTROL=ignoredups - 清除所有命令历史:
history -c
四、scp
4.1 scp功能
scp(Secure Copy)命令基于SSH协议,用于本地与远程服务器之间安全复制文件/目录,数据传输过程加密,适用于跨主机文件同步场景,支持本地到远程、远程到本地的双向复制。
4.2 scp详细案例
- 本地文件复制到远程服务器:
示例:将本地scp /local/path/file.txt user@remote_ip:/remote/path//home/test.txt复制到192.168.10.20的/opt/目录scp /home/test.txt root@192.168.10.20:/opt/ - 本地目录复制到远程服务器(需加
-r参数递归复制):scp -r /local/dir/ user@remote_ip:/remote/dir/ - 远程文件复制到本地:
scp user@remote_ip:/remote/path/file.txt /local/destination/ - 远程目录复制到本地:
scp -r user@remote_ip:/remote/dir/ /local/dir/
五、rsync
5.1 rsync功能
rsync(Remote Sync)是一款高效的增量同步工具,支持本地复制、跨主机同步,能仅传输文件差异部分,减少带宽占用与传输时间。同时保留文件权限、属性等信息,支持压缩传输、排除指定文件等高级功能,适用于备份、镜像服务器等场景。
5.2 rsync详细案例
- 本地目录同步(保持文件属性,显示详细过程):
rsync -av /local/source/ /local/destination/ - 本地同步并删除目标目录中多余文件:
rsync -av --delete /local/source/ /local/destination/ - 远程同步(本地目录同步到远程服务器):
参数说明:rsync -avz /local/dir/ user@remote_ip:/remote/dir/-a(归档模式,保留属性)、-v(详细输出)、-z(压缩传输) - 远程同步(远程目录同步到本地):
rsync -avz user@remote_ip:/remote/dir/ /local/dir/ - 同步时排除指定类型文件(如排除所有.log文件):
rsync -avz --exclude="*.log" /local/dir/ user@remote_ip:/remote/dir/ - 快速删除大量文件(利用空目录替换原理):
mkdir /tmp/blank rsync --delete-before -a -H -v --progress /tmp/blank/ /path/to/delete/
六、ssh
6.1 ssh功能
ssh(Secure Shell)命令用于通过加密连接远程登录Linux主机,替代不安全的telnet协议,支持远程执行命令、端口转发等功能,是远程管理Linux服务器的核心工具,默认端口为22。
6.2 ssh详细案例
- 基本远程登录(默认端口22):
示例:登录192.168.10.20的root用户ssh user@remote_ipssh root@192.168.10.20 - 指定端口登录(如远程服务器端口为2222):
ssh -p 2222 user@remote_ip - 远程执行单个命令(如查看远程服务器内存使用情况):
ssh user@remote_ip "free -h" - 远程执行多条命令(用分号分隔):
ssh user@remote_ip "cd /opt; ls -l"
6.2.1 主机名映射
为避免重复输入IP,可配置主机名映射:
- 编辑
/etc/hosts文件:vim /etc/hosts - 添加映射关系(IP与自定义主机名):
192.168.10.20 server01 - 保存后即可通过主机名登录:
ssh root@server01
6.3 可能遇到的问题
6.3.1 ssh: connect to host 192.168.10.123 port 2222: Connection refused
解决方案:
- 检查远程服务器是否开启sshd服务:
未启动则执行:systemctl status sshdsystemctl start sshd - 验证端口是否正确(查看sshd配置文件):
确认vim /etc/ssh/sshd_configPort字段值(默认22) - 检查防火墙是否放行对应端口(以端口2222为例):
firewall-cmd --permanent --add-port=2222/tcp firewall-cmd --reload - 确保远程服务器IP可达(ping测试):
ping 192.168.10.123
6.3.2 补充:关闭SELinux方法
SELinux可能影响ssh连接,临时关闭:
setenforce 0
永久关闭(需重启生效):
vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled,保存后重启系统。
七、nohup
7.1 nohup功能
nohup(no hang up)命令用于让进程在后台持续运行,即使关闭终端也不受影响。默认将命令输出重定向到nohup.out文件,避免进程因终端断开而终止。
7.2 nohup详细案例
- 后台运行脚本(如Python脚本):
nohup python script.py & - 后台运行脚本并指定输出文件:
说明:nohup python script.py > output.log 2>&1 &2>&1表示将错误输出重定向到标准输出 - 查看后台进程输出:
tail -f nohup.out - 终止后台运行的nohup进程(先查PID,再终止):
ps -ef | grep "script.py" kill -9 进程PID
八、reboot
8.1 reboot功能
reboot命令用于重启Linux系统,支持立即重启、延迟重启等操作,需root权限执行,适用于系统更新后生效配置等场景。
8.2 reboot详细案例
- 立即重启系统:
sudo reboot - 延迟5分钟重启:
sudo reboot +5 - 重启并发送提示信息给所有登录用户:
sudo reboot "系统将在5分钟后重启,请保存工作!" - 取消延迟重启:
sudo shutdown -c
九、shutdown
9.1 shutdown功能
shutdown命令用于关闭或重启系统,支持立即操作、延迟操作,可发送提示信息给所有用户,相比reboot功能更灵活,是安全关闭系统的推荐工具。
9.2 shutdown详细案例
- 立即关闭系统:
sudo shutdown -h now - 延迟10分钟关闭系统:
sudo shutdown -h +10 - 立即重启系统(等同于reboot):
sudo shutdown -r now - 定时关闭系统(23:30关闭):
sudo shutdown -h 23:30 - 发送关闭提示信息:
sudo shutdown -h +10 "系统将在10分钟后关闭,请及时保存数据!" - 取消已计划的关机/重启操作:
sudo shutdown -c
十、free命令(重点)
10.1 free命令功能
free命令用于显示系统内存使用状态,包括物理内存(RAM)、交换空间(Swap)、内核缓冲区等信息,支持以人类可读格式输出,是监控系统内存负载的核心工具。
10.2 free基本命令格式
free [选项]
常用选项:
-h:人类可读格式(自动适配KB/MB/GB单位)-m:以MB为单位显示-g:以GB为单位显示-t:显示内存总用量(物理内存+交换空间)-s 秒数:周期性刷新显示(如每5秒刷新)-l:显示低内存与高内存详细信息
10.3 free基本用法
- 人类可读格式显示内存状态:
free -h - 以MB为单位显示:
free -m - 每5秒刷新一次内存状态(按Ctrl+C终止):
free -s 5 - 显示内存总用量:
free -t
10.4 free输出字段解释
以free -h输出为例:
total used free shared buff/cache available
Mem: 15Gi 4.2Gi 8.1Gi 345Mi 4.1Gi 11Gi
Swap: 8.0Gi 0B 8.0Gi
total:总内存容量(物理内存/交换空间)used:已使用内存(包括应用程序、缓存、共享内存等)free:完全空闲的内存shared:多个进程共享的内存空间buff/cache:内核缓冲区(buff)和页缓存(cache)占用的内存,可被系统回收available:系统实际可用内存(空闲内存+可回收缓存)Swap:交换空间(虚拟内存),物理内存不足时会使用磁盘空间
10.5 free典型应用场景
- 快速检查系统内存是否充足:通过
available字段判断,若数值过低可能导致应用卡顿 - 监控交换空间使用:若
Swap used持续偏高,说明物理内存不足,需优化应用或增加内存 - 分析缓存占用:
buff/cache过高是正常现象,系统会自动利用空闲内存加速文件访问 - 排查内存泄漏:若
used内存持续增长且available不断减少,可能存在内存泄漏问题
10.6 free高级技巧
- 实时监控内存使用趋势(结合watch命令):
watch -n 1 free -h - 自定义输出字段(如仅显示总内存、已用内存、可用内存):
free -o -h --columns total,used,available - 将内存使用情况输出到文件(用于后续分析):
free -h >> /tmp/memory_logs.txt
10.7 free总结
free命令是Linux系统内存监控的基础工具,通过其输出可快速掌握内存整体状态。核心关注available(实际可用内存)和Swap used(交换空间使用)两个字段,结合-h选项可简化阅读,适合日常运维快速排查内存问题,也可通过周期性刷新实现长期监控。
总结
本文涵盖了Linux系统中10类常用命令,从时间管理(date、cal)、命令追溯(history)、文件传输(scp、rsync)、远程管理(ssh),到进程后台运行(nohup)、系统启停(reboot、shutdown)、内存监控(free),基本覆盖了日常操作与运维的核心场景。
这些命令的核心优势在于“简洁高效”,通过参数组合可实现复杂需求(如rsync增量备份、history命令追溯、free实时监控)。实际使用中,建议结合场景灵活运用参数,同时注意权限要求(如shutdown、reboot需root权限),避免误操作导致数据丢失或系统异常。
熟练掌握这些命令,能显著提升Linux操作效率,为系统运维、脚本编程、故障排查等工作打下坚实基础。
更多推荐


所有评论(0)