Linux目录
- /bin:是Binary的缩写,这个目录存放着最经常使用的命令。
- /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- /root:该目录为系统管理员,也称作超级权限者的用户主目录。【一般用户无法进入】
- /lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
- /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。【隐藏目录,使用ls可以查看】
- /etc:所有的系统管理所需要的配置文件软件安装后的配置文件,比如安装mysql后的配置文件my.conf。
- /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。安装后的程序放在这
- /boot:存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。【重要文件删除后启动不了】
- /proc:【别动】这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。
- /srv:【别动】service的缩写,该目录存放一些服务启动之后需要提供的数据。
- /sys:【别动】这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs。
- /tmp:这个目录是用来存放一些临时文件的。
- /dev:类似windows的设备管理器,把所有的硬件用文件的形式存储。
- /media:linux系统会自动识别一些设备,例如U盘光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了。
- /opt:这是给主机额外安装软件所摆放的目录,如安装ORACLE数据库就可放到该目录下。默认为空。 【安装包】。要安装一个软件,先把软件包放这个目录,约定俗成
- /usr/local:这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码的方式安装的程序。【安装后的软件文件夹】
- /var:这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件。
- /selinux:SELinux是一种安全子系统,它能控制程序只能访问特定文件。【开启后才有】
总结:
- Linux的目录中有且只有一个根目录。【/】
- Linux的各个目录存放的内容是规划好,不能乱放文件。
- Linux是以文件的形式管理我们的设备,因此linux系统,一切皆为文件。
- Linux的各个文件目录下存放什么内容,必须有一个认识。
Linux磁盘分区、挂载
Linux的硬盘使用:Linux硬盘分IDE硬盘和SATA硬盘,目前基本上是SATA硬盘
1)对硬盘进行分区
一块硬盘的主分区最多只能有四个,扩展分区最多只能有一个,扩展分区加上主分区最多4个,也就是3个主分区,1个扩展分区。扩展分区不能直接写入数据,扩展分区是用来分逻辑分区的。逻辑分区就可以正常格式化然后写入数据了,这种限制不是linux的限制,而是硬盘的规则。逻辑分区的号只能从5开始,因为1-4是给主分区使用的,即使主分区只有两个,逻辑分区也只能从5开始。
2)对分区进行格式化
硬盘分区后还不能直接写入数据,还需要对硬盘进行格式化。格式化的目的是写入文件操作系统,表示你这个分区使用什么文件操作系统来管理分区中的数据。在windows系统中支持的文件系统有:FAT16、FAT32、NTFS.在linux系统中支持的文件系统有:EXT2、EXT3、EXT4。
在linux中,对分区进行格式化后, 会将分区分成4kb(默认)为单位的数据块(block),数据的最小存储单位就是数据块。一个数据可能存放在不同位置的block中,并不一定是连续的block,也就是磁盘会产生碎片。
写入文件系统一是对分区进行分块,二是将每个分块生成一个inode号,当我们找文件是就知道一个文件分别存在哪几个block中,从而找到文件。
格式化后linux会对硬盘取一个名字,放在/dev目录中。
IDE硬盘名字命名规则为:/dev/hd[a-d]
SCSI/SATA/USB硬盘名字命名规则为:/dev/sd[a-p]
硬盘名有名字,还要对分区起名字
/dev/hda1(IDE硬盘接口)
/dev/sda1(SCSI硬盘接口)
3)将分区挂载到目录
分区要挂载后才可以使用
必须分区:/(根分区)和 swap分区(虚拟内存,建议不超过2GB)
推荐分区:/boot(启动分区,建议200M)如果根分区写满后,系统可能启动不了,我们单独分一个区做启动使用,分完后不再往里面写入数据,即使根分区写满了,我们还有boot作为预留空间保证系统正常启动
总结
linux系统只有一个根分区,可以单独给根分区中的子目录单独挂载一个分区,在往这个分区中写数据时其实是写到挂载的分区硬盘中。这个windows有很大的区别。
命令
- lsblk -f:查看当前系统的分区和挂载情况。(list block)
-
挂载的经典案例
- 需求是给我们的Linux系统增加一个新的硬盘,并且挂载到/home/newdisk
- 虚拟机添加硬盘
- 分区:fdsk /dev/sdb
- 格式化:mkfs -t ext4 /dev/sdb1
- 挂载:新建目录:mkdir /home/newdisk;挂载:mount /dev/sdb1 /home/newdisk
- 设置可以自动挂载(永久挂载):重启系统后,仍然可以挂载。vim etc/fstab 增加挂载信息。mount -a:生效
- 取消挂载:unmount /dev/sdb1
-
磁盘情况查询:df -h / df -l
-
查询指定目录的磁盘占用情况:du -h /目录,默认为当前目录
- -s:指定目录占用大小汇总
- -h:带计量单位
- -a:含文件
- --max-depth=1:子目录深度
- -c:列出明细的同时,增加汇总值
-
磁盘情况-工作实用指令
- 统计/home文件夹下文件的个数:
ls -l /home | grep "^-" | wc -l
- 统计/home文件夹下目录的个数:
ls -l /home | grep "^d" | wc -l
- 统计/home文件夹下文件的个数,包括子文件夹里的:
ls -lR /home | grep "^-" | wc -l
- 统计文件夹下目录的个数,包括子文件夹里的:
ls -lR /home | grep "^d" | wc -l
- 以树状显示目录结构:首先安装tree指令:yum install tree,tree ...
- 统计/home文件夹下文件的个数:
包管理
RPM:RedHat Package Manager,红帽软件包管理工具。
缺点:有依赖,树形依赖,环形依赖,模块依赖。(安装一个包之前可能需要先安装另外一个包,很不方便)
命名规则:
- RPM查询已安装的rpm列表:rpm -qa | grep xx
- rpm包的其它查询指令:
- rpm -qa:查询所安装的所有rpm软件包
- rpm -qa | more
- rpm -qa | grep xx
- rpm -q xx:查询xx软件包是否安装
- rpm -qi xx:查询软件包信息
- rpm -ql xx:查询软件包中的文件
- rpm -qf 文件全路径名:查询文件所属的软件包
- 卸载rpm包:rpm -e 软件包名称
- 删除时可能会发生依赖错误,忽视依赖强制删除的方法:rpm -e --nodeps 软件包名称
- 安装rpm包:rpm -ivh 软件包全路径名称
- i=install:安装
- v=verbose:提示
- h=hash:进度条
YUM:是一个shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用yum的前提是联网,也可以使用YUM本地源。
- yum list | grep xx:查询yum服务器是否有需要安装的软件
- yum install xx:安装指定的yum包 yum -y install xx:自动回答yes
- yum -y remove xx:卸载指定的yum包,会卸载所有相关包。禁止使用【linux建议最小安装,安装后尽量不卸载】
- yum -y update xx:升级xx软件包【注意千万不要使用yum -y update不跟软件名,这回升级所有包以及linux内核,会导致系统启动不了】
使用光盘本地源作为yum仓库