1219 MBR与GPT

MBR与GPT是两种硬盘分区格式。MBR最多只有4个主分区。单个分区大小不超过2.2T.

故实际应用时,常分出扩展分区,然后扩展分区再分割成逻辑分区。

逻辑分区硬盘编号从/dev/sda5开始。

GPT是MBR改进版,是现在与未来发展的方向。它支持多达128个主分区。分区大小几乎没有限制。

不过老的主板可能不支持。window下需要与UEFI开机相配合。

MBR分区表存在硬盘的第一个扇区(512B)内。GPT则使用前34个LBA(logical block address 每个512B),与最后33个LBA

作为备份。故可存储信息大大增加,而且安全性也有了保证。

1220 BIOS与UEFI

BIOS是一个写入硬件的开机程式,它会找到硬盘的MBR(Master boot record),然后加载其中的boot loader, 然后加载操作系统开机。

但是传统BIOS是用汇编语言写的,而且由于MBR区块只有446B, 所以功能受限。而且BIOS 对GPT的支持不是很好。

UEFI应运而生,它用C语言编写,可以放在硬盘前2T空间的任意位置。由于存储空间更大,它功能更强大,甚至可以再开机前就

支持TCP/IP协议。对GPT的支持也更好,是未来的发展方向。

安装linux时,分区简单可以只分/和/swap两个分区。swap给1G即可。进一步可以把常用目录分割出来,如/home, /usr.

1221

Ubuntu下 [ctrl] + [alt] + [F1-F6]是6个文字终端,[ctrl] + [alt] + [F7]是图形界面。

Linux下命令大小写不一样,这个要注意。

[tab]命令补全,文件补全,参数补全

[ctrl]+C 命令结束。

[ctrl]+D 输入结束。相当于EOF,可取代exit。不过有的文字界面退出是quit或q.....

[shift] +[pgUp -pgDn] 翻页。

1222

man  -k man 查询所有含‘man’的命令 (apropos)

man -f man 查询所有的man命令(whatis)

info 命令与man类似,不过有节点信息。

1223

bc   linux内简易计算器。 q退出界面。

cal  日历命令(calendar)

cal 10 2016 显示2016年10月日历

cal 2016 显示2016年日历

直接cal 不加参数会显示当月日历。当天反白显示。

1224

date 显示当前时间,包括年月日,时分秒。

dpkg -i ****.deb 安装deb包。

apt-get install -f 安装依赖关系。

1225

 ls 这个命令很常见,一般人以为很了解,可是其实不然。

怎么只显示当前文件夹中的目录?

可以用组合命令:ls -l  |grep ^d

用ls 不行么?不是有个-d参数么?可是 ls -d 只会显示当前文件夹,一般只显示“.”?

原来-d参数,只是表示不递归显示下层目录,而非只显示当前路径下文件夹。

ls默认向下解一层路径,这也是为什么“ls \tmp” 与“ls \tmp\”显示一样的原因。

那么想要只显示当前文件夹中的目录怎么办呢?

可以用“ls -d */”。

 

1226

 mkdir 新建目录 -p 递归新建,没有则新建,有就不变。-m 设定目录权限。

rmdir 删除空目录, -p递归删除。没有rm -r 好使,但安全~。

1227

 谈谈$PATH

命令之所以会执行是因为其执行路径已加入PATH中,所以可以找到可执行文件。

终归到底,命令不过是一个个可执行文件而已。

可是我没想到的是,当前目录竟然没有加入PATH!

也就是说,默认情况下,PATH中没有相关路径,即使命令文件在当前目录,也无法执行!

不过细想也有道理。当前目录在不断变化,为了系统的稳定性和命令的统一性,不把当前目录加入PATH中也是可以理解的。

1228

 cp 命令

cp很常用,但不是每个人都会用。

cp复制时会改变文件的属性。这样属性有:时间,权限,归属用户,组。这也是合乎情理的。毕竟谁复制的时候都想把东西变成自己的,省的手动改麻烦。

这也是为什么很多人直接cp不加参数,结果也可以接受的原因。

但有特殊需求时,就不行了。

比如我想保留权限,用户组信息。

这是可用cp -a这是最全的,也可用cp -p。不过由于cp默认对链接文件会复制源文件,而非链接。所以-p,不算原样复制。

而-a, 相当于-d原样复制链接,-r递归复制目录,-p保留权限,--preserve=all其他乱七八糟的东西。所以-a真的很强!

不过由于普通用户的权限问题,所以用普通账号登陆时,即使加了-a,对于root用户及组也无法保留,而会应用默认改变。

所以备份最好用root权限啦。那才是真真正正的copy。

另外有个人性化设置。

cp会默认覆盖!

-i 覆盖时会询问。-u 有更新时才覆盖。

1229

 mv 以常理推断,mv应该比cp更复杂。毕竟要我实现的话,mv不就是cp + rm么。

但是linux下mv不可以以常理推断!

真相是mv比cp简单,简单的多!

mv 默认可以mv目录,所以没有-r参数。

mv 默认不改变权限,时间,用户组信息,所以没有-a,-p操作。

mv 可以move时,就可以,权限不够,不可以时就不可以。一般你删不掉的,mv也move不动。

我估计mv实现时就是文件节点指针动了一下,所以才会这么简单.....

1230

rm -r递归,-i提醒,-f强制。当然,权限不够-f也没用。

rm需要目录权限运行。

一般来说,rm的目录权限有就近原则。比如:如果子目录下有文件,子目录权限是不可删。那么从父目录无法删除改子目录。当然子目录为空,是可以的。

但是,如果父目录不可删,子目录可删,从父目录可以直接删除子目录文件。

cd不一样!cd,进不去父目录,子目录也别想!

附录:linux下删不掉文件的原因:

1、在本目录没有w权限,这是最明显的。

2、本目录设置了SBIT,而对象文件拥有者不是你。这个在/tmp目录比较明显。

3、文件设置了隐藏权限-i或-a,这两个设置了任一个(-i尤其厉害),即使是root也删不了!

 

1231

 查看文件命令。

cat 直接显示完,不可分页。-n 显示行号。tac反向显示,真的是反向哦.....

nl 也是直接显示完,默认显示行号,另外还有一系列专业显示行号指令....