zoukankan      html  css  js  c++  java
  • 这样学Linux基本命令,事半功倍

    命令基本格式

    (1)命令提示符

    如下是命令行的命令提示符,以此为例,讲解含义。

    这样学Linux基本命令,事半功倍

    其中:

    root 当前登录用户名

    localhost 主机名

    ~ 当前所在的目录(即家目录,用户登录的初始位置)

    # 超级用户的提示符

    普通用户提示符为$

    注意:在Linux当中管理员账号是root,切记不是administrator

    (2)命令格式

    Linux下的命令格式为:

    命令 [选项] [参数]

    注意:个别命令并不遵循此格式

    当有多个选项时可以写在一起

    下面举个例子,以查询目录中的内容的命令:ls,作为例子说明命令格式的用法。ls的命令如下:

    ls [选项] [文件或者文件目录]

    ls命令的参数就是“文件或者文件目录”,它的选项可以输入下面的:

    -a 显示所有文件,包括隐藏文件

    -l 显示详细信息

    -d 查看目录属性

    -h 人性化显示文件大小

    -i 显示inode

    比如在实际中输入ls命令,如下图所示,利用l选项显示出详细信息。

    这样学Linux基本命令,事半功倍

    下面我们就以一个例子来解释一下详细信息各个部分的含义:

    这样学Linux基本命令,事半功倍

    注意:引用计数就是被调用的次数而已

    所有者即谁是这个文件的主人

    所属组就是这个文件所属的用户组。

    (3)Linux中的权限

    在Linux中的权限由10位的字段来表示。下面就是一个权限,我们以此来说明一下Linux中的权限知识:

    这样学Linux基本命令,事半功倍

    第一位表示文件类型,有共有7中标示,也就是说Linux中共有7种文件类型。下面只介绍三种:

    如果第一位为“—”标示,则是一个普通文件

    如果第一位是“d”标示,则是一个目录

    如果第一位是“l”标示,则是一个软链接文件,即快捷方式

    除去第一位,还有9位。后面的9位,每三位为一组,为了方便说明,我们依次叫做第一组,第二组,第三组。

    第一组代表所有者的权限。

    第二组代表所属组的权限。

    第三组代表其他人的权限。

    什么意思呢?首先你要知道,在Linux中有用户和用户组的含义,用户组就是把相同权限或者相同身份的用户放在一起的集合。举个例子:在一个班里面,一个老师拥有一台电脑,那么他就是这台电脑的所有者,他对这台电脑的权限就是所有者的权限。然后呢这个班里的所有的女生对这个电脑的使用权一样,那么这些女生就是一个用户组,那么这个电脑在这个组里的权限就是所属组的权限。剩下的这个班里的男生就是其他人的意思,电脑在这些男生中的权限就是其他人的权限。在Linux中,我们用u代表所有者,g代表所属组,o代表其他人。

    那么权限都有哪些呢?Linux只有三种权限,即:

    r代表读,w代表写,x代表执行

    那么在上面的那个例子中,表示这是一个普通文件类型,所有者具有读和写的权限,所属组具有读的权限,其他人也具有读的权限。


    建立目录

    建立目录的命令如下:

    mkdir –p [目录名]

    注:-p 递归创建的意思

    创建目录也就是创建一个文件夹的含义。

    那么什么时候使用“-p”呢?如果我们创建单独目录,只需要使用比如:mkdir fuly.如果我们想创建这样的目录:fuly/japan呢?而且fuly这个目录是没有的。那么此时我们要用“-p”了。使用命令:mkdir –p fuly/japan 即可


    切换目录/进入目录

    切换目录或者叫进入目录的命令很简单,如下:

    cd [目录名]

    但是需要说明它的几个特殊用法:

    cd ~或者cd 进入(或者叫回到)当前用户的家目录

    cd - 进入上次目录

    cd .. 进入上一级目录

    cd . 进入当前目录(这个命令并无多大意义)

    在这里需要说明,相对路径和绝对路径的意思。可以简单的这样理解。绝对路径是从根目录开始的,也就是以“/”开头的。相对路径即从当前目录开始或者上一级目录开始的,即以“.”或者“..“开头的目录。如下两个例子:

    cd /usr/share/doc/ 以绝对路径进入目录

    cd ../japan/fuly 以相对路径进入目录

    注意:初学者建议使用绝对路径切换目录


    删除空目录

    rmdir [目录名]


    删除文件或者目录

    rm –rf [文件名或者目录名]

    注:rm本身是用来删除文件的。加了选项”-r“才可以删除目录。选项”-f”是强制的意思,因为每次删除都会询问你是否确定删除,加了这个就不会询问。


    ll命令

    “ll“命令就是命令”ls -l”


    复制命令

    cp [选项] [原文件或者目录] [目标目录]

    选项:

    -r 复制目录

    -p 连带文件属性一起复制

    -d 若原文件是链接文件,则复制链接属性

    -a 就等于选项“-pdr”

    注:cp就是用来复制文件的,如果需要复制目录,选项中要加“-r”。如果想要复制的东西和原来的东西一模一样,什么都一样(包括最后一次修改的时间等),就使用选项”-a”。对于我们使用而言,如果复制目录,就加“-r”,如果需要复制的东西和原来一模一样,就加”-a“。


    剪切或者改名命令

    mv [原文件或目录] [目标目录]

    注:怎么区分是剪切还是改名呢?其实很简单,原来的文件和目标文件在同一个目录下就是改名(重命名),如果不在,就是剪切,即从一个目录剪切到另一个目录.


    Linux常见目录的作用

    在学习Linux的过程中,有些常见的目录的作用是必须要了解的,而且这些常见目录也是严格规定的。我们知道根目录是”/”,根目录下面就是一级目录。那么有哪些常见一级目录呢?如下图:

    这样学Linux基本命令,事半功倍

    我们打开了根目录,然后列出了它下面所有的文件以及目录。常见目录的作用如下:

    bin和sbin都是保存命令的目录,即里面保存的都是Linux的命令。区别是bin保存的任何用户都可使用,而sbin保存的命令只有超级用户才可使用。需要注意的是usr目录下存在bin和sbin目录,这和一级目录bin和sbin的作用是一样的。

    boot目录即启动目录,里面保存的是用户启动时的数据,不能随便做操作。

    dev目录是特殊文件保存目录,里面保存的有硬件文件,不能随便操作。

    etc目录保存的是系统默认的配置文件。

    home是普通用户的文件目录。

    root是超级用户的文件目录。

    lib是Linux的函数库的保存位置。

    media是空的,是Linux用来挂载光盘的位置。

    misc也是空的,是Linux用来挂载磁带机的位置。

    mnt也是空的,是Linux用来挂载U盘的位置。

    注:在Linux中所有的存储设备都要挂载后才能使用,挂载就相当于分配盘符。因此挂载只要是空目录就可以,你完全可以自己建立空目录来挂载U盘什么的。比如说在mnt新建目录usb用来挂载U盘。

    proc和sys目录不能直接操作,他们保存的是内存的过载点。也就是说它们是内存的盘符,我们当然不能往内存中写数据了。

    tmp是临时目录,存放一些临时数据。

    usr是系统软件资源目录。

    var目录保存的是系统相关文档。

    初学者可以在home或者root或者tmp目录下随便放内容来做练习,其他的目录不要随便动了。也不要在根目录下随便操作,比如创建文件等,虽然允许你这么做。


    链接命令

    ln -s [原文件] [目标文件]

    注:该命令用来生成链接文件。选项“-s”为创建软链接。

    在这里要十分的强调硬链接和软链接的区别。分开来说。

    硬链接

    为了说清原理,这要从分区说起。一块分区要想使用,首先要格式化。而格式化是要做两件事的。一件是将分区分成等大小的数据块;另一件就是建立一个分区表,在这个表中会给每个文件建立一行它的相关数据,比如会包括它的i节点号,修改时间,存储的位置等。我们看下面的一张图:

    这样学Linux基本命令,事半功倍

    比如我们建立的一个文件,那么当我们想读取这个文件的时候,它不是直接到存储中找。而且先通过i节点号确定到分区表中的位置,然后找到分区表中这个文件的存储位置,然后按照指引到存储中找到这个文件的数据,也就是图中分区里被打红色勾的那些数据块。最后将这个数据块返回即可。

    好了,了解到这些东西。那么我们创建出这个文件的硬链接,当我们通过这个硬链接读取文件的时候,它的查找过程是怎么样的呢?如下图:

    这样学Linux基本命令,事半功倍

    通过这个硬链接读取文件的查找过程如图中蓝色线条所示。也就是说硬链接和原来的文件的i节点号相同,因此定位到分区表中相同的数据,自然通过相同的指引找到存储中相同的数据块来返回。

    那么硬链接和原文件到底是什么关系的,其实就相当于一个文件的两个名字。也就是一份文件,你给它命名了不同的名字而已。或者做一个形象的比喻,就是一间教室的两扇门,无论你推开哪一道门都会进入教室。那么如果你封掉一个门,通过另一道门仍然可以进入教室。对应于如果你删掉原文件,那么通过硬链接仍旧可以读取数据。如果你修改数据,那么无论通过原文件还是硬链接来读取访问,都是生效的。但是不能跨分区创建硬链接,这就好比一间教室的门不可能开在另外一栋楼上。

    下面总结一下硬链接的特征:

    (1)和原文件拥有相同的i节点和block块,相当于同一个文件。

    (2)可通过i节点识别

    (3)不能跨分区

    (4)不能针对目录使用

    软链接

    下面说一说软链接,一句话就可以概括,软链接和windows下的快捷方式是一样的。继续看一张图,如下:

    这样学Linux基本命令,事半功倍

    在这里,创建的是文件的一个软链接。通过它读取文件的过程如上图粉红色线所示。从图中可以看到软链接的i节点和原文件的i节点不一样,在分区表中它有自己的数据。其实软链接拥有自己的i节点和数据块,在它的数据块中存储的是原文件的文件名和i节点。在通过软链接读取的时候就是先通过软链接的数据块找到原文件的i节点,然后按照指引再最终找到存储中的数据。说白了,这跟windows中的快捷方式是一样的。

    那么软链接的特征呢?如下:

    (1)类似于windows快捷方式

    (2)软链接拥有自己的i节点和block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据。

    (3)原文件和软链接,修改任意一个,对方都会发生改变

    (4)删除了原文件,软链接不可用。

  • 相关阅读:
    xshell的优化和连接
    系统安装后的linux和vmware的网络配置
    CentOS安装系统安装完成
    最快让你上手ReactiveCocoa之进阶篇
    最快让你上手ReactiveCocoa之基础篇
    提升自己逼格的编程之美之代码规范
    告别2016迎接2017,分享一些第三方插件
    Swift 3.0 令人兴奋,但Objective-C也有小改进--Objective-C的类属性
    ReactiveCocoa 5.0 初窥:可能是最痛的一次升级
    react+antd+select+lodash模糊搜索防抖
  • 原文地址:https://www.cnblogs.com/smallFishs/p/8323818.html
Copyright © 2011-2022 走看看