大部分的Linux发行版的默认shell都是GNU默认的bash shell,而Ubuntu上大多数都是dash shell。
启动shell,/etc/passwd 样例条目下的最后一个字段会显示默认的shell版本,登陆后自动启动。
在虚拟控制台终端登录,CLI提示符会自动出现,即可输入shell命令。而图形化桌面环境登录Linux系统,就需要启动一个图形化终端仿真器来访问shell的CLI
默认的bash shell提示符是美元符号$,表明shell在等待用户输入。可以在CLI中通过shell命令找到bash 手册,了解各种命令及参数:man命令+想要查找的工具的名称,就可以找到那个工具相应的手册条目
man xterm
查找xterm命令的手册页面
当使用man命令查看命令手册页的时候,这些手册页由分页程序来显示,分页程序是一种实用工具,能够逐页显示文本。可以点击空格键进行翻页或者使用回车键逐行查看。
读完手册,可以点击q键退出,退出后,会重新获得shell CLI的输入提示符,此时shell正在等待下一条命令。
(man man 命令可以查看手册本身的手册页)
(如果记不得具体的命令名字,可以通过 man -k 关键字 进行查找
man -k terminal
查找与终端相关的命令
)
(值得关注的是,手册页还分有特定的内容区域,不同的区域保存不同的内容,也都分配了一个固定的数字)
区域号 所涵盖的内容
1 可执行程序或shell命令
2 系统调用
3 库调用
4 特殊文件
5 文件格式与约定
6 游戏
7 概览、约定及杂项
8 超级用户和系统管理员命令
9 内核例程
上图的示例左上角就表明手册内容来自于区域1(这是因为一个命令通常会在不同的区域都对应有一些内容,如果需要指定从那个区域获取相关信息,可以这么写:
man 7 hostname
)
man 命令调出的手册页并不是唯一的参考资料,另外还有两种方式:info 和 help 可以替代man。
help 用法: hostname -help (命令 -help)
一般情况下,登录系统之后,获取了shell的命令提示符,此时都是位于主目录之下。
讲一下Linux的文件与目录:
Linux在路径名中不使用驱动器盘符表明存储区域,也就是没有C盘、D盘这样的概念。Linux采用了一种不同的方式,将文件存储在单个目录结构中,这个目录被称为虚拟目录,虚拟目录将安装在PC上的所有存储设备的文件路径纳入到单个目录结构中。
Linux的虚拟目录结构只包含一个称为:根(root)目录的基础目录,而根目录下的目录和文件会按照访问他们的目录路径一一列出,与Windows相似。(Linux中使用“/” 来划分目录,而windows使用“\”在文件路径中划分目录,在Linux中,反斜线“\”被用来标示转义字符)
/home/Rich/Documents/test.doc (一个Linux路径)
Linux虚拟目录中比较复杂的部分是它如何协调管理各个存储设备。在Linux PC上安装的第一块硬盘被称为“根驱动器”,它包含了虚拟目录的核心,所有其他的目录都是从那里开始构建的。而Linux会在根驱动器上创建一些特别的目录,称之为“挂载点”,挂载点是虚拟目录中用于分配额外存储设备的目录,虚拟目录会让文件和目录出现在这些挂载点目录中,然而实际上却存储在另一块存储驱动器中。(通常系统文件会存储在根驱动器中,而用户文件则存储在另一个驱动器中)
下图为Linux的目录示意:
比较重要的一些目录名称:
常见的这些目录名均来自于文件系统层级标准(FHS filesystem hierarchy standard)
可以使用cd 命令来切换到另一个目录下 (cd 目录名)
cd destination
目录名可以使用绝对文件路径,也可以使用相对文件路径
绝对文件路径定义了在虚拟目录结构中该目录的确切位置,从虚拟目录的根目录开始,相当于目录的全名。
以正斜线“/” 开始,知名虚拟文件系统的根目录
/user/bin 指向user目录下所包含的bin目录下的用户二进制文件。
cd /user/bin
($提示符前面的~波浪号表示的就是所在虚拟目录结构的主目录,切换出主目录之后,提示符之前就会显示当前的绝对路径)(如果没有显示,后面会说到怎么去设置)
可以使用pwd命令来查看当前回话的目录(如下图所示,经常使用这个命令查看自己是否在正确的目录下)(直接cd 空 可以直接回到主目录中)
然而,绝对路径经常会出现路经过长的问题。
相对文件路径允许用户指定一个基于当前位置的目标文件路径,可以不以代表根目录的正斜线开头“/”,而以目录名或是一个特殊字符开始。比如现在位于home目录,希望切换到Documents子目录,就可以直接
cd Documents
即可。
可以再任何包含子目录的目录中使用带有相对文件路径的cd命令,也可以使用特殊字符来表示相对文件目录(比如. 和..)
单点符号 . 表示当前目录
双点符号 .. 表示当前目录的父目录
下图显示:
而使用多个双点符号可以持续向上切换目录。
此时绝对路径直接/etc 即可。
所以两种方式要理智选取。
可以使用ls命令来查看文件,显示当前目录下的文件以及目录
ls的输出按照字母顺序,如果终端支持彩色显示,还可以对不同的文件加以颜色区分
-F参数可以将该目录下的目录和文件区分开来
Linux上的隐藏文件是文件名以 . 点号开始的文件,ls不能让它们现行
-a 参数可以一并显示出隐藏的文件
-R 递归选项,可以显示出当前目录下的子目录中的文件
值得注意的是,选项参数并不一定要分开输入(当然分开输入也是对的),还可以进行合并(ls -FR )(ls -F -R)
-l 参数会产生长列表格式的输出,包含了目录中每个文件的更多相关详细信息