当前位置: 澳门新濠3559 > 服务器运维 > 正文

系统所需要的那些命令位于此目录,|/boot|这个目

时间:2019-11-09 19:37来源:服务器运维
以最简单方式学习Linux,方式学习Linux 有很多关于Linux的书籍,博客。大多数都会比较“粗暴“的将一大堆的命令塞给读者,从而使很多.NET程序员望而却步。未入其门就路过了。 所以我

以最简单方式学习Linux,方式学习Linux

有很多关于Linux的书籍,博客。大多数都会比较“粗暴“的将一大堆的命令塞给读者,从而使很多.NET程序员望而却步。未入其门就路过了。

所以我设想用一种更为平滑的学习方式, 就是在学习命令时,先用纯语言来介绍Linux背景和动机。 就如同所有的的网络游戏都要先介绍游戏的历史观,然后再介绍游戏的操作。

大多数初学者在刚刚接触Linux都会有非常陌生的感觉。往往会有一些疑惑和问题。而我们就沿着这些问题,从远及近,从宏观到微观来理解Linux的简洁和美丽。

问题1: Winows有注册表,为什么Linux没有注册表

注册表是Windows核心组件,对整个系统进行配置。Linux是以整个文件系统作为"注册表“,Windows注册表的树形结构,可以粗略的对应Linux文件系统的树形结构。

Linux的配置文件就相当于注册表的键,或者说Linux采用是的分布式的注册表。

那么Linux为什么要这样设计呢?因为Linux是所谓的网络操作系统,所以单台电脑不是Linux的界限,如果是多台电脑组成的系统,那么分布式的管理就有着巨大的优势。

例如:一个包含配置文件的磁盘的损害不会让整个系统瘫痪,而可能只是让部分功能失效。

问题2:Windows有完善的图形界面,而Linux为什么要学命令行。

首先,命令行绝对要比图形界面先进的多。命令行是程序员的第一界面,而图形界面是普通用户的第一界面。

也许很多人会有不同意见,其实我们再向前想一步,就很清楚了。

命令行的下一步演化是什么? 很简单就是语音控制,就是把人类自然语言转化为命令

图形界面的的下一步演化是什么? 是姿势控制。从目前的Windows系统来说一共只有3种姿势, 单击,双击,拖放。而更先进的IPad有拨动,画圈等。

姿势控制很简单,便于用户上手,语音控制很复杂,但是控制精度很高。

作为程序员我们要求电脑完成的工作要比普通用户复杂的多,所以使用命令行会非常高效。

退一步讲,图形界面本质也是命令行,只不过将姿势翻译成命令执行而已。

程序员编程的代码也都是“命令行”,一条一条的指令而已。

总之,只要能打破对Linux命令行的恐惧感,接下来的事就会非常容易了。这个命令行绝对不是你简单想像中的命令行,它是非常智能化的。

问题3:Linux有那么多目录,那么多命令,怎么记得住呢?

首先,Linux目录是Linux系统最灵魂的东西,所有的硬件都可以被抽象为文件,从而实现网络化。(Internet只不过是Unix/Linux的进一步的演化而已)

所以只要掌握了Linux目录的规律,在理解的基础上记忆就可以容易的多。另外Linux的命令行有智能化功能,可以让你少打95%以上的字符来完成命令。

绝非你所想象的傻乎乎的敲一大堆命令,那些用Linux大牛都是绝顶聪明的人,怎么可能让自己辛苦呢?

问题4:Linux的文件夹结构看上去很复杂,怎么理解呢?

我们这里假设,我们就是设计者,如果我们设计一个文件系统,我们会如何去做呢?

我们需要一个起点, 这个起点就叫根目录,用“/”来表示,然后我们需要启动Linux,那么我们就会把所有核心的启动文件(包括Linux核心本身)都放到一个“/boot"目录下。

当系统启动后,我们需要执行一些基本命令在操作系统,这些命令都会放到“/bin"目录下。然后这些命令可能会用到一些库,这些库就被放到“/lib"下面,而这些库可能会会用到一些设备驱动文件,

那么这些驱动文件就会放到“/dev"目录下。

/:根目录

/boot:系统启动和内核

/bin :系统基本命令 (bin是binary的缩写)

/lib : 系统库(不能直接运行的代码)(lib是libary的缩写)

澳门新濠3559,/dev : 设备驱动 (dev是device的缩写)

到目前为止只用5个目录,很简单吧。

问题5: 什么是"/usr" ,"/etc"和“/var“

