Linux 基础概念

Linux 基础概念

在最初学习Linux之前,首先需要搞清楚一些概念。熟悉这些概念之后紧接着熟悉各种命令,这有助于Linux命令的学习。这些概念绝对是你必须知道的,而且有些概念并不显而易见。但是当理解它们以后,你的shell命令也将更加有的放矢。

一切都是文件

在Linux系统中,一切都是文件。说到一切,首先就是那些看起来明显是文件的东西。当然,文本文档是文件,OpenOffice.org文档也是文件。别忘了,图片、MP3和视频,它们都是文件。这是毫无疑问的!

但是目录呢?它也是一种文件,只不过是一种特殊的文件,其中包含其他文件的信息。磁盘驱动器则是真正的大文件了。网络连接也是文件,甚至运行中的进程都是文件。这些都属于文件的范畴。

对于Linux来说,文件只是比特和字节流。Linux并不关心这些二进制位和字节最终组成了什么格式;相反,在Linux上运行的程序才关心它们组成的格式。对于Linux来说,文本文档和网络连接都是文件;而文本编辑器知道如何使用文本文档,因特网应用程序则可以识别网络连接。

本书随处都会提到文件。读者可以根据上下文将“文件”理解为“文件、目录、子目录以及系统中的其他所有东西”。特别是我提到的很多命令,它们对文档和目录都一样有效,可以随意在文档和目录上测试这些命令。

——摘自《Linux命令速查手册 (图灵交互设计丛书) – [美]Scott Granneman》

关于文件名

  • 最大长度

曾经使用过MS-DOS的人们应该记得,DOS中文件名的长度不能超过8个字符,再加上由3个字符组成的扩展名,这种命名方法得出的名字描述性很差,例如MSRSUME1.DOC。OS X之前的苹果机系统则将长度限制扩展到31个字符,虽然这样的文件名似乎应该够长了,但是仍然可能会导致一些稀奇古怪的名字。

Linux(和Unix)文件名最多可以长达255个字符。对于文件名来说,这有些过长。如果你真用了这么长的文件名的话,那界面看起来就跟字典一样烦琐了。有了长达255个字符的空间,就可以自由地将文件名起得更加具有描述性也更准确——当然,过犹不及。

事实上,将文件名的长度控制在80个字符以内比较好,因为大部分显示终端都是这个宽度,文件名能在一行显示完,不用换行。不过,这只是一个建议,不一定非得这样。你有权利去用200个以上的字符来描述一个文件,只是你应该明智地行使这一权利。

——摘自《Linux命令速查手册 (图灵交互设计丛书) – [美]Scott Granneman》

  • 文件名区分大小写

与Windows和Mac OS不同,Linux对于文件名是区分大小写的。在运行Linux的计算机上,同一目录中可能存在以下3个文件:

  • bookstobuy.txt
  • BooksToBuy.txt
  • BoOkStObUy.txt

对于Linux文件系统来说,它们是3个完全不同的文件。但是在Windows或者Mac OS上,如果想在已经包含有bookstobuy.txt的目录中增加另一个BooksToBuy.txt文件,系统就会要求你重新命名这个文件,或者取消这一操作。

区分大小写也意味着必须准确输入命令和文件名。例如,如果要运行rm​命令来删除文件,就不能输入RM、Rm或者rM,只能输入rm。如果原本要删除的是bookstobuy.txt,结果输入的是rm BooksToBuy.txt,那么就会错删了别的文件,或者输入的文件根本就不存在。

这一教训是双重的:Linux强制要求你必须精确,而精确性确实是个好东西。同时,Linux也给了你一定程度的灵活性,这在其他操作系统中是找不到的。精确性与灵活性的结合,是让使用Linux变得有趣的一个原因,但同时也会给新手带来一些困惑。

——摘自《Linux命令速查手册 (图灵交互设计丛书) – [美]Scott Granneman》

  • 命名时不要使用的特殊字符
字  符 建  议
/​​ 绝对不能使用。不能被转义
\​​ 必须转义。避免使用
-​​ 不能作为文件名或目录名的开始
[ ]​​ 必须转义。避免使用
{ }​​ 必须转义。避免使用
*​​ 必须转义。避免使用
?​​ 必须转义。避免使用
'​​ 必须转义。避免使用
"​​ 必须转义。避免使用
:​​ macos不支持,避免使用。
\​​ windows不支持,避免使用。
空格

如果想要在文件名中使用特殊字符,需要用引号'​或"​将文件名括起来:

  • nano 'hello world.txt'​​

  • nano "hello world.txt"​​

总能安全使用的字符:数字、字母(大写字母或小写字母)、圆点(.​​)以及下划线(_​​)。

你可能感兴趣的:(Linux)