
一、Linux 常用基础命令
1. date 指令(系统时间操作)
作用:查看、格式化系统日期时间,也可修改系统时间(需要 root 权限)
基础语法
date [选项] [+格式字符串]
常用用法
1.默认输出当前时间
date
# 输出示例:Wed Jul 22 15:20:36 CST 2026
2.格式化输出(最常用)
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 @1784780000
5.修改系统时间(root)
date -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
✅ 特点:
- 只找二进制可执行文件
- 不会查找内置命令(如 cd,cd 是 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 ll='ls -l –color=auto'
# 查看当前所有别名
alias
# 删除别名
unalias ll
持久生效:把 alias 配置写入 ~/.bashrc,执行 source ~/.bashrc 生效。 示例:
echo "alias rm='rm -i'" >> ~/.bashrc
source ~/.bashrc
7. 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 mysql
8. 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
⚠️ 注意:
11. tar 指令【重中之重】
Linux 最主流打包压缩工具,可以打包、gzip/bzip2 压缩。
参数记忆口诀
- c create 创建包
- x extract 解包
- v verbose 显示过程
- f file 指定文件名(f 必须放在最后)
- z gzip 压缩(.tar.gz)
- j bzip2 压缩(.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 -zfvc,f必须紧邻文件名。
12. bc 指令(终端计算器)
支持浮点运算,shell 脚本常用数学计算
bc
# 进入交互计算器
# 输入 scale=3 保留3位小数
# shell一行运算示例
echo "scale=2; 10/3" | bc
# 输出3.33
13. uname -r 指令(查看内核版本)
uname # 输出系统名称Linux
uname -r # 查看内核版本,例如5.15.0
uname -a # 完整系统信息(内核、主机名、架构等)
使用场景:安装驱动、软件时判断内核版本。
14. Linux 核心终端热键
- 按一次补全唯一匹配项
- 连续按两次 Tab 列出所有候选
- 退出当前 shell(等价 exit)
- 在输入交互程序中代表输入结束 EOF
15. 关机、重启相关指令 ⚠️【服务器操作务必谨慎】
1. shutdown(推荐,最规范)
优势:会通知已登录用户、执行系统优雅收尾、同步磁盘数据,优先推荐使用。 语法:
shutdown [选项] [时间] [通知消息]
常用示例:
# 立刻关机
shutdown -h now
# 10分钟后关机,并广播提示所有在线用户
shutdown -h +10 "服务器即将维护,10分钟后关机"
# 指定时刻关机(23:00关机)
shutdown -h 23:00
# 立刻重启
shutdown -r now
# 取消已经调度的关机任务
shutdown -c
- -h:halt 停机断电
- -r:reboot 重启
2. halt / poweroff
halt # 停止系统,不切断电源(虚拟机常用)
poweroff # 停止系统并断电
3. reboot
reboot # 直接重启机器
4. init(运行级别方式)
init 0 # 关机
init 6 # 重启
💡 小知识:Linux 传统运行级别 0:关机;1:单用户模式;3:字符多用户;5:图形界面;6:重启
⚠️ 重要提醒:云服务器远程执行关机后,无法远程开机!必须通过云厂商后台控制台启动。
二、Shell 命令以及运行原理
一、什么是 Shell
1. 定义
Shell 是运行在用户态的应用程序,本质是命令行解释器。 作用:充当 用户 ↔ Linux 内核 的中间桥梁。
- 用户无法直接操作内核硬件;
- 用户输入文本指令,Shell 接收、解析,转化为系统调用,交给 Linux 内核执行;
- 内核执行完成后,将结果经由 Shell 反馈给用户。
2. Shell 与内核、硬件层级关系
用户
↓(输入命令)
Shell(bash/sh/zsh)
↓(发起系统调用)
Linux Kernel(内核)
↓(驱动交互)
计算机硬件(CPU/磁盘/网卡/内存)
3. 常见 Shell 种类
- /bin/bash:CentOS、Ubuntu 系统默认 Shell(使用最广泛)
- /bin/sh:早期标准 shell,很多系统中 sh 是 bash 的软链接
- /bin/zsh:功能更强,常用于开发机(搭配 oh-my-zsh) 查看当前使用的 Shell:
echo $SHELL
二、Linux Shell 命令两大分类
Linux 中所有 shell 命令分为:内置命令、外部命令,两者运行机制完全不同。 使用 type 命令名 可以区分。
1. 内置命令(Shell Builtin)
代码直接编译进 bash 程序内部,不存在独立磁盘可执行文件。
✅ 典型命令:cd、pwd、alias、history、exit、read 特点:
type cd
# 输出:cd is a shell builtin
2. 外部命令
独立的二进制可执行程序,存放在磁盘目录(/bin、/usr/bin)。
✅ 典型命令:ls、find、grep、tar、top 特点:
type ls
# ls is aliased to `ls –color=auto'
which ls
# /usr/bin/ls
三、一条外部命令完整运行流程(核心重点)
以执行 ls -l 为例:
优先级:别名 > 内置命令 > PATH 外部命令
💡重点:外部命令永远运行在子进程中
关键结论:为什么 cd 必须是内置命令?
如果 cd 是外部命令,cd 会运行在子进程;子进程修改工作目录,父 shell 当前目录完全不受影响,无法实现切换目录功能。
四、PATH 环境变量原理
执行外部命令时,shell 不会全盘扫描磁盘,而是遍历PATH内保存的目录,依次寻找目标可执行文件。
查看 PATH:
echo $PATH
执行 ls 等价逻辑:依次查找 /usr/local/bin/ls → /usr/bin/ls …… 全部目录找不到时,报错 command not found。
手动临时添加 PATH 示例:
export PATH=$PATH:/home/user/mycmd
五、拓展:为什么管道 | 会创建多个进程
例如:ps aux | grep mysql 管道左右两端命令,都会各自创建独立子进程并行运行,左边进程输出作为右边进程输入。这也是 Shell 多进程模型典型应用。
六、面试高频总结