当用户启动系统以后,要做一些更加复杂的工作,这时候就会涉及到一个叫“/usr",这个情况稍微有些复杂,是一个难点。不过也很容易解释清楚。

早期的unix系统都有很多块硬盘,当时硬盘的容量都很小, 所以往往一个硬盘只放一个目录,比如“/boot"可以放在一个单独的"boot"盘上,上面提到的5个目录,是系统运行必不可少的。

而当系统启动以后,我们需要其他一些用于具体工作的程序时,我们就会加载一个“/usr"目录,上面放重要的运行程序。

容易引起疑惑的是"usr"这个名字, 在历史上,原来这个确实是user的缩写,不过现在和user没有任何关系了, 你可以把它看成是"universal software resource"的缩写。

这个“/usr"有点类似Windows里面的Program Files。

因此 /bin 和 /usr/bin的区别,就是 /bin里面的程序更加核心

这时候,很多人会有疑问, 我们记住哪些命令在/bin 还是在/usr/bin呢?

放心,由于所有的bin目录都会登记到系统变量PATH里面, 因此无论你在任何当前目录中,只要输入命令文件的名称,系统都会帮你找到这个命令并运行。

要点:

1、/usr上面一般都是只读文件,数据文件和配置文件不放在上面(放到哪里,后面会讲)

2,没有“/usr",linux系统也能正常运行

2、/usr可以被多台电脑共享(这里体现Linux系统的网络性)

由于/usr只放只读文件,那么配置文件和数据文件放哪里呢?这里就出现了2个新的目录“/etc"和“/var"

这里容易初学者迷惑的就是这个2个目录的名字。

在历史上 "etc“是 “etcetera”,中文意为“其他”, 现在这个和“其他”没有任何关系, 就是专门存放配置文件的地方,可以理解为“editable text configuration"的缩写

比如 /etc/mysql就是放mysql的配置文件 /ect/apache2/就是apache2的配置文件

在历史上“var" 是 “variable",中文意为“变动”,现在主要用来存放log,lock等文件。

例如 /var/mysql就是用来存放mysql的log

问题6:用户自己产生的数据放到哪里?

当我们运行程序后,会产生很多自己的成果,这些成果放哪里呢? 这里就出现了一个“/home"目录,不过你不能直接放到“/home"目录下, 因为Linux是个多用户操作系统, 所以系统会有一个以用户的名字命名的目录。

例如:用户是jack ,那么目录就是/home/jack ,这个目录也可以用“~“来表示。

至此,我们.Net程序员也就基本了解了Linux的组成。


————广告时间————

《马哥Linux云计算及架构师》课程,由知名Linux布道师马哥创立,经历了8年的发展,联合阿里巴巴、唯品会、大众点评、腾讯、陆金所等大型互联网一线公司的马哥课程团队的工程师进行深度定制开发,课程采用 Centos7.2系统教学,加入了大量实战案例,授课案例均来自于一线的技术案例。

**开课时间级地点:12月25日(28期郑州面授班)**

扫描二维码领取学习资料

更多Linux好文请点击【阅读原文】哦

↓↓↓

文件结构

/:根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。

/bin:bin 就是二进制(binary)英文缩写。在一般的系统当中,都可以在这个目录下找到linux常用的命令。系统所需要的那些命令位于此目录。

/boot:Linux的内核及引导系统程序所需要的文件目录,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录。

/cdrom:这个目录在刚刚安装系统的时候是空的。可以将光驱文件系统挂在这个目录下。例如:mount /dev/cdrom /cdrom

/dev:dev 是设备(device)的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。这一点和常用的windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。

/etc:etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。

/home:如果建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用户的主目录。

/lib:lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作,一旦发生问题,系统就不能工作了。

/lost+found:在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。

/mnt:这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom等目录。可以参看/etc/fstab的定义。

/media:有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等等。

/opt:这里主要存放那些可选的程序。

/proc:可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。

/root:Linux超级权限用户root的家目录。

/sbin:这个目录是用来存放系统管理员的系统管理程序。大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目录是相似的,凡是目录sbin中包含的都是root权限才能执行的。

/selinux :对SElinux的一些配置文件目录,SElinux可以让linux更加安全。

/srv 服务启动后,所需访问的数据目录,举个例子来说,www服务启动读取的网页数据就可以放在/srv/www中

/tmp:临时文件目录,用来存放不同程序执行时产生的临时文件。有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。

/usr

这是linux系统中占用硬盘空间最大的目录。用户的很多应用程序和文件都存放在这个目录下。在这个目录下,可以找到那些不适合放在/bin或/etc目录下的额外的工具

/usr/local:这里主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面、。

