Shell基础知识与常用命令:从零开始掌握Linux命令行
一、Shell是什么?
Shell 是一个命令行解释器,它接收用户输入的命令并将其传递给操作系统内核执行。多数Linux发行版的默认Shell是GNU Bash。
登录Linux后,Bash会自动启动
通过虚拟控制台终端或图形终端仿真器(如GNOME Terminal)访问Shell
提示符
$表示等待用户输入命令
二、核心基础命令速览
1. 获取帮助:man
man ls # 查看ls命令手册
man -k keyword # 按关键字搜索手册页
手册页分区(如1为可执行程序,5为配置文件等),可通过man 5 passwd指定区号。
2. 目录切换:cd
cd /home/user # 绝对路径
cd ../ # 相对路径,进入父目录
cd ~ # 回到主目录
特殊目录符号:
.当前目录..父目录
3. 查看当前路径:pwd
pwd # 打印当前工作目录的绝对路径
4. 列出目录内容:ls
-F:区分目录(末尾加/)与普通文件;-a:显示.开头隐藏配置文件-l:长格式,展示权限、属主、大小、修改时间、文件类型(d 目录 /- 普通文件)-R:递归展示所有子目录文件;支持* ? [] !通配符过滤文件
三、查看文件内容
| 命令 | 用途 | 常用参数 |
|---|---|---|
cat | 一次性显示全部内容 | -n显示行号 |
more | 分页查看(只能向下) | 空格翻页,q退出 |
less | 交互式查看(可上下翻页) | /keyword搜索 |
head | 显示文件开头 | -n 5前5行 |
tail | 显示文件末尾 | -f实时监控日志 |
cat -n file.txt
head -20 file.txt
tail -f /var/log/syslog # 实时跟踪
四、文件链接
硬链接(
ln):同一inode的多个路径,删除一个不影响其他符号链接/软链接(
ln -s):相当于快捷方式,指向原文件路径
ln original hard_link
ln -s original soft_link
五、Linux虚拟目录结构速览
Linux采用单根虚拟目录,根目录为/,没有Windows的盘符概念。
| 目录 | 用途 |
|---|---|
/bin | 用户级命令 |
/etc | 配置文件 |
/home | 用户主目录 |
/var | 日志等可变数据 |
/tmp | 临时文件 |
/usr | 用户程序和数据 |
挂载点:将物理设备关联到虚拟目录中的某个目录(如/mnt/usb)。
六、 课后练习:管理“学习笔记”项目
📁 初始状态
位于用户主目录
~
✅ 任务清单
1. 创建项目结构
1.1 确认当前在主目录
pwd输出应该是/home/你的用户名,如果不是,执行cd ~切回主目录。
1.2 创建项目根目录 LearningNotes
mkdir LearningNotesmkdir= make directory 创建文件夹
1.3 一次性创建 3 个子目录(用 - p 批量创建)
mkdir -p LearningNotes/lectures LearningNotes/references LearningNotes/backups-p:批量创建多层目录,不存在父目录也不会报错
1.4 切换进入 lectures 目录
cd LearningNotes/lectures1.5 验证当前位置
pwd输出:/home/你的用户名/LearningNotes/lectures,代表成功。
2. 创建并编辑笔记文件
2.1 创建两个空文件
touch linux_basics.txt commands_cheatsheet.txttouch:创建空文件;也可以修改文件时间戳(后面会用到)
2.2 给 linux_basics.txt 写入内容
echo "Linux Command Basics" >> linux_basics.txt echo "cd: Change directory" >> linux_basics.txt echo "ls: List files and directories" >> linux_basics.txt echo "pwd: Print working directory" >> linux_basics.txt2.3 给 commands_cheatsheet.txt 写入内容
echo "cat: Display entire file" >> commands_cheatsheet.txt echo "head: Show first 10 lines" >> commands_cheatsheet.txt echo "tail: Show last 10 lines" >> commands_cheatsheet.txt echo "less: Interactive file viewer" >> commands_cheatsheet.txt2.4 验证写入是否成功
cat linux_basics.txt cat commands_cheatsheet.txt3. 文件操作
当前目录:LearningNotes/lectures
3.1 复制 commands_cheatsheet.txt 到 references,改名 command_reference.txt
cp commands_cheatsheet.txt ../references/command_reference.txt拆解:
cp 源文件 目标路径/新文件名../代表上级目录,当前在 lectures,上级就是 LearningNotes,所以../references就是同级的 references 文件夹- 加
-i更安全(覆盖前提示):cp -i commands_cheatsheet.txt ../references/command_reference.txt
3.2 将 linux_basics.txt 重命名为 linux_fundamentals.txt
mv linux_basics.txt linux_fundamentals.txtmv两个作用:①重命名 ②移动文件- 同目录下使用 = 重命名;不同目录 = 移动文件
3.3 给 linux_fundamentals.txt 做备份,放到 backups 目录
cp linux_fundamentals.txt ../backups/直接复制到 backups,文件名不变,作为备份文件。
3.4 更新 commands_cheatsheet.txt 时间戳
touch commands_cheatsheet.txttouch 核心功能:文件已存在时,仅更新访问 / 修改时间,内容完全不变。
4. 查看和分析文件内容
4.1 完整查看 linux_fundamentals.txt 全部内容
cat linux_fundamentals.txtcat:一次性输出文件所有内容
4.2 查看 references 里 command_reference.txt 前 2 行
head -n 2 ../references/command_reference.txthead:读取文件开头,-n 2指定只看前 2 行
4.3 查看当前目录 commands_cheatsheet.txt 最后 3 行
tail -n 3 commands_cheatsheet.txttail:读取文件末尾,-n 3指定只看最后 3 行
4.4 交互式浏览 command_reference.txt
less ../references/command_reference.txt操作快捷键:空格:下一页;回车:下一行;q:退出浏览界面
5. 项目维护
5.1 切回项目根目录 LearningNotes
cd ../验证位置:
pwd输出应为/home/用户名/LearningNotes
5.2 列出项目完整目录结构
方式 1(简单 ls 递归)
ls -R-R递归显示所有子文件夹和文件
5.3 删除 references 里的 command_reference.txt
rm references/command_reference.txt5.4 在项目根目录新建空文件 project_status.txt
touch project_status.txt5.5 更新项目内所有文件的访问时间
思路:找到所有 txt 文件,批量 touch 更新时间
find . -type f -name "*.txt" -exec touch {} \;拆解:
.当前目录(LearningNotes)-type f只匹配文件,不匹配文件夹-name "*.txt"匹配所有后缀 txt 文件-exec touch {} \;对每个匹配到的文件执行 touch
最终效果
总结
| 操作 | 命令 |
|---|---|
| 查看手册 | man |
| 切换目录 | cd |
| 列出文件 | ls |
| 创建文件/目录 | touch/mkdir |
| 复制/移动/删除 | cp/mv/rm |
| 查看文件 | cat/less/head/tail |
| 创建链接 | ln/ln -s |
