admin管理员组文章数量:1652577
Python之路
前言:因为Python主要是在Linux和widows操作系统上使用所以,首先就介绍Pyhton在这两个平台上的安装和一些基础知识
版权声明:本文为博主原创文章,欢迎转载,但必须标识出处,且在文章明显位置给出原文链接
Linux基础
工具
虚拟机:VMware workstation 12 Pro
Linux系统:CentOS 64 位
VMware虚拟机安装很简单就不说明了。
在虚拟机安装CentOS 需要注意的是:
1.运行内存分配1G左右即可
2.可以开机按F2进入bios界面boot目录下选择启动设备选择Hard Drive为优先启动位置之后F10保存
3.如果CPU没有开启虚拟化功能,可以进入bios界面切换到Advanced选项,找到Secure VirtualMachine Mode的选项,设置为Enabled即可。
4.记住自己设置的ROOT用户密码
5.装系统配置分区的时候,一般分为 /boot ,/swap ,/ 三个分区.这里主要想说的是swap分区:linux交换分区,如果linux系统的物理内存不够用,系统就会把物理内存中的访问频率较低的堆存对象移动到swap中,在物理内存中产生新的链接到swap里的那个对象。(在windows中虚拟内存的区别是:windows是协同调用的)
(一)Linux基础命令介绍
Linux系统遵循GPL条款,源代码开源。是基于POSIX和UNIX的多用户,多任务,多线程和多CPU的操作系统。Linux系统主要用于服务器,尤其是网络服务器。
Linux终端:又叫虚拟控制台,Linux操作系统主要使用命令行工作,通过Linux终端对系统进行控制。
(1)Linux系统的简单命令和使用
1.切换虚拟终端:Ctrl+Alt+F(1-6)
2.普通用户和系统用户登录的命令提示符:¥和#。
3.关闭系统:init 0
4.退出命令:exit
5.Linux命令格式:命令+选项+参数
6.who命令:列出目前登录在系统的用户
7.ls:列出当前目录下的文件。
8.date:显示当前日期
9.date'月日时分年':修改系统日期
10.cal:查看系统日历
11.Clear=Ctrl+L:清屏
12.hwlock -s:同步硬件时间
13.useradd+用户名:创建用户
14.Passwd:设置用户密码(修改当前用户密码)
15.Ctrl+C:终止上一条命令
16.su -用户名:切换用户
17.man+命令名:显示帮助信息(等同于 命令+--help)
18.pwd:显示当前路径
19.cd ..:切换到上级目录
20.TAB:如果忘记命令,可以补全你输入的命令
21.ls -a:显示隐藏文件(.开头的隐藏文件)
22.cd ~:直接回到当前用户的家目录
23.cd -:返回上一次所在的目录
24.cp 文件所在目录+空格+目标文件目录:把文件拷贝到目标路径
25.cp 文件所在目录+空格+目标文件目录+new_name:拷贝到目标路径后进行重命名
26.alias +自定义字符='命令':自定义字符就是命令的别名
27.cp -r:文件目录递归拷贝
28.mv 当前目录 目标目录 :移动文件从当前目录移动到目标目录
29.mv 当前文件名 目标文件名:改名
30.mkdir:创建文件或目录
31.mkdir -p:递归创建文件目录
32.touch:创建文本文档(前面可以加目录)
33.rm -f:直接删除(不提示询问信息)
34.rm -rf:删库跑路不解释(谨慎使用)
35.cat+文件路径:查看命令,直接显示文件内容
36.head+文件路径:显示目标文件前几行(默认文件前十行)
37.tail+文件路径:显示目标文件后几行(默认后十行)
38.tail -f:动态查看文件内容(可以用来查看日志)
39.more:百分比查看文件(Ebter向下翻页)
40.less:查看文件内容(上下键进行翻页)
41.id+用户名:查看用户信息
42.useradd -u(u id) -g(群组) -d(家目录) -c(备注信息) -s(Shell):新建一个用户 指定用户UID 所属群组 家目录 备注信息 用户所用的shell
例如:useradd -u -1000 -g mading -d /home/sb -c bigsb -s /bin/bush chenlanlan
43.userdel -r +用户名:删除用户
44.usermod -u(u id) -g(g id) -G(组名 用户名) -d(家目录) -c(备注信息) -s(Shell):修改用户信息
需要注意的是:修改用户而家目录 -d 时,需要makdir新建一个家目录,同时把之前家目录里面的配置信息拷贝到当前目录下
例如:usermod -d /home/sb chenlanlan
mkdir /home/sb
cp -r /home/chenlanlan/.[!.]* /home/sb/
45.usermod -L+用户名:锁定用户
46.usermod -U+用户名:解锁用户
47.chmod u=rwx a.txt:修改属主的文件权限为可读可写可执行
48.Esc+shift:+wq :对写入内容进行保存
49../a.txt:执行a.txt文件
50.sh 文件路径:执行文件
51.usermod -aG mading chenlanlan:把用户chenlanlan加入到mading这个组中
52.ll -d +目录:查看目录权限信息
53.chown 属主. 属组 (文件或目录):修改 (文件或目录) 文件的属主,属组。
54.chown 属主 (文件或目录):修改(文件或目录)的属主
55.chown .属组(文件或目录):修改(文件或目录的属组)
56.chown -R 属主.属组 +目录:递归修改目录下的所有目录和文件的属主,属组。
57.A > B: A内容覆盖写入到B中
58.echo '命令':回显命令
59.A >> B: A追加到B中
60.wc -l +文件:统计文件内容行数
61.A | B:管道符号,A的执行结果交给B继续执行
62.tar -cvf test.tar a.txt b.txt c.txt:把a.txt,b.txt,c.txt 打包到test.tar中
63.tar -tf test.tar:查看test.tar中的文件
64.tar xvf test.tar —C /路径:解包到目标路径
65.gzip +文件:压缩为.gz结尾的文件
66.gunzip +压缩包:解压.gz结尾文件
67.bzip2 +文件:压缩为.bz2结尾文件
68.bunzip2 +文件:解压.bz2结尾文件
69.tar czvf +压缩包名.tar.gz+被归档压缩的文件名:归档并压缩
70.tar czvf +压缩包名.tar.gz+目录:归档并压缩目录
71.history:查看历史命令
72.touch /test1/{a.z}.txt:在test1目录下创建a-z.txt文件
73.ls *.txt:查看所有txt结尾的文件
74.cat /etc/redhat-relase:查看操作系统的版本
75.uname -r:查看内核版本
76.uname -a:内核版本的详细信息
77.runlevel:查看上一次和这一次的启动级别
78.grub-md5-crypt:生成grub密文密码
79.echo 'scale'=2;1906280/1024:保留两位小数,回显运算1906280除以1024的结果
80.free -h:以G单位为来查看内存
81.free -m:以M为单位来查看内存
82.firefox &:在后台打开浏览器
83.jobs:查看在后台运行的程序
84.fg %1(工作号):把后台调到全台运行
85.firefox:打开浏览器,返回[工作号]和PID
86.kill -9 PID:强制回收杀死PID对应的进程
87.kill -9 %工作号:强制回收杀死工作号对应的进程
88.fg %1(工作号):把后台程序调到前台运行
89.bg %1:后台暂停的程序直接在后台运行
90.pstree less:查看进程数(树形结构)并用上下键进行查看
91.pkill -9 +进程名:强制回收杀死进程名相对应的进程
92.fdisk -l /dev/sdb :查看第二块硬盘的分区信息
93.fdisk /dev/sdb:进行分区(W保存分区)
94.partprobe:更新分区表
95.mkfs.ext4 /dev/sdb1:格式化分区为ext4文件系统
96.mount /dev/sdb1 /目录/:把分区sdb1挂载到目录下
97.df:查看挂载信息
98.umount -l /目录/:强制卸载分区
99.du -sh /目录/:统计目录下的文件大小
100.df -i:查看inodes(元数据)信息
101.ln -s /原路径/ /目标路径/:软链接
102.ifconfig:查看IP地址信息
103.ifconfig 网卡 IP地址 netmask:临时配置网卡IP地址
104.service network restart:重启网络服务
105.route -n:查看网关信息
106.cat /etc/resolv.conf:查看DNS信息
107.arping -I 网卡 网关:查看一个子网内有没有IP地址冲突
108.ifconfig 网卡 up:开启网卡
109.ifconfig 网卡down:关闭网卡
110.ifdown 网卡:关闭网络适配卡
111.ifup 网卡:激活网卡配置文件
112.ifconfig :设定网络参数使用的命令
绝对路径:必须 / 开头从系统的根目录开始遍历每一个目录直到要查找的对象。是文件位置的完整路径,所以无论什么情况下绝对路径总能找到对应的文件。
相对路径:不是 / 开头的相对于当前路径开始遍历每一个目录要查找的对象。
Linux系统的文件结构:树形结构(只有一棵树)树根:/
1.bin目录:用来存放常用的可执行文件(二进制)
2.sbin目录:用来存放系统的可执行文件
3.dev目录:设备文件目录
4.etc目录:配置文件目录
2018/8/9 21:32:52
(2) 在root用户下的 /etc/passwd 下的文件目录介绍
root :x :0:0:root:/bin/bush
用户名:密码:user id:group id:用户描述信息:root:/用户的家目录/bush 可以登陆操作系统 (如果是/sbin/nologin 不可以登陆操作系统)
(3)每新建一个用户就涉及以下几个文件:
(4)ls -l 查看长信息
权限信息+硬链接数+属主+属组+文件大小+创建时间+文件名
权限信息有10位:
1位.文件类型(-:普通文件 d:目录 l:软连接 (ln -s anaconda-ks.cfg test :test是anaconda文件的软连接) b:block设备文件) p:管道文件)
2-4.属主的权限u(读r,写w,执行x)
5-7位.属组的权限g(读r,写w,执行x)
8-10位.其他用户o(读r,写w,执行x)
对目录的权限:
1.r(可以用4表示):可以ls该目录下得文件名,子目录名
2.w(可以用2表示):可以在该目录下创建,删除,重命名
3.x(可以用1表示):可以cd到该目录下
例如:将/tmp/a.txt 权限修改为 -r-x--xrwx
输入:chmod 517 /tmp/a.txt
2018/8/13 17:30:23
(5)vim编辑器的三种模式:
归档:就是将许多文件或目录打包成一个文件。归档的目的:是为了方便备份以及文件的还原。
压缩:家弄一个大的文件通过一些算法编程一个小文件。压缩的目的是:缩小文件大小,节省次磁盘空间,其次在网络传输中也会减少网络带宽
命令行模式:所有的输入被解释为vim命令,可以执行,修改,复制,移动,粘贴,和删除等命令。也可以搜索字符串和退出vim操作等。
例如:
1.dd:删除光标所在的一行
2.u:撤销上一步操作
3.ndd:n删除光标以下的n行
4.yy:复制光标所在的一行
5.nyy:复制光标以下的n行(包括当前行)
6.p(小写):将已经复制的数据粘贴在光标下一行进行黏贴
7.P(大写):将已经复制的数据粘贴在光标下一行进行黏贴
8.Ctrl+R:重复上一步操作
9.¥:跳转到行尾
10.0:跳转到行首
11.Ctrl+a:跳转到命令的首部
12.Ctrl+e:跳转到命令尾部
13.G:跳转到文本的结尾
14.gg:跳转到文本的开头
15.nG:跳转到文本的第n行
16.H:跳转到屏幕最上方
17.M:跳转到屏幕中央
18.L:跳转到屏幕结尾
编辑模式(a,i,o都可进入编辑模式):可以往一个文件中输入正文,所有的输入都被解释为输入的正文,使用Esc命令返回命令行模式
扩展模式(:):
例如:
1.(:w):保存文本内容
2.(:q):退出vim编辑器
3.(:wq):保存并且退出
4.set nu:生成一列行号
2018/8/17 15:52:49
(6) Linux系统的引导顺序
引导顺序:BIOS->MBR->boot loader->kernel
1.计算机从主板的BIOS读取其中所存储的程序,这一程序通常知道一些主板上的硬件设备(硬盘,网络接口,键盘,串口,并口)。现在大多数的BIOS允许你从软盘,光盘,硬盘中选一个作为启动盘来启动计算机。
2.计算机从你所选的的存储设备中读取开始的512bytes,这512bytes(一个扇区,前446是引导信息,后64位是分区信息,后两位是结束标志位)叫做主引导记录MBR(master boot record)。MBR会告诉计算机从哪一个分区来装载引导加载程序(boot loader)。Boot loader存储有操作系统的相关信息,比如,操作系统名称,操作系统内核(kernel)所在的位置等。常用的boot loader有GRUB和LILO。
3.随后,boot loader会帮助我们加载kernel。内核实际上是一个用来操作计算机的程序,主要是管理计算机的硬件资源,充当软件和硬件的接口,操作系统的任何操作都要通过内核传达给硬件,windows和Linux各有各自的内核。狭义上的操作系统就是指内核。广义上的操作系统就是包括内核和内核以上的各种应用。
4.Ubuntu,Red Hat,都是基于相同的内核,囊括了不同的应用和界面构成一个更加完整的操作系统版本。
5.如果我们启动的是一个Linux kernel。首先kernel会预留自己的运行空间,然后通过驱动检测计算机硬件。之后会启动一个init进程,它是Linux系统的1号进程(Linux没有0号进程)
init 0 1 2 3 4 5 6
init 0:关机
init 1:单用户
init 2:多用户
init 3:命令行模式
init 4:无使用级别
init 5:图形界面
init 6:重启
(7)CentOS7设置grub密码和CentOS6设置grub密码
CentOS7
查看grub登录用户名:cat /etc/grub.d/01_users
设置grub密码:grub setpassword
确认密码:cat /boot/grub2/user.cfg
CentOS6
grub.conf配置文件在/boot/grub/grub.conf或/etc/grub.conf
执行命令:password-md5-crypt
输入两次密码
复制生成的明文加密密码
编辑grub.conf配置文件,在title行之前添加一行
password--md5 生成的明文密码
保存退出,重启即可
(8) BIOS加密
开机F12进入BIOS中的Security选项
Set Supervisor Password 回车即可输入密码F10保存退出
Q:为什么要给Grub设置密码?
A:如果Grub不加密,那么任意用户可以通过Grub启动屏显时进入单用户模式修改ROOT用户的密码,更改系统文件。
Q:为什么要给BIOS设置密码?
A:如果BIOS不设置密码,那么任意用户可以通过系统启动前进入BIOS的光盘救援模式,获得超级管理员权限删除Grub密码,更改系统文件。
Q:给BIOS和Grub都进行加密,系统就安全了吗?
A:并不是,可以取下主板上BIOS的电池,放电过一段时间再安装后BIOS程序会自动复位,重启又可以进入BIOS。
(9)系统监视和进程控制工具(TOP和free)
'
top - 14:31:07 up 49 min, 2 users, load average: 0.62, 0.21, 0.13
Tasks: 285 total, 4 running, 281 sleeping, 0 stopped, 0 zombie
%Cpu(s): 21.0 us, 3.1 sy, 0.0 ni, 75.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1009276 total, 144212 free, 523204 used, 341860 buff/cache
KiB Swap: 2097148 total, 2091812 free, 5336 used. 303904 avail Mem
top - 当前时间 运行时长,2用户,CPU的平均负载:
运行任务数量:285个,4个终端运行的281个睡眠,0个停止,0个僵尸进程
CPU占用百分比:用户进程占百分比,系统进程占百分比,对nice调整占用的百分比,剩余CPU百分比,等待IO完成小号的百分比,硬件中断占CPU百分比,软件中断占CPU百分比,CPU被偷走的百分比
内存:总内存空间,剩余内存空间,已用内存空间,缓冲区(解决内存和硬盘的速度差)/高速缓存(缓解CPU和内存的速度差)
交换分区:总空间,剩余空间,已用空间,有效swap空间大小
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND
进程号 用户 控制用户优先级(PR和NI) 虚拟内存 物理内存 共享内存 当前进程状态 对CPU占用百分比 对内存占用百分比 进程运行时间 进程名
total: 总内存大小
used: 内存分配出去的内存(buffer和cach)大小
free: 剩余内存
shared: 共享内存
buffers:剩余buffer大小(分配的buffer减去使用的buffer)
cached: 剩余cached大小(分配得cached减去使用的cached)
(10)系统中进程监控--ps
USER PID %CPU %MEM VSZ RSS TTY STAT START COMMAND
用户 进程号 CPU占用的百分比 内存占用的百分比 虚拟内存 物理内存 运行终端(?后台运行) 当前状态 开始时间 产生进程的命令
ps aux | head -3:显示前三行内容
ps aux | grep 'init':过滤显示包含'init'的进程
ps aux | grep 'init'|grep -v 'grep':在过滤显示包含'init'的进程中再反向过滤掉包含'grep'的内容,再显示出来。
ps aux | grep 'bash'|grep -v 'grep'|:查找到当前终端进程的PID后
kill -9 PID:强制回收杀死PID对应的进程
kill -9 %工作号:强制回收杀死工作号对应的进程
firefox &:在后台打开浏览器
jobs:查看在后台运行的程序
fg %1(工作号):把后台程序调到前台运行
bg %1:后台暂停的程序直接在后台运行
pstree less:查看进程数并用上下键进行查看
pkill -9 +进程名:强制回收杀死进程名相对应的进程
2018/8/20 17:37:30
(11)磁盘分区
fdisk -l /dev/sdb :查看第二块硬盘的分区信息
fdisk /dev/sdb:进行分区(W保存分区)
partprobe:更新分区表
mkfs.ext4 /dev/sdb1:格式化分区为ext4文件系统
mount /dev/sdb1 /目录/:把分区sdb1挂载到目录下
umount -l /目录/:强制卸载分区
df:查看挂载信息
磁盘分区最多只能有4个主分区,因为MBR中512B中446B存放引导信息,后64B存放4个主分区信息。如果想要继续创建多个分区就只能创建三个主分区,一个扩展分区去记录之后的分区信息。
操作系统处理数据是按块(1 block = 8*512字节)
存储分为三大类存储:块存储,文件存储,对象存储
·块存储:磁盘阵列,硬盘。
主要是将裸磁盘空间映射给主机使用,比如:磁盘阵列有三块硬盘(每个1T),逻辑划分出三个硬盘(每个1T),这三个逻辑硬盘已经与之前3个物理硬盘意义完全不同了。比如第一个逻辑盘里面可能第一个500M来自1号物理硬盘,第二个200M来自2号物理硬盘,第三个300M来自3号硬盘。接着块存储会采用映射的方式将这几个逻辑盘映射给主机,主机上的操作系统会识别到有3块硬盘,但是操作系统无法区分是逻辑盘还是物理盘。操作系统还需要对挂载的裸硬盘进行分区,格式化后才能使用,和平常内置硬盘的方式完全无异。
·优点:
1,应为通过Raid和LVM手段,对数据提供了保护。
2,和一把多块廉价的眼影盘组合起来,成为了一个大容量的逻辑盘对外提供服务,提高了容量。
3.写入数据的时候,由于是多块硬盘组合出来的逻辑盘,所以几块磁盘可以并行写入,提升了写入效率。
4.块存储大多采用SAN构架组网,传输效率以及封装协议的原因,是的传输速度和写入速率得到提升。
·缺点:
1.采用SAN架构组网时,需要额外为主机购买光纤通道卡,还要买光纤交换机,成本提高。
2.主机之间的数据无法共享,在服务器不做集群的情况下,块存储裸盘映射给主机,在格式化使用后,对于主机来说相当于本地盘,那么主机A的本地盘根本不能给主机B使用,无法共享数据。
3.不利于不同操作系统主机间数据共享:因为操作系统使用不同文件系统,格式化完成以后,不同文件系统间数据是共享不了的。例如一台装了WIN7/XP,文件系统是FAT32/NTFS,而Linux是EXT4是无法识别NTFS的文件系统的。
·文件存储:FTP,NFS服务器。
为了克服块存储的文件无法共享的问题,所以有了文件存储。文件存储也有软硬一体化设备,但是其实普通拿一台服务器,只要装上合适的操作系统和软件,就可以假设FTP与NFS服务了,架上该类服务之后的服务器,就是文件存储的一种了。
主机A可以直接对文件存储进行文件的上传和下载,与块存储不同,主机A是不需要在对文件存储进行格式化(格式化:低级格式化又叫物理格式化:被用于指代对磁盘进行划分柱面,磁道,扇区的操作。高级格式化又叫逻辑格式化:根据用户选定的文件系统,在磁盘特定区域写入特定数据达到初始化磁盘或磁盘分区,清除磁盘中原来的文件的操作,包括对主引导记录的分区表区域的重写,根据用户选定的文件系统,在分区中划分出一片用来存放文件分配表,目录表等用于文件管理的磁盘空间,以便用户使用该分区管理文件。硬盘需要先进行低级格式化后再进行高级格式化),因为文件管理功能已经有文件存储自己搞定了。
·优点:
1.造价低:普通机器就可以了,在配备普通的以太网就可以,不需要专业的SAN网络,造价低。
2.方便文件共享:例如主机A(WIN10,NTFS),主机B(Linux,EXT4),原本相互之间进行文件拷贝是不行的。但是加一个主机C(NFS服务器),然后就可以把文件从A拷贝到C再拷贝到B。
缺点:读写速率低,传输速率慢,以太网上传和下载速度都慢,另外所有读写都要1台服务器里的硬盘来承担,相比磁盘阵列动不动就几十块硬盘同时读写,速率慢了很多。
·对象存储:内置大容量硬盘的分布式服务器
对象存储最常用的方案就是多台服务器内置大容量硬盘,再装上对象存储软件,然后需要额外几台服务器作为管理节点,安装对象存储管理软件。管理节点可以管理其他服务器对外提供读写访问功能。像FAT32这种文件系统是直接把一份文件的数据和元数据一起存储的,先按照文件系统的最小块大小打散成若干个小块,再写入硬盘中,每一个小块会告诉你下一个块的地址然后一直这样读取下去(让我联想到了数据结构里面的顺序存储,每个数据节点都包含后继指针)。但是这种方式读取速率很慢,因为只有当你读取到第一个下筷才知道下一个块地址。而对象存储把元数据独立出来,控制节点叫元数据服务器(服务器和对象存储管理软件),主要负责存储对象的属性(对象数据分散存放的拿几台服务器中的信息),负责存储数据的分布式服务器叫OSD。用户访问时,先访问元数据服务器,然后再直接访问对应OSD读取数据,由于是多台服务器同时对外传输,所以传输速度加快。对象存储软件有专门的文件系统所以OSD对外有相当于文件服务器不存在共享方面的问题了。
·对象存储是为了克服块存储与文件存储各自的缺点,发扬各自的优点。对象存储含有块存储读写快的优点,又含有文件存储利于共享的特点。
2018/8/24 17:33:20
(12)文件系统
super block:控制inode编号的使用
inode block:
inode number:权限,属主,属组,时间,文件名,指针
directory block:文件名和对应的inode编号
data block: 存放数据
查看一个文件的寻址顺序(/ a.txt):现根据/(根)的inode编号找到inode block块中的信息进行权限核对,如果有权限则读到指针,指针指向directory block进行检对应文件(a.txt)的inode编号,根据文件(a.txt)的inode编号在inode block中找到对应inode编号进行权限核对,如果有权限则读到指针,指针指向data block,读取相应数据。
查看一个文件的寻址过程(/ a.txt):根inode->inode block (权限,指针)->directory block (找a.txt inode)->inode block (权限,指针)->data block(读数据)
(13) 文件删除和恢复
删除文件(a.txt):实际上是在super block中把a.txt的inode编号标记为free,还会在directory block中把a.txt和对应inode编号的映射关系删除掉,并且把a.txt inode编号对应的data block标记为free。但是实际上data block中的数据没有清除掉。
恢复文件:就是把删除文件时被标记为free状态的inode编号重新改成活跃状态,并且在directory block中把a.txt和inode编号重新建立映射关系。
完全删除的办法:完全删除数据无法恢复,只能是进行覆盖的方式,因为磁盘是物理介质。
数据恢复:不可能保证百分之百的恢复,因为inode编号分配是根据文件系统的算法进行分配的,不可控。
(14)软链接和硬链接
软链接:相当于windows的快捷方式
ln -s /原路径/ /目标路径/
特点:原文件的inode编号和目标文件inode编号不同。目标文件修改,原文件也修改,删除目标文件,源文件不变。删除原文件,目标文件失效。
原理:在文件系统中,目标路径的inode编号->原文件的inode编号->data block
软连接可以跨分区:因为软连接是指向文件名的。所以原路径的inode编号和目标路径的inode编号不同。
硬链接:
ln /原路径/ /目标路径、
特点:原文件的inode编号和目标文件inode编号相同。目标文件修改,原文件也修改,删除目标文件,源文件不变。删除原文件,目标文件不变。
原理:在文件系统中,目标路径inode编号->data block。原路径的inode编号->data block
硬链接不可以跨分区:硬链接是指向inode编号的。所以每一个分区都有独立的文件系统,相同的inode编号,在两个分区指向的data block不同。例如:A分区的inode编号88和B分区的inode编号88,指向的是两个不同data block。
(15) Linux网络管理
ifconfig:查看IP地址信息
ifconfig 网卡 IP地址 netmask:临时配置网卡IP地址
service network restart:重启网络服务
service network status:查看网络服务状态
chkconfig --list:查看服务在不同启动级别下的状态
chkconfig --level 234 NetworkManager off:在启动2,3,4启动级别
route -n:查看网关信息
cat /etc/resolv.conf:查看DNS信息
arping -I 网卡 网关:查看一个子网内有没有IP地址冲突
ifconfig 网卡 up:开启网卡
ifconfig 网卡down:关闭网卡
ifdown 网卡:关闭网络适配卡
ifup 网卡:激活网卡配置文件
ifconfig :设定网络参数使用的命令
永久配置网卡IP地址:
vim /etc/sysconfig/network-scripts/ifcfg-网卡
添加修改一下配置:
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.2.50
NETMASK=255.255.255.0
GATEWAY:192.168.11.1
DNS=8.8.8.8
然后停止网卡的守护进程:service NetworkManager stop
重启网络服务即可
(16)同一网络下和不同网络下不同主机之间通信
同一网络下主机A与主机B进行通信:
首先A需要知道B的IP地址,然后将B的IP地址和本地的掩码进行与运算,得到结果是在同一网络下。IP只是一个逻辑地址,发送数据需要MAC地址,所以A会在子网中先发一个ARP广播进行询问。B收到信息解析后发现和本地IP地址相同,发出一个单播相应,将自己的MAC地址发送给A。
不同网络下主机A和主机B进行通信:
首先,A需要知道B的IP地址,把本地IP地址和B的IP地址进行与运算了,发现与自己不在同一个网络中。所以A会先发一个ARP广播进行询问,子网内没有应答,然后经过路由通过路由表进行接力进行分组转发,直到找到目的IP主机为止,B主机再把自己的MAC发送给A。A接收到B发送的MAC地址后,把要发送的信息进行封装,最后以比特流发送给B,B得到消息后解封。
(17)软件包介绍RPM(红帽软件包管理器)
RPM文件名分为五部分:
1.name:名称
2.version:版本号
3.release:版本发布次数(奇数是测试版本,偶数是稳定版本)
4.architectures:适用平台
5.文件扩展名
常用RPM命令:
rpm -ivh:安装显示安装进度(install,verbose,hash)
rpm-Uvh:升级软件包--Update
rpm-qpl:列出RPM软件包内的文件信息(Query Package list)
rpm-qpi:列出RPM软件包的描述信息(Query Package install package(s))
rpm-qf:查找指定文件属于哪个RPM软件包(Query File)
rpm-Va:校验所有的RPM软件包,查找丢失的文件(View Lost)
rpm -qa | grep'dhcp':查询所有含有'dhcp'的软件包是否安装
rpm -q dhcp:查询是否安装了dhcp的软件包
rpm -e :卸载软件包
rpm -e dhcp-common --noodeps:忽略依赖性卸载dhcp软件包
rpm -e dhcp-common --force:忽略文件冲突卸载
iptables -F:清空防火墙规则
service iptables stop:关闭防火墙
2018/8/27 20:14:20
版权声明:本文为博主原创文章,欢迎转载,但必须标识出处,且在文章明显位置给出原文链接
转载于:https://wwwblogs/martin666/p/9451888.html
版权声明:本文标题:Python3_01(Linux基础) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729600170a1207798.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论