Linux基础学习
一、分区的步骤
1、分区类型
主分区:最多有4个
扩展分区:最多1个 主分区+扩展=4个
2、格式化
大硬盘分为小硬盘
小硬盘还不能直接使用,必须先格式化。
格式化最主要目的是写入文件系统。
写入文件系统主要做的是两个工作: 一个是把硬盘分成一个一个等大小的数据块 建立i node列表 查找文件的时候是通过i 节点号来找文件的条款
从而知道了文件保存在了那几个数据块中,打开这几个数据库快,拼凑成完成文件。
3、硬件设备文件名
硬 件 | 设备文件名 |
---|---|
IDE硬盘 | /dev /hd[a-d] |
SCSI/SATA/USB硬盘 | /dev/sd[a-p] |
光驱 | /dev/cdrom或/dev/sr0 |
软盘 | /dev/fd[0-1] |
打印机(25针) | /dev/lp[0-2] |
打印机(usb) | /dev/usb/lp[0-15] |
鼠标 | /dev/mouse |
分区设备文件名
分区设备文件名 | |
---|---|
/dev/hda1 | (IDE硬盘接口) 很少使用 速度慢 |
/dev/sda1 | (SCSI硬盘接口、SATA硬盘接口) |
注意: 逻辑分区永远都是从5开始 eg ; sda5
4、挂载(windows是分配盘符)
必须分区
/ (跟分区)
swap分区(交换分球,内存的2培,不超过2GB)
推荐分区
/boot (启动分区,200MB) 保存启动时的数据
分区步骤总结: 分区:把大硬盘分为小的逻辑分区 >>>格式化:写入文件系统>>>分区设备文件名:给每个分区定义设备文件名>>>挂载:给每个分区分配挂载点(必须是目录、而且是空目录)
二、Linux的文件系统结构
从下图中可以看出/boot /etc /home 属于/的子目录 并且/boot /home /都有独立的空间
所有逻辑上/boot /etc /home 是子目录 实际上它们是独立的空间。
注意实事项:
1、linux 严格区分大小写
2、linux所有内容以文件的形式保存,包括硬件。
3、Linux不靠扩展名区分文件类型
4、 Linux的所有存储设备都必须挂载之后用户才能使用,包括硬盘、U盘和光盘
5、windows下的程序不能直接在Linux中安装和运行。
三、Linux 各目录的作用
1、各目录的作用
/bin 存放系统命令的目录,普通用户和超级用户都可以执行
/sbin 存放系统环境相关的命令,超级用户才能执行
/usr/bin 存放系统命令的目录,所有用户都可以执行
/usr/sbin 存放跟文件系统不必要的系统管理命令,例如多数服务程序,只有超级用户才可以使用。
/boot 系统启动目录,保存系统启动相关的文件,不能在这个目录下创建文件,如有必要需要备份。
/dev 设备文件保存位置,这个目录就是用来保存所有硬件设备文件的。
/etc 配置文件的保存位置,系统9内所有采用默认安装方式(rpm安装)的服务的配置文件全部保存在这个目录中,如有账号和密码,服务的启动脚本,常用的服务的配置文件等。
/home 普通用户的家目录,每个用户要有一个默认登录位置,这个位置就是这个用户的家目录,所有的普通用户的家目录就是在/jome下建立一个用户名相同的目录,如用户user1的家目录就是/home/user1
/lib 存放Linux的函数库
/lost+found 系统意外关机后,产生的文件碎片会放在这个目录中。每个分区都会有/lost+found
/media 挂载目录,系统建议是用来挂载媒体设备的,例如软盘和光盘
/mnt 挂载目录 建议挂载额外设备,如u盘,移动硬盘和其它的操作系统的分区。
/misc 挂载目录,挂载NFS服务的共享目录。
/opt 第三方软件的保存位置。这个目录就是放置和安装其它软件的位置,我手工安装的源码包软件都可以安装到这个目录中。不过现在大多数的人都喜欢把软件放在/usr/local目录当中,也就是说/usr/local目录也可以用来安装软件
/proc /sys 虚拟文件系统,该目录的数据并不保存到硬盘中,而实保存到内存当中。主要用于保存系统的内核,进程,外部设备状态和网络状态。不要往里面写东西。
/srv 服务数据目录。系统服务启动后,保存所需要的数据。
/tmp 临时目录。系统存放临时文件的目录,该目录下所有用户都可以访问和写入。
/usr 系统软件资源目录。 usr不是user的缩写,所以不是存放用户数据,而是存放系统软件资源的目录
/var 动态数据保存位置。主要保存缓存、日志以及软件运行所产生的文件。
2、服务器注意事项
- 远程服务器不允许关机,只能重启。
- 重启时应该关闭服务
- 不要在服务器访问高峰运行高负载命令 (如在3-5点进行服务器维护 选在人少访问的时候进行。)
- 远程配置防火墙时不要把自己踢出服务器
- 指定合理的密码规范并定期更新
- 合理的分配权限 (用户的权限越小越好)
- 定期备份重要的数据和日志(养成良好的备份习惯,运维必备)
3、创建目录命令:
mkdir -p 目录名 递归创建目录
mkdir /tmp/Japan/ longze /tmp/Japan/cangjing 同时创建多个目录
rmdir 目录名 删除空目录
rm - rf 目录名 强制删除
4、查看文件命令:
cat -n 文件名 行号显示文件内容
tac 倒着显示文件内容
more 文件名 分页显示 空格会一页一页的往下面翻 回车换行 不可以向上翻页
less 文件名 和More相似 但是可以向上翻页,还可以进行搜索。
head -n 文件名 显示文件的前n行 不指定的话 默认显示前10行。
tail -n 文件名 显示文件的末尾几行,不指定的话 默认显示后10行。
5、文件的处理命令:ln
命令英文愿意:link
命令所在路径:/bin/ln
执行权限:所有用户
语法: ln -s 原文件 目标文件
-s 创建软连接
功能描述: 生成链接文件
范例:
ln -s /etc/issue /tmp/issue.soft
创建文件/etc/issue 的软链接/tmp/issue.soft
软连接的作用:相当于windows的快捷方式 权限为所有用户 >>指向原文件,可以跨分区。可以针对目录使用。
软链接特征:类似windoes快捷方式
1、 lrwxrwxrwx 软连接 权限都为rwxrwxrwx
2、文件大小知识符号链接
3、/tmp/issue.soft -> /etc/issue 箭头指向源文件
in /etc/issue /tmp/issue.hard
创建文件/etc/issue的硬链接/tmp/issue.hard
硬链接的作用:删除原文件也不会受到影响,可以用来备份和更新。但是不能跨分区,通过I节点识别 ,不能针对目录使用。
6、权限管理命令
chmod 755 文件名 所有者 所属组 所有人
chmod -R 755 文件名 递归修改 改变这个目录的同时,可以修改这个目录下的所有文件的权限
删除一个文件的条件的前提是这个文件所在的目录有写权限
chown 组名 文件名 改变文件所有组 在Linux系统上想要改变一个文件的所有者 只能在root用户下
chgrp 用户组 文件或者目录
所有者 谁创建谁有 root 可以重新修改
在Linux中新建一个文件是没有可执行权限的 X
四、软件包管理
1、软件包分类:
源码包
脚本安装包
二进制包(RPM包、系统默认包)
2、源码包
源码包优点是:
-
开源,可以修改源代码
-
可以自由选择所需的功能
-
卸载方便
-
软件是编译安装,更加适合自己的系统,更加稳定效率也更高。
源码包缺点:
-
步骤多,容易出现错误
-
编译过程时间长,安装比二进制安装时间长
-
因为是编译安装,安装过程中一旦报错新手很难解决。
RPM包依赖性
树形依赖: a>>b>>c
环形依赖:
模块依赖: 找这个库属于哪一个包的方法 进入网址去找 https://www.rpmfind.net/
3、RPM包的安装与卸载
包全名: 安装时使用
包名: 搜索的时候
安装命令
rpm -ivh 包全名
选项:
-i (install) 安装
-v(verbose) 显示安装的详细信息
-h(hash) 显示进度
–nodeps 不检测依赖性
升级
rpm -Uvh 包全名
卸载:
rpm -e 包名
选择:
-e(erase) 卸载
– nodeps 不检查依赖性
4、RPM包管理-rpm命令管理
rpm -q 包名
选项:
-q 查询(query)
-a 所有(all)
注意:不需要加路径查询,因为是在数据库里面查。
rpm -qi 包名 查询软件的详细信息。
选项 -i 查询软件信息
-p 查询未安装包信息
[root@rac19c1 ~]# rpm -qa libstdc++-devel
libstdc++-devel-4.8.5-44.el7.x86_64
[root@rac19c1 ~]# rpm -qi libstdc++-devel
Name : libstdc++-devel
Version : 4.8.5
Release : 44.el7
Architecture: x86_64
Install Date: Sun 12 Sep 2021 12:04:37 PM CST
Group : Development/Libraries
Size : 8436804
License : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
Signature : RSA/SHA256, Thu 15 Oct 2020 02:54:16 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM : gcc-4.8.5-44.el7.src.rpm
Build Date : Wed 30 Sep 2020 10:42:39 AM CST
Build Host : x86-02.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://gcc.gnu.org
Summary : Header files and libraries for C++ development
Description :
This is the GNU implementation of the standard C++ libraries. This
package includes the header files and libraries needed for C++
development. This includes rewritten implementation of STL
查询包中文件安装的位置
rpm -ql 包名
选项:
-l 列表(list)
-p 查询未安装包信息
rpm -qlp 包名
查询系统文件属于哪一个RPM包
rpm -qf 系统文件名
选项:
-f 查询系统文件属于哪个软件包
/etc 目录下的基本通过rpm安装的
[root@rac19c1 etc]# rpm -qf nfs.conf
nfs-utils-1.3.0-0.68.el7.x86_64
5、 rpm包的校验和文件的提取
rpm -V 包名 查看rpm文件是否被改变
文件的提取: 经常用来修复,防止误删
rpm2cpio 包全名 | \cpio -idv . 文件的绝对路径
rpm2cpio
将rpm包转换为cpio格式的命令
cpio 是一个标准工具 ,它用于创建软件档案文件和档案文件中提取文件
cpio 选项 <文件|设备
选项:
-i copy-in模式,还原
-d 还原时自动创建目录
-v: 显示还远过程
eg:
[root@rac19c1 ~]#rpm -qf /bin/ls 查询ls命令属于哪个软件包
[root@rac19c1 ~]# mv /bin/ls /tmp 造成ls误删假象
[root@rac19c1 ~]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-24.el7.x86_64.rpm | cpio -idv ./usr/bin/ls
[root@rac19c1 ~]# dir
anaconda-ks.cfg gcc-c++-4.8.5-44.el7.x86_64.rpm libstdc++-devel-4.8.5-44.el7.x86_64.rpm oracleasm-support-2.1.11-2.el7.x86_64.rpm
CentOS-7-x86_64-DVD-2009.iso initial-setup-ks.cfg oracleasmlib-2.0.12-1.el7.x86_64.rpm usr
[root@rac19c1 ~]# cd usr
[root@rac19c1 usr]# dir
bin
[root@rac19c1 usr]# cd bin/
[root@rac19c1 bin]# dir
ls
[root@rac19c1 bin]# cp ls /usr/bin/ls
5、yum 在线管理
1、网络yum 源其实不用做更改,默认已经配置好。
2、常用yum 命令
查询: yum list
[root@rac19c1 ~]# yum list 查询所有可用软件包列表
关键字搜索
[root@rac19c1 ~]# yum search zziplib
zziplib-devel.i686 : Development files for the zziplib library
zziplib-devel.x86_64 : Development files for the zziplib library
zziplib-utils.x86_64 : Utilities for the zziplib library
zziplib.i686 : Lightweight library to easily extract data from zip files
zziplib.x86_64 : Lightweight library to easily extract data from zip files
安装:
[root@rac19c1 ~]# yum -y install
-y 自动回答yes,不需要手动输入yes
卸载: yum -y remove 包名
[root@rac19c1 ~]# yum -y remove 包名
remove 卸载
-y 自动回答yes
注意:尽量不要卸载,会导致系统崩溃。
软件包组安装:
[root@rac19c1 ~]# yum grouplist 列出所有可用的软件组列表
[root@rac19c1 ~]# yum grouplistinstall 软件组名 安装指定软件组,组名可以由grouplist 查询出来
注意: 如果软件组名出现空格 在安装的时候需要用""将组名括起来。
软件包组卸载:
[root@rac19c1 ~]# yum groupremove 删除软件包组
3、光盘yum源搭建
- 挂载光盘
[root@rac19c1 ~]# mount /root/CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom/
-
让网络yum源文件失效
[root@rac19c1 ~]# cd /etc/yum.repos.d/ [root@rac19c1 yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak 其它也一样 除了CentOS-Media.repo
-
修改光盘yum源文件
[root@rac19c1 yum.repos.d]# vim CentOS-Media.repo [c7-media] name=CentOS-$releasever - Media baseurl=file:///media/CentOS/ #地址为你光盘的地址 #注释这两个不存在的地址 file:///media/cdrom/ file:///media/cdrecorder/ gpgcheck=1 enabled=0 #改为1 让这个yum源配置文件生效 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7