精华内容
下载资源
问答
  • Linux 目录文件显示绿色高亮的问题

    千次阅读 2020-03-18 15:44:53
    在我们使用linux操作系统的时候,会有一些小问题引起我们的注意,... 这是因为其他组权限里面有写入的权限,linux系统认为这是一个高风险的目录文件,因为任何人都可以进入到该目录并进行写入操作,所以就将该目录用...

    在我们使用linux操作系统的时候,会有一些小问题引起我们的注意,比如下面的问题:在这里插入图片描述
    这里的 home2 文件被标记为绿色高亮,而其他的目录文件比如 home 文件,却是什么也没有,这是为什么呢?
          这是因为其他组权限里面有写入的权限,linux系统认为这是一个高风险的目录文件,因为任何人都可以进入到该目录并进行写入操作,所以就将该目录用绿色高亮显示,警示用户这个文件存在可能被恶意写入的风险。

    解决方法:使用chmod 命令将其他组的写入权限去掉就行了

    展开全文
  • Linux文件系统目录结构详解

    万次阅读 2017-10-08 13:09:34
    对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面我们就开始了解一下linux...

    引言

    对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面我们就开始了解一下linux目录结构的相关知识。

    在 Linux 或 Unix 操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。

    linux文件系统的最顶端是/,我们称/为Linux的root(根目录),也就是 Linux操作系统的文件系统。Linux的文件系统的入口就是/,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含子目录文件。如此反复就可以构成一个庞大的文件系统。

    FHS诞生

    谈到目录结构,不得不首先了解一下FHS团队的来由。
    由于linux是开放源代码,最开始各大公司和团体根据linux的核心代码做各自的操作,编程。这样就造成在根下的目录的不同。这样就造成个人不能使用他人的linux系统的PC。因为你根本不知道一些基本的配置,文件在哪里,这就造成了混乱。这就是FHS(Filesystem Hierarchy Standard )机构诞生的原因。该机构是linux爱好者自发的组成的一个团体,主要是是对linux做一些基本的要求,不至于是操作者换一台主机就成了linux的‘文盲’。
    根据FHS(http://www.pathname.com/fhs/)的官方文件指出, 他们的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下, 所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循FHS的标准。 也就是说,FHS的重点在于规范每个特定的目录下应该要放置什么样子的数据而已。 这样做好处非常多,因为Linux操作系统就能够在既有的面貌下(目录架构不变)发展出开发者想要的独特风格。
    事实上,FHS是根据过去的经验一直再持续的改版的,FHS依据文件系统使用的频繁与否与是否允许使用者随意更动, 而将目录定义成为四种交互作用的形态,用表格来说有点像底下这样:
     
    可分享的(shareable)
    不可分享的(unshareable)
    不变的(static)
    /usr (软件放置处)
    /etc (配置文件)
    /opt (第三方协力软件)
    /boot (开机与核心档)
    可变动的(variable)
    /var/mail (使用者邮件信箱)
    /var/run (程序相关)
    /var/spool/news (新闻组)
    /var/lock (程序相关)
    四中类型:
    1. 可分享的:
    可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据, 是能够分享给网络上其他主机挂载用的目录;
    2. 不可分享的:
    自己机器上面运作的装置文件或者是与程序有关的socket文件等, 由于仅与自身机器有关,所以当然就不适合分享给其他主机了。
    3. 不变的:
    有些数据是不会经常变动的,跟随着distribution而不变动。 例如函式库、文件说明文件、系统管理员所管理的主机服务配置文件等等;
    4. 可变动的:
    经常改变的数据,例如登录文件、一般用户可自行收受的新闻组等。
    事实上,FHS针对目录树架构仅定义出三层目录底下应该放置什么数据而已,分别是底下这三个目录的定义:
    / (root, 根目录):与开机系统有关;
    /usr (unix software resource):与软件安装/执行有关;
    /var (variable):与系统运作过程有关。

    根目录 (/) 的意义与内容

    根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的, 同时根目录也与开机/还原/系统修复等动作有关。 由于系统开机时需要特定的开机软件、核心文件、开机所需程序、 函式库等等文件数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行。 因为根目录是这么的重要,所以在FHS的要求方面,他希望根目录不要放在非常大的分区, 因为越大的分区内你会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会。
    因此FHS标准建议:根目录(/)所在分区应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也较不容易发生问题。说白了,就是根目录和Windows的C盘一个样。
    根据以上原因,FHS认为根目录(/)下应该包含如下子目录:
    目录
    应放置档案内容
    /bin
    系统有很多放置执行档的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的指令。在/bin底下的指令可以被root与一般帐号所使用,主要有:cat,chmod(修改权限), chown, date, mv, mkdir, cp, bash等等常用的指令。
    /boot
    主要放置开机会使用到的档案,包括Linux核心档案以及开机选单与开机所需设定档等等。Linux kernel常用的档名为:vmlinuz ,如果使用的是grub这个开机管理程式,则还会存在/boot/grub/这个目录。
    /dev
    在Linux系统上,任何装置与周边设备都是以档案的型态存在于这个目录当中。 只要通过存取这个目录下的某个档案,就等于存取某个装置。比要重要的档案有/dev/null, /dev/zero, /dev/tty , /dev/lp*, / dev/hd*, /dev/sd*等等
    /etc
    系统主要的设定档几乎都放置在这个目录内,例如人员的帐号密码档、各种服务的启始档等等。 一般来说,这个目录下的各档案属性是可以让一般使用者查阅的,但是只有root有权力修改。 FHS建议不要放置可执行档(binary)在这个目录中。 比较重要的档案有:/etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/等等。 另外,其下重要的目录有:/etc/init.d/ :所有服务的预设启动script都是放在这里的,例如要启动或者关闭iptables的话: /etc/init.d/iptables start、/etc/init.d/ iptables stop
    /etc/xinetd.d/ :这就是所谓的super daemon管理的各项服务的设定档目录。
    /etc/X11/ :与X Window有关的各种设定档都在这里,尤其是xorg.conf或XF86Config这两个X Server的设定档。
    /home
    这是系统预设的使用者家目录(home directory)。 在你新增一个一般使用者帐号时,预设的使用者家目录都会规范到这里来。比较重要的是,家目录有两种代号:
    ~ :代表当前使用者的家目录,而 ~guest:则代表用户名为guest的家目录。
    /lib
    系统的函式库非常的多,而/lib放置的则是在开机时会用到的函式库,以及在/bin或/sbin底下的指令会呼叫的函式库而已 。 什么是函式库呢?妳可以将他想成是外挂,某些指令必须要有这些外挂才能够顺利完成程式的执行之意。 尤其重要的是/lib/modules/这个目录,因为该目录会放置核心相关的模组(驱动程式)。
    /media
    media是媒体的英文,顾名思义,这个/media底下放置的就是可移除的装置。 包括软碟、光碟、DVD等等装置都暂时挂载于此。 常见的档名有:/media/floppy, /media/cdrom等等。
    /mnt
    如果妳想要暂时挂载某些额外的装置,一般建议妳可以放置到这个目录中。在古早时候,这个目录的用途与/media相同啦。 只是有了/media之后,这个目录就用来暂时挂载用了。
    /opt
    这个是给第三方协力软体放置的目录 。 什么是第三方协力软体啊?举例来说,KDE这个桌面管理系统是一个独立的计画,不过他可以安装到Linux系统中,因此KDE的软体就建议放置到此目录下了。 另外,如果妳想要自行安装额外的软体(非原本的distribution提供的),那么也能够将你的软体安装到这里来。 不过,以前的Linux系统中,我们还是习惯放置在/usr/local目录下。
    /root
    系统管理员(root)的家目录。 之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分区中。
    /sbin
    Linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来设定系统,其他使用者最多只能用来查询而已。放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。至于某些伺服器软体程式,一般则放置到/usr/sbin/当中。至于本机自行安装的软体所产生的系统执行档(system binary),则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。
    /srv
    srv可以视为service的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。 常见的服务例如WWW, FTP等等。 举例来说,WWW伺服器需要的网页资料就可以放置在/srv/www/里面。呵呵,看来平时我们编写的代码应该放到这里了。
    /tmp
    这是让一般使用者或者是正在执行的程序暂时放置档案的地方。这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要资料不可放置在此目录啊。 因为FHS甚至建议在开机时,应该要将/tmp下的资料都删除。
    事实上FHS针对根目录所定义的标准就仅限于上表,不过仍旧有些目录也需要我们了解一下,具体如下:
    目录
    应放置文件内容
    /lost+found
    这个目录是使用标准的ext2/ext3档案系统格式才会产生的一个目录,目的在于当档案系统发生错误时,将一些遗失的片段放置到这个目录下。 这个目录通常会在分割槽的最顶层存在,例如你加装一个硬盘于/disk中,那在这个系统下就会自动产生一个这样的目录/disk/lost+found
    /proc
    这个目录本身是一个虚拟文件系统(virtual filesystem)喔。 他放置的资料都是在内存当中,例如系统核心、行程资讯(process)(是进程吗?)、周边装置的状态及网络状态等等。因为这个目录下的资料都是在记忆体(内存)当中,所以本身不占任何硬盘空间。比较重要的档案(目录)例如: /proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/*等等。呵呵,是虚拟内存吗[guest]?
    /sys
    这个目录其实跟/proc非常类似,也是一个虚拟的档案系统,主要也是记录与核心相关的资讯。 包括目前已载入的核心模组与核心侦测到的硬体装置资讯等等。 这个目录同样不占硬盘容量。
    除了这些目录的内容之外,另外要注意的是,因为根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分区则是在开机完成之后才会持续的进行挂载的行为。就是因为如此,因此根目录下与开机过程有关的目录, 就不能够与根目录放到不同的分区去。那哪些目录不可与根目录分开呢?有底下这些:
    /etc:配置文件
    /bin:重要执行档
    /dev:所需要的装置文件
    /lib:执行档所需的函式库与核心所需的模块
    /sbin:重要的系统执行文件
    这五个目录千万不可与根目录分开在不同的分区。

    /usr 的意义与内容

    依据FHS的基本定义,/usr里面放置的数据属于可分享的与不可变动的(shareable, static), 如果你知道如何透过网络进行分区的挂载(例如在服务器篇会谈到的NFS服务器),那么/usr确实可以分享给局域网络内的其他主机来使用喔。
    /usr不是user的缩写,其实usr是Unix Software Resource的缩写, 也就是Unix操作系统软件资源所放置的目录,而不是用户的数据啦。这点要注意。 FHS建议所有软件开发者,应该将他们的数据合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录。
    因为是所有系统默认的软件(distribution发布者提供的软件)都会放置到/usr底下,因此这个目录有点类似Windows 系统的C:\Windows\ + C:\Program files\这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。 一般来说,/usr的次目录建议有底下这些:
    目录
    应放置文件内容
    /usr/X11R6/
    为X Window System重要数据所放置的目录,之所以取名为X11R6是因为最后的X版本为第11版,且该版的第6次释出之意。
    /usr/bin/
    绝大部分的用户可使用指令都放在这里。请注意到他与/bin的不同之处。(是否与开机过程有关)
    /usr/include/
    c/c++等程序语言的档头(header)与包含档(include)放置处,当我们以tarball方式 (*.tar.gz 的方式安装软件)安装某些数据时,会使用到里头的许多包含档。
    /usr/lib/
    包含各应用软件的函式库、目标文件(object file),以及不被一般使用者惯用的执行档或脚本(script)。 某些软件会提供一些特殊的指令来进行服务器的设定,这些指令也不会经常被系统管理员操作, 那就会被摆放到这个目录下啦。要注意的是,如果你使用的是X86_64的Linux系统, 那可能会有/usr/lib64/目录产生
    /usr/local/
    统管理员在本机自行安装自己下载的软件(非distribution默认提供者),建议安装到此目录, 这样会比较便于管理。举例来说,你的distribution提供的软件较旧,你想安装较新的软件但又不想移除旧版, 此时你可以将新版软件安装于/usr/local/目录下,可与原先的旧版软件有分别啦。 你可以自行到/usr/local去看看,该目录下也是具有bin, etc, include, lib...的次目录
    /usr/sbin/
    非系统正常运作所需要的系统指令。最常见的就是某些网络服务器软件的服务指令(daemon)
    /usr/share/
    放置共享文件的地方,在这个目录下放置的数据几乎是不分硬件架构均可读取的数据, 因为几乎都是文本文件嘛。在此目录下常见的还有这些次目录:/usr/share/man:联机帮助文件
    /usr/share/doc:软件杂项的文件说明
    /usr/share/zoneinfo:与时区有关的时区文件
    /usr/src/
    一般原始码建议放置到这里,src有source的意思。至于核心原始码则建议放置到/usr/src/linux/目录下。

    /var 的意义与内容

    如果/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运作后才会渐渐占用硬盘容量的目录。 因为/var目录主要针对常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如MySQL数据库的文件等等。常见的次目录有:
    目录
    应放置文件内容
    /var/cache/
    应用程序本身运作过程中会产生的一些暂存档
    /var/lib/
    程序本身执行的过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应该要有各自的目录。 举例来说,MySQL的数据库放置到/var/lib/mysql/而rpm的数据库则放到/var/lib/rpm去
    /var/lock/
    某些装置或者是文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该装置时, 就可能产生一些错误的状况,因此就得要将该装置上锁(lock),以确保该装置只会给单一软件所使用。 举例来说,刻录机正在刻录一块光盘,你想一下,会不会有两个人同时在使用一个刻录机烧片? 如果两个人同时刻录,那片子写入的是谁的数据?所以当第一个人在刻录时该刻录机就会被上锁, 第二个人就得要该装置被解除锁定(就是前一个人用完了)才能够继续使用
    /var/log/
    非常重要。这是登录文件放置的目录。里面比较重要的文件如/var/log/messages, /var/log/wtmp(记录登入者的信息)等。
    /var/mail/
    放置个人电子邮件信箱的目录,不过这个目录也被放置到/var/spool/mail/目录中,通常这两个目录是互为链接文件。
    /var/run/
    某些程序或者是服务启动后,会将他们的PID放置在这个目录下
    /var/spool/
    这个目录通常放置一些队列数据,所谓的“队列”就是排队等待其他程序使用的数据。 这些数据被使用后通常都会被删除。举例来说,系统收到新信会放置到/var/spool/mail/中, 但使用者收下该信件后该封信原则上就会被删除。信件如果暂时寄不出去会被放到/var/spool/mqueue/中, 等到被送出后就被删除。如果是工作排程数据(crontab),就会被放置到/var/spool/cron/目录中。
    由于FHS仅是定义出最上层(/)及次层(/usr, /var)的目录内容应该要放置的文件或目录数据, 因此,在其他次目录层级内,就可以随开发者自行来配置了。

    目录树(directory tree)

    在Linux底下,所有的文件与目录都是由根目录开始的。那是所有目录与文件的源头, 然后再一个一个的分支下来,因此,我们也称这种目录配置方式为:目录树(directory tree), 这个目录树的主要特性有:
    目录树的启始点为根目录 (/, root);
    每一个目录不止能使用本地端的 partition 的文件系统,也可以使用网络上的 filesystem 。举例来说, 可以利用 Network File System (NFS) 服务器挂载某特定目录等。
    每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的。
    如果我们将整个目录树以图的方法来显示,并且将较为重要的文件数据列出来的话,那么目录树架构就如下图所示:

    以下是对这些目录的解释:

    /:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中。


    /bin:/usr/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。例如cp、ls、cat,等等。


    /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可。


    /dev :dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备文件,在Linux中访问设备的方式和访问文件的方式是相同的。访问该目录下某个文件,相当于访问某个设备,其功能类似DOS下的.sys和Win下的.vxd。例如:/dev/hda代表第一个物理IDE硬盘。常用的是挂载光驱mount /dev/cdrom /mnt。


    /etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。注:/etc/X11存放与x windows有关的设置。


    /home:用户的主目录,在Linux中,系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,比如说有个用户叫zhong,那他的主目录就是/home/zhong也可以用~zhong表示。建议单独分区,并设置较大的磁盘空间,方便用户存放数据。


    /lib:/usr/lib:/usr/local/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。


    /lost+found:这个目录一般情况下是空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所。对了,有点类似于DOS下的.chk文件。系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found


    /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。


    /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。


    /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下。


    /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等。这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all


    /root:该目录为系统管理员,也称作超级权限者的用户主目录。系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。


    /sbin:/usr/sbin:/usr/local/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。


    /selinux:这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。


    /srv:该目录存放一些服务启动之后需要提取的数据。服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内。


    /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。


    /tmp:这个目录是用来存放一些临时文件的。一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。


    /var:这个目录中存放着在不断扩充着的东西,包括各种日志文件。为了保持/usr的相对稳定,那些经常被修改的目录可以放在这个目录下,实际上许多系统管理员都是这样干的。顺带说一下系统的日志文件就在/var/log目录中。放置系统执行过程中经常变化的文件,如随时更改的日志文件/var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大的磁盘空间。


    /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。应用程序存放目录,/usr/bin存放应用程序,/usr/share存放共享数据,/usr/lib存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包。/usr/share/doc:系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间。


    绝对路径与相对路径


    除了需要特别注意的FHS目录配置外,在文件名部分我们也要特别注意。因为根据档名写法的不同,也可将所谓的路径(path)定义为绝对路径(absolute)与相对路径(relative)。 这两种文件名/路径的写法依据是这样的:
    绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc;
    相对路径:相对于目前路径的文件名写法。 例如 ./home/dmtsai 或 http://www.cnblogs.com/home/dmtsai/ 等等。反正开头不是 / 就属于相对路径的写法
    而你必须要了解,相对路径是以你当前所在路径的相对位置来表示的。举例来说,你目前在 /home 这个目录下, 如果想要进入 /var/log 这个目录时,可以怎么写呢?
    cd /var/log (absolute)
    cd ../var/log (relative)
    因为你在 /home 底下,所以要回到上一层 (../) 之后,才能继续往 /var 来移动的,特别注意这两个特殊的目录:
    . :代表当前的目录,也可以使用 ./ 来表示;
    .. :代表上一层目录,也可以 ../ 来代表。
    这个 . 与 .. 目录概念是很重要的,你常常会看到 cd .. 或 ./command 之类的指令下达方式, 就是代表上一层与目前所在目录的工作状态。
    如果一个目录或文件名以一个点 . 开始,表示这个目录或文件是一个隐藏目录或文件(如:.bashrc)。即以默认方式查找时,不显示该目录或文件。ls -a 能看见所有目录或文件(包括隐藏的)。
    实例1:如何先进入/var/spool/mail/目录,再进入到/var/spool/cron/目录内?
    命令:
    cd /var/spool/mail
    cd ../cron
    说明:
    由于/var/spool/mail与/var/spool/cron是同样在/var/spool/目录中。如此就不需要在由根目录开始写起了。这个相对路径是非常有帮助的,尤其对于某些软件开发商来说。 一般来说,软件开发商会将数据放置到/usr/local/里面的各相对目录。 但如果用户想要安装到不同目录呢?就得要使用相对路径。
    实例2:网络文件常常提到类似./run.sh之类的数据,这个指令的意义为何?
    说明:
    由于指令的执行需要变量的支持,若你的执行文件放置在本目录,并且本目录并非正规的执行文件目录(/bin, /usr/bin等为正规),此时要执行指令就得要严格指定该执行档。./代表本目录的意思,所以./run.sh代表执行本目录下, 名为run.sh的文件。

    几个比较重要的目录


    在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

    /etc: 这个目录相当重要,如前所述,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。你的开机与系统数据文件均在这个目录之下,因此当这个目录被破坏,那你的系统大概也就差不多该死掉了!而在往后的文件中,你会发现我们常常使用这个目录下的 /etc/rc.d/init.d 这个子目录,因为这个 init.d 子目录是开启一些 Linux 系统服务的 scripts的地方。而在 /etc/rc.d/rc.local 这个文件是开机的执行档。


    /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的,例如 root 常常使用的 userconf, netconf, perl, gcc, c++ 等等的数据都放在这几个目录中,所以如果你在提示字符下找不到某个执行档时,可以在这四个目录中查一查!其中, /bin, /usr/bin 是给系统用户(除root外的通用户)使用的指令,而 /sbin, /usr/sbin 则是给系统管理员使用的指令!


    /usr/local:这是系统预设的让你安装你后来升级的套件的目录。例如,当你发现有更新的 Web 套件(如 Apache )可以安装,而你又不想以 rpm 的方式升级你的套件,则你可以将 apache 这个套件安装在 /usr/local 底下。安装在这里有个好处,因为目前大家的系统都是差不多的,所以如果你的系统要让别人接管的话,也比较容易上手呀!也比较容易找的到数据!因此,如果你有需要的话,通常我都会将 /usr/local/bin 这个路径加到我的 path 中。

     
    /home:这个是系统将有账号的人口的家目录设置的地方。


    /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,不论是登入、各类服务的问题发生时的记录、以及常态性的服务记录等等的记录目录,所以当你的系统有问题时,就需要来这个目录记录的文件数据中察看问题的所在啰!另外mail的预设放置也是在这里。


    /usr/share/man, /usr/local/man:这两个目录为放置各类套件说明档的地方,例如你如果执行 man man,则系统会自动去找这两个目录下的所有说明文件。



    详解几个目录


    /dev:目录

    dev是设备(device)的英文缩写。/dev这个目录对所有的用户都十分重要。因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序,这一点和windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。
    Linux沿袭Unix的风格,将所有设备认成是一个文件。
      设备文件分为两种:块设备文件(b)和字符设备文件(c)
      设备文件一般存放在/dev目录下,对常见设备文件作如下说明:
      /dev/hd[a-t]:IDE设备
      /dev/sd[a-z]:SCSI设备
      /dev/fd[0-7]:标准软驱
      /dev/md[0-31]:软raid设备
      /dev/loop[0-7]:本地回环设备
      /dev/ram[0-15]:内存
      /dev/null:无限数据接收设备,相当于黑洞
      /dev/zero:无限零资源
      /dev/tty[0-63]:虚拟终端
      /dev/ttyS[0-3]:串口
      /dev/lp[0-3]:并口
      /dev/console:控制台
      /dev/fb[0-31]:framebuffer
      /dev/cdrom => /dev/hdc
      /dev/modem => /dev/ttyS[0-9]
      /dev/pilot => /dev/ttyS[0-9]
      /dev/random:随机数设备
      /dev/urandom:随机数设备
      
      /dev目录下的节点是怎么创建的?  --->   devf或者udev会自动帮你创建得。
      kobject是sysfs文件系统的基础,udev通过监测、检测sysfs来获取新创建的设备的。

    /etc:目录

    包含很多文件.许多网络配置文件也在/etc 中
    ./etc/rc or /etc/rc.d or /etc/rc*.d :启动、或改变运行级时运行的scripts或scripts的目录.
    /etc/passwd:用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息.
    /etc/fstab:启动时mount -a命令(在/etc/rc 或等效的启动文件中)自动mount的文件系统列表. Linux下,也包括用swapon -a启用的swap区的信息.
    /etc/group:类似/etc/passwd ,但说明的不是用户而是组.
    /etc/inittab:init 的配置文件.
    /etc/issue:getty 在登录提示符前的输出信息.通常包括系统的一段短说明或欢迎信息.内容由系统管理员确定.
    /etc/motd:Message Of The Day,成功登录后自动输出.内容由系统管理员确定.经常用于通告信息,如计划关机时间的警告.
    /etc/mtab:当前安装的文件系统列表.由scripts初始化,并由mount 命令自动更新.需要一个当前安装的文件系统的列表时使用,例如df 命令.
    /etc/shadow:在安装了影子口令软件的系统上的影子口令文件.影子口令文件将/etc/passwd 文件中的加密口令移动到/etc/shadow 中,而后者只对root可读.这使破译口令更困难.
    /etc/login.defs:login 命令的配置文件.
    /etc/printcap:类似/etc/termcap ,但针对打印机.语法不同.
    /etc/profile , /etc/csh.login , /etc/csh.cshrc:登录或启动时Bourne或C shells执行的文件.这允许系统管理员为所有用户建立全局缺省环境.
    /etc/securetty:确认安全终端,即哪个终端允许root登录.一般只列出虚拟控制台,这样就不可能(至少很困难)通过modem或网络闯入系统并得到超级用户特权.
    /etc/shells:列出可信任的shell.chsh 命令允许用户在本文件指定范围内改变登录shell.提供一台机器FTP服务的服务进程ftpd 检查用户shell是否列在 /etc/shells 文件中,如果不是将不允许该用户登录.
    /etc/sysconfig:网络配置相关目录

    /proc: 目录

    档名 文件内容
    /proc/cmdline: 加载 kernel 时所下达的相关参数!查阅此文件,可了解系统是如何启动的!
    /proc/cpuinfo :本机的 CPU 的相关资讯,包含时脉、类型与运算功能等
    /proc/devices :这个文件记录了系统各个主要装置的主要装置代号,与 mknod 有关呢!
    /proc/filesystems: 目前系统已经加载的文件系统罗!
    /proc/interrupts :目前系统上面的 IRQ 分配状态。
    /proc/ioports :目前系统上面各个装置所配置的 I/O 位址。
    /proc/kcore :这个就是内存的大小啦!好大对吧!但是不要读他啦!
    /proc/loadavg:还记得 top 以及 uptime 吧?没错!上头的三个平均数值就是记录在此!
    /proc/meminfo :使用 free 列出的内存资讯,嘿嘿!在这里也能够查阅到!
    /proc/modules :目前我们的 Linux 已经加载的模块列表,也可以想成是驱动程序啦!
    /proc/mounts :系统已经挂载的数据,就是用 mount 这个命令呼叫出来的数据啦!
    /proc/swaps :到底系统挂加载的内存在哪里?呵呵!使用掉的 partition 就记录在此啦!
    /proc/partitions: 使用 fdisk -l 会出现目前所有的 partition 吧?在这个文件当中也有纪录喔!
    /proc/pci :在 PCI 汇流排上面,每个装置的详细情况!可用 lspci 来查阅!
    /proc/uptime: 就是用 uptime 的时候,会出现的资讯啦!
    /proc/version :核心的版本,就是用 uname -a 显示的内容啦!
    /proc/bus/* :一些汇流排的装置,还有 U盘 的装置也记录在此喔!

    /usr: 目录

    /usr :文件系统经常很大,因为所有程序安装在这里. /usr 里的所有文件一般来自Linux distribution;本地安装的程序和其他东西在/usr/local 下.这样可能在升级新版系统或新distribution时无须重新安装全部程序.
    /usr/etc: 存放设置文件
    /usr/games: 存放游戏和教学文件
    /usr/include :存放C开发工具的头文件
    /usr/share :存放结构独立的数据
    /usr/bin :几乎所有用户命令.有些命令在/bin 或/usr/local/bin 中.
    /usr/sbin :根文件系统不必要的系统管理命令,例如多数服务程序.
    /usr/share/man , /usr/share/info , /usr/share/doc: 手册页、GNU信息文档和各种其他文档文件.
    /usr/include: C编程语言的头文件.为了一致性这实际上应该在/usr/lib 下,但传统上支持这个名字.
    /usr/lib :程序或子系统的不变的数据文件,包括一些site-wide配置文件.名字lib来源于库(library); 编程的原始库存在/usr/lib 里.
    /usr/local :本地安装的软件和其他文件放在这里.
    /usr/src: 存放程序的源代码

    /var: 目录

    /var :包括系统一般运行时要改变的数据.每个系统是特定的,即不通过网络与其他计算机共享.
    /var/catman:当要求格式化时的man页的cache.man页的源文件一般存在/usr/man/man* 中;有些man页可能有预格式化的版本,存在/usr/man/cat* 中.而其他的man页在第一次看时需要格式化,格式化完的版本存在/var/man 中,这样其他人再看相同的页时就无须等待格式化了. (/var/catman 经常被清除,就象清除临时目录一样.)
    /var/lib :系统正常运行时要改变的文件.
    /var/local:/usr/local 中安装的程序的可变数据(即系统管理员安装的程序).注意,如果必要,即使本地安装的程序也会使用其他/var 目录,例如/var/lock .
    /var/lock:锁定文件.许多程序遵循在/var/lock 中产生一个锁定文件的约定,以支持他们正在使用某个特定的设备或文件.其他程序注意到这个锁定文件,将不试图使用这个设备或文件.
    /var/log:各种程序的Log文件,特别是login (/var/log/wtmp log所有到系统的登录和注销) 和syslog (/var/log/messages 里存储所有核心和系统程序信息. /var/log 里的文件经常不确定地增长,应该定期清除.
    /var/run:保存到下次引导前有效的关于系统的信息文件.例如, /var/run/utmp 包含当前登录的用户的信息.
    /var/spool:mail, news, 打印队列和其他队列工作的目录.每个不同的spool在/var/spool 下有自己的子目录,例如,用户的邮箱在/var/spool/mail 中.
    /var/tmp:比/tmp 允许的大或需要存在较长时间的临时文件. (虽然系统管理员可能不允许/var/tmp 有很旧的文件.)
    展开全文
  • Linux文件目录操作

    千次阅读 2019-10-09 09:56:36
    Linux文件目录操作一、基本shell操作1.1 常用Linux快捷键1.2 提示和命令补齐1.3 常用Linux命令二、文件和目录操作相关命令2.1 文件和目录操作2.1.1 文件或目录查看2.1.2 目录跳转2.1.3 文件或目录创建2.1.4 文件或...

    一、基本shell操作

    1.1 常用Linux快捷键

    快捷键 说明
    Ctrl + p/n 上一个命令/下一个命令,等效于键盘的↑↓
    Ctrl + b/f 光标向前/后
    Ctrl + a/e 光标移动到行头/尾
    Ctrl + h/d 删除光标前/后字符
    Ctrl + u 删除光标前所有字符
    Shift+ PageUp 上翻页
    Shift+ PageDown 下翻页
    Ctrl + Alt + t lUbantu,创建终端
    Ctrl + Shift + t 添加新标签页

    1.2 提示和命令补齐

    Tab补齐,按下一次补齐(命令或目录),按下两次提示(命令或目录)

    1.3 常用Linux命令

    命令 说明
    history 查看操作历史
    clear 清除终端信息
    pwd 查看当前目录
    which 查看命令的目录
    man man 查看手册,九个章节,分别为1.可执行行程序或shell命令;2.系统调用(内核提供的函数);3.库调用(程序库中提供的函数);4.特殊文件(通常位于/dev);5.文件格式和规范(如/etc/passwd);6.游戏;7.杂项;8.系统管理命令;9.内核例程
    alias 查看命令别名,设置,例:alias pag='ps aux
    echo 在显示器上显示数据,普通数据:echo 字符串,显示环境变量:echo $PATH,显示上一次程序退出值:echo $?( $:取值,?:最近一次程序退出时的返回值)
    poweroff 关机
    reboot 重启
    shutdown 关机,-t:秒,设定在切换至不同的runlevle之前,警告和删除两信号之间的延迟时间;-k:仅送出警告信息,但不关机;-r:shutdown之后重新开机;-h:shutdown命令之后关机;-n:不经过init,由shutdown指令本身做关机动作;-f:重新开机时,跳过fsck命令,不检查档案系统;-F:重新开机时,强迫做fsck检查;-c:将已经正在shutdown的动作取消

    二、文件和目录操作相关命令

    2.1 文件和目录操作

    2.1.1 文件或目录查看

    查看目录:

    • ls:查看所有目录,-l详细信息(详细信息说明请看这里:Linux命令ls -l详细信息说明),-a展示隐藏文件
    • tree:以树状结构展示目录
    • pwd:查看当前目录
      在这里插入图片描述
      查看文件内容:
    • cat fileName:将文件内容一次性输出到终端,如果文件太长,无法在终端全部显示
    • more fileName:文件内容分页显示到终端,只能一直向下浏览,不能退回,enter下一行,backspace下一页,ctrl+c或q退出
    • less fileName:文件内容分页显示到终端,可以自由上下浏览,enter下一行,backspace下一页,ctrl+c或q退出,ctrl+p或↑滚动到上一行,ctrl+n或↓滚动到下一行
    • head -x fileName:x为行,从文件头开始查看前x行的内容,如果没有指定行数,默认显示前10行内容
    • tail -x fileName:x为行,从文件尾开始查看后x行的内容,如果没有指定行数,默认显示后10行内容

    2.1.2 目录跳转

    跳转:cd
    跳转邻近目录:cd -
    返回家目录(三种):

    • cd /home/User
    • cd ~
    • cd

    2.1.3 文件或目录创建

    • 创建一个目录:mkdir dirName
    • 创建一套目录:mkdir dirName1/dirName2/dirName3 -p
    • 创建一个文件:touch fileName(文档末添加写入一行echo “content” >> word.txt,>为全替代文档内容)

    2.1.4 文件或目录删除

    • 删除一个空目录:rmdir dirName
    • 删除一个非空目录:rm -r dirName(递归删除,-i可以进行询问)
    • 删除一个文件:rm fileName

    2.1.5 文件或目录拷贝

    • 拷贝一个文件:cp fileName1 fileName2(fileName1拷贝到fileName2,fileName2不存在时自动创建)
    • 拷贝一个文件到指定路径:cp fileName path
    • 拷贝一个目录:cp dirName1 dirName2 -r(fileName2不存在时自动创建)
    • 拷贝一个目录到指定路径:cp dirName path -r

    2.1.6 文件或目录移动、重命名

    重命名:

    • 文件重命名:mv fileName newFileName
    • 目录重命名:mv dirName newDirName
      移动:
    • 移动一个文件到指定目录:mv fileName path
    • 移动一个目录到指定目录:mv dirName path

    2.2 Linux系统目录结构

    ls /查看Linux系统目录
    在这里插入图片描述
    系统目录树状结构
    在这里插入图片描述
    必须掌握的系统目录及说明

    目录 说明
    /bin Binary的缩写, 这个目录存放着最经常使用的命令
    /dev Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的
    /etc 用来存放所有的系统管理所需要的配置文件和子目录
    /home 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
    /lib 存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件
    /media linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下
    /mnt 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了
    /root 为系统管理员,也称作超级权限者的用户主目录
    /usr 非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录

    在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
    /etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
    /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
    值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
    /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

    其他目录说明:

    • /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
    • /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
    • /opt: 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
    • /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
      echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
    • /selinux: 这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
    • /srv: 该目录存放一些服务启动之后需要提取的数据。
    • /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
      sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
    • /tmp:这个目录是用来存放一些临时文件的。
    • /usr/bin:系统用户使用的应用程序。
    • /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
    • /usr/src:内核源代码默认的放置目录。
    • /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
    • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

    2.3 用户目录

    路径:

    • 绝对路径:从根目录开始到当前目录的完整路径为最对路径
    • 相对路径:使用目录符号代表当前位置的路径为相对路径,.代表当前目录,…代表当前目录的上一级目录,-代表相邻目录(cd -,进入到相邻目录)

    User@root:~$目录说明:

    • User:当前登录用户
    • @:at在
    • root:主机名
    • ~:表示用户的家目录(宿主目录)
    • $:当前用户为普通用户(#:当前用户为超级用户),进入超级目录:sudo su,离开超级目录:exit
      在这里插入图片描述

    2.4 文件或目录颜色一般情况

    在这里插入图片描述

    2.5 软链接与硬链接

    关于软链接与硬链接的说明请查看这里:Linux命令ls -l详细信息说明
    创建:

    • 软链接:ln -s path/fileName fileName.soft(path/fileName表示绝对路径下的文件名,这样使得软链接在所有路径下均有效,否则为相对路径,只在创建的目录下有效,fileName.soft为创建的软链接名,加上.soft是方便区分)
      指定路径下创建时为ln -s path/fileName path/fileName.soft,此时软链接具有读写执行权限,更改软链接,原文件改变
      在这里插入图片描述
    • 硬链接:ln path/fileName fileName.hard
      指定路径下创建时为ln path/fileName path/fileName.hard

    2.6 文件和目录属性命令

    • wc:wc fileName,查看文件行数,字数,字节数,参数-l为只显行数,-w只显示字数,-c只显示字节数
    • od:od fileName -t*,查看二进制文件信息,参数-t指定数据的显示格式(c为ASCII字符;d为有符号十进制数;f为浮点数;o为八进制数;u为无符号十进制数;x为十六进制数)
    • du:du -h,disk use,查看某个目录的大小,加-h方便查看
    • df:df -hj,disk free,查看磁盘的使用情况,加-h方便查看
      在这里插入图片描述

    2.7 文件权限、用户、用户组相关命令

    2.7.1 文件与目录权限

    使用ls -l查看,关于详细内容的权限说明请查看这里:Linux命令ls -l详细信息说明
    在这里插入图片描述

    2.7.2 修改文件权限

    • 文字设定法:chmod [who] [+|-|=] [mode] fileName/dirName
      who:u为文件所有者;g为文件所属组;o为其他人;a为所有的人(不写,默认,可能会出错)
      +/-/=:+为添加权限;-为减少权限;=为覆盖原来的权限
      mode:r为读;w为写;x为执行
    • 数字设定法: chmod nnn fileName/dirName(n为数字,0为-)
      -:没有权限
      r:4
      w:2
      x:1
      rx:5
      rw:6
      rwx:7
      在这里插入图片描述

    2.7.3 修改所有者和所属组

    • 改变所有者: sudo chown ownName fileName/dirName
    • 改变所属组:sudo chown ownName:ownGroup fileName/dirName
      或sudo chgrp ownGroup fileName/dirName
      在这里插入图片描述

    2.7.4 查看当前用户

    whoami

    2.8 查找与检索相关命令

    2.8.1 按文件属性查找

    • 文件名:sudo find path -name “fileName”,文件名中通配符*省略后面字符,?省略一个字符
    • 文件大小:sudo find path -size [+|-]fileSize,+代表大于,-代表小于,大小单位使用k,M
    • 文件类型:sudo find path -type -/d/l/b/c/s/p
      在这里插入图片描述

    2.8.2 按文件内容检索

    • sudo grep -r “content” path
      在这里插入图片描述

    三、 软件安装与卸载

    3.1 在线安装

    • apt-get
      安装:sudo apt-get install softwareName
      移除:sudo apt-get remove softwareName
      更新:sudo apt -get update,更新软件列表
      清理所有软件安装包:sudo apt-get clean,实际清理的是:/var/cache/apt/archives目录下的.deb文件
    • aptitude
      安装:sudo aptitude install softwareName
      重新安装:sudo aptitude reinstall softwareName
      更新:sudo aptitude update,更新软件列表
      移除:sudo aptitude remove softwareName
      显示状态:sudo aptitude show softwareName

    3.2 deb包安装

    • 安装:sudo dpkg -i xxx.deb
    • 移除:sudo dpkg -r xxx

    3.3 源码安装

    1.解压缩源代码包
    2.进入到安装目录:cd dir
    3.检测文件是否确实,创建Makefile,检测编译环境:./configure
    4.编译源码,生成库和可执行程序:make
    5.把库和可执行程序安装到系统目录下:sudo make install
    6.删除和协助软件:sudo make distclean
    7.若上述安装步骤不通用,请查看附带的README文件

    四、 磁盘管理

    4.1 挂载与卸载

    1.挂载

    • 系统默认挂载目录:/media
    • 手动挂载目录:/mnt
      挂载非/mnt目录下时,原目录内容被设备内容覆盖隐藏,当设备卸载后原目录内容恢复展示
    • 挂载方式:mount deviceName path
      检测设备名为sudo fdisk -l

    2.卸载

    • 卸载时,用户不能再要卸载的目录下,否则卸载失败
    • 卸载方式:sudo umount path,一般为paht为/mnt

    4.2 磁盘命名

    1.磁盘设备种类

    • sd:SCSI Device,小型计算机系统接口设备
    • hd:Hard Disky,硬盘
    • fd :Floppy Disk,软盘

    2.盘名

    • sda、sdb、sdc、sdd…
    • 主分区(最多允许4个):sda1、sda2、sda3、sda4;扩展分区(第一个逻辑分区从sda5开始):sda5、sda6、sda7…

    五、 打包和压缩

    5.1 基础版

    • gzip:.gz格式的压缩包
      压缩:gzip fileName
      解压:gunzip fileName.gz
    • bzip2:.bz2格式的压缩包
      压缩:bzip2 fileName
      解压:bunzip2 fileName.bz2
      在这里插入图片描述

    5.2 进阶版

    1.tar
    不使用z/j参数,该命令只能对文件或目录打包

    • 参数:
      c:创建
      x:释放
      v:显示提示信息
      f:指定压缩文件名字
      z:使用gzip方式压缩文件,.gz
      j:使用bzip2方式压缩文件,.bz2
    • 压缩:
      tar zcvf xxx.tar.gz fileName/dirName(fileName/dirName为要压缩的文件或目录)
      tar jcvf xxx.tar.bz2 fileName/dirNamet
    • 解压:fu
      tar zxvf fileName/dirName.tar.gz -C path(path为解压到的路径)
      tar jxvf fileName/dirName.tar.bz2 -C path
      在这里插入图片描述
      2.rar
    • 压缩:rar a rarName fileName/dirName(rarName为压缩包名不需要指定后缀,因为会自动生成,fileName/dirName为要压缩的文件或目录)
    • 解压:rar x rarName path(path为解压到的路径)
      在这里插入图片描述
      3.zip
    • 压缩:zip -r zipName fileName/dirName(rarName为压缩包名不需要指定后缀,因为会自动生成,fileName/dirName为要压缩的文件或目录)
    • 解压:unzip zipName.zip -d path(path为解压到的路径)
      在这里插入图片描述

    总结:

    • 压缩:tar/rar/zip + 参数 + 压缩包名(tar加后缀方便区分) + 要压缩的文件或目录
    • 解压:tar/rar/unzip + 参数 + 压缩包名(包括后缀) + 参数(rar没有参数) + 解压到的路径

    参考

    以上为个人整理总结的知识,如有遗漏或错误欢迎留言指出、点评,如要引用,请联系通知,未经允许谢绝转载。
    [1]: https://blog.csdn.net/u011503970/article/details/18615537

    展开全文
  • Linux文件目录管理

    千次阅读 2018-03-19 14:46:44
    一、Linux目录结构今天回顾一下基础知识,Linux目录结构是树状的,其中“”/“”表示根目录。 常见目录的主要内容:绝对路径和相对路径: 二、文件目录的基本操作 语法 说明 pwd 显示当前工作目录 cd 最...

    一、Linux目录结构

    今天回顾一下基础知识,Linux的目录结构是树状的,其中“”/“”表示根目录。
    这里写图片描述

    常见目录的主要内容:

    这里写图片描述

    绝对路径和相对路径:
    这里写图片描述

    二、文件和目录的基本操作

    语法 说明
    pwd 显示当前工作目录
    cd 最常用的命令之一,用于变更工作目录
    mkdir 新增目录
    rmdir 删除目录(必须是空目录)
    cp 文件复制
    mv 移动文件
    rm 删除文件或者目录,加参数-r可以删除非空目录(小心使用),建议使用-ir(有提示)
    find 查找文件或者文件名
    cat 查看文件内容,不能翻页。当然还有more、less、head、tail命令对文件内容进行查看
    展开全文
  • linux 如何以树形结构显示文件目录结构

    万次阅读 多人点赞 2016-12-22 17:05:14
    linux 如何以树形结构显示文件目录结构
  • Linux文件操作高频使用命令

    万次阅读 多人点赞 2019-08-28 16:47:38
    文章目录0.新建操作:1.查看操作2.删除操作3.复制操作4.移动操作:5....ll #显示目录文件详细信息 查看文件内容: cat|head|tail命令 cat abc.txt #查看abc的内容 head -5 abc.txt #...
  • 常见Linux目录名称和文件长列表显示

    千次阅读 2018-11-15 17:41:36
    一、常见Linux目录名称 目 录  用处 / 虚拟目录的根目录。通常不会在这里存储文件 /bin 二进制目录,存放许多用户级的GNU工具 /boot 启动目录,存放启动文件 /dev 设备目录Linux在这里...
  • linux更改目录显示颜色

    千次阅读 2017-02-27 14:55:35
    用shell列举目录的时候,文件夹都是蓝色的,背景是黑色,使得无法看清蓝色的文件名称,看起来很痛苦。这个已经好几次遇到这个问题了都没有把解决方法记录下来,导致每次要查一些资料,这次决定把这个方法整理下来,...
  • Linux 文件目录管理

    千次阅读 2020-12-31 16:31:14
    Linux处理目录的常用命令 - ls(英文全拼:list files): 列出目录及文件名 - cd(英文全拼:change directory):切换目录 - pwd(英文全拼:print work directory):显示目前的目录 - mkdir(英文全拼:make ...
  • Linux文件目录操作

    千次阅读 2020-02-27 17:55:21
    Linux文件系统是根目录结构,而Windows文件系统是多根目录结构 虚拟文件系统VFS super block超级块:对一个文件系统的描述 inode索引节点:对一个文件物理属性的描述 dentry目录现对象:对一个文件...
  • linux 文件大小单位显示

    万次阅读 2018-06-08 11:36:43
    linux显示文件大小的时候,通常的做法是使用“ls -l”,显示的大小是文件的字节大小。但是,如果文件比较大的话,显示起来不是特别易读,这个时候,可以使用“ls -lh”,就可以使用比较接近文件大小的单位显示...
  • linux 查看文件内容 显示行号

    千次阅读 2019-08-30 14:23:45
    怎么在 linux 系统中查看文件显示行号 ? 1. 使用 vi 或者vim 命令打开文件 打开后的文件内容日如下 2. 直接输入以下命令,按Ente健 显示文件行号 :set nu 或者 :set number 成功后显示如下 ...
  • linux文件目录默认权限

    万次阅读 2013-05-20 15:38:31
    1,文件的默认权限是没有x的,即文件的最大默认权限为666(-rw-rw-rw) 2,由于进入目录目录的x权限有关,故目录的最大默认权限为777(drwxrwxrwx)   查看默认权限需要使用umask命令: [123@123 ~]$ umask //...
  • 综上所述,在普通用户下,若想进入一个目录需要可执行权限 在超级用户下,目录...综上所述:在超级用户下,不管目录对拥有者是否开放权限,都可以在目录下创建文件 在普通用户下,要在目录下创建文件,需要目录...
  • linux 查看文件显示行号

    千次阅读 2018-07-30 18:24:00
    linux 查看文件显示行号 1.用vi或vim打开文件显示行号:  显示当前行号: :nu  显示所有行号: :set nu 2.设置服务器显示行号  2.1编辑~/.vimrc文件,在该文件中加入  set nu  2.2在UBUNTU...
  • linux显示文件命令

    万次阅读 2018-05-22 10:47:51
    ls -F-F参数将显示列表中的文件区分开文件和文件夹,文件夹后面带有/ls -a-a参数是显示隐藏文件作用,默认情况下ls命令是不会显示隐藏文件的,隐藏文件显示时候前面带有"."ls -R-R命令将递归显示该文件下...
  • 显示目录ls -F | grep "/$"-F 文件类型(File type)。在每一个列举项目之后添加一个符号。这些符号包括: / 表明是一个目录; @ 表明是到其它文件的符号链接; * 表明是一个可执行文件bin/build_dir/...
  • Linux查看文件大小的几种方法

    万次阅读 多人点赞 2017-02-01 17:57:40
    linux获取文件大小
  • 显示目录 ls -F | grep "/$" -F 文件类型(File type)。在每一个列举项目之后添加一个符号。这些符号包括: / 表明是一个目录; @ 表明是到其它文件的符号链接; * 表明是一个可执行文件 bin/ build_dir/ ...
  • linux系统文件目录介绍

    千次阅读 2018-01-24 10:54:27
    linux系统和类linux系统文件目录如下: bin: binary的缩写,意思为二元的,二进制的。里面存放是的linux系统中的可执行文件。 boot:启动的意思,引导目录,存放linux系统引导启动文件。 dev:device的缩写,意思...
  • linux目录高亮显示原因

    千次阅读 2018-03-28 15:49:19
    我的是Centos 7linux系统约定的默认颜色 白色:表示普通文件蓝色:表示目录绿色:表示可执行文件红色:表示压缩文件浅蓝色:链接文件红色闪烁:表示链接的文件有问题黄色:表示设备文件灰色:表示其他文件...
  • Linux下隐藏文件显示隐藏文件命令

    万次阅读 2017-05-01 10:17:54
    (1)Linux下隐藏文件和文件夹(目录)需要用到 mv 命令、其实超简单的. 例子:将a目录隐藏 命令:mv a .a 还可以在建立文件时直接以.开头起名,得到的文件就是隐藏文件 (2) linux下显
  • Linux终端中显示当前目录下的所有目录文件(不包含隐藏文件):[root@localhost ~]# ll // 显示所有目录文件总用量 124-rw------- 1 root root 2382 5月 6 07:28 anaconda-ks.cfgdrwxr-xr-x 2 root root 4096 6...
  • Linux中cp文件目录显示进度

    千次阅读 2018-04-18 13:46:40
    将源文件复制至目标文件,或将多个源文件复制至目标目录。 长选项必须使用的参数对于短选项时也是必需使用的。&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; -a, --...
  • linux查看文件目录大小

    千次阅读 2019-05-31 11:00:30
    du -ah --max-depth=1,类似命令du -sh $(ls) 其中a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度。 du -sh : 查看当前目录总共占的容量。而不单独列出各...
  • 总觉得linux目录切换比较麻烦,寻找了下是否存在更为简便的方式,总结如下: 一、文件目录的切换相关命令方式总结 A、关于cd 的使用方式 1、cd + 文件夹目录的方式 (相对路径或者绝对路径) --cd是最通用的切换...
  • adb命令管理Linux 文件目录

    千次阅读 2018-08-27 15:13:02
    Linux目录结构为树状结构,最顶级的目录为根目录 /。 1、绝对路径: 路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。 2、相对路径: 路径的写法,不是由 / 写起,例如由 /usr/share/doc ...
  • 拷贝/etc/DIR_COLORS文件为当前主目录的 .dir_colors 命令:cp /etc/DIR_COLORS ~/.dir_colors 修改~/.dir_colors中DIR对应的颜色 vim ~/.dir_colors  找到下面这一行: DIR 01;34(01:...
  • linux tree命令 树结构显示目录文件

    千次阅读 2019-06-25 10:17:55
    tree命令的中文意思为“树”,功能是以树形结构列出指定目录下的所有内容,包括所有文件、子目录及子目录里的目录文件。 命令格式 tree [option] [directory] tree [选项] [目录] 说明:  1)注意tree命令...
  • df -h linux系统显示目录文件100%

    千次阅读 2018-08-20 19:01:07
    登上服务器 df -h 确实显示有个目录使用空间已经满了,紧急情况下找到了tengine 的日志路径删除了所有常见的比如什么20180723.log-*.gz的文件,再df -h显示仍旧是100%。想起公司以前删除了日志后都是仍需重启才可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 990,193
精华内容 396,077
关键字:

linux文件目录显示

linux 订阅