de风——【从零开始学Linu】 - 基础指令详解(二)


前言:承接上篇,继续进阶

上篇链接🔗:https://blog.csdn.net/Xiao_running/article/details/161167948?fromshare=blogdetail&sharetype=blogdetail&sharerId=161167948&sharerefer=PC&sharesource=Xiao_running&sharefrom=from_link

大家好!我是你们的小小风呀,欢迎来到《从零开始学习 Linux》专题的第二篇博客!

在上一篇文章中,我们一起学习了:

  • ✅ 如何使用 Xshell 连接腾讯云服务器

  • ✅ 最基础的三个指令:lscdpwd

  • ✅ Linux 的目录结构和路径概念

如果说第一篇是 "认识 Linux 的大门",那么今天这篇就是 "走进 Linux 的客厅"------ 我们要学习更多实用的基础指令,这些指令将伴随你整个 Linux 学习生涯!

本篇学习目标:

  1. 掌握输出打印、文件查看等常用指令

  2. 学会使用 nano 编辑器

  3. 理解重定向和管道的概念

  4. 掌握文件查找和时间日期相关指令

  5. 了解 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 的缩写,它有两个核心功能:

  1. 移动文件 / 目录:把文件从一个地方搬到另一个地方

  2. 重命名文件 / 目录:给文件改名字

🔥 神奇之处: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 命令名
功能

查找命令的可执行文件在哪里。

我们输入的lscd这些命令,本质上都是一个个小程序,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 遍以上,肌肉记忆比什么都重要!

如果这篇文章对你有帮助,欢迎点赞👍收藏⭐关注我,我们下篇再见!

相关推荐
wanhengidc8 小时前
云手机手游搬砖 梦境护卫队
运维·服务器·安全·web安全·智能手机
littleschemer9 小时前
Go:实现游戏服务器网关
服务器·网关·游戏·golang
楼田莉子9 小时前
C#学习:分支与循环
服务器·后端·学习·c#
cws2004019 小时前
网络安全基本知识-2
运维·网络
Dlrb12119 小时前
C语言-Linux系统下的俄罗斯方块实现
linux·c语言·vim·终端·碰撞检测·俄罗斯方块·vt100
CDN3609 小时前
【硬核运维】YOLO模型高并发实战:用Triton动态批处理榨干GPU最后一滴性能
运维·yolo
IT大白鼠9 小时前
Linux用户配置文件详解:.bash_history、.bash_logout、.bash_profile与.bashrc
linux·运维·bash
枕星而眠9 小时前
Linux 进程:虚拟内存、Fork原理、IPC通信与面试避坑
linux·运维·c语言·后端
徐安安ye9 小时前
KV Cache的生老病死:FlashAttention里的显存管理全流程
java·服务器·前端