近期学习Linux的总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了近期学习Linux的总结相关的知识,希望对你有一定的参考价值。
Linux系统安装中遇到的问题
-
时区问题
在进行到选择时区的时候,下面有使用utc时钟这个不要选,勾选之后时间其实是按格林威治时间算的,我们现在处于东8区,因此勾了之后时间会差8个小时
- 硬盘分区问题
关于Linux分区规范中有swap分区应该是内存的两倍,当然如果内存特别大的话则没有必要遵循这个规范
Linux基本操作
- 终端类型
- 设备终端
- 物理终端
- 虚拟终端
- 伪终端
- 串行终端
- 图形终端
-
who whoami w命令的对比
# who
# whoami
# w
- \r和\n的区别
从专业术语上来说\r叫回车\n叫换行
- \r:将光标移动到该行的行首,这样在后面输出的内容将会覆盖前面的内容比如下面这个例子
#echo -e "abc\rd"
这时屏幕上显示的内容为dbc,屏幕输出了abc后输出\r,\r将光标移动到该行行首继续输出这时输出d将a覆盖了 - \n:换行符,将光标移动到下一行的开头继续输出
在类Unix系统上换行只需要\n就够了,而在Windows上换行必须使用\r\n,这也就是我们看到在类Unix系统上写的代码拿到Windows上用记事本打开的时候为什么格式会乱的原因,当然有时用记事本写的文本拿到类Unix系统上则会在每一行后面都会有^M。
- \r:将光标移动到该行的行首,这样在后面输出的内容将会覆盖前面的内容比如下面这个例子
文件管理相关
Linux中目录的组织形式是单根的倒置树状结构,在Linux的文件系统例如ext4中大小写是敏感的
-
FHS文件分层标准
Linux有一个LSB(Linux Standards Base)的组织定义的一个FHS(Filesystem Hierarchy Standard)文件系统层级标准,该标准主要定义了在Linux系统文件、工具和程序的存放位置和系统中的目录层次结构
另外其实FHS也大大的促进了LSB组织的诞生,FHS是LSB组织定义的第一个标准
该标准其实主要定义的是Linux系统中根目录下都有哪些目录,已经各种文件类型的颜色等等,当然还可以登录其官方网站下载整个标准的文档。 -
文件名通配符
*:匹配任意个任意字符
?:匹配单个任意字符
~:当前用户家目录
~user_name:某个用户的家目录
~+:当前工作目录
~-:表示刚才离开的目录,-只能在cd中使用 -
文件在硬盘上的存储原理:
首先,每个分区上的每个文件都有与之对应的inode号,通过该inode号可以在inode table中找到与之对应的该文件的元数据,元数据其实就是文件的属性信息,比如所有者,权限,修改日期等,当然还有最重要的就是指向文件数据的指针,如果文件足够小,则指向了文件的数据位置,如果比较大则会指向存放文件块位置信息的地方,当然如果块位置的区域放满了仍然放不下所有的块位置信息,则这个空间中仍然存放的是块位置的信息。
目录的数据区域中存放的是该目录下文件名和inode的对应信息,系统每存放一个文件就会为其分配一个在该分区中唯一的inode,这样软链接和硬链接的原理就很清楚了:
硬链接其实是在某个目录上创建了一个文件名和原文件inode号一样的一个数据,这样他们的属性信息也就一样了,当然由此看来在删除文件的时候是会判断文件的硬链接链接个数的,如果删了这个文件后硬链接变成0了则将对应的数据区的块标记为可以覆盖状态,当然创建一个目录后其硬链接个数就为2是因为该目录本身就是一个硬链接另外目录中有一个‘.’的目录再在创建的目录中创建一个新目录后该目录的硬链接还会加1是因为这个新创建的目录中的".."其实指向了该目录,
注意:以上这一段内容是个人帮助理解记忆写下的,主要思路应该没有问题,偶尔某个细节可能表达的不是特别准确 -
软链接和硬链接的区别:
- 软链接:
- 删除原文件链接文件会受影响
- 软链接文件本身有自己的属性信息
- 软链接的在磁盘上的数据区存放的是要指向文件的路径
- 软链接可以跨分区创建
- 软链接可以指向目录或者文件
- 创建软链接不会增加文件的链接数
- 软链接的文件类型是链接文件
- 软链接的inode号不同
- 软链接原文件的相对路径相对的是链接文件所在的目录
- 硬链接:
- 删除原文件链接文件不会受影响
- 所有直接或间接指向原文件的硬链接的属性信息都一样
- 硬链接在磁盘上的数据区都是文件内容本身
- 硬链接不可以跨分区创建
- 硬链接只能指向文件
- 创建硬链接会增加文件的链接数
- 硬链接的文件类型还是普通文件
- 硬链接的inode号相同
- 硬链接原文件还是相对于自己
- 软链接:
- 重定向相关
如果重定向有多个那么系统会先执行最后一个重定向再执行前一个,依次倒退执行,而且正常情况下某一次标准输出,输出一次后就没有数据了,第二次还要求输出的话只能是空
示例:
# cmd > log 2>&1
先将错误输出重定向到标准输出中然后将标准输出重定向到log文件中,所以屏幕无显示,错误内容在文件中# cmd 2>&1 >log
先将正确内容输入到log文件中 然后将错误输出输出到标准输出中,标准输出中无内容# cmd &>log
把所有的内容输出到log中,log中应该只有错误信息# cmd 2>log >&2
把标准输出重定向到错误输出中,然后把错误输出输出到log文件中,log文件中为错误信息
以上是关于近期学习Linux的总结的主要内容,如果未能解决你的问题,请参考以下文章