zoukankan      html  css  js  c++  java
  • Linux初等命令

    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 也是直接显示完,默认显示行号,另外还有一系列专业显示行号指令....

  • 相关阅读:
    【转】python装饰器
    【原】python异步学习
    【转】Docker学习_本地/容器文件互传(5)
    【原】容灾/容错概念理解
    【原】thinkphp实现存储session至redis
    【原】thinkphp修改Redis操作类,支持选择数据库功能及添加其他方法
    高性能CSS(三)
    Free Code Camp社区对数百计编程学习者进行的统计希望告诉你什么?
    最精简24L01程序--发送
    金日
  • 原文地址:https://www.cnblogs.com/zqiguoshang/p/6196008.html
Copyright © 2011-2022 走看看