/usr/share :系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,/usr/share/doc和/usr/share/man帮助文件。

/var:这个目录的内容是经常变动的,看名字就知道,可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。/var/ www目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地。

目 录 名 描 述
/ Linux文件系统根目录
/bin

bin就是binary,二进制。/bin目录放置可执行文件,root和一般账号都可以使用,如cat, chmod, mv, mkdir等。其实系统有很多放置执行文件的目录,但/bin 目录比较特殊,因为/bin 放置的是在单用户模式下还能够被操作的命令。|
|/boot|这个目录主要存放开机会使用的文件,如Linux内核和系统启动文件,包括Grub、lilo启动器程序 |
|/dev|存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB、tty等。(注:在Linux系统上,任何设备与接口设备都是以文件的形式存在于这个目录当中的。)|
|/etc|存放系统的所有配置文件,例如/etc/passwd存放用户账户信息,/etc/hostname文件存放主机名,也有一些目录,如/etc/nginx是目录,里面存储nginx的很多配置文件|
|/home|用户主目录的默认位置。当你创建一个一般用户账号时,默认的用户主文件夹就在该目录下|
|/lib|存放开机时会用到的函数库,以及/bin和/sbin目录下的命令调用的函数库|
|/lost+found|存放由fsck放置的零散文件。注:fsck命令用于检查与修复 Linux 文件系统|
|/media|media是“媒体”英文,顾名思义,它下面存放可删除的设备,包括软盘,光盘,DVD等设备文件|
|/mnt|如果你想要暂时挂载某些额外的设备,一般建议你可以放置到这个目录中。|
|/proc|这个目录本身是一个虚拟文件系统。它放置的数据都是在内存当中,例如系统内核,进程等|
|/root|root用户的主目录|
|/run|最常用的就是存放进程的ID。要特别注意的是:它使用tmpfs文件系统,这是一种存储在内存中的临时文件系统,当机器关闭的时候,文件系统自然就被清空了,我就曾经吃了这个亏|
|/sbin|sbin即system binary,用来设置系统的可执行命令,这些命令只有root用户才能用设置系统,其他用户最多只能用来“查询”而已|
|/srv|srv是service的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录。常见的服务有WWW, FTP等。比如WWW服务需要的网页数据就可以放在/srv/www/目录下|
|/sys|这个目录跟/proc 非常类似,也是一个虚拟的文件系统,主要也是记录与内核相关的信息。这个目录同样不占硬盘容量|
|/tmp|顾名思义,就是用来存放临时文件的地方,所有用户都可以访问。建议该目录不要放重要数据 |
|/usr|/usr/X11R6 ** ==>X Window系统重要数据所放置的目录/usr/bin ==>用户可使用的大部分命令都放在这里 /usr/include ==>存放C/C++等程序语言的头文件(head)和目标文(include)/usr/lib==> 包含各应用软件的函数库,目标文件(object file),比如它下面有jvm目录,就是java/usr/local 系统管理员在本机自行下载自行安装的软件(非Ubuntu发行版默认提供的软件)一般放在该目录。该目录下也有bin,etc, include, lib等子目录。PS:<code>usr并不是user的缩写,而是Unix Software Resource的缩写,即“Unix 操作系统软件资源”放在该目录,而不是用户的数据。这个目录相当于Windows操作系统的“C:Windows”和“C:Program files”这两个目的综合体,系统安装完毕后,这个目录会占用最多的硬盘容量。</code>
| /var|如果/usr 是安装时会占用较大硬盘容量的目录,那么/var 就是在系统运行过程中渐渐占用硬盘容量的目录。包括缓存cache,日志log,以及某些软件运行所产生的文件,包括程序文件(lock file, run file)。
/var/cache 应用程序缓存目录 ; /var/lib 存放程序执行过程中,需要使用到的数据文件。比如mysql数据库的数据放在/var/lib/mysql/目录下 ** /var/lock它是/run/lock目录的软链接,某些设备或文件一次只能被一个应用所使用。这样当这些资源使用时,就要加锁; 特别注意:它使用临时文件系统,主机重启后会清空; ** /var/log 日志文件目录 ;/var/mail** 电子邮件,当主机做邮件服务端时,发送的邮件都会放在这个目录,建议定期清理; /var/run进程ID,它是/run目录的软连接特别注意:它使用临时文件系统,主机重启后会清空/var/spool 存放电子邮件,打印任务等的队列目录。它的子目录/var/spool/mail其实是/var/mail的软链接

编辑:服务器运维 本文来源:系统所需要的那些命令位于此目录,|/boot|这个目

关键词: