linux第十天筆記(markdown格式)

# Linux第十天

“`bash
rpm -qf ….
“`

“`bash
yum provides ….
“`

批量編譯

C,C++:make項目管理器

configure腳本–》makefile.in–》makefile

makefile.in是模板文件

makefile中記錄了將來的程序路徑

java:maven

我們需要告訴configure腳本哪些功能啟用,哪些功能不啟用

## C語言源代碼編譯安裝三步驟:

##### 1.、configure

+ 1,通過選項傳遞參數,指定啟用特性,安裝路徑等;執行時會參考用戶的指定以及makefile.in文件生成makefile
+ 2.檢查依賴到的外部環境, 如依賴的軟件包

##### 2.make 根據makefile文件,構建應用程序

##### 3.make install復制文件到相應路徑

#### 開發工具:

autoconf:生成configure腳本

automake:生成makefile.in

注意:安裝前查看install,readme

建議建立一個src文件夾放源

./configure下:–prefix=PREFIX(放在哪個文件夾里面)

“`bash
make -j 4 開啟四個cpu同時編譯
“`

“`bash
/etc/profile.d/env.sh添加:
PATH=/app/bin:$PATH
“`

很多大軟件使用源碼編譯

centos6安裝2.2httpd

centos7安裝2.4httpd

centos6.2在185天的時候會自動重啟

### centos6編譯過程復習:

“`bash
preparation:
c6:
service iptables off
chkconfig iptables off
setenforce 0
c7:
systemctl stop firewalld;systemctl disable firewalld

關閉selinux
setenforce 0

vim /etc/selinux/config
SELINUX=diabled

yum groupinstall “development tools”
yum install -y openssl-devel

download src

tar xfv

cd httpd-….

cat README,INSTALL….

./configure –help

./configure –prefix…. –sysconfdir…–enable…

make -j 4 && make install (&& echo -e “\a”)

vim /etc/profile.d/env.sh
(add PATH)
touch /etc/profile.d/env.sh
echo ‘PATH=/app/bin:$PATH’ >> /etc/profile.d/env.sh

apachectl start
“`

作業:一鍵安裝2.4.25httpd腳本(c7

一鍵安裝腳本c6編譯安裝httpd2.2.34(容易)

升級:根據版本選擇安裝的內容

代碼如下:

“`shell
#!/bin/bash
#
#********************************************************************
#Author: JacobAustin Chen(7)
#QQ: 356303202
#Date: 2018-04-21
#FileName: autoinstallhttpd.sh
#URL: http://jacobchenblog.wordpress.com
#Description: I love sh more than yesterday!
#Copyright (C): 2018 All rights reserved
#********************************************************************
#作業:一鍵安裝2.4httpd腳本(c7
#一鍵安裝腳本c6編譯安裝httpd2.34(容易)
#升級:根據版本選擇安裝的內容
echo “For shutting down selinux when start up, you should modify the config file!”
iptables -F
setenforce 0
lsb_release -a >> /dev/null
[ $? -ne 0 ] && echo “pls install lsb firstly!” && exit 1
wget -V
[ $? -ne 0 ] && echo “pls install wget firstly!” && exit 1
ver0=`lsb_release -a | head -4 | tail -1 | tr -s ” ” | sed -r “s/Release:[[:space:]]*//” `
ver=${ver0:0:1}
#To judge if the system version is 6 or 7
if [ $ver -eq 6 ] ; then
#shutdown firewalls
chkconfig iptables off
yum groupinstall “development tools”
yum install -y openssl-devel
wget http://archive.apache.org/dist/httpd/httpd-2.2.34.tar.bz2
tar xvjf httpd-2.2.34.tar.bz2
cd ./httpd-2.2.34/
./configure –prefix=/app –sysconfdir=/etc/httpd2 –enable-ssl
make -j 2 && make install && echo -e “\a” && sleep 1 && echo -e “\a”
touch /etc/profile.d/env.sh
echo ‘PATH=/app/bin:$PATH’ >> /etc/profile.d/env.sh
source /etc/profile.d/env.sh
apachectl start

elif [ $ver -eq 7 ] ; then

#shutdown firewalls
systemctl disable firewalld
yum groupinstall “development tools”
yum install -y openssl-devel
#download tar.bz2
wget http://archive.apache.org/dist/httpd/httpd-2.4.25.tar.bz2
tar xvf httpd-2.4.25.tar.bz2
cd httpd-2.4.25/
./configure –prefix=/app –sysconfdir=/etc/httpd2 –enable-ssl
make -j 2 && make install && echo -e “\a” && sleep 1 && echo -e “\a”
touch /etc/profile.d/env.sh
echo ‘PATH=/app/bin:$PATH’ >> /etc/profile.d/env.sh
source /etc/profile.d/env.sh
apachectl start
else
echo “Error!”

fi

“`

搭一個服務器,在腳本中帶上源碼地址命令

“`bash
curl http://testsrv/install.sh | bash
“`

導入man幫助文件:

在man conf中寫入路徑地址

## 重點:rpm,yum,源碼編譯

## 磁盤存儲和文件

默認設備文件都在/dev下

c打頭的:字符文件

塊設備:block,存取單位“塊”,磁盤

字符設備:Char,存取單位“字符”,鍵盤

設備(b或c文件類型)號碼:

主設備號:major number,標識設備類型

次設備號:minor number,標識

如果cp sda,則是復制硬盤中的文件,如果要復制設備,需要加上-a

“`bash
mknod /data/sdA b 8 1
創建設備文件,并寫下設備號
“`

在linux中,插入硬盤,硬盤有很多接口類別:IDE,SCSI,SATA,SAS.USB

速度各不相同

6Gbps=~750MB/s

rhel5中把ide硬盤命名為hd*

centos6開始所有硬盤都叫sd*

硬盤磁盤:外圈是0磁道,內圈越來越大

每個扇區的數據容量是512字節

ZBR:內圈放的扇區數和外圈放的扇區數不一樣,但不便于計算,用軟件計算的時候還是和非ZBR類似

磁頭數=盤面數=盤片數*2

**磁頭head**

磁道track,正面反面都有,一個盤片有兩個同磁道數的磁道,次要關注

**扇區 sector**

**柱面 cylinder**

**磁盤三圍:CHS(8G以內可以依靠這個標準)**

一個磁道里面有多少個扇區?

一個磁道里面消耗6bit來存放扇區個數(64個)

8bit –>head (256)

10bit–》track–》cylinder

24位尋址技術(6+10+8)

“`
512*63*1024*255=8GB
“`

### LBA=logical block addressing(超過8G必須使用這個標準),最大128PB

目前最大的硬盤容量還是TB單位

##### 使用磁盤

1.分區

2.創建文件系統:格式化

3.掛載:分配目錄名

如果不執行以上步驟,只能放二進制

##### 具體如何實現三大步?

##### 磁盤分區

為什么分區

1.優化IO性能

2.實現磁盤空間配額限制

3.提高修復速度

4.隔離系統和程序

5.安裝多個OS

6.采用不同文件系統

分區:8M的整數倍

GPT分區可以超越主分區+邏輯分區<=4的限制

BIOS+MBR

UEFI+GPT

#### 管理分區

“`bash
lsblk 列出塊設備
gdisk 創建gpt分區
fdisk 創建mbr分區
parted 高級(實時生效
partprobe
“`

RHCE的坑:記得跳過硬盤分區的扇區縫

注意用fdisk分區的名字不穩定,盡可能在配置文件中不要寫分區名,

**centos5,7可以用partedprobe同步硬件軟件的分區表**

**centos6使用partedprobe可能出現bug**

centos6可以使用

使用partx -a ….在增加分區的時候使用

使用partx -d –nr (6-8) …. 在減少分區的時候使用

centos6中,fdisk記得增加和減少分區的時候分開操作/同步!

工作中不要隨意重啟!

****

fdisk看的是硬盤分區表,lsblk和cat /proc/partitions 查看的是內存中的分區表

id的修改可以看做是注釋,但最好修改以示嚴謹

區別文件的最終基準看i node

windows本用戶加密過的文件只有本機本用戶才能打開(ntfs系統

windows還有壓縮

支持的文件系統列表

“`bash
/lib/module/`uanme -r`/kernel/fs
“`

RAW文件系統:沒有文件系統,只有二進制,性能卓越,但難以遷移和管理

cache:針對讀操作

buffer:針對寫操作

mkfs -t ext4 /dev/sdb1 ( centos6)

或mkfs.ext4 ….

uuidgen:生成uuid

blkid不關心塊掛載與否

df 只顯示已經掛載上的設備

vfat不支持權限和所屬用戶/組

tune2fs -l … 列出文件系統屬性

tune2fs -o …

tune2fs 不適用于xfs

centos7手工創建的分區會默認加上ACL

win:簇;linux:塊

文件所占據的最小單位

為了性能好,大塊,如果都是小文件,小塊(看具體情況

# 今天:編譯,分區管理

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96869

(1)
思定思定
上一篇 2018-04-22
下一篇 2018-04-22

相關推薦

  • LINUX磁盤管理筆記

    磁盤組成:扇區 sector????????? 磁頭? head 柱面 cylinder就是磁道相同序列的和 磁道 ?track 硬盤使用步驟: a.分區 b.創建文件系統;格式化 c.掛載;分配目錄名   a.分區: 意義: a、優化i/o性能 ;b、提高修復速度 ;c、隔離系統和程序 d、安裝多個OS ?e、使用不同的文件格式 按柱面分區有兩種…

    Linux筆記 2018-04-29
  • Linux的命令

    Linux的命令 命令格式 COMMAND [OPTIONS…] [ARGUMENTS…]選項:用于啟用或關閉命令的某個或某些功能短選項:-c 例如:-l, -h長選項:–word 例如:–all, –human-readable參數:命令的作用對象: 比如文件名和作用名 注意 1. *多個選項以及…

    Linux筆記 2018-04-01
  • CentOS 6 開機流程

    CentOS 6 開機流程——linux由kernel和rootfs組成。kernel負責進程管理、內存管理、網絡管理、驅動程序、文件系統、安全等;rootfs由程序和glibc組成,完善操作系統的功能。同時linux內核的特點是模塊化,通過對模塊裝載卸載可以對內核功能自定義。linux內核鏡像文件:/boot/vmlinuz-2.6.32-696.el6.…

    Linux筆記 2018-05-13
  • 邏輯卷

    邏輯卷如果分區分區類型id8epvs查看現有的物理卷 或者pvdisplay(詳細)pvcreate /dev/sdd1 /dev/sdb 把硬盤和分區編程物理卷vgs查看現有的卷組 或者vgdisplay (詳細)vgcreate -s 16M vg0 /dev/sd{d1,b} 創建vg0卷組把sdd1和sdb加入卷組指定PE為16Mlvcreate -…

    Linux筆記 2018-04-30
  • yum庫

    yum一個可以解決包依賴的神奇命令

    2018-04-19
  • linux的基礎命令

    基礎命令

    2018-03-28
欧美性久久久久