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 连接腾讯云服务器
✅ 最基础的三个指令:
ls、cd、pwd✅ Linux 的目录结构和路径概念
如果说第一篇是 "认识 Linux 的大门",那么今天这篇就是 "走进 Linux 的客厅"—— 我们要学习更多实用的基础指令,这些指令将伴随你整个 Linux 学习生涯!
本篇学习目标:
掌握输出打印、文件查看等常用指令
学会使用 nano 编辑器
理解重定向和管道的概念
掌握文件查找和时间日期相关指令
了解 Linux 文件类型分类
话不多说,让我们开始今天的学习之旅!🚀
(一)基础输出打印指令
输出指令是我们与 Linux"对话" 的最基本方式,就像我们说话一样重要!
1. echo 指令
语法形式
echo [选项] [输出内容]功能
echo就像是 Linux 的 "嘴巴",专门用来在终端上输出文字或变量内容。它是最简单、最常用的输出命令,就像我们 C 语言中的printf一样!
💡新手提示:echo 默认会在输出结尾自动换行,这是它的默认行为
举例说明
【例子 1:普通文本输出】
# 直接输出一段文字 echo "Hello Linux! " # 不加引号也可以输出(但建议加引号,更规范) echo Hello World【例子 2:输出变量内容】
# 定义一个变量 name="小小的风的Linux" # 使用$符号引用变量并输出 echo "欢迎来到$name"【例子 3:不换行输出 -n 选项】
# 默认会换行 echo "第一行" echo "第二行" # 使用-n选项不换行 echo -n "不换行的" echo "内容"【例子 4:输出转义字符 -e 选项】
# -e选项启用转义字符解析 echo -e "第一行\n第二行\t制表符" # 输出带颜色的文字(进阶技巧) echo -e "\033[31m红色文字\033[0m" echo -e "\033[32m绿色文字\033[0m"2. printf 指令
语法形式
printf "格式字符串" [参数...]功能
printf是更专业的输出命令,它和 C 语言的printf函数几乎一模一样!支持格式化输出,可以精确控制输出格式,比 echo 更强大。
💡新手提示:printf不会自动换行,需要手动加
\n,这是它和 echo 最大的区别
举例说明
【例子 1:基本格式化输出】
# 输出字符串,注意要手动加换行 printf "Hello, Linux!\n" # 按格式输出多个参数 printf "姓名:%s,年龄:%d\n" "张三" 20【例子 2:控制输出宽度和对齐】
# %-10s 表示左对齐,占10个字符宽度 printf "%-10s %-8s %-4s\n" "姓名" "性别" "年龄" printf "%-10s %-8s %-4d\n" "张三" "男" 20 printf "%-10s %-8s %-4d\n" "李四" "女" 19【例子 3:数字格式化】
# 小数格式化 printf "圆周率:%.2f\n" 3.1415926 # 八进制、十六进制输出 printf "十进制:%d,八进制:%o,十六进制:%x\n" 255 255 255(二)文件内容查看类型指令
学会了怎么 "说话",现在我们来学习怎么 "看书"—— 查看文件内容!
1. cat 指令
语法形式
cat [选项] 文件名功能
cat是最常用的文件查看命令,全称是 concatenate(连接),它可以:
查看文件内容(最常用)
合并多个文件内容
创建简单的小文件
就像直接把书翻开,一次性展示所有内容!
⚠️新手常见坑:cat 适合查看小文件,大文件会刷屏!
举例说明
【例子 1:查看文件内容】
# 查看当前目录下的test.txt文件 cat test.txt # 查看多个文件内容(会拼接在一起) cat file1.txt file2.txt【例子 2:显示行号 -n 选项】
# 显示所有行的行号,包括空行 cat -n test.txt # -b选项:只给非空行加行号 cat -b test.txt【例子 3:合并多个文件】
# 将file1和file2的内容合并到newfile中 cat file1.txt file2.txt > newfile.txt2. tac 指令
语法形式
tac 文件名功能
tac就是cat反过来写!功能也正好相反 ——从最后一行倒着显示文件内容。
就像把书倒过来看,从最后一页往前翻!这个指令在查看日志文件时特别有用,因为最新的日志通常在文件末尾。
举例说明
【例子 1:反向查看文件】
# 先看正常顺序 cat test.txt # 再看反向顺序 tac test.txt【例子 2:查看最新日志】
# 系统日志文件,最新内容在最后,用tac直接看最新的 tac /var/log/messages | head -203. more 指令
语法形式
more [选项] 文件名功能
more是 "分页查看" 命令,专门解决 cat 看大文件刷屏的问题!它会一页一页地显示文件内容,就像翻书一样。
操作方式:
空格键:向下翻一页
Enter 键:向下翻一行
q 键:退出查看
= 键:显示当前行号
💡缺点:more 只能向下翻,不能向上翻!
举例说明
【例子 1:分页查看大文件】
# 分页查看一个大的配置文件 more /etc/services # 从第100行开始显示 more +100 /etc/services【例子 2:设置每页显示行数】
# 每页只显示10行 more -10 test.txt4. less 指令
语法形式
less [选项] 文件名功能
less是 more 的升级版!功能更强大,是 Linux 查看文件内容的首选工具!
less 的优势:
✅ 可以上下翻页(PageUp/PageDown)
✅ 可以上下翻行(↑/↓)
✅ 支持搜索功能
✅ 加载大文件比 vim 快
常用操作:
/关键词:向下搜索?关键词:向上搜索n:下一个匹配N:上一个匹配q:退出
🔥记住:man 手册默认就是用 less 来显示的!
举例说明
【例子 1:查看文件并搜索】
# 查看系统日志 less /var/log/messages # 在less界面输入: # /error # 搜索error关键词 # n # 跳到下一个error # N # 跳到上一个error【例子 2:显示行号查看】
# -N选项显示行号 less -N test.txt5. head 指令
语法形式
head [选项] 文件名功能
head就是 "头部" 的意思,用来查看文件开头几行的内容,默认显示前 10 行。
就像看书只看封面和前几页!
举例说明
【例子 1:查看文件前几行】
# 默认显示前10行 head /etc/passwd # 显示前5行 head -5 /etc/passwd # 或者 head -n 5 /etc/passwd【例子 2:除了最后 N 行都显示】
# 显示除了最后20行之外的所有内容 head -n -20 test.txt6. tail 指令
语法形式
tail [选项] 文件名功能
tail就是 "尾巴" 的意思,用来查看文件末尾几行的内容,默认显示最后 10 行。
这是查看日志文件最常用的命令!因为日志最新的内容永远在最后。
举例说明
【例子 1:查看文件末尾几行】
# 默认显示最后10行 tail /var/log/messages # 显示最后5行 tail -5 /var/log/messages【例子 2:实时监控日志 -f 选项(重点!)】
# 实时监控日志文件,有新内容自动刷新 tail -f /var/log/messages # 按Ctrl+C退出监控🔥重点掌握:
tail -f是程序员排查问题的神器!程序运行时实时看日志就靠它!
【例子 3:从第 N 行开始显示到末尾】
# 从第100行开始显示到文件结束 tail -n +100 test.txt(三)nano 的基本使用
终于到编辑器了!nano 是 Linux 最简单的文本编辑器,新手友好,比 vim 容易上手 100 倍!
1. 打开文件
语法形式
nano [文件名]功能
打开或创建一个文件进行编辑。如果文件不存在,nano 会自动创建它。
举例说明
【例子:打开 / 创建文件】
# 打开已存在的文件 nano test.txt # 创建并编辑新文件 nano mycode.c2. 基础编辑操作
nano 的编辑就像 Windows 的记事本一样简单!
功能
直接用键盘输入文字
方向键移动光标
Backspace/Delete 删除字符
没有模式!不需要像 vim 那样按 i 进入编辑模式!
💡新手福音:nano 是 "所见即所得",直接打字就行,完全不用记命令!
举例说明
3. 核心快捷键
nano 的快捷键都显示在屏幕底部,用^表示 Ctrl 键!
快捷键 | 功能 |
| 保存文件(Write Out) |
| 退出 nano |
| 剪切一整行 |
| 粘贴 |
| 搜索 |
| 帮助 |
💡记忆技巧:保存 = O(Output),退出 = X(eXit),搜索 = W(Where)
举例说明
【保存并退出流程】
# 1. 编辑完成后,按 Ctrl+O 保存 # 2. 按 Enter 确认文件名 # 3. 按 Ctrl+X 退出nano【搜索内容】
# 在nano中按 Ctrl+W # 输入要搜索的关键词,按Enter # 按 Alt+W 继续搜索下一个(四)文件的移动和重命名 - mv 指令
语法形式
mv [选项] 源文件/目录 目标文件/目录功能
mv是 move 的缩写,它有两个核心功能:
移动文件 / 目录:把文件从一个地方搬到另一个地方
重命名文件 / 目录:给文件改名字
🔥神奇之处:Linux 没有专门的 "重命名命令",mv 一个命令搞定两个功能!
举例说明
【例子 1:文件重命名】
# 把oldname.txt改名为newname.txt mv oldname.txt newname.txt # 目录也可以重命名 mv olddir newdir【例子 2:移动文件到其他目录】
# 把file.txt移动到/home目录下 mv file.txt /home/ # 移动多个文件到目标目录 mv file1.txt file2.txt /tmp/【例子 3:移动并改名】
# 把当前目录的a.txt,移动到/tmp目录下,并改名为b.txt mv a.txt /tmp/b.txt【例子 4:覆盖前询问 -i 选项】
# 如果目标文件已存在,会询问是否覆盖 mv -i file.txt /tmp/ # 输入y覆盖,n取消(五)重定向相关操作
重定向是 Linux 的核心概念之一!简单说就是:改变数据的流向。
1. 输出重定向>
语法形式
命令 > 文件功能
把命令本来要输出到屏幕上的内容,写入到文件中。
⚠️注意:
>会覆盖文件原有内容!如果文件不存在会自动创建。
就像把本来要倒在地上的水,倒进了杯子里!
举例说明
【例子 1:将命令输出写入文件】
# 把ls的结果写入到list.txt文件中 ls > list.txt # 查看写入的内容 cat list.txt【例子 2:创建并写入文件】
# 创建文件并写入内容 echo "Hello World" > hello.txt # 覆盖原有内容 echo "新内容" > hello.txt2. 追加重定向>>
语法形式
命令 >> 文件功能
和>类似,但不会覆盖,而是在文件末尾追加内容。
💡区别:
>= 覆盖写,>>= 追加写
举例说明
【例子 1:追加内容到文件】
# 先创建文件 echo "第一行" > test.txt # 追加第二行(不会覆盖第一行) echo "第二行" >> test.txt echo "第三行" >> test.txt # 查看结果 cat test.txt【例子 2:收集多次命令结果】
# 多次执行命令,结果都追加到同一个文件 date >> log.txt echo "执行了ls命令" >> log.txt ls >> log.txt3. 输入重定向<
语法形式
命令 < 文件功能
把文件的内容,作为命令的输入数据。
就像本来要从键盘输入数据,现在改成从文件里读!
举例说明
【例子 1:统计文件行数】
# 两种方式效果一样 wc -l test.txt wc -l < test.txt【例子 2:从文件读取输入】
# 把file.txt的内容作为cat的输入 cat < file.txt(六)管道|与组合指令用法
语法形式
命令1 | 命令2 | 命令3 ...功能
管道|是 Linux 最强大的特性之一!它把前一个命令的输出,作为后一个命令的输入。
就像工厂的流水线:第一个工序加工完,直接传给第二个工序继续加工!
🔥记住:管道可以无限连接,组合出无限可能!
举例说明
【例子 1:分页查看长输出】
# ls -l /etc 输出很长,用less分页查看 ls -l /etc | less【例子 2:搜索过滤】
# 在所有进程中,只看包含ssh的进程 ps aux | grep ssh # 在用户列表中找root用户 cat /etc/passwd | grep root【例子 3:多级管道组合】
# 1. 列出所有文件 # 2. 只看包含txt的行 # 3. 统计行数 ls -l | grep txt | wc -l💡新手提示:管道是 Linux 的灵魂!以后你写的 90% 复杂命令都会用到管道!
(七)时间与日期相关指令
1. date 指令
语法形式
date [选项] [+格式]功能
显示或设置系统时间和日期。可以自定义各种时间格式,非常灵活。
举例说明
【例子 1:显示当前时间】
# 默认格式显示 date # 输出示例:Sat Jan 14 15:30:00 CST 2023【例子 2:格式化输出】
# 年-月-日 date +%Y-%m-%d # 时:分:秒 date +%H:%M:%S # 完整格式 date +"%Y-%m-%d %H:%M:%S"【例子 3:常用格式符】
# %Y 年(4位) %y 年(2位) # %m 月 %d 日 # %H 小时 %M 分钟 %S 秒 # %A 星期全称 %a 星期缩写 # 示例:生成带时间的文件名 echo "日志内容" > log_$(date +%Y%m%d).txt2. 时间戳概念与转换
什么是时间戳?
Unix 时间戳:从 1970 年 1 月 1 日 00:00:00 UTC 到现在的秒数。
💡为什么用时间戳?全世界统一,没有时区问题,计算方便!
举例说明
【例子 1:获取当前时间戳】
# 获取当前时间戳(秒) date +%s【例子 2:时间戳转日期】
# 把时间戳1673680800转成日期 date -d @1673680800 # 格式化显示 date -d @1673680800 +"%Y-%m-%d %H:%M:%S"3. cal 指令
语法形式
cal [选项] [[月份] 年份]功能
显示日历!就像 Linux 里的万年历~
举例说明
【例子 1:显示本月日历】
# 默认显示当前月 cal【例子 2:显示指定年月】
# 显示2023年1月 cal 1 2023 # 显示2023年全年日历 cal 2023【例子 3:显示 3 个月日历】
# 显示上个月、本月、下个月 cal -3(八)Linux 文件类型分类详解
Linux 和 Windows 最大的不同之一:Linux 不以后缀名区分文件类型!
Linux 通过ls -l第一个字符来判断文件类型:
文件类型符号 | 类型 | 说明 |
| 普通文件 | 文本、二进制、压缩包等 |
| 目录文件 | 文件夹(directory) |
| 软链接文件 | 类似 Windows 快捷方式 |
| 块设备文件 | 硬盘、U 盘等存储设备 |
| 字符设备文件 | 键盘、鼠标、终端等 |
| 管道文件 | 进程间通信用 |
| 套接字文件 | 网络通信用 |
🔥重点:
.txt.exe.doc这些后缀在 Linux 里只是给人看的,系统不认!
举例说明
【查看文件类型】
# ls -l第一个字符就是文件类型 ls -l /dev # 你会看到: # brw-rw---- 这是块设备(硬盘) # crw-rw-rw- 这是字符设备 # lrwxrwxrwx 这是软链接(九)查找文件 - find 指令
语法形式
find [搜索路径] [选项] [搜索条件]功能
find是 Linux 最强大的文件查找命令,可以在指定目录下递归搜索文件,支持各种复杂条件。
💡特点:实时搜索,虽然慢但最准确!
举例说明
【例子 1:按文件名搜索】
# 在当前目录下搜索所有.txt文件 find . -name "*.txt" # 不区分大小写搜索 find . -iname "TEST.TXT"【例子 2:按文件类型搜索】
# 只找普通文件 find . -type f # 只找目录 find . -type d # 只找软链接 find . -type l【例子 3:按文件大小搜索】
# 找大于10M的文件 find . -size +10M # 找小于100K的文件 find . -size -100k # 单位:c(字节) k(KB) M(MB) G(GB)【例子 4:搜索后执行命令】
# 找到所有.txt文件并删除 find . -name "*.txt" -exec rm {} \; # 找到所有.c文件并查看 find . -name "*.c" -exec ls -l {} \;(十)which 指令
语法形式
which 命令名功能
查找命令的可执行文件在哪里。
我们输入的ls、cd这些命令,本质上都是一个个小程序,which 就是告诉你这些小程序放在哪个文件夹里。
举例说明
【例子:查找命令位置】
# 查找ls命令在哪里 which ls # 输出:/usr/bin/ls # 查找pwd命令 which pwd # 输出:/usr/bin/pwd # 查找自己写的程序 which gcc💡原理:which 会在环境变量
PATH指定的目录中搜索命令
(十一)whereis 指令
语法形式
whereis [选项] 命令名功能
比 which 更强大!不仅找可执行文件,还找:
源文件
帮助手册(man 文件)
相当于 "命令的全家桶搜索"!
举例说明
【例子:查找命令相关文件】
# 查找ls的所有相关文件 whereis ls # 输出:ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz # 只找二进制文件 whereis -b ls # 只找man手册 whereis -m ls(十二)alias 指令
语法形式
alias [别名='原命令']功能
给命令起外号!把很长的命令简化成一个短单词,提高效率。
就像我们给朋友起外号,叫 "张三" 太麻烦,直接叫 "老三"!
举例说明
【例子 1:设置别名】
# 给ls -l起别名为ll alias ll='ls -l' # 现在直接输入ll就等于ls -l ll【例子 2:实用别名推荐】
# 查看时自动带颜色 alias ls='ls --color=auto' # 删除前询问(防止误删) alias rm='rm -i' # 快速清屏 alias c='clear' # 快速回家 alias h='cd ~'【例子 3:查看和取消别名】
# 查看所有已设置的别名 alias # 取消别名 unalias ll⚠️注意:这样设置的别名只在当前终端有效,关闭就没了。要永久生效需要写入
~/.bashrc文件!
本篇内容总结
恭喜你!又掌握了一大批 Linux 核心指令!来个大总结:
分类 | 指令 | 核心功能 | |
输出打印 |
| 终端输出文字 | |
文件查看 |
| 查看文件内容 | |
编辑器 |
| 简单文本编辑 | |
文件操作 |
| 移动 / 重命名 | |
重定向 |
| 改变数据流向 | |
管道 | | | 命令组合流水线 | |
时间日期 |
| 时间日历 | |
查找 |
| 查找文件 / 命令 | |
其他 |
| 命令别名 |
下一篇预告
下一篇我们将学习:
📁 文件权限的概念(rwx 到底是什么)
🔐 chmod 修改权限
👤 用户和用户组
📦 tar 打包压缩和解压
⚙️ grep 和 awk 文本处理三剑客
这些是 Linux 的核心精髓,一定要来哦!
:Linux 学习没有捷径,多敲多练才是王道!建议把今天的每个命令都敲 3 遍以上,肌肉记忆比什么都重要!
如果这篇文章对你有帮助,欢迎点赞👍收藏⭐关注我,我们下篇再见!
