Shell基础知识与常用命令:从零开始掌握Linux命令行

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 LearningNotes
  • mkdir= make directory 创建文件夹
1.3 一次性创建 3 个子目录(用 - p 批量创建)
mkdir -p LearningNotes/lectures LearningNotes/references LearningNotes/backups
  • -p:批量创建多层目录,不存在父目录也不会报错
1.4 切换进入 lectures 目录
cd LearningNotes/lectures

1.5 验证当前位置

pwd

输出:/home/你的用户名/LearningNotes/lectures,代表成功。

2. 创建并编辑笔记文件

2.1 创建两个空文件
touch linux_basics.txt commands_cheatsheet.txt
  • touch:创建空文件;也可以修改文件时间戳(后面会用到)
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.txt
2.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.txt
2.4 验证写入是否成功
cat linux_basics.txt cat commands_cheatsheet.txt

3. 文件操作

当前目录: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.txt
  • mv两个作用:①重命名 ②移动文件
  • 同目录下使用 = 重命名;不同目录 = 移动文件
3.3 给 linux_fundamentals.txt 做备份,放到 backups 目录
cp linux_fundamentals.txt ../backups/

直接复制到 backups,文件名不变,作为备份文件。

3.4 更新 commands_cheatsheet.txt 时间戳
touch commands_cheatsheet.txt

touch 核心功能:文件已存在时,仅更新访问 / 修改时间,内容完全不变。

4. 查看和分析文件内容

4.1 完整查看 linux_fundamentals.txt 全部内容
cat linux_fundamentals.txt

cat:一次性输出文件所有内容

4.2 查看 references 里 command_reference.txt 前 2 行
head -n 2 ../references/command_reference.txt
head:读取文件开头,-n 2指定只看前 2 行

4.3 查看当前目录 commands_cheatsheet.txt 最后 3 行
tail -n 3 commands_cheatsheet.txt
tail:读取文件末尾,-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.txt

5.4 在项目根目录新建空文件 project_status.txt

touch project_status.txt

5.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