当前位置: 首页 > news >正文

操作系统命令:Linux与Shell(Operating System Command Line, OS/CLI)目录导航、文件操作与日志查看命令实践

操作系统命令:Linux与Shell(Operating System & Command Line, OS/CLI)目录导航、文件操作与日志查看命令实践

摘要

掌握常用Shell命令是高效使用Linux的核心能力。本文系统梳理 pwd / ls / cd / cp / mv / rm / mkdir / mount|umount / touch / vi|vim / cat / more / tail / head / diff / echo / gedit 等基础命令,配合逐行注释的可直接执行示例、术语表与流程图,帮助你在日常开发与运维中快速定位问题与稳定复现操作。

概述

Shell是命令行解释器(Command-Line Interpreter, CLI),用于与内核交互并驱动系统工具执行。命令既有状态返回码(0=成功,非0=失败)也有标准输出/错误输出的行为区别;理解这些基本规则,有助于在脚本与终端中做出可预测、可恢复的操作决策。常见名词示意如下表:

名称英文全拼(缩写)说明
操作系统Operating System(OS)资源管理与程序调度的基础软件
命令行界面Command Line Interface(CLI)通过文本命令与系统交互的方式
图形用户界面Graphical User Interface(GUI)通过窗口与控件与系统交互
网络文件系统Network File System(NFS)使远端目录像本地盘一样挂载访问
统一DiffUnified Diff(无缩写)diff -u 的标准补丁格式

结论先行:把“路径语义、权限模型、I/O重定向、退出码”四件事吃透,你的Linux操作将更快更稳


一、命令速查与场景映射

目标首选命令常用选项/补充
查看当前位置pwd-L(逻辑路径,默认)、-P(物理路径)
列目录与属性ls-l/-a/-h/-R/-t/-S--color=auto
切换目录cd绝对/相对路径、~..--P 物理
复制cp文件:直接;目录:-r;保留属性:-a;更新:-u
移动/重命名mv覆盖互斥:-i/-f/-n-t 指定目标目录
删除rm文件:直删;目录:-r;强制:-f;组合:-rf
建目录mkdir递归父目录:-p;权限:-m MODE
挂载/卸载mount / umountISO:-o loop;NFS:-t nfs
时间戳或空文件touch-c 不创建、-t/-d 指定时间、-r 引用
文本编辑vi/vim:wq / :q! / :set number
显示/拼接cat-n/-A/-s;与管道联动
分页查看more-d/+NUM/管道
尾部追踪tail-n/-f/-F
头部预览head-n/-c
差异比较diff-u/-y/-r/-w
打印文本echo-n/-e/-E;重定向 > >>
GUI编辑gedit--new-window / --wait

二、目录定位与查看

1.1 pwd:打印工作目录

在脚本中经常需要“锁定现场”,尤其是涉及相对路径时。

pwd               # 打印当前工作目录(逻辑路径,默认等同 -L)
pwd -P            # 打印“物理路径”,不解析符号链接
echo $?           # 打印上一条命令的退出状态码(0=成功,非0=失败)

-P 能规避符号链接带来的路径混淆,有利于排查真实目录位置

1.2 ls:列出文件与属性

先观察再操作,能明显降低误删与误覆盖的概率

ls -lah           # 以长格式、含隐藏项、可读单位显示当前目录内容
ls -lt            # 按修改时间倒序列出(最新在前)
ls -R /etc        # 递归列出 /etc 下的层级与文件

-l/-a/-h 是通用三件套,-t/-S 让你按时间或大小快速定位目标


三、目录切换与路径规则

2.1 cd:绝对/相对/快捷定位

路径的三种前缀决定解析起点/=根、~=家目录、相对路径=当前工作目录。

cd /etc           # 切到绝对路径 /etc
cd -              # 切回“上一次所在目录”
cd ../..          # 向上两级
cd ~/Documents    # 切到家目录下的 Documents

相对路径更短,绝对路径更稳,按场景取舍

路径前缀对比

