【Linux】 基础指令(下) 一、Linux 常用基础命令1. date 指令系统时间操作作用查看、格式化系统日期时间也可修改系统时间需要 root 权限基础语法date [选项] [格式字符串]常用用法1.默认输出当前时间date # 输出示例Wed Jul 22 15:20:36 CST 20262.格式化输出最常用date %Y-%m-%d %H:%M:%S # %Y 4位年 %m月 %d日 %H小时 %M分钟 %S秒 date %Y%m%d # 20260722常用于日志文件名3.获取时间戳date %s # 输出10位Unix时间戳秒4.根据时间戳还原时间date -d 17847800005.修改系统时间rootdate -s 2026-07-22 15:30:00⚠️ 云服务器一般不建议手动修改时间推荐使用ntp同步网络时间。2. cal 指令日历查看作用显示日历cal # 显示当月日历 cal 2026 # 显示全年日历 cal 08 2026 # 显示指定年月日历 cal -3 # 显示上月、本月、下月3. find 指令文件查找功能极强作用在指定目录递归搜索文件按文件名、大小、时间、权限筛选基础模板find 搜索路径 [筛选条件] [动作]高频示例# 在当前目录查找名称包含test的文件 find . -name *test* # 查找所有后缀为.txt的文件大小写敏感 find /home -name *.txt # 忽略大小写 find /home -iname *.txt # 查找大于100M的文件 find / -size 100M # 查找小于10k find . -size -10k # 查找30天以内修改过的文件 find . -mtime -30 # 查找到文件后执行删除谨慎 find . -name *.log -delete区分find是实时磁盘扫描速度慢、结果最准确whereis/locate依靠数据库缓存。4. which 指令作用查找可执行程序所在路径从 PATH 环境变量搜寻which ls # 输出 /usr/bin/ls✅特点只找二进制可执行文件不会查找内置命令如 cdcd 是 shell 内置which 找不到5. whereis 指令作用查找命令对应的二进制程序、man 手册源码文件whereis ls # ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz对比 which /whereis命令查找范围which仅 PATH 内可执行程序whereis二进制 man 手册 源代码文件6. alias 指令命令别名作用给长命令设置简短别名简化输入# 临时生效当前终端关闭失效 alias llls -l --colorauto # 查看当前所有别名 alias # 删除别名 unalias ll持久生效把 alias 配置写入~/.bashrc执行source ~/.bashrc生效。 示例echo alias rmrm -i ~/.bashrc source ~/.bashrc7. grep 指令文本内容检索三剑客之一全称Global Regular Expression Print作用从文件 / 管道输出中匹配指定字符串、正则表达式常用参数# 在test.txt中查找包含error的行 grep error test.txt # -n 显示行号 grep -n error test.txt # -i 忽略大小写 grep -i error log.txt # -v 反向匹配查找不包含error的行 grep -v error log.txt # -r 递归搜索目录下所有文件 grep -r port /etc/ # 管道搭配使用高频查看进程 ps aux | grep mysql8. top系统进程监视器作用实时查看系统资源、进程 CPU / 内存占用Linux 任务管理器top进入 top 交互界面常用快捷键P按 CPU 使用率排序M按内存占用排序k输入 PID 杀死进程q退出 top拓展htop是美化版 top需要单独安装。9. zip /unzip 指令windows 兼容压缩格式压缩zip -r target.zip dir/ # -r 递归打包目录解压unzip target.zip # 指定解压目录 unzip target.zip -d /tmp/zip 优势跨 Windows、Linux 通用缺点不保留 Linux 文件权限。10. rzsz 文件传输Xshell、SecureCRT 终端工具适用场景SSH 远程终端无需搭建 ftp 实现本机 ↔ 服务器传文件# 服务器接收本地文件弹出窗口上传 rz # 服务器文件下载到本地 sz filename⚠️ 注意服务器需要先安装yum install lrzsz/apt install lrzsz云服务器部分网页终端不支持 rzsz推荐使用 sftp 替代。11. tar 指令【重中之重】Linux 最主流打包压缩工具可以打包、gzip/bzip2 压缩。参数记忆口诀ccreate 创建包xextract 解包vverbose 显示过程ffile 指定文件名f 必须放在最后zgzip 压缩.tar.gzjbzip2 压缩.tar.bz2高频模板# 打包并压缩gzip tar -zcvf test.tar.gz dirname/ # 解压tar.gz tar -zxvf test.tar.gz # 指定解压目录 tar -zxvf test.tar.gz -C /tmp # 只打包不压缩 tar -cvf test.tar dir/ # 查看压缩包内容不解压 tar -ztvf test.tar.gz常见坑参数顺序错误不能写tar -zfvcf必须紧邻文件名。12. bc 指令终端计算器支持浮点运算shell 脚本常用数学计算bc # 进入交互计算器 # 输入 scale3 保留3位小数 # shell一行运算示例 echo scale2; 10/3 | bc # 输出3.3313. uname -r 指令查看内核版本uname # 输出系统名称Linux uname -r # 查看内核版本例如5.15.0 uname -a # 完整系统信息内核、主机名、架构等使用场景安装驱动、软件时判断内核版本。14. Linux 核心终端热键Tab命令 / 文件名自动补全Linux 最高频快捷键按一次补全唯一匹配项连续按两次 Tab 列出所有候选Ctrl c终止当前正在运行的程序发送终止信号Ctrl d退出当前 shell等价 exit在输入交互程序中代表输入结束 EOF15. 关机、重启相关指令 ⚠️【服务器操作务必谨慎】1. shutdown推荐最规范优势会通知已登录用户、执行系统优雅收尾、同步磁盘数据优先推荐使用。 语法shutdown [选项] [时间] [通知消息]常用示例# 立刻关机 shutdown -h now # 10分钟后关机并广播提示所有在线用户 shutdown -h 10 服务器即将维护10分钟后关机 # 指定时刻关机23:00关机 shutdown -h 23:00 # 立刻重启 shutdown -r now # 取消已经调度的关机任务 shutdown -c-hhalt 停机断电-rreboot 重启2. halt / poweroffhalt # 停止系统不切断电源虚拟机常用 poweroff # 停止系统并断电3. rebootreboot # 直接重启机器4. init运行级别方式init 0 # 关机 init 6 # 重启小知识Linux 传统运行级别 0关机1单用户模式3字符多用户5图形界面6重启⚠️重要提醒云服务器远程执行关机后无法远程开机必须通过云厂商后台控制台启动。二、Shell 命令以及运行原理一、什么是 Shell1. 定义Shell 是运行在用户态的应用程序本质是命令行解释器。 作用充当 用户 ↔ Linux 内核 的中间桥梁。用户无法直接操作内核硬件用户输入文本指令Shell 接收、解析转化为系统调用交给 Linux 内核执行内核执行完成后将结果经由 Shell 反馈给用户。2. Shell 与内核、硬件层级关系用户 ↓输入命令 Shellbash/sh/zsh ↓发起系统调用 Linux Kernel内核 ↓驱动交互 计算机硬件CPU/磁盘/网卡/内存3. 常见 Shell 种类/bin/bashCentOS、Ubuntu 系统默认 Shell使用最广泛/bin/sh早期标准 shell很多系统中 sh 是 bash 的软链接/bin/zsh功能更强常用于开发机搭配 oh-my-zsh 查看当前使用的 Shellecho $SHELL二、Linux Shell 命令两大分类Linux 中所有 shell 命令分为内置命令、外部命令两者运行机制完全不同。 使用type 命令名可以区分。1. 内置命令Shell Builtin代码直接编译进 bash 程序内部不存在独立磁盘可执行文件。✅典型命令cd、pwd、alias、history、exit、read特点执行不需要创建子进程速度极快PATH 环境变量对内置命令无效which无法查到内置命令which 只搜索外部程序。type cd # 输出cd is a shell builtin2. 外部命令独立的二进制可执行程序存放在磁盘目录/bin、/usr/bin。✅典型命令ls、find、grep、tar、top特点执行时必须创建子进程运行Shell 依靠PATH环境变量搜索程序位置type ls # ls is aliased to ls --colorauto which ls # /usr/bin/ls三、一条外部命令完整运行流程核心重点以执行ls -l为例接收输入 用户在终端输入ls -l按下回车字符串传递给 bash 进程。Shell 语法解析 bash 对字符串预处理拆分命令参数、解析引号、通配符、管道|、重定向、判断别名。优先级别名 内置命令 PATH 外部命令命令类型判定 判断是否为别名 → 是否内置命令 → 去 PATH 路径查找外部程序。创建子进程fork 父 Shell 调用系统接口fork()生成一份一模一样的子进程。重点外部命令永远运行在子进程中程序替换exec 子进程调用execve()抛弃原本 bash 代码加载ls可执行程序子进程转变为 ls 进程。程序运行、回收资源 ls 执行完毕调用exit()退出父 Shell 通过wait()等待子进程结束回收子进程资源打印命令提示符等待下一次输入。关键结论为什么cd必须是内置命令如果 cd 是外部命令cd 会运行在子进程子进程修改工作目录父 shell 当前目录完全不受影响无法实现切换目录功能。四、PATH 环境变量原理执行外部命令时shell 不会全盘扫描磁盘而是遍历PATH内保存的目录依次寻找目标可执行文件。查看 PATHecho $PATH执行ls等价逻辑依次查找/usr/local/bin/ls→/usr/bin/ls…… 全部目录找不到时报错command not found。手动临时添加 PATH 示例export PATH$PATH:/home/user/mycmd五、拓展为什么管道 | 会创建多个进程例如ps aux | grep mysql管道左右两端命令都会各自创建独立子进程并行运行左边进程输出作为右边进程输入。这也是 Shell 多进程模型典型应用。六、面试高频总结Shell 命令解释器用户和内核中间层命令分为内置bash 内部不创建子进程、外部独立程序fork 子进程执行外部命令查找顺序别名 → 内置命令 → PATH 路径搜索fork 创建子进程 exec 替换程序是所有外部命令执行底层模型cd、exit 等必须做成内置命令依靠子进程无法修改父 shell 环境。