sed的高級用法,rpm .yum的使用以及磁盤存儲和文件系統

sed的高級用法 和 包管理器(rpm , yum )

sed高級編輯命令
?P:打印模式空間開端至\n內容,并追加到默認輸出之前

?h: 把模式空間中的內容覆蓋至保持空間中

?H:把模式空間中的內容追加至保持空間中 ?

g: 從保持空間取出數據覆蓋至模式空間 ?

G:從保持空間取出內容追加至模式空間 ?

x: 把模式空間中的內容與保持空間中的內容進行互換 ?

n: 讀取匹配到的行的下一行覆蓋至模式空間 ?

N:讀取匹配到的行的下一行追加至模式空間 ?

d: 刪除模式空間中的行 ?

D:如果模式空間包含換行符,則刪除直到第一個換行符的模式空間中的文本, 并不會讀取新的輸入行,而使用合成的模式空間重新啟動循環。如果模式空間 不包含換行符,則會像發出d命令那樣啟動正常的新循環

例題:

sed -n ‘n;p’ FILE (打印偶數行)?

sed ‘1!G;h;$!d’ FILE ?(倒序顯示文件內容

sed ‘N;D‘ FILE ?(只留最后一行

sed ‘$!N;$!D’ FILE? (留下倒數兩行

sed ‘$!d’ FILE ? ? ? (取最后一行

sed ‘G’ FILE ?(行于行之間增加空格

sed ‘g’ FILE ?

sed ‘/^$/d;G’ FILE ?

sed ‘n;d’ FILE ?(取奇數行

sed -n ‘1!G;h;$p’ FILE? (倒序排列

2 .庫文件
?查看二進制程序所依賴的庫文件 ldd /PATH/TO/BINARY_FILE ?

管理及查看本機裝載的庫文件 ldconfig 加載庫文件 /sbin/ldconfig

-p: 顯示本機已經緩存的所有可用庫文件名及文件路徑 映射關系

配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf

緩存文件:/etc/ld.so.cache

rpm包管理
?CentOS系統上使用rpm命令管理程序包: 安裝、卸載、升級、查詢、校驗、數據庫維護

安裝:

rpm {-i|–install} [install-options] PACKAGE_FILE…

-v: verbose

-vv:

-h: 以#顯示程序包管理執行進度

rpm -ivh PACKAGE_FILE …

rpm包安裝
?[install-options]

–test: 測試安裝,但不真正執行安裝,即dry run模式

–nodeps:忽略依賴關系

–replacepkgs | replacefiles

–nosignature: 不檢查來源合法性

–nodigest:不檢查包完整性

–noscripts:不執行程序包腳本

%pre: 安裝前腳本;–nopre

%post: 安裝后腳本;–nopost

%preun: 卸載前腳本;–nopreun

%postun: 卸載后腳本; –nopostun

rpm包升級
?升級: ?

rpm {-U|–upgrade} [install-options] PACKAGE_FILE… ?

rpm {-F|–freshen} [install-options] PACKAGE_FILE…

upgrade:

安裝有舊版程序包,則“升級”

如果不存在舊版程序包,則“安裝”

freshen:安裝有舊版程序包,則“升級”

如果不存在舊版程序包,則不執行升級操作

rpm -Uvh PACKAGE_FILE …

rpm -Fvh PACKAGE_FILE …

–oldpackage:降級

–force: 強制安裝

升級注意項
?注意:

(1) 不要對內核做升級操作;Linux支持多內核版本并存,因此,對直接安裝新版 本內核

(2) 如果原程序包的配置文件安裝后曾被修改,升級時,新版本的提供的同一個配 置文件并不會直接覆蓋老版本的配置文件,而把新版本的文件重命名 (FILENAME.rpmnew)后保留

安裝包的查詢

-qa: 所有包

-qf: 查看指定的文件由哪個程序包安裝生成

-qp rpmfile:針對尚未安裝的程序包文件做查詢操作

–whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個包所提供

–whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴 ?

rpm2cpio 包文件|cpio –itv 預覽包內文件 ?

rpm2cpio 包文件|cpio –id “*.conf” 釋放包內文件 (如果包里卻那個文件可以用rpm2cpio 包文件路徑全名|cpio –idv? .usr/bin/tree 既將tree下的usr/bin/tree文件解到當前的目錄下)

–changelog:查詢rpm包的changelog

-qc: 查詢程序的配置文件

-qd: 查詢程序的文檔 -i: information

-ql: 查看指定的程序包安裝后生成的所有文件

–scripts:程序包自帶的腳本

–provides: 列出指定程序包所提供的CAPABILITY

-R: 查詢指定的程序包所依賴的CAPABILITY

包的卸載:

rpm -e +包名

yum 倉庫的搭建

1.在/etc/yum.repos.d/下新建以.repo為后綴的文件例如:vim /etc/yum.repos.d/base.repo

2.編輯文件base.repo

 

[base]

name=base

baseurl=file:///misc/cd (本機光盤路徑)

gpgcheck=0(不檢查合法性=1時檢查合法性需要導入公鑰gpgkey=file:///misc/cd/RPM-GPG-KEY-CentOS-6)

enabled=1 (禁用此yum源=0為啟用此yum源)

其中baseurl=可加網路地址加到repodata的父目錄即可

如果需要自己配置倉庫共享到其他機器使用yum倉庫的數據,將yum的數據放到ftp或httpd下的網絡訪問文件夾下即可

ftp 的網絡訪問頁面文件夾在/var/htp/pu下面 用命令rmp -ql vsftpd查看可以看到最后一個文件。

http的網絡訪問頁面文件夾在/var/www/html下面 用命令rpm -ql httpd查看可以看到最后一個文件。

關閉防火墻

centos6
service iptables stop
chkconfig iptables off

centos7
systemctl stop firewalld
systemctl disable firewalld

開啟http和ftp服務? (systemctl start htttpd或systemctl star vsftpd)

yum命令的用法

yum install +包名 (安裝軟件包)

yum remove +包名 (卸載軟件包)

yum repolist ?? (查看已搭建的yum倉庫里的軟件包的詳情)

yum ? list (顯示已安裝的包)

yum list all (顯示所有的包包括沒有安裝的)

yum reinstall (重新安裝包)

yum update? (升級包)

yum downgrade? (降級包)

yum info +包名 (查看包的信息)

yum clean all (清除yum緩存)? 緩存文件放在/var/cache/yum

?查看yum安裝歷史

yum history? (查看歷史安裝信息)

yum? history undo 5 (撤銷歷史中第五條命令)

yum history redo 5 (重新執行次序列號的操作)

yum的命令行選項:

–nogpgcheck:禁止進行gpg check

-y: 自動回答為“yes

-q:靜默模式

–disablerepo=repoidglob:臨時禁用此處指定的repo

–enablerepo=repoidglob:臨時啟用此處指定的repo

–noplugins:禁用所有插件

用yum安裝單個rpm包

例如在/data/目錄里有一個單獨的 rpm (tree包)包? 使用命令 createrepo +包所在的路徑 (createrepo /data)就會在/data目錄下生成一個倉庫的源個數據目錄repodata

然后將yum倉庫里的路徑改為baseurl=file:///data 即可

?包組管理的相關命令:

yum groupinstall group1 [group2] […]? (包組安裝)

yum groupupdate group1 [group2] […] (包組升級)

yum grouplist [hidden] [groupwildcard] […]? (查看包組列表)

yum groupremove group1 [group2] […] ? ?? (包組刪除)

yum groupinfo group1 […] ? ? ?? (查看包組信息)

3. 源碼的編譯安裝

準備工作:
1 關閉firwalld
centos6: service iptables stop; chkconfig iptables off
centos7: systemctl stop firewalld; systemctl disable firewalld

2 關閉SElinux
setenforce 0
vim /etc/selinux/config
SELINUX=disabled

1 yum groupinstall “development tools” (安裝包組文件)
yum install openssl-devel (安裝缺失的包)

2 download (下載源碼文件)
tar xvf httpd-2.4.33.tar.bz2 (新建目錄解壓源碼文件)

3 cd httpd-2.2.34 (進入到解壓后的源碼文件的文件夾)
cat README? (查看幫助)
cat INSTALL

4 ./configure –help ? ? (編譯安裝查看幫助)
./configure –prefix=/app –sysconfdir=/etc/httpd22 –enable-ssl

5 make -j 4 && make install

6 vim /etc/profile.d/env.sh ? (更改PATH變量的地址既新加/app的變量地址)
PATH=/app/bin:$PATH

. /etc/profile.d/env.sh? (更改后的變量地址source 一下)

7 apachectl start ? (運行apachectl 服務)

編譯安裝完成

3.磁盤管理以及文件系統

磁盤的分區方式: BMR分區和GPT分區

MBR分區:最大分區為2T 分區方式為按柱面分區? (磁盤主要信息存儲在前512個字節中其中主引導程序占446個字節 ;主分區列表占64個字節結束標志占用兩個字節aa55 為防止磁盤信息破壞需要備份前512個字節保存到網絡上 如果磁盤信息損壞需要在救援模式下將磁盤的主要信息回復即可。)

方法:hexdump -C /dev/sda -n 512 (用二進制方法查看sda磁盤下的前512個字節信息)
備份前512個字節 :dd if=/dev/sda of=/data/mr_brk? bs=1 count=512 (bs不加指全部內容此處指的是一個字節共512次) ? ? ? ?? 還原:dd if=/data/mr_brk of=/dev/sda (后面的】不加指的是將全部內容寫到原本的/dev/sda里面就完成了還原)如果是備份到其他機器上只要將其遠程拷貝下來到當前目錄再恢復就行了用scp +其他機器IP+文件路徑 ?? 到本機路徑?

GPT分區: 最大分區為64Z ?? 分區方式為按扇區分區

管理分區
?列出塊設備

? lsblk ?

創建分區使用:

? fdisk創建MBR分區

? gdisk創建GPT分區

? parted高級分區操作 ?

分區工具fdisk 和pgdisk

pgdisk /dev/sdb 類fdisk 的GPT分區工具

?fdisk -l [-u] [device…] 查看分區

?fdisk /dev/sdb 管理分區

?子命令: ?

p 分區列表 ?

t 更改分區類型 ?

n 創建新分區 ?

d 刪除分區 ?

v 校驗分區 ?

u 轉換單位 ?

w 保存并退出 ?

q 不保存并退出

artprobe-重新設置內存中的內核分區表版本

同步分區表
?查看內核是否已經識別新的分區: (如果沒有更新識別用以下操作來同步更新

cat /proc/partations ?

centos6通知內核重新讀取硬盤分區表

新增分區后同步用的

partx -a /dev/DEVICE

kpartx -a /dev/DEVICE -f: force

刪除分區后同步用的

partx -d –nr M-N /dev/DEVICE ?

CentOS 5,7: 使用partprobe partprobe [/dev/DEVICE]

文件系統創建

根據其是否支持”journal”功能:

日志型文件系統: ext3, ext4, xfs, …

非日志型文件系統: ext2, vfat ?

文件系統的組成部分:

內核中的模塊:ext4, xfs, vfat

用戶空間的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat ?

Linux的虛擬文件系統:VFS ?

查前支持的文件系統:cat /proc/filesystems

cent0s6創建ext4文件系統:mkfs ? -t? ext4 ? /dev/sdb1

查看創建文件系統的信息: tune2fs? -l /dev/sdb1? (此命令只支持ext文件系統查詢)需要更改和添加ACL權限 裝操作系統是分區則自動帶,手動添加的文件系統則沒有ACL權限需要用此命令來更改。在centos7中無論是后加的文件系統還是先前有的都有ACL權限。

centos7創建xfs文件系統 :mkfs ? -t? xfs? /dev/sdb2

 

tune2fs? (只能管理ext類型的文件)
?tune2fs:重新設定ext系列文件系統可調整參數的值

-l:查看指定文件系統超級塊信息;( tune2fs -l /dev/sdb2 只能看ext系統的文件)

super block -L ‘LABEL’:修改卷標

-m #:修預留給管理員的空間百分比? ( 默認為95%,如果硬盤過大需要修改值來利用磁盤空間不要浪費更改方式:tune2fs? /dev/sdb2 ? -m 1 及修改為1%的比例。支持小數點)

-j: 將ext2升級為ext3

-O: 文件系統屬性啟用或禁用,–O ^has_journal

-o: 調整文件系統的默認掛載選項,–o ^acl

-U UUID: 修改UUID號 ?

dumpe2fs: (查看超級塊的詳細信息)

塊分組管理,32768塊

-h:查看超級塊信息,不顯示分組信息

 

 

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

(0)
無所謂無所謂
上一篇 2018-04-19
下一篇 2018-04-19

相關推薦

  • SSH協議及基于SSH集群key認證實驗

    本節索引: 一、SSH協議相關概念 二、實驗:實現基于key登錄認證 三、實驗:實現多臺機器間互相基于key登錄認證 四、實驗:實現100臺機器基于key登錄驗證 五、實驗:利用pssh工具實現集群操作 一、SSH協議相關概念 SSH:secure shell,protocal,22/tcp,安全的遠程登錄; 利用 SSH 協議可以有效防止遠程管理過程中的信…

    2018-05-19
  • 創建配置格式文件的格式 C語言源代碼安裝三步驟 yum

    創建配置文件的格式: [base] name= centos cdrom mirrorlist=file:///root/baselist gpgkey=file:///mnt/cdrom/rpm-gpg-key-centos-7     [epel] name=epel baseurl=https://mirrors aliyun.co…

    Linux筆記 2018-04-22
  • linux系統的安裝

    centos系統安裝

    2018-07-22
  • Linux中RAID詳解

    RAID簡介

    2018-05-05
  • Linux發行版的基礎目錄

    Linux發行版的基礎目錄名稱命名法則及功用規定: FHS:Linux目錄配置文件的依據? ? ? ? ?FHS的重點在于規范每個特定的目錄下要放置什么樣子的資料 FHS要求必須要存在的目錄:/bin:在單人維護模式下還能操作的文檔/boot:主要放置開機時會使用到的檔案/dev:在Linux中,任何裝置與周邊設備都是以檔案的形態存在這個目錄中的。/etc:…

    Linux筆記 2018-06-24
欧美性久久久久