前缀含义示例(假设当前 /home/admin,家目录 /home/admin
/绝对路径/var/log/syslog
~家目录~/work/home/admin/work
./当前目录./run.sh
..父目录../assets

四、文件与目录的复制/移动/删除

3.1 cp:复制(文件/目录)

复制目录必须带递归;要保留属性请选择归档模式

cp file.txt /tmp/          # 复制文件到 /tmp
cp -r src/ dst/            # 递归复制目录 src 到 dst(dst 不存在会新建)
cp -a app/ /opt/app.bak/   # 归档复制,保留权限/时间/链接等属性

-a 等同 -dR --preserve=all,是做备份时的首选

3.2 mv:移动/重命名

一次动作同时承担“移动”和“改名”

mv old.txt new.txt         # 同目录重命名
mv -i *.log /var/log/      # 交互式移动,存在同名目标时询问
mv -n report.csv /tmp/     # 目标存在则“不覆盖”

-i/-f/-n 是互斥语义,最后出现的那个生效

3.3 rm:删除(慎用)

删除不可逆,先 lsrm 是好习惯

rm -i file.txt             # 交互式删除,逐一确认
rm -r old_data/            # 递归删除目录(可能大量文件)
rm -rf cache/              # 强制+递归,无提示删除(谨慎)

在生产环境避免滥用 -rf,可通过权限/白名单降低风险


五、目录创建与层级管理

4.1 mkdir:一次性创建多级目录

创建树状目录请使用 -p,可避免“父目录不存在”的报错

mkdir -p /data/apps/demo/logs   # 递归创建多级目录
mkdir -m 750 private            # 指定权限创建目录(rwx=7, rx=5, x=1)

-p-m 结合,既稳又安全


六、挂载与卸载:本地/ISO/网络

把“外部文件系统”映射到本地目录称为挂载(mount),断开映射称为卸载(umount)

块设备/镜像/网络共享
mount 挂载到目录
读写像本地目录
umount 卸载

5.1 本地分区与ISO

sudo mount /dev/sdb1 /mnt/usb      # 将U盘分区挂载到 /mnt/usb
sudo mount -o loop ubuntu.iso /mnt/iso  # 用loop把ISO当块设备挂载
sudo umount /mnt/usb               # 卸载挂载点

挂载点必须是“已存在且为空”的目录,否则会混淆文件视图

5.2 NFS(Network File System, NFS)

sudo mount -t nfs server:/data /mnt/nfs   # 以NFS类型挂载远端共享
sudo umount /mnt/nfs                      # 使用完毕及时卸载

日志/数据共享常用NFS,注意网络与权限策略


七、时间戳与空文件

6.1 touch:创建或更新时间

touch 是脚本初始化与构造测试文件的利器

touch demo.log                     # 不存在则创建空文件,存在则更新时间戳
touch -t 202507161200.30 stamp     # 指定时间戳:2025-07-16 12:00:30
touch -c -t 202501010000 report    # 不创建,仅在存在时更新时间戳

-t-c 组合可“只调时,不建文件”


八、文本编辑器与终端编辑工作流

7.1 vi/vim(Visual Editor / Vi IMproved)

vim 以“模式化编辑”著称:普通/插入/可视/命令行四种模式切换自如

vim +20 /etc/hosts                # 打开并跳到第20行
# 在 vim 内:i 插入;Esc 返回普通;:wq 保存退出;:q! 强退不保存

掌握 i/Esc/:wq/:q!/pattern 搜索,你已能完成90%的日常编辑

7.2 gedit(GUI编辑)

在桌面环境下,gedit 是轻量易上手的GUI编辑器

gedit config.ini &                 # 后台打开文件,不阻塞当前终端
gedit --wait README.md            # 等待编辑完成后再返回(适合脚本)

--wait 便于脚本化:编辑→保存→继续流水线


九、查看/分页/截取与日志追踪

8.1 cat:显示与拼接

cat -n app.log                     # 带行号查看
cat a.txt b.txt > all.txt          # 拼接并重定向到新文件

小文件直看,长文件配合分页器更友好

8.2 more:分页

ls -l /var/log | more -d           # 长列表分页查看,底部显示按键提示

空格翻页、回车前进一行、q 退出

8.3 tail / head:尾部追踪与头部预览

tail -F /var/log/nginx/access.log  # 追踪日志轮换后的新文件
head -n 20 README.md               # 预览前20行

-F-f 更适配“日志切割”,可自动重新打开新文件


十、差异比较与补丁格式

9.1 diff:从“对比”到“补丁”

diff -u before.conf after.conf > patch.diff   # 生成统一diff补丁
diff -y file1 file2 --width=120               # 并排对比,直观看差异

-u 是代码评审与补丁提交的事实标准


十一、输出文本与重定向

10.1 echo:打印与构造文本

echo -e "Line1\nLine2\tTabbed"    # 解析转义:换行与制表
echo "Hello" > hello.txt          # 覆盖写入
echo "World" >> hello.txt         # 追加写入

>>> 分别对应覆盖与追加,脚本里要留心幂等性


十二、实战串联:从创建到查看到清理

把上面命令连成一次“可复现”的小流程,更能加深记忆

mkdir -p /tmp/demo/logs            # 1) 创建演示目录树
echo "hello" > /tmp/demo/a.txt     # 2) 生成内容文件(覆盖写入)
cp -a /tmp/demo /tmp/demo.bak      # 3) 做一次属性保留的归档拷贝
ls -lah /tmp/demo                  # 4) 检查结果(长格式+隐藏项+可读单位)
diff -u /tmp/demo /tmp/demo.bak    # 5) 期望无差异(备份一致)
tail -n 1 /tmp/demo/a.txt          # 6) 查看文件尾部一行
rm -rf /tmp/demo /tmp/demo.bak     # 7) 清理演示目录(谨慎使用 -rf)

流程化把控“创建→校验→比较→清理”,能让你的日常操作既规范又可回滚


结论或总结

在Linux中,高质量的日常操作来自“路径与权限的准确理解、命令选项的少而精、以及对退出码与重定向的敏感”。围绕本文的命令族,你可以完成从“定位目录→浏览与编辑→复制/移动/删除→挂载与追踪→对比与产出补丁”的完整闭环。把示例命令直接融入你的常用脚本与速查清单,你的平均定位与处理时间会显著下降

http://www.dtcms.com/a/445844.html

相关文章:

  • 北海建设工程信息网站自助提卡网站怎么做
  • 【QT】概述补充——对象树
  • 一套完整的前端“白屏”问题分析与解决方案(性能优化)
  • fd 工具指南:find 的现代替代品
  • 珠海做网站最好的公司有哪些做恐怖网站
  • 国庆训练题题解10.5
  • CLion实现ini 解析器设计与实现
  • python全栈(基础篇)——day04:后端内容(字符编码+list与tuple+条件判断+实战演示+每日一题)
  • 广州网站建设功能洛阳霞光企业网站建设公司
  • list 与 forward_list:一场 STL 中的“链表哲学”之争
  • Vue 学习与实践大纲(后端视角)
  • 2025时序数据库选型,从架构基因到AI赋能来解析
  • 三合一网站平台做网站 如何注册公司
  • 中山今科网站建设德州百度推广公司
  • Rust 与 传统语言:现代系统编程的深度对比
  • STM32--智能小车
  • Rust 登堂 之 Cell 和 RefCell(十二)
  • 分布式追踪系统实战:OpenTelemetry集成Istio实现全链路故障定位
  • 不同光谱的工业相机有哪些?能做什么?
  • 计算机网络——数据链路层笔记整理
  • CSS高效开发三大方向
  • 网站开发中的开版什么意思宁波汽车网站建设
  • dot1q termination vid vlan-id 概念及题目
  • 在越南做一个网站怎么做百度ai开放平台
  • IEEE Transactions 风格补充材料(Word)快速排版教程
  • php 8.4.11 更新日志
  • 二分查找_优选算法(C++)二分查找算法
  • 安卓设备分区作用详解-测试机红米K40
  • 网站开发进度计划是什么长沙游戏推广
  • AI与敏捷开发管理系列4:双向赋能——AI技术如何优化敏捷实践