
前言:承接上篇,继续进阶
大家好!我是你们的小小风呀,欢迎来到《从零开始学习 Linux》专题的第二篇博客!
在上一篇文章中,我们一起学习了:
-
✅ 如何使用 Xshell 连接腾讯云服务器
-
✅ 最基础的三个指令:
ls、cd、pwd -
✅ Linux 的目录结构和路径概念
如果说第一篇是 "认识 Linux 的大门",那么今天这篇就是 "走进 Linux 的客厅"------ 我们要学习更多实用的基础指令,这些指令将伴随你整个 Linux 学习生涯!
本篇学习目标:
-
掌握输出打印、文件查看等常用指令
-
学会使用 nano 编辑器
-
理解重定向和管道的概念
-
掌握文件查找和时间日期相关指令
-
了解 Linux 文件类型分类
话不多说,让我们开始今天的学习之旅!🚀
(一)基础输出打印指令
输出指令是我们与 Linux"对话" 的最基本方式,就像我们说话一样重要!
1. echo 指令
语法形式
bash
echo [选项] [输出内容]
功能
echo就像是 Linux 的 "嘴巴",专门用来在终端上输出文字或变量内容。它是最简单、最常用的输出命令,就像我们 C 语言中的printf一样!
💡 新手提示:echo 默认会在输出结尾自动换行,这是它的默认行为
举例说明
【例子 1:普通文本输出】
bash
# 直接输出一段文字
echo "Hello Linux! "
# 不加引号也可以输出(但建议加引号,更规范)
echo Hello World
【例子 2:输出变量内容】
bash
# 定义一个变量
name="小小的风的Linux"
# 使用$符号引用变量并输出
echo "欢迎来到$name"
【例子 3:不换行输出 -n 选项】
bash
# 默认会换行
echo "第一行"
echo "第二行"
# 使用-n选项不换行
echo -n "不换行的"
echo "内容"
【例子 4:输出转义字符 -e 选项】
bash
# -e选项启用转义字符解析
echo -e "第一行\n第二行\t制表符"
# 输出带颜色的文字(进阶技巧)
echo -e "\033[31m红色文字\033[0m"
echo -e "\033[32m绿色文字\033[0m"
2. printf 指令
语法形式
bash
printf "格式字符串" [参数...]
功能
printf是更专业的输出命令,它和 C 语言的printf函数几乎一模一样!支持格式化输出,可以精确控制输出格式,比 echo 更强大。
💡 新手提示 :printf不会自动换行 ,需要手动加
\n,这是它和 echo 最大的区别
举例说明
【例子 1:基本格式化输出】
bash
# 输出字符串,注意要手动加换行
printf "Hello, Linux!\n"
# 按格式输出多个参数
printf "姓名:%s,年龄:%d\n" "张三" 20
【例子 2:控制输出宽度和对齐】
bash
# %-10s 表示左对齐,占10个字符宽度
printf "%-10s %-8s %-4s\n" "姓名" "性别" "年龄"
printf "%-10s %-8s %-4d\n" "张三" "男" 20
printf "%-10s %-8s %-4d\n" "李四" "女" 19
【例子 3:数字格式化】
bash
# 小数格式化
printf "圆周率:%.2f\n" 3.1415926
# 八进制、十六进制输出
printf "十进制:%d,八进制:%o,十六进制:%x\n" 255 255 255
(二)文件内容查看类型指令
学会了怎么 "说话",现在我们来学习怎么 "看书"------ 查看文件内容!
1. cat 指令
语法形式
bash
cat [选项] 文件名
功能
cat是最常用的文件查看命令,全称是 concatenate(连接),它可以:
-
查看文件内容(最常用)
-
合并多个文件内容
-
创建简单的小文件
就像直接把书翻开,一次性展示所有内容!
⚠️ 新手常见坑 :cat 适合查看小文件,大文件会刷屏!
举例说明
【例子 1:查看文件内容】
bash
# 查看当前目录下的test.txt文件
cat test.txt
# 查看多个文件内容(会拼接在一起)
cat file1.txt file2.txt
【例子 2:显示行号 -n 选项】
bash
# 显示所有行的行号,包括空行
cat -n test.txt
# -b选项:只给非空行加行号
cat -b test.txt
【例子 3:合并多个文件】
bash
# 将file1和file2的内容合并到newfile中
cat file1.txt file2.txt > newfile.txt
2. tac 指令
语法形式
bash
tac 文件名
功能
tac就是cat反过来写!功能也正好相反 ------从最后一行倒着显示文件内容。
就像把书倒过来看,从最后一页往前翻!这个指令在查看日志文件时特别有用,因为最新的日志通常在文件末尾。
举例说明
【例子 1:反向查看文件】
bash
# 先看正常顺序
cat test.txt
# 再看反向顺序
tac test.txt
【例子 2:查看最新日志】
bash
# 系统日志文件,最新内容在最后,用tac直接看最新的
tac /var/log/messages | head -20
3. more 指令
语法形式
bash
more [选项] 文件名
功能
more是 "分页查看" 命令,专门解决 cat 看大文件刷屏的问题!它会一页一页地显示文件内容,就像翻书一样。
操作方式:
-
空格键:向下翻一页
-
Enter 键:向下翻一行
-
q 键:退出查看
-
= 键:显示当前行号
💡 缺点:more 只能向下翻,不能向上翻!
举例说明
【例子 1:分页查看大文件】
bash
# 分页查看一个大的配置文件
more /etc/services
# 从第100行开始显示
more +100 /etc/services
【例子 2:设置每页显示行数】
bash
# 每页只显示10行
more -10 test.txt
4. less 指令
语法形式
bash
less [选项] 文件名
功能
less是 more 的升级版 !功能更强大,是 Linux 查看文件内容的首选工具!
less 的优势:
-
✅ 可以上下翻页(PageUp/PageDown)
-
✅ 可以上下翻行(↑/↓)
-
✅ 支持搜索功能
-
✅ 加载大文件比 vim 快
常用操作:
-
/关键词:向下搜索 -
?关键词:向上搜索 -
n:下一个匹配 -
N:上一个匹配 -
q:退出
🔥 记住:man 手册默认就是用 less 来显示的!
举例说明
【例子 1:查看文件并搜索】
bash
# 查看系统日志
less /var/log/messages
# 在less界面输入:
# /error # 搜索error关键词
# n # 跳到下一个error
# N # 跳到上一个error
【例子 2:显示行号查看】
bash
# -N选项显示行号
less -N test.txt
5. head 指令
语法形式
bash
head [选项] 文件名
功能
head就是 "头部" 的意思,用来查看文件开头几行的内容,默认显示前 10 行。
就像看书只看封面和前几页!
举例说明
【例子 1:查看文件前几行】
bash
# 默认显示前10行
head /etc/passwd
# 显示前5行
head -5 /etc/passwd
# 或者
head -n 5 /etc/passwd
【例子 2:除了最后 N 行都显示】
bash
# 显示除了最后20行之外的所有内容
head -n -20 test.txt
6. tail 指令
语法形式
bash
tail [选项] 文件名
功能
tail就是 "尾巴" 的意思,用来查看文件末尾几行的内容,默认显示最后 10 行。
这是查看日志文件最常用的命令!因为日志最新的内容永远在最后。
举例说明
【例子 1:查看文件末尾几行】
bash
# 默认显示最后10行
tail /var/log/messages
# 显示最后5行
tail -5 /var/log/messages
【例子 2:实时监控日志 -f 选项(重点!)】
bash
# 实时监控日志文件,有新内容自动刷新
tail -f /var/log/messages
# 按Ctrl+C退出监控
🔥 重点掌握 :
tail -f是程序员排查问题的神器!程序运行时实时看日志就靠它!
【例子 3:从第 N 行开始显示到末尾】
bash
# 从第100行开始显示到文件结束
tail -n +100 test.txt
(三)nano 的基本使用
终于到编辑器了!nano 是 Linux 最简单的文本编辑器,新手友好,比 vim 容易上手 100 倍!
1. 打开文件
语法形式
bash
nano [文件名]
功能
打开或创建一个文件进行编辑。如果文件不存在,nano 会自动创建它。
举例说明
【例子:打开 / 创建文件】
bash
# 打开已存在的文件
nano test.txt
# 创建并编辑新文件
nano mycode.c
2. 基础编辑操作
nano 的编辑就像 Windows 的记事本一样简单!
功能
-
直接用键盘输入文字
-
方向键移动光标
-
Backspace/Delete 删除字符
-
没有模式!不需要像 vim 那样按 i 进入编辑模式!
💡 新手福音:nano 是 "所见即所得",直接打字就行,完全不用记命令!
举例说明

3. 核心快捷键
nano 的快捷键都显示在屏幕底部,用^表示 Ctrl 键!
|----------|-----------------|
| 快捷键 | 功能 |
| Ctrl+O | 保存文件(Write Out) |
| Ctrl+X | 退出 nano |
| Ctrl+K | 剪切一整行 |
| Ctrl+U | 粘贴 |
| Ctrl+W | 搜索 |
| Ctrl+G | 帮助 |
💡 记忆技巧:保存 = O(Output),退出 = X(eXit),搜索 = W(Where)
举例说明
【保存并退出流程】
bash
# 1. 编辑完成后,按 Ctrl+O 保存
# 2. 按 Enter 确认文件名
# 3. 按 Ctrl+X 退出nano
【搜索内容】
bash
# 在nano中按 Ctrl+W
# 输入要搜索的关键词,按Enter
# 按 Alt+W 继续搜索下一个
(四)文件的移动和重命名 - mv 指令
语法形式
bash
mv [选项] 源文件/目录 目标文件/目录
功能
mv是 move 的缩写,它有两个核心功能:
-
移动文件 / 目录:把文件从一个地方搬到另一个地方
-
重命名文件 / 目录:给文件改名字
🔥 神奇之处:Linux 没有专门的 "重命名命令",mv 一个命令搞定两个功能!
举例说明
【例子 1:文件重命名】
bash
# 把oldname.txt改名为newname.txt
mv oldname.txt newname.txt
# 目录也可以重命名
mv olddir newdir
【例子 2:移动文件到其他目录】
bash
# 把file.txt移动到/home目录下
mv file.txt /home/
# 移动多个文件到目标目录
mv file1.txt file2.txt /tmp/
【例子 3:移动并改名】
bash
# 把当前目录的a.txt,移动到/tmp目录下,并改名为b.txt
mv a.txt /tmp/b.txt
【例子 4:覆盖前询问 -i 选项】
bash
# 如果目标文件已存在,会询问是否覆盖
mv -i file.txt /tmp/
# 输入y覆盖,n取消
(五)重定向相关操作
重定向是 Linux 的核心概念之一!简单说就是:改变数据的流向。
1. 输出重定向 >
语法形式
bash
命令 > 文件
功能
把命令本来要输出到屏幕上的内容,写入到文件中。
⚠️ 注意 :
>会覆盖文件原有内容!如果文件不存在会自动创建。
就像把本来要倒在地上的水,倒进了杯子里!
举例说明
【例子 1:将命令输出写入文件】
bash
# 把ls的结果写入到list.txt文件中
ls > list.txt
# 查看写入的内容
cat list.txt
【例子 2:创建并写入文件】
bash
# 创建文件并写入内容
echo "Hello World" > hello.txt
# 覆盖原有内容
echo "新内容" > hello.txt
2. 追加重定向 >>
语法形式
bash
命令 >> 文件
功能
和>类似,但不会覆盖 ,而是在文件末尾追加内容。
💡 区别 :
>= 覆盖写,>>= 追加写
举例说明
【例子 1:追加内容到文件】
bash
# 先创建文件
echo "第一行" > test.txt
# 追加第二行(不会覆盖第一行)
echo "第二行" >> test.txt
echo "第三行" >> test.txt
# 查看结果
cat test.txt
【例子 2:收集多次命令结果】
bash
# 多次执行命令,结果都追加到同一个文件
date >> log.txt
echo "执行了ls命令" >> log.txt
ls >> log.txt
3. 输入重定向 <
语法形式
bash
命令 < 文件
功能
把文件的内容,作为命令的输入数据。
就像本来要从键盘输入数据,现在改成从文件里读!
举例说明
【例子 1:统计文件行数】
bash
# 两种方式效果一样
wc -l test.txt
wc -l < test.txt
【例子 2:从文件读取输入】
bash
# 把file.txt的内容作为cat的输入
cat < file.txt
(六)管道 | 与组合指令用法
语法形式
bash
命令1 | 命令2 | 命令3 ...
功能
管道|是 Linux 最强大的特性之一!它把前一个命令的输出,作为后一个命令的输入。
就像工厂的流水线:第一个工序加工完,直接传给第二个工序继续加工!
🔥 记住:管道可以无限连接,组合出无限可能!
举例说明
【例子 1:分页查看长输出】
bash
# ls -l /etc 输出很长,用less分页查看
ls -l /etc | less
【例子 2:搜索过滤】
bash
# 在所有进程中,只看包含ssh的进程
ps aux | grep ssh
# 在用户列表中找root用户
cat /etc/passwd | grep root
【例子 3:多级管道组合】
bash
# 1. 列出所有文件
# 2. 只看包含txt的行
# 3. 统计行数
ls -l | grep txt | wc -l
💡 新手提示:管道是 Linux 的灵魂!以后你写的 90% 复杂命令都会用到管道!
(七)时间与日期相关指令
1. date 指令
语法形式
bash
date [选项] [+格式]
功能
显示或设置系统时间和日期。可以自定义各种时间格式,非常灵活。
举例说明
【例子 1:显示当前时间】
bash
# 默认格式显示
date
# 输出示例:Sat Jan 14 15:30:00 CST 2023
【例子 2:格式化输出】
bash
# 年-月-日
date +%Y-%m-%d
# 时:分:秒
date +%H:%M:%S
# 完整格式
date +"%Y-%m-%d %H:%M:%S"
【例子 3:常用格式符】
bash
# %Y 年(4位) %y 年(2位)
# %m 月 %d 日
# %H 小时 %M 分钟 %S 秒
# %A 星期全称 %a 星期缩写
# 示例:生成带时间的文件名
echo "日志内容" > log_$(date +%Y%m%d).txt
2. 时间戳概念与转换
什么是时间戳?
Unix 时间戳 :从 1970 年 1 月 1 日 00:00:00 UTC 到现在的秒数。
💡 为什么用时间戳? 全世界统一,没有时区问题,计算方便!
举例说明
【例子 1:获取当前时间戳】
bash
# 获取当前时间戳(秒)
date +%s
【例子 2:时间戳转日期】
bash
# 把时间戳1673680800转成日期
date -d @1673680800
# 格式化显示
date -d @1673680800 +"%Y-%m-%d %H:%M:%S"
3. cal 指令
语法形式
bash
cal [选项] [[月份] 年份]
功能
显示日历!就像 Linux 里的万年历~
举例说明
【例子 1:显示本月日历】
bash
# 默认显示当前月
cal
【例子 2:显示指定年月】
bash
# 显示2023年1月
cal 1 2023
# 显示2023年全年日历
cal 2023
【例子 3:显示 3 个月日历】
bash
# 显示上个月、本月、下个月
cal -3
(八)Linux 文件类型分类详解
Linux 和 Windows 最大的不同之一:Linux 不以后缀名区分文件类型!
Linux 通过ls -l第一个字符来判断文件类型:
|--------|--------|-----------------|
| 文件类型符号 | 类型 | 说明 |
| - | 普通文件 | 文本、二进制、压缩包等 |
| d | 目录文件 | 文件夹(directory) |
| l | 软链接文件 | 类似 Windows 快捷方式 |
| b | 块设备文件 | 硬盘、U 盘等存储设备 |
| c | 字符设备文件 | 键盘、鼠标、终端等 |
| p | 管道文件 | 进程间通信用 |
| s | 套接字文件 | 网络通信用 |
🔥 重点 :
.txt.exe.doc这些后缀在 Linux 里只是给人看的,系统不认!
举例说明
【查看文件类型】
bash
# ls -l第一个字符就是文件类型
ls -l /dev
# 你会看到:
# brw-rw---- 这是块设备(硬盘)
# crw-rw-rw- 这是字符设备
# lrwxrwxrwx 这是软链接
(九)查找文件 - find 指令
语法形式
bash
find [搜索路径] [选项] [搜索条件]
功能
find是 Linux 最强大的文件查找命令,可以在指定目录下递归搜索文件,支持各种复杂条件。
💡 特点:实时搜索,虽然慢但最准确!
举例说明
【例子 1:按文件名搜索】
bash
# 在当前目录下搜索所有.txt文件
find . -name "*.txt"
# 不区分大小写搜索
find . -iname "TEST.TXT"
【例子 2:按文件类型搜索】
bash
# 只找普通文件
find . -type f
# 只找目录
find . -type d
# 只找软链接
find . -type l
【例子 3:按文件大小搜索】
bash
# 找大于10M的文件
find . -size +10M
# 找小于100K的文件
find . -size -100k
# 单位:c(字节) k(KB) M(MB) G(GB)
【例子 4:搜索后执行命令】
bash
# 找到所有.txt文件并删除
find . -name "*.txt" -exec rm {} \;
# 找到所有.c文件并查看
find . -name "*.c" -exec ls -l {} \;
(十)which 指令
语法形式
bash
which 命令名
功能
查找命令的可执行文件在哪里。
我们输入的ls、cd这些命令,本质上都是一个个小程序,which 就是告诉你这些小程序放在哪个文件夹里。
举例说明
【例子:查找命令位置】
bash
# 查找ls命令在哪里
which ls
# 输出:/usr/bin/ls
# 查找pwd命令
which pwd
# 输出:/usr/bin/pwd
# 查找自己写的程序
which gcc
💡 原理 :which 会在环境变量
PATH指定的目录中搜索命令
(十一)whereis 指令
语法形式
bash
whereis [选项] 命令名
功能
比 which 更强大!不仅找可执行文件,还找:
-
源文件
-
帮助手册(man 文件)
相当于 "命令的全家桶搜索"!
举例说明
【例子:查找命令相关文件】
bash
# 查找ls的所有相关文件
whereis ls
# 输出:ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
# 只找二进制文件
whereis -b ls
# 只找man手册
whereis -m ls
(十二)alias 指令
语法形式
bash
alias [别名='原命令']
功能
给命令起外号!把很长的命令简化成一个短单词,提高效率。
就像我们给朋友起外号,叫 "张三" 太麻烦,直接叫 "老三"!
举例说明
【例子 1:设置别名】
bash
# 给ls -l起别名为ll
alias ll='ls -l'
# 现在直接输入ll就等于ls -l
ll
【例子 2:实用别名推荐】
bash
# 查看时自动带颜色
alias ls='ls --color=auto'
# 删除前询问(防止误删)
alias rm='rm -i'
# 快速清屏
alias c='clear'
# 快速回家
alias h='cd ~'
【例子 3:查看和取消别名】
bash
# 查看所有已设置的别名
alias
# 取消别名
unalias ll
⚠️ 注意 :这样设置的别名只在当前终端有效,关闭就没了。要永久生效需要写入
~/.bashrc文件!
本篇内容总结
恭喜你!又掌握了一大批 Linux 核心指令!来个大总结:
|----------|-----------------------------------------|-----------|---|
| 分类 | 指令 | 核心功能 | |
| 输出打印 | echo printf | 终端输出文字 | |
| 文件查看 | cat tac more less head tail | 查看文件内容 | |
| 编辑器 | nano | 简单文本编辑 | |
| 文件操作 | mv | 移动 / 重命名 | |
| 重定向 | > >> < | 改变数据流向 | |
| 管道 | | | 命令组合流水线 | |
| 时间日期 | date cal | 时间日历 | |
| 查找 | find which whereis | 查找文件 / 命令 | |
| 其他 | alias | 命令别名 | |
下一篇预告
下一篇我们将学习:
-
📁 文件权限的概念(rwx 到底是什么)
-
🔐 chmod 修改权限
-
👤 用户和用户组
-
📦 tar 打包压缩和解压
-
⚙️ grep 和 awk 文本处理三剑客
这些是 Linux 的核心精髓,一定要来哦!
:Linux 学习没有捷径,多敲多练才是王道!建议把今天的每个命令都敲 3 遍以上,肌肉记忆比什么都重要!
如果这篇文章对你有帮助,欢迎点赞👍收藏⭐关注我,我们下篇再见!