Linux基础理论
本节内容
一 Linux的安装及相关配置 |
操作系统:操作系统是一个用来协调、管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间。
操作系统的内核是一个管理和控制程序,负责管理计算机的所有物理资源,其中包括:文件系统、内存管理、设备管理和进程管理。
用户态:应用软件
内核态:硬件交互
Linux 主要发行版:CentOS、RHEL、Ubuntu等
安装Linux操作系统时对内存的最低要求为:512M
二 UNIX和Linux操作系统概述 |
UNIX的定义: UNIX是一个计算机操作系统,一个用来协调、管理和控制计算机硬件和软件资源的控制程序
UNIX的特点:多用户和多任务
多用户表示在同一时刻可以有多个用户同时使用UNIX操作系统而且他们互不干扰
多任务表示任何一个用户在同一时间可以在UNIX操作系统上运行多个程序
Linux的定义:Linux是一套免费使用和自由传播的类UNIX操作系统,
是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统
Linux操作系统的主要用途:主要用于服务器,特别是网络服务器
两种常见的桌面环境:KDE和GNOME
切换虚拟终端:Ctrl+Alt+[F1~F6] Ctrl+Alt+F7 图形界面
init 0 关机 exit 退出
root新增用户
useradd tom
passwd tom
$ 普通用户
# root用户
三 Linux命令及帮助 |
1. Linux命令的格式
命令 【选项】 【参数】
命令:告诉Linux(Unix)操作系统做(执行)什么
选项:说明命令运行的方式(可改变命令的功能),选项部分是以“-”字符开始
参数:说明命令影响(操作)的是什么(如一个文件,一个目录或是一段正文文字)
# ls -a /
# whoami 列出目前登陆Linux系统所使用的用户名(账号)
# who 显示当前登录的所有用户,以及当前的日期和时间
# date '月日时分年'
# clear Ctrl+l 清屏
# useradd tom
# passwd tom
# passwd 当前用户
# su 从当前的用户切换到另一个指定的其他用户
# su - tom
# man 获取某个Linux命令的使用说明
# man useradd
# useradd --help
四 目录结构 |
Linux系统中的一些重要的目录
家目录:用来存放用户自己的文件或目录,其中,超级用户root的家目录是/root,而普通用户的家目录被存放在/home目录下,
并使用用户名作为最后一级目录(家目录)的名称,如cat用户的家目录为/home/cat
绝对与相对路径
绝对路径:必须以一个正斜线(/)开始。绝对路径包括从文件系统的根节点开始到要查找的对象(目录或文件)所必须遍历的每一个目录的名字,
它是文件位置的完整路标,因此在任何情况下都可以使用绝对路径找到所需的文件
相对路径:不是以正斜线(/)开始,相对路径可以包含从当前目到要查找的对象(目录或文件)所必须遍历的每一个目录的名字
1. Linux目录结构
.
├── bin #常用的二进制命令目录,比如ls/cp/mkdir/cut等命令目录和/usr/bin/类似
├── boot #Linux的内核及引导系统程序所需要的文件目录
├── dev #设备文件目录,比如声卡磁盘
├── etc #常用系统及二进制安装包配置文件默认路径和服务启动命令目录
├── home #普通用户的家目录默认存放目录
├── lib #库文件存放目录
├── lib64
├── lost+found #注{1}
├── media
├── mnt #一般用来临时挂载存储设备的挂载目录,比如有cdrom,U盘等
├── opt #表示可选的意思,有些软件包也会被安装在这里,也就是自定义软件包。或者存放一些自己的配置文件。
├── proc #注{2}
├── root
├── sbin #大多涉及系统管理的命令存放,是着急权限用户root的可执行命令存放地,这个目录和/usr/bin /usr/local/bin/ 目录类似
├── selinux
├── srv
├── sys
├── tmp #临时文件目录,有时用户运行程序的时候,会产生临时文件,/tmp就是用来存放临时文件的,权限比较特殊,/var/tmp目录和这个目录类似
├── usr #注{3}
└── var #注{4} #注{1} ├── lost+found #注{1}
'''
在ext3文件系统中,当系统意外崩溃或者机器意外关机,会产生一些文件碎片在这里。
当系统在开机启动的过程中fsck工具就会检查这里,并修复已经损坏的文件系统。
大系统发生问题,可能会有文件被移到这个目录中,可能需要手工的方式来修复,或移到文件原来的位置。
''' #注{2} ├── proc #注{2}
'''
操作系统运行时,进程信息及内核信息(比如,CPU、硬盘分区、内存信息等)都存放在这里。/proc目录伪装的文件系统proc的挂载目录。
proc不是真正的文件系统
''' #注{3} ├── usr #注{3}
'''
这个是系统存放程序的目录,比如命令、帮助文件等,这个目录下有很多的文件和目录。当我们安装一个Linux发行版官方气提供的软件包时,大多安装在这个目录里。
如果涉及到服务的配置文件的,会把配置文件安装在/etc/目录中。
/usr/目录下包括涉及字体目录/usr/share/font,帮助目录/usr/share/man 或/usr/share/doc 普通的用户可执行文件目录/usr/bin 或 /usr/local/bin/ 或 /usr/X11R6/bin
比如/usr/sbin/ 或者/usr/X11R6/sbin 或/usr/local/sbin/ 等;还有程序的头文件存放目录/usr/include
''' #注{4} └── var #注{4}
'''
这个目录的内容是经常变动的,看命自救知道,我们可以理解为vary的缩写,/var/下有/var/log 这是用来存放系统日志的目录。/var/www/目录是定义Apache服务器站点存放目录;
/var/lib/ 用来存放一些库文件,比如MySQL的机器MySQL数据库的存放地
'''
2. /etc下重要目录
/etc/sysconfig/network-scripts/ #配置网络地址GW等目录
/etc/resolv.conf #设置本机的客户端DNS配置文件
/etc/hosts #设置用户IP与域名对应表,相当于本地LAN内DNS
/etc/sysconfig/network #可修改主机名及网卡启动等配置的配置文件
/etc/fstab #记录开机要Mount的文件系统
/etc/inittab #设置系统启动时init进程将把系统设置成什么样的runlevel及加载相关的启动文件设置
/etc/init.d/ #这个目录是用来存放系统或服务器以System V模式启动的脚本! 注释{5}
/etc/xinetd.d/ #如果服务器通过xinetd模式运行,他的脚本要放在这个目录下。现在用的已经不多了
/etc/profile #系统全局环境变量配置路径在 如果修改后,需要通过source让他生效!一般系统的环境变量都是大写的
/etc/issue #记录用户登录前显示的信息
/etc/group #设定用户的组名与之相关信息
/etc/passwd #用户账号信息
/etc/shadow #密码信息
/etc/sudoers #可以sudo命令的配置文件 一般不直接修改这个文件通过visudo来修改
/etc/securetty #设定那些终端可以让root登录
/etc/login.defs #所有用户登录时缺省的配置
/etc/modeprobe.conf #内核模块额外设定参数,在6版本以后统一放在/etc/modprobe.d/目录下了,手动创建这个文件也是可以生效的 #注释{5} #注释{5} /etc/init.d/
'''
linux或unix有两种方式的启动模式:System V和BSD 最大的不同就是:System V能够为不同的运行级别定义启动哪些服务,比如:
# 0 - 停机(千万不要把initdefault设置为0 )
# 1 - 单用户模式
# 2 - 多用户,但是没有NFS
# 3 - 完全多用户模式(无界面的黑框框)
# 4 - 没有用到
# 5 - X11(图形界面)
# 6 - 重新启动(千万不要把initdefault设置为6 ) 采用System V的启动模式,可以灵活的定义在 3 的运行级别下开机启动 FTP 服务,而在 5 的运行级别下开机不启动 FTP 服务。 但是采用BSD没有运行级别的概念。 BSD方式:
BSD启动方式:在/etc/rc.d和/usr/local/etc/rc.d中存放启动服务的脚本,在/etc/rc.conf中设置xxx_enable="YES"或xxx_enable="NO"随系统启动启动或关闭服务,
该文件是/etc/defaults/rc.conf的一个子集。BSD启动方式没有运行级别,简单,但缺乏多样性。 System V启动方式:
也就是linux采用的启动方式,启动服务的脚本放在/etc/rc.d/init.d下面,你能够在/etc/rc.d目录下面看到很多类似 rc0.d或rc2.d这样的目录,
这就是为每个不同的运行级别定义启动哪些服务的目录,数字0 1 2就代表运行级别,进入这些目录,能看到很多链接文件,以S或K开头的这样文件分别表示在当前运行级别下是否开启这个服务,
这些文件分别链接到/etc/rc.d/init.d/下面的很多可执行文件。 需要注意的是:在一些System V启动模式的操作系统上(如 RedHat9),除了有/etc/rc.d/init.d/这个目录,还有/etc/init.d/这个目录,
其实 ls -l 一下可以看到,/etc/init.d/这个目录 本来就是链接到/etc/rc.d/init.d/的一个链接目录。 '''
3. 其他的目录
/lib #系统会使用到的函数库
/lib/modules/ #kernel的相关模块
/var/lib/rpm/ #rpm套件安装处
/usr/bin/ #这个目录是可执行程序的目录;当我们从系统自带的软件包安装一个程序时
#他的可执行文件大多会放在这个目录。相似的目录是/usr/local/sbin; /usr/sbin #这个目录也是可执行程序的目录,大多存放涉及系统管理的密令,相似有/usr/local/sbin/
/usrlocal #这个目录一般是用来存放用户自编译安装软件的目录;一般是通过源码安装的软件
#一般如果没有指定安装目录的话默认一般是这个目录 /usr/local/bin/ #用户安装的小的应用程序,和一些在/usr/local目录下大应用程序的服务号连接
/usr/share #系统公共的东西存放地,比如/usr/share/doc 和 /usr/share/man
/usr/src #内核源码存放目录
/usr/bin #使用者可执行的binary file目录
/usr/local/bin #使用者可执行的binary file目录
/usr/lib #系统会使用到的函数库
/usr/local/lib #系统会使用到的函数库
/usr/local/sbin #系统管理员才能执行的命令
/usr/sbin #系统管理员才能执行的命令
4. /var目录下的路径知识
/var/log #各种日志存放地
/var/log/message #系统信息默认日志文件,非常重要,按周自动轮询
/var/log/secure #记录登录系统存放的信息文件,按周自动轮询,例如pop3/ssh/telnet等都会被记录在此
/var/log/wtmp #记录登录信息文件/last
/var/spool #定时任务crontab默认目录,按用户名命名文件
/var/spool/cron #定时任务crontab默认目录,按用户名命名文件
/var/spool/mail #系统用户邮件存放目录,按用户名命名文件
/var/spool/clientmqueue #临时邮件目录,有很多原因会导致这个目录碎文件很多,比如crontab命令不加>/dev/null
5. /proc下的重要路径知识
/proc #虚拟目录,是内存的映射
/proc/version #内核版本
/proc/sys/kernel #系统内核功能
/proc/cpuinfo #关于处理器的信息,如类型、厂家、型号和性能等
/proc/devices #当前运行内核所需配置的所有设备清单
/proc/dma #当前正在使用DMA通道
#DMA(Direct Memory Access) ,即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,从内存到适配卡或从一段内存到另一段内存
/proc/filesystem #当前运行内核所需配置的文件系统
/proc/interrupts #正在使用的中断,和曾经有多少中断
/proc/ioports #当前正在使用的I/O端口
/proc/loadavg #系统负载信息uptime的结果
6. 其他路径只是(了解)
/etc/DIR_COLORS #设定颜色
/etc/hosts.allow #设置允许使用inetd的机器使用 inetd是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求。
/etc/hosts.deny #设置不允许使用inetd的机器使用
/etc/protocols #系统支持的协议文件
/etc/X11 #X Windoews的配置文件
六 用户、群组和权限 |
Linux一切皆文件
1. 新增用户时相关文件
less /etc/passwd
/etc/passwd文件的功能:存储所有用户的相关信息,该文件也被称为用户信息数据库(Database)
/etc/passwd文件每个字段的具体含义:
第1个字段(列)记录的是这个用户的名字(在创建用户时root用户起的)
第2个字段(列)如果是x,表示该用户登录Linux系统时必须使用密码;如果为空,则该用户在登录时无须提供密码
第3个字段(列)记录的是这个用户的uid
第4个字段(列)记录的是这个用户所属群组的gid
第5个字段(列)记录的是有关这个用户的注释信息(如全名或通信地址)
第6个字段(列)记录的是这个用户的家目录的路径
第7个字段(列)记录的是这个用户登录后,第一个要执行的进程
- /bin/bash
- /sbin/nologin
root uid=0 普通用户 uid=500 开始,若tim的uid改为0,那tim就是root用户
less /etc/shadow
/etc/shadow文件的功能:存储所用用户的密码,每一个用户占用一行记录,该文件实际就是存放用户密码的数据库(Database)
第1个字段(列)是用户名
第2个字段(列)是密码,这个密码是经过MD5加密算法加密过的密码
less /etc/group
/etc/group文件的功能:存放了Linux系统中所有群组的信息,它实际上就是一个存放了群组信息的数据库(Database)
第1个字段是这个群组的名字
第2个字段中的x表示这个群组在登录Linux系统时必须使用密码 /etc/gshadow 组一般不设密码
第3个字段记录的是这个群组的gid
第4个字段记录的是这个群组里还有哪些群组成员
less /var/spool/mail/ # 用户邮件
新增用户涉及的文件 /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/var/spool/mail/tom /home/tom
Linux一切皆文件,建用户,就是建文件
2. 用户操作
useradd命令的功能:新增一个用户
–u:指定用户的UID
–g:指定用户所属的群组
–d:指定用户的家目录
–c:指定用户的备注信息
–s:指定用户所用的shell
userdel -r user 删除用户
–r:在删除用户的同时删除这个用户的家目录及其邮箱
查看用户信息 id user
usermod [- ] user
usermod -d /home/sb alex # 只修改passwd文件家目录,需手动创建家目录信息
groupadd group_name # 新建组
usermod -G group_name alex # 把alex添加到组 group_name,覆盖形式(主组不变)
usermod -aG group_name alex # 把alex添加到组 group_name,追加形式
usermod -L user # 锁定
usermod -U user # 解锁
3. 组操作
groupadd、groupdel、groupmod
七 用户、群组和权限的深入讨论 |
文件的操作权限
ls -l
权限信息. 硬链接数 属主 属组 文件大小 文件创建日期 文件名
权限信息 后面的. 和selinux相关,一般关闭,了解即可
权限信息
第1位:文件类型
- 普通文件
d 目录文件
l 软连接 ln -s 源文件 link
b 块文件 ls -l /dev/sda1 在操作系统级别块设备逻辑单位
p 管道文件
权限分三类 读r、写w、执行x
第2-4位:属主的权限
第5-7位:属组的权限
第8-10位:其他人的权限
chmod u g o a.txt
u=rwx g-w o+w
管理员 root 不在权限控制范围内
只有文件的属主才能修改权限
十 系统的初始化和服务 |
BIOS 帮我们找到启动盘是谁
MBR 512 Bytes 装有操作系统的分区
boot loader GRUB控制内核列表,选择内核
kernel
init process
login
cat /etc/inittab
init 0 关闭
init 1 单用户模式
init 2 同init3,无网络
init 3 命令行多用户
init 4 预留,开发
init 5 图形界面
init 6 重启
GRUB加密
"启动读秒时任意键" -> "e " 编辑操作系统
选择操作系统内核 -> "e" 编辑
空格 1 -> 初始化进程选择1 进入单用户模式(即 root 账号) 可修改密码
所以为了保证安全,需对GRUB进行加密
grub-md5-crypt
vim /etc/grub.conf 添加选项 password --md5 密钥
登录grub界面时 选 p 输入密码
备注:
rm -rf /etc/.inittab.swp # 非正常关机系统保存的临时文件
linux 模块化设计 需要什么功能模块,就加载,不需要就卸载
BIOS加密
"虚拟机" -> "电源" -> "打开电源时进入固件" -> "BIOS" -> "CD-ROM Driver"启动 -> "Rescue installed system"
vi /mnt/sysimage/etc/grub.conf 编辑grub.conf文件去掉加密选项 password --md5 即可破解grub
加密主板BIOS即可
附件1 linux系统启动流程
磁盘最小读取单位 一个磁道上的扇区
512bytes 主引导记录MBR(master boot record)
前446bytes 引导信息
中64bytes 分区信息
最2bytes 标志位
cat /etc/redhat-release
uname -a
uname -r
十一 系统监控 |
1. 命令top
top是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
第一行是任务队列信息
20:00:47 | 当前时间 |
up 4:34 | 系统运行时间,格式为时分 |
6 users | 当前登录用户数 |
load average: 0.00, 0.04, 0.04 | 系统负载,三个数值分别为1分钟、5分钟、15分钟前到现在的平均值 |
第二行为进程信息 Tasks:
154 total | 进程总数 |
1 running | 正在运行的进程数 |
153 sleeping | 睡眠的进程数 |
0 stopped | 停止的进程数 |
0 zombie | 僵尸进程数 |
第三行为CPU信息 CPU(s):
0.3%us | 用户空间占用CPU百分比 |
0.7%sy | 内核空间占用CPU百分比 |
0.0%ni | 用户进程空间内改变过优先级的进程占用CPU百分比 |
98.7%id | 空闲CPU百分比 |
0.3%wa | 等待输入输出的CPU时间百分比 |
0.0%hi | 硬件中断占用CPU时间的百分比 |
0.0%si | 软件中断占用CPU时间的百分比 |
0.0%st | 实时 |
第四、五行为物理内存、交换内存信息
buffer和cache都是内存中空间
cache:高速缓存,把CPU经常调用的数据缓存到cache中,解决CPU和内存的速度差
buffer:缓存区,硬盘向buffer中 写数据,组合在一起,CPU一块调用,解决内存和硬盘之间速度差
父进程--子进程
bash
bash
bash
进程列表信息
PID | 进程ID |
USER | 进程所有者的用户名 |
PR | 优先级 |
NI | NICE值 |
VIRT | 进程使用的虚拟内存总量,单位KB VIRT=SWAP+RES |
RES | 进程使用的、未被换出的物理内存大小,单位KB RES=CODE+DATA |
SHR | 共享内存大小,单位KB |
S | 进程状态 D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计 |
COMMAND | 命令名/命令行 |
一般不会用top命令监控系统,实时刷新占用资源多
2. 命令free
free:显示内存的使用状态 -m 单位MB -h 单位GB
Mem[used] 代表内存分配出去的大小,也就是给buffers和cache使用,902124KB
Mem[buffers] 分配出去的buffers,但还没使用的buffers,43788KB
Mem[cached] 分配出去的cache,但还没使用的cache,490200KB
buffers/cache[used] 已使用的buffers和used,368136KB
Mem[used] = Mem[buffers] + Mem[cached] + buffers/cache[used],即902124KB=43788KB+4990200KB+368136KB
内存的真实使用量,buffers/cache[used]=368136KB
Mem[free] 没有被分配出去的内存,101988KB
Mem[buffers] 分配出去的buffers,但还没使用的buffers,43788KB
Mem[cached] 分配出去的cache,但还没使用的cache,490200KB
buffers/cache[free] 可以被当做fuffers/cache使用的内存,635976KB
buffers/cache[free] =Mem[free] + Mem[buffers] + Mem[cached],即 635976KB=101988KB + 43788KB + 490200KB
内存总量=已使用量+未使用量,Mem[total] = buffers/cache[used] + buffers/cache[free],即1004112KB=368136KB+635976KB
3. 命令ps
进程:进程是程序的一次动态执行
守护进程:守护进程是在后台运行并提供系统服务的一些进程
父进程、子进程:当一个进程创建另一个进程时,第1个进程被称为新进程的父进程,而新进程被称为子进程
ps:用来显示当前进程的状态
ps aux 显示所有的与用户相关的完整信息
ps aux | head -5 # 前5行
grep 'root' /etc/passwd # 打开文件/etc/passwd,一行一行读,然后匹配是否包含'root'
ps aux | grep 'init' # 过滤出包含'init'的进程
ps aux | grep 'init' | grep -v 'grep' # -v 不包含 'grep' 反向匹配
pstree # 查看进程数
centos7默认没有pstree,需要yum -y install psmisc
4. 命令kill
ps aux | grep 'bash' | grep -v 'grep'
kill -9 75383 # 强制关闭进程号,本质发信号
[root@localhost~]# firefox --> 启动浏览器,命令行卡住;关闭终端(父进程),浏览器也关闭(子进程)
[root@localhost~]# firefox & --> 启动浏览器,后台运行,但命令行不会卡住
[root@localhost~]# jobs --> 查看后台运行进程
[root@localhost~]# fg %1 --> fg %工作号,把后台程序调到前台执行
十二 硬盘分区、格式化及文件系统的管理 |
ls /dev/sd
fdisk -l /dev/sdb
硬盘层面 一次读写 一个分区 512bytes
OS层面 以块block为单位操作 512bytes * 8
块存储-------> 对应硬盘,一块裸盘不能用,必须分区
文件存储----> 对应文件夹,如smaba服务
对象存储----> 如百度网盘,只能新建文件夹,上传文件,不能基于文件实时修改
fdisk /dev/sdb n-----> new ----> p e ----> 选择柱面
十四 Linux网络原理及基础设置 |
ifconfig
ifconfig eth0
# 临时配置网卡信息
ifconfig eth0 192.168.100.5/24
ifconfig eth0 192.168.100.5 netmask 255.255.255.0
service network restart
# 永久修改网卡信息
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
TYPE="Ethernet"
BOOTPROTO="dhcp" # 自动获取IP地址
ONBOOT="yes" # restart 或 reboot后,网卡直接激活
NM_CONTROLLED="no" # 不启动这个服务,会影响其他服务 BOOTPROTO="static" # 静态配置IP地址
IPADDR="192.168.254.200"
NETMASK="255.255.255.0"
GATEWAY="192.168.254.2"
DNS1="202.106.0.20"
DNS2="8.8.8.8"
CentOS6 语法
service NetworkManager stop # 网卡的守护进程要停掉
chkconfig NetworkManager off # 开机后不启动守护进程
CentOS7语法
systemctl stop NetworkManager
systemctl disable NetworkManager
service network restart
chkconfig --list | grep 'NetworkManager'
chkconfig --level 2345 NetworkManger off
查看路由 route -n
查看DNS解析 cat /etc/resolv.conf
十五 软件包的管理 |
nginx.tar.gz 源码包,一堆字符串,需编译安装成二进制,OS才可以运行
编译(源码翻译成二进制)
安装
rpm hedhat package management,二进制形式
- 安装(官方已编译)
编译安装过程
解包------> 运行configure脚本,添加编译参数 ------> 编译(gcc-*, glibc-*) make -----> 安装 make install
ls ---------PATH -----------/bin/ls
vim /etc/profile
PATH=$PATH:/usr/local/python3/bin
export PATH
rpm文件名包括5个部分
第1部分是name,表示这个rpm软件包的名称;
第2部分是version,表示这个rpm软件包的版本编号;
第3部分是release,表示这个rpm软件包的版本发布次数(修正号码);
第4部分是architectures,表示这个rpm软件包适用于哪些平台;
最后一部分是rpm,表示这个rpm软件包的文件扩展名
rpm安装及移除软件
–i:安装(Install)软件
–U:升级(Upgrade)旧版本的软件
–e:移除/删除(Erase)软件
–v:显示详细的处理信息
–h:显示安装进度。卸载不能用
rpm本地安装
本地安装,如光盘 ls /media/CentOS_6.4_Final/Packages,安装OS时可选择需要的软件进行安装
查看RPM软件包中的信息
rpm –qa:显示目前操作系统上安装的全部软件包
pm –qa | grep dhcp
rpm包的属性依赖性问题:这个软件包的安装依赖于其他软件包的安装
rpm -e dhcp-common --nodeps 忽略依赖性
rpm 网络安装
rpm -ivh http://mirror.centos.org/centos-6/6.9/extras/x86_64/Packages/python-tornado-2.2.1-1.el6.centos.noarch.rpm
也可以下载到本地
wget http://mirror.centos.org/centos-6/6.9/extras/x86_64/Packages/python-tornado-2.2.1-1.el6.centos.noarch.rpm
十六 yum管理RPM包 |
rpm ----> 安装源,yum ----> 安装源,安装源分为本地安装源和网络安装源
rpm安装、删除时存在依赖性关系问题,yum(python开发)可以很好解决这个问题
yum 本地安装源
yum操作是把安装源写到配置文档里,根据配置文档里的地址信息,找到repodata依赖性关系文件,再去Packages安装包
vim /etc/yum.repos.d/local.repo [local] <------ID 表示
name=local yum <------- 名字
baseurl=file:///media/CentOS_6.4_Final <------ 协议://源绝对路径 rpm到Packages中安装,yum到repodata找依赖性关系
enabled=1 <------ 启用
gpgcheck=0 <------ 不检测gpg
自定义本地yum源
yum install -y createrepo # 创建依赖关系的命令
mkdir /test # 源包文件
cp 软件包 /test
createrepo /test # 创建依赖关系
vim /etc/yum.repos.d/local.repo
baseurl=file:///test # 指定yum源
常用命令
yum makecache # 建缓存信息,yum install 直接从缓存中找依赖性关系
yum clean all # 清理yum 缓存
yum -y install http* # 匹配安装
yum erase dhcp # 删除
yum grouplist # 支持所有的组安装列表
yum groupinstall "开发工具" # 组安装
yum 安装网络源
vim centos.repo [centos]
name=remote yum
baseurl=http://mirror.centos.org/centos-6/6.9/os/x86_64/
enabled=
gpgcheck=
保存缓存yum软件包
/etc/yum.conf cachedir=/yum_source keepcahce=
实例:部署openstack 一边部署一台机器,一边缓存软件包。把所有需要的软件包自己定制源,从而保证整个系统的版本一致
更多信息请参考:
http://www.cnblogs.com/linhaifeng/articles/6045600.html
http://www.cnblogs.com/luotianshuai/articles/5630097.html
Linux基础理论的更多相关文章
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
- Linux学习之计算机基础理论
一.描述计算机的组成及其功能. 计算机系统是由硬件系统(hardware)和软件系统(software system)两部分组成. 硬件系统: 从硬件基本结构上来讲,计算机是由运算器.控制器.存储器. ...
- 【Linux】【Services】【Docker】基础理论
1. 名称空间:NameSpace 内核级别,环境隔离: 1.1. 名称空间的历史 PID NameSpace:Linux 2.6.24 ,PID隔离 Network NameSpace:Linux ...
- 马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)
马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)目录详情:18_02_ssl协议.openssl及创建私有CA18_03_OpenSSH服务及其相关应用09_01_磁盘及文 ...
- 为什么学习linux
目录 为什么学习linux Linux简介 开源共享精神 红帽认证 为什么学习li ...
- LInux下桥接模式详解二
上篇文章导入博客园的比较早,而这篇自己在写的时候才发现内部复杂的很,以至于没能按时完成,造成两篇文章的间隔时间有点长! 话不多说,言归正传! 前面的文章介绍了桥接模式下的基础理论知识,其实本节想结合L ...
- Linux下桥接模式详解一
注册博客园已经好长时间,一直以来也没有在上面写过文章,都是随意的记录在了未知笔记上,今天开始本着分享和学习的精神想把之前总结的笔记逐步分享到博客园,和大家一起学习,一起进步吧! 2016-09-20 ...
- linux tcp 高并发最大连接数
Linux下高并发socket最大连接数所受的限制问题 1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统 ...
- 16-MySQL DBA笔记-调优基础理论和工具
第五部分 性能调优与架构篇 本篇将为读者介绍性能调优的一些背景知识和理论,然后介绍一些工具的运用,最后介绍从应用程序到操作系统.到数据库.到存储各个环节的优化. 性能调优是一个高度专业的领域,它需要一 ...
随机推荐
- PHPsocket、CURL、File_get_contents采集
1.socket采集.采用最底层的,它只是建立一个长连接,然后我们自己构造http协议字符串去发送请求.例如想获取这个页面内容(http://tv.youku.com/?spm=a2hww.20023 ...
- Python正则替换字符串函数re.sub用法示例(1)
本文实例讲述了Python正则替换字符串函数re.sub用法.分享给大家供大家参考,具体如下: python re.sub属于python正则的标准库,主要是的功能是用正则匹配要替换的字符串然后把它替 ...
- laravel PHPExcel 使用小结
最近需求要用到PHPExcel,laravel框架中有相应的组件https://github.com/Maatwebsite/Laravel-Excel,我用的是2.1的(3.0文档不详细而且坑似乎也 ...
- Linux命令:pwd
打印当前目录的完全路径. -L 打印路径包含符合路径 -P 打印路径不含符合路径. -LP,可能打印的不同,取决于你对进入当前目录的方式是通过符号链接进入,还是物理目录进入.如果是符号链接进入,则-L ...
- 目标检测之faster-RCNN和FPN
今年(2017年第一季度),何凯明大神出了一篇文章,叫做fpn,全称是:feature pyramid network for object Detection,为什么发这篇文章,根据 我现在了解到的 ...
- oracle 连接字符串的问题
未指定的错误,发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息.数据类型不被支持. 原因是你用的ADO for ORACLE的驱动是微软的Microsoft OLE DB ...
- zabbix钉钉报警
我们在钉钉上建立群聊,然后在群聊上添加钉钉机器人: 编写,脚本需要放在zabbix 的alertscripts目录下(如果不知道该目录的位置,可以使用find命令查找) find / -iname a ...
- CF 317 A. Lengthening Sticks(容斥+组合数学)
传送门:点我 A. Lengthening Sticks time limit per test 1 second You are given three sticks with po ...
- toastr简单用法及修改垂直居中
toastr是一个基于Jquery简单.漂亮的消息提示插件,使用简单.方便,可以根据设置的超时时间自动消失. 1.使用很简单,首选引入toastr的js.css文件html <script sr ...
- vue获取后台图片验证码,并点击刷新验证码
<--url为需要访问的接口地址--> <span style="display: inline-block;width: 130px;height: 53px;borde ...