资讯中心

Shell的基础知识和常用命令

📅 2026/7/4 20:02:43
Shell的基础知识和常用命令
shell的基础知识和常用命令访问命令行在图形化桌面出现之前与 Unix 系统进行交互的唯一方式就是借助由 shell 所提供的文本命令行界面command line interfaceCLI。CLI 只能接受文本输入也只能显示出文本和基本的图形输出。-可通过 Linux 控制台终端访问 CLI或让 Linux 系统退出图形化桌面模式进入文本模式Linux 发行版通常使用 CtrlAlt 组合键配合 F1 或 F7 来进入图形界面。• Ubuntu 使用 F7• RHEL 则使用 F1基本的 bash shell 命令-shell 提示符:Docker 运行时使用 /bin/bash 作为自己的默认 shell 程序。这意味着当我们登录 Linux 系统后bash shell 会自动启动。尽管 bash shell 会在登录时自动启动但是是否会出现 shell 命令行界面CLI则依赖于所使用的登录方式。如果采用虚拟控制台终端登录CLI 提示符会自动出现你可以输入 shell 命令。但如果是通过图形化桌面环境登录 Linux 系统你就需要启动一个图形化终端仿真器来访问shell CLI提示符。shell 提示符默认 bash shell 提示符是美元符号$这个符号表明 shell 在等待用户输入。在输入 shell 命令之后需要按回车键才能让 shell 执行你输入的命令。bash 手册:大多数 Linux 发行版自带用以查找 shell 命令及其他 GNU 工具信息的在线手册帮助我们弄清各种命令行参数///man 命令用来访问存储在 Linux 系统上的手册页面。在想要查找的工具的名称前面输入man 命令就可以找到那个工具相应的手册条目。输入命令 man man 就可以进入 man 工具的手册页面。----浏览文件系统当登录系统并获得shell命令提示符后你通常位于自己的主目录中。在Windows中PC上安装的物理驱动器决定了文件的路径名。Windows会为每个物理磁盘驱动器分配一个盘符每个驱动器都会有自己的目录结构以便访问存储其中的文件Linux在路径名中不使用驱动器盘符。Linux将文件存储在单个目录结构中这个目录被称为虚拟目录virtual directory。Linux虚拟目录结构只包含一个称为根root目录的基础目录。根目录下的目录和文件会按照访问它们的目录路径一一列出Linux使用正斜线/而不是反斜线\在文件路径中划分目录-根驱动器在Linux PC上安装的第一块硬盘称为根驱动器。根驱动器包含了虚拟目录的核心其他目录都是从那里开始构建的。挂载点mount point挂载点是虚拟目录中用于分配额外存储设备的目录。虚拟目录会让文件和目录出现在这些挂载点目录中然而实际上它们却存储在另外一个驱动器中通常系统文件会存储在根驱动器中而用户文件则存储在另一驱动器中-通用的目录名用于表示一些常见的功能遍历目录在登录系统并获得一个shell CLI提示符后会话将从主目录开始。主目录是分配给用户账户的一个特有目录。用户账户在创建之后系统通常会为其分配一个特有的目录。绝对文件路径定义了在虚拟目录结构中该目录的确切位置以虚拟目录的根目录开始相当于目录的全名。相对文件路径允许用户指定一个基于当前位置的目标文件路径使用cd命令在CLI提示符下切换虚拟目录。相对文件路径中的特殊字符单点符.表示当前目录双点符…表示当前目录的父目录文件和目录列表ls (list)命令最基本的形式会显示当前目录下的文件和目录ls命令输出的列表是按字母列排序的在支持彩色的终端仿真器中ls命令还可以用不同的颜色来区分不同类型的文件如果没安装彩色终端仿真器可用带-F参数的ls命令轻松区分文件和目录-F参数在目录名后加了正斜线/以方便用户在输出中分辨Linux经常采用隐藏文件来保存配置信息。在Linux上隐藏文件通常是文件名以点号开始的文件。ls -a把隐藏文件和普通文件及目录一起显示出来-R参数是ls命令可用的另一个参数,叫递归选项.ls -R它列出了当前目录下包含的子目录中的文件。ls –FR / ls –F –R-l参数会产生长列表格式的输出包含了目录中每个文件的更多相关信息。可以将多个参数结合起来使用获取更多信息。过滤输出列表ls 命令还支持在命令行中定义过滤器。它会用过滤器来决定应该在输出中显示哪些文件或目录。当你不知道要找的那个文件的确切名称。ls命令能够识别标准通配符并在过滤器中用它们进行模式匹配问号?代表一个字符星号*代表零个或多个字符。方括号( [] )指定字符范围感叹号!将不需要的内容排除在外? * [] ! 等符号称为元字符通配符处理文件touch命令指定名称的新文件文件的大小是零空文件touch命令还可用来改变文件的修改时间并不需要改变文件的内容cp source_file destination _file 复制源文件(copy)如果目标文件已经存在cp命令不会提醒。最好是加上-i选项强制shell询问是否需要覆盖已有文件处理文件制表键Tab自动补全制表键自动补全允许你在输入文件名或目录名时按一下制表键让shell帮忙将内容补充完整。但是要给shell提供足够的文件名信息使其能够将需要文件同其他文件区分开。如果当前文件夹下同时test_1.txt 和 test_2.txt 我们输入te后按Tab会补全至test_位置再按一下制表键shell就会列出所有以te开头的文件名为你提供信息-链接文件如需要在系统上维护同一文件的两份或多份副本除了保存多份单独的物理文件副本之外还可以采用保存一份物理文件副本和多个虚拟副本的方法。这种虚拟的副本就称为链接。硬链接: lnLinux 下的文件是通过索引节点Inode来识别文件ls –li可以查看索引节点。硬链接的作用是允许一个文件拥有多个有效路径名这样用户就可以建立硬链接到重要文件,以防止“误删”的功能。符号链接Symbolic links, 软连接: ln -s软链接文件有类似于Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中文件实际上是一个文本文件其中包含的有另一文件的位置信息-重命名文件mv (moving)命令可以将文件和目录移动到另一个位置或重新命名。移动文件会将文件名从fall更改为fzll但inode编号和时间戳保持不变。这是因为mv只影响文件名。和cp命令类似也可以在mv命令中使用-i参数。这样在命令试图覆盖已有的文件时你就会得到提示。也可以使用mv命令移动整个目录及其内容删除文件bash shell中删除文件的命令是rm removing-i命令参数提示你是不是要真的删除该文件。bash shell中没有回收站或垃圾箱文件一旦删除就无法再找回。如果要删除很多文件且不受提示符的打扰可以用-f参数强制删除处理目录在Linux中有些命令比如cp命令对文件和目录都有效而有些只对目录有效。创建新目录需要使用本节讲到的一个特别命令。创建目录mkdir 要想同时创建多个目录和子目录需要加入-p参数 -p参数可以根据需要创建缺失的父目录删除目录rmdir默认情况下rmdir命令只删除空目录没有-i选项来询问是否要删除目录。目录下有内容时rmdir命令拒绝删除目录。删除非空目录时可以先使用rm -i删除目录中的文件再使用rmdir删除空目录也可以在整个非空目录上使用rm –r –f / -rf命令使得命令可以向下进入目录删除其中的文件然后再删除目录本身。没有警告信息也没有声音提示查看文件内容-查看文件类型file 命令不仅能确定文件中包含的文本信息还能确定该文本文件的字符编码。可以使用file命令作为区分另一种目录的方法file能够展示文件链接到了哪个文件上-查看整个文件本cat 显示文本文件中所有数据。-n 参数会给所有的行加上行号。-b 给有文的行加上行号。-T参数会用^I字符组合去替换文中的所有制表符-查看整个文件对大型文件来说cat命令有点繁琐。文件的文本会在显示器上一晃而过more 命令是分页工具会显示文本文件的内容但会在显示每页数据之后停下来。屏幕的底部more命令显示了一个标签其表明你仍然在more程序中以及你现在在这个文本文件中的位置。浏览完之后按q键退出less 为more命令的升级版“less is more”能够实现在文本文件中前后翻动而且还有一些高级搜索功能.-查看部分文件tail 命令会显示文件最后几行的内容文件的“尾部”。默认情况下它会显示文件的末尾10行。-n参数来修改所显示的行数-f参数是tail命令的一个突出特性。它允许你在其他进程使用该文件时查看文件的内容。tail命令会保持活动状态并不断显示添加到文件中的内容。这是实时监测系统日志的绝妙方式head 命令会显示文件开头那些行的内容。默认情况下它会显示文件前10行-n参数来修改所显示的行数练习进入项目根目录目录结构包含 references/ 、 lectures/ 、 backups/ 子文件夹文件操作复制文件并重命名到references目录cp commands_cheatsheet.txt references/command_reference.txt重命名lectures内的文件mv lectures/linux_basics.txt lectures/linux_fundamentals.txt创建备份文件到backups目录cp lectures/linux_fundamentals.txt backups/更新文件时间不修改内容touch commands_cheatsheet.txt查看和分析文件内容完整查看文件内容cat linux_fundamentals.txtless linux_fundamentals.txt查看前两行head -n 2 command_reference.txt查看最后三行tail -n 3 commands_cheatsheet.txt交互式浏览器查看less command_reference.txt项目维护切换到项目目录cd /home/xxx/学习笔记项目ls -R删除指定文件rm references/command_reference.txt在根目录创建空文件touch project_status.txt更新全部文件访问时间find . -type f -exec touch {} ;