文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux 学习笔记 二

2024-04-02 19:55

关注

压缩解压缩

压缩格式:gz bz2 xz zip z 

压缩算法,算法不同,压缩比也不同


compress: filename.Z

uncompress: 

不能压缩文件夹,会将文件夹内的文件单个压缩

gzip: .gz

gzip filename 压缩完成后删除源文件

gzip -d 等于 gunzip 

-#: 1-9 指定压缩比 默认为6

gunzip:

gunzip filename


zcat 临时查看压缩的文本文件不解压

bzip2: .bz2 

比gzip 有更大的压缩比

使用格式相同

bzip2 filename

-d -# 都有

-k 可以保留源文件


bunzip2 :同理解压

bzcat :


xz: .xz  同上


unxz 解压

xzcat

xzdec 解压


zip: zip 压缩后的文件名 压缩的路径 

可以压缩文件夹,压缩后不删除源文件


archive:归档 归档本身不意味着压缩 


unzip :解压


tar:归档工具 

-c:创建归档

-f file.tar :操作的归档文件

-x :展开归档

--xattrs 归档同时保留其扩展属性信息

-t: 不展开归档查看内部文件

-zxf:解压归档 调用gzip

-zcf:压缩归档 调用gzip

-jcf 调用bzip2

-jxf

-Jcf 调用xz

-Jxf

-z -j -J 在解压时可以省略,压缩时不可以

cpio:归档工具


read: 

-p 给出提示

-t 超时时间

while 循环:

适用于循环的次数未知的场景,要有退出条件


语法:

while 条件 ;do

运行命令

done

使用颜色控制字体


echo -e \033[x;y;zm显示文字\033[

x 字体

y 前景色

z 背景色


64,32

/lib

/lib32


IDE 133Mbps 并行

SATA 300M 600M 6G 串行

USB 3 480M 串行

SCSI SMALL COMPUTER SYSTEM INTERFACE  320M 并行总结

SAS 2.5英寸 串行


RAID:

级别,仅代表磁盘组织方式不同,没有上下之分


条带:0 

性能提升,读写

冗余能力没有

空间利用 n

至少2块

镜像:1

写性能下降,读性能上升

有冗余能力

空间利用 n/2

至少2块

效验码:4   盘1,盘2,盘3   盘6,坏一块(1-3)都可以用盘6来-去好的

轮流校验码 :5 轮流校验码存储位置

读写都提升

有冗余能力

空间利用 (n-1)/n

至少3块

1+0:先条带再镜像

    至少4块

0+1:先镜像再条带

至少4块

JOBD:简单增加多块硬盘

无性能提升

无冗余能力

空间利用n

至少2块

MD multi dsiks 模拟一个RAID

逻辑RAID

/dev/md# 

mdadm:任何块设备做成RAID

模式化命令

创建模式 

-C

专用选项:

-l:级别

-n:设备个数

-a:yes/no 自动创建设备文件

-c:指定数据块chunk大小 默认64KB

-x:指定空间盘个数

管理模式

--add,--remove,--fail

监控模式

-F

增长模式

-G

装配模式

-A


-D --detail 查看RAID 的详细信息

停止整列

-S --stop

将当前RAID 信息保存至配置文件

mdadm -D --scan > /etc/mdadm.conf

以后装配就用 mdadm -A /dev/md#


watch 周期性地执行指定命令,并以全屏方式显示结果

-n 指定周期长度,默认单位为秒,默认2秒

watch -n '命令'

lsmod 列出内核模块


mdadm 用户空间工具


MD:MULTI DEVICE 多设备


DM:device mapper 设备映射

逻辑设备

lvm2

快照

多路径

vgcreate vgname 设备

-s : pe 的大小,默认为4mb

lvcreate -n lv name -L 空间大小 vg name 


扩展逻辑卷

lvextend

-L 大小 逻辑卷

resize2fs

resize2fs2fs 逻辑卷 扩展到大小

-p 与物理边界一样大小

缩减逻辑卷

resize2fs 逻辑卷 缩减到大小

不能在线缩减,先要卸载

确保缩减后的空间大小依然能存储原有数据

在缩减之前应先强直检查文件,以确保文件系统一致性状态

lvreduce -L 大小 逻辑卷

再挂载

快照卷

生命周期为整个数据时长,这段时间内,数据的增长不能超出快照卷大小

快照卷只读

跟原卷在同一卷组内

lvcreate 

-s 快照卷

-p r|w  权限

lvcreate -s -L 大小 -n 逻辑卷名 -p r /路径

until = !while

until who | grep "hadoop" >> /dev/null ;do

sleep 5

done

echo "hadoop is logged in"


for ((变量赋值;变量范围;变量变化)); do

循环操作

done


ping

-c 次数

-w 超时时间

awk 条件 {动作}


df -h | awk '{print $1}'  awk -F 分隔符 '{print $字段序号}'

$NF是最后一个字段  ,NF是字段个数

-F 后跟分隔符匹配


CSMA/CD  carrier sense multi access colision detection

载波侦听多路访问冲突检测

socket 套接字 ip与port 绑定


三次握手 四次断开 tcp 有限状态集


    A      三次握手建立TCP连接              B

1.发送 SYN=1,SN=100 

2.接受 SYN=1,ACK=1,AN=101,SN=300

3.发送 ACK=1,SN=101,AN=301


    A      四次断开TCP连接              B

1.发送 FIN=1,

2.

3.

4.CLOSED


主机接入网络

ip

mask

gateway

hostname

dns

route

dhcp:dynamie host configuration protocol

169.254.x.x 自动地址

linux 网络属于内核功能

lo:本地回环

eth{0-9}:以太网卡

ppp{0-9}:点对点

5.8  /etc/modprobe.conf

alias


6.0 /etc/udev/rules.d/70-persistent-net.rules


ifconfig 

-a 显示所有接口的配置信息

ifconfig eth{0-9} ip/mask up|down

配置立即生效,但重启后失效

网络服务:

5.8 /etc/init.d/network start|stop|restart|status

6 /etc/init.d/networkmanager 同上


网关

route 

add 添加

-host 主机

-net 网络

-net 0.0.0.0 默认路由

route add -net 网络 gw 下一跳地址

route add -net default gw 下一条地址

del 删除

同上

route del -net 0.0.0.0 

route -n 以数字方式显示主机信息


网络配置文件

/etc/sysconfig/network


网卡配置文件

/etc/sysconfig/network-scripts/icfg-eth{0-9}

DEVICE=关联的设备名称,要与文件名的后半部保持一致

BOOTPROTO={static|none|dchp|bootp}:引导协议,

静态   动态

IPADDR IP地址

NETMASK 子网掩码

GATEWAY 网关

ONBOOT 自动启用

HWADDR mac地址与硬件一致

USERCTL {YES|NO} 是否允许普通用户控制接口

PEERDNS {YES|NO} 是否接受DHCP中DNS的配置信息

不会立即生效,保证永久有效

路由配置文件

/etc/sysconfig/network-scripts/route-eth{0-9}

添加格式

格式,1 

DEST     via       NEXTHOP

格式,2

ADDRESS0=

NETMASK0=

GATEWAY0=

ADDRESS1=

NETMASK1=

GATEWAY1=

DNS服务器指定 最多3个

/etc/resolv.conf

nameserver ip

本地地址解析

/etc/hosts

主机IP 主机名称 主机别名


配置主机名

hostname 名字

立即生效,重启失效

/etc/sysconfig/network

HOSTNAME=

永久有效

使用setup 设置效果一样,需要重启


ifconfig 老旧命令 

iproute2 

ip 

link:配置网卡属性

ip -s link show 限时统计信息

ip link set 设备 状态

addr:协议地址

ip addr add 地址 dev 设备

ip addr del 地址 dev 设备

ip addr show

route:路由

tc 流量控制

一个网卡多个地址

网络设备可以别名

别名不能使用DHCP

ifconfig eth0:0

/etc/sysconfig/network-scripts/icfg-eth{0-9}:{0-9}

DEVICE=eth{0-9}{0-9}



程序组成

二进制文件  /bin,/sbin

库 /lib

配置文件 /etc

帮助文件 /usr/share/man

/etc,/bin,/sbin,/lib

都是系统启动需要用到的目录程序,不能单独挂载额外分区

必须在根分区上 

/usr/

/bin

/sbin

/lib

操作系统的核心功能

可以单独分区

/usr/local

/bin

/sbin

/lib

/etc

/man

用户使用的第三方软件

/opt

早期第三方软件安装位置

/proc

/sys  

不能单独分区,内核自我管理

/dev 

设备,也不能单独分区

udev 

  

/home 用户数据目录

 推荐单独分区


/root 管理员家目录,么必要单独分区


/var 有了他系统管理更加规范

日志信息,和运行信息,推荐单独分区,日积月累越来越大

/boot :内核 initrd {initramfs} 只要能被找到就行,推荐单独分区


POST ---BIOS ----MBR (BOOTLOADER)--- 找到磁盘上的内核 ---- 找根的位置 


软件包安装器

打包成一个文件:二进制文件,库文件,配置文件,帮助文件

生成数据库:追踪所安装的每一个软件


1,制作软件包

2,安装卸载升级查询校验


redhat suse :rpm

redhat package manager

rpm is package manager

redhat和suse 不能混用

debian :dpt


依赖关系:

前端工具:yum,apt-get

后端工具:rpm,dpt


yum:yellowdog  update modifier


rpm 命令:

rpm:

/var/lib/rpm

rpmbulid:

安装,卸载,升级,查询,校验,数据库重建,验证数据包,


rpm命名:

包组成:

主包:

bind-版本 

子包:

bind-libs

bind-utils

包名

包名格式:

名称-版本-发行号.架构.平台.rpm

bind-major.minor.release-release.arch.rpm 

第一个release是发行号,第二个release是rpm包制作者修订用

主版本号:重大改进

次版本号:某个子功能发生重大变化

发行号:修改了部分bug,调整了一些功能

noarch 没有针对版本

umame -a 查看内核版本


rpm包:

二进制格式:直接使用,多数使用

源码格式:需要编译

rpm :

1,安装:

rpm -i 路径/文件名

-h 已#显示安装进读,50个#,每个2%

-v 详细过程

-vv 更详细

rpm -ivh 常用

--nodeps:忽略依赖关系,可以安装但是无法正常使用

--replacepkgs:重新安装,替换原有安装

--force:重装,覆盖,降级 强行安装

--test 测试安装

2,查询:

rpm -q 包名 : 查询指定包

  -qa: 查询所有已经安装的包

-qi: 查询指定包的说明信息

-ql:查询指定包安装后生成的文件列表

-qc:查询指定包的配置文件

-qd:查询指定包的安装帮助文件

-qf 查询指定文件是由那个rpm包安装生成的

-q --scripts 查询指定包中的脚本

如果某RPM未安装,希望查询

-qpi

-qpa

同上

3,升级:

rpm -Uvh 如果有老版本的则升级,否则安装

-Fvh 如果有老版本的则升级,否则退出

rpm -Uvh --oldpackage 包名  降级安装包

4,卸载

rpm -e 包名

--nodeps

5,校验

rpm -V 包名

6,重建数据库

rpm 

--rebuliddb 重建数据库,一定会重建

--initdb 初始化数据库,没有才建立,有就不建建立

7,校验来源合法性,及软件完整性

ls /etc/pki/rpm-gpg/

RPM-GPG-KEY-redhat-release

rpm -K 包名

dsa,gpg 验证来源合法性

sha1,md5 验证软件包的完整性

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

导入redhat的秘钥

HTML HYPERTEXT MARK LANGUAGGE

XML EXTENDED MARK LANGUAGGE


XML,JSON 半结构化数据


yum仓库中的元数据文件

primary.xml.gz

所有rpm包的列表:

依赖关系

每个rpm生成的文件列表

filelist.xml.gz

当前仓库RPM包的所有文件列表

other.xml.gz

额外信息,rpm修改日志

repomd.xml

记录以上上个文件的时间戳和校验和

comps 开头的.xml

rpm包的分组信息

为yum定义repo /etc/yum.repos.d/ 以.repo结尾的文件

[标示ID]

name=       名称

baseurl= 仓库路径 

ftp://

http://

file:/// 

enable= 是否可用

gpgcheck= 检查签名完整性

gpgkey= 检查的秘钥位置

yum 

list:列表

all 全部

available 可用

installed 已装

updates 可用更新

clean:清理缓存

repolist:显示repoe列表

install:

-y 自动回复yes

--nogpgcheck 无检查完整性

update:

升级到最新版本

update to:

升级到指定版本

remove|erase:

卸载

info :信息

provides:

查看指定文件或特性是那个yum安装的

groupinstall:

grouplist

groupinfo

createrepo 手动建立yum仓库时需要使用

在指定目录中建立repodata

   还需要复制 XML文件


rpm 安装

二进制格式

源程序---编译----二进制格式

有些特性是编译选定的,如果编译未选定此特性,将无法使用

rpm包的版本落后于源码包,甚至落后很多

定制:手动编译安装

编译环境,开发环境

开发库,开发工具


linux :c

gun :c

C环境,c++, 

gcc:编译器

g++:

make:项目管理工具

makefile:定义了make (gcc,g++) 按何种次序去编译源文件的程序

automake,创建---makefile.in

autoconf,创建---configure

以上两者结合成makefile

make install 

perl+java,python

编译安装三步骤

前提:准备开发环境{编译环境}

安装 Development Tools 和 development libraries

先用tar 解压二进制程序包

cd

./configure (让用户选择编译特性,检查编译环境)

使用 configure --help 查看选项

使用 configure --prefix 指定安装目录 

--sysconfdir 指定安装的配置目录

在安装目录中用 make 确认安装

再输入 make install

1,修改PATH环境变量,以能够识别次程序的二进制文件路径

1.修改/etc/profile

2.或者在/etc/profile.d 目录中 建立以.SH为名称后缀的文件

在里面定义export PATH=$PATH:/路径

2,默认情况下,系统搜索库文件的路径/lib,/usr/lib,要额外添加搜索路径

在/etc/ld.so.conf.d/中创建以.conf为后缀命名的文件,而后把要增添的路径直接写入次文件

ldconfig:重新搜索库文件

-v:显示重新搜索的过程

3,头文件(库调用的参数标准相关信息):输出给系统,

默认:/usr/include

添加头文件搜索路径,使用链接进行

/usr/local/tengine/include/  /usr/include/

第一种 ln -s  /usr/local/tengine/include}  从左向右最后一次匹配 / 删除

acpid

echo ${file#*.}  从左向右第一次匹配 . 删除

d/acpid

echo ${file##*3 * * * *    每3分钟一次

每2小时执行一次

0 */2 * * *

每2天执行一次

0 0 */2 * *

执行结果将以邮件形式发送给管理员

*/3 * * * * cat /etc/fstab &> /dev/null 

cron的环境变量:执行的所有命令都去PATH环境变量指定的路径下找

PATH /bin /sbin /usr/bin /usrsbin

管理用户任务

crontab 

-l:查看

-e:编辑

-r:移除所有任务

-u:用户名 -e 管理其他用户的cron任务

移除一个任务,打开编辑删除即可

anacron:

/etc/anacrontab

第一项 第二项       第三项         第四项

多少天么运行 开机后多少时间运行     注释 命令

使用时需确保 crond service 开启

make acrh/

arch/x86/boot/bzImage  编译好的内核文件存放位置

硬件驱动:initrd

initrd:仅需提供访问真正根文件系统所在设备的驱动

存储设备和文件系统相关的模块

系统初始化rc.sysinit:提供其他硬件的驱动:

ROOTFS:busybox 的INIT 不支持运行级别

/etc/inittab 格式也不尽相同


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