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 mp” 与“ls mp”显示一样的原因。
那么想要只显示当前文件夹中的目录怎么办呢?
可以用“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 也是直接显示完,默认显示行号,另外还有一系列专业显示行号指令....