linux文本处理sed、软件包管理、磁盘存储和文件系统

linux文本处理sed、软件包管理、磁盘存储和文件系统

1.取基名和文件名

[[email protected] scripts38]#echo /etc/sysconfig/network-scripts/ |sed -r ‘[email protected](^/.*/)([^/]+)/[email protected]\[email protected]‘
/etc/sysconfig/
[[email protected] scripts38]#echo /etc/sysconfig/network-scripts/ |sed -r ‘[email protected](^/.*/)([^/]+)/[email protected]\[email protected]‘
network-scripts

2.把网络修改成eth0

[[email protected] scripts38]#sed -ri ‘/^[[:space:]]+linux16/[email protected](.*)@& [email protected]‘ /boot/grub2/grub.cfg
[[email protected] data]#sed -ri ‘/GRUB_CMDLINE_LINUX=/[email protected]"[email protected] net.ifnames=0"@‘ /etc/default/grub

3.可能需要先下载前面那个包,才可以开启神奇文件夹,可以自动挂载光盘。

[[email protected] Packages]#[[email protected] ~]#yum install autofs
[[email protected] data]#systemctl start autofs
[[email protected] data]#systemctl enable autofs
Created symlink from /etc/systemd/system/multi-user.target.wants/autofs.service to /usr/lib/systemd/system/autofs.service.
[[email protected] data]#cd /misc
[[email protected] misc]#cd cd/

4.导入RPM验钞机

[[email protected] scripts38]#ls /misc/cd/
CentOS_BuildTag  images    repodata
EFI              isolinux  RPM-GPG-KEY-CentOS-7
EULA             LiveOS    RPM-GPG-KEY-CentOS-Testing-7
GPL              Packages  TRANS.TBL
[[email protected] scripts38]#rpm --import /misc/cd/RPM-GPG-KEY-CentOS-7

4.本地和阿里YUM源配置。清除缓存yum clean all

[base]
name=cdrom base
baseurl=file:///misc/cd
gpgcheck=1
gpgkey=file:///misc/cd/RPM-GPG-KEY-CentOS-7 

[epel]
name=aliyun epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/$basearch/
gpgcheck=0
enabled=0     #开启epel换为1

配置阿里云repo源,注意工作目录。

[[email protected] data]#wget http://mirrors.aliyun.com/repo/Centos-7.repo
[[email protected] /]#mv Centos-7.repo /etc/yum.repos.d/

5.搭建网络YUM源

[[email protected] data]#yum install httpd
[[email protected] data]#systemctl start httpd
[[email protected] data]#cd /var/www/html
[[email protected] html]#mkdir -pv  centos/{6,7}/os/x86_64/
[[email protected] html]#mount /dev/sr0 centos/7/os/x86_64/
mount: /dev/sr0 is write-protected, mounting read-only
[[email protected] html]#mount /dev/sr1 centos/6/os/x86_64/
mount: /dev/sr1 is write-protected, mounting read-only

6.删除centos7系统/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符

[[email protected] ~]#sed -r ‘s/^[[:space:]]([[:space:]]+.*)/\1/‘ /etc/grub2.cfg

7.删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

[[email protected] yum.repos.d]#sed -r ‘s/^#[[:space:]]+//‘ /etc/fstab

8.在centos6系统/root/install.log每一行行首增加#号

[[email protected] ~]#sed -r ‘s/(.*)/#\1/‘ /root/install.log

9.处理/etc/fstab路径,使用sed命令取出其目录名和基名

[[email protected] ~]#echo /etc/fstab | sed -r ‘[email protected](^/.*/)([^/]+)/[email protected]\[email protected]‘
/etc/
[[email protected] ~]#echo /etc/fstab | sed -r ‘[email protected](^/.*/)([^/]+)/[email protected]\[email protected]‘
fstab

10.利用sed 取出ifconfig命令中本机的IPv4地址

[[email protected] ~]#ifconfig eth0 | sed -rn ‘2s/^[^0-9]+([0-9.]+).*/\1/p‘
172.18.145.136

11.统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数

[[email protected] Packages]#ls /misc/cd/Packages/ |sed -rn ‘[email protected]*\.(.*)\..*@\[email protected]‘|sort|uniq -c|sort -nr
   4639 x86_64
   3122 noarch
   2258 i686

SNART不知道是这么来的。。。

[[email protected] Packages]#ls /misc/cd/Packages/ |rev|cut -d ‘.‘ -f2 |sort |uniq -c |sort -nr
   4639 46_68x
   3122 hcraon
   2258 686i
      1 SNART

12.统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)

这个感觉应该是没毛病

[[email protected] Packages]#cat /etc/init.d/functions |egrep -o "\<[[:alpha:]]+\>" |sort |uniq -c|sort -nr
     60 if
     54 return
     52 then
     51 fi
     49 echo
     46 pid
     38 n

这个好像也不准,sed还是没有取单词的功能的

[[email protected] Packages]#cat /etc/init.d/functions |sed -r ‘[email protected][^[:alpha:]][email protected]\[email protected]‘|sort|uniq -c|sort -nr|head
   1047
     73 pid
     60 if
     58 file
     57 echo
     54 return
     52 then
     51 fi
     39 n
     38 base

这个应该是错误的。。。

[[email protected] Packages]#cat /etc/init.d/functions |sed -r ‘[email protected][[:space:]][email protected]\[email protected]‘|sort|uniq -c|sort -nr|head
    608
    103 [
     66 #
     64 ]
     59 &&
     58 if
     54 return
     52 then
     51 fi
     43 echo

13.将文本文件的n和n+1行合并为一行,n为奇数行

[[email protected] Packages]#seq 10 |xargs -n2
1 2
3 4
5 6
7 8
9 10

sed高级用法太变态,头发容易秃,玩不了玩不了

[[email protected] Packages]#seq 10|sed ‘N;s/\n/ /‘
1 2
3 4
5 6
7 8
9 10

14.自己配一些yum仓库

[[email protected] data]#mkdir dnf
[[email protected] data]#cd dnf/
[[email protected] dnf]#rz -E
rz waiting to receive.
[[email protected] dnf]#ll
total 808
-rw-r--r-- 1 root root 213696 Jun  4  2018 dnf-0.6.4-2.sdl7.noarch.rpm
-rw-r--r-- 1 root root  62404 Jun  4  2018 dnf-conf-0.6.4-2.sdl7.noarch.rpm
-rw-r--r-- 1 root root  75472 Jun  4  2018 libcomps-0.1.8-3.el7.x86_64.rpm
-rw-r--r-- 1 root root  46792 Jun  4  2018 python2-libcomps-0.1.8-3.el7.x86_64.rpm
-rw-r--r-- 1 root root 416988 Jun  4  2018 python-dnf-0.6.4-2.sdl7.noarch.rpm
自动生成repodata
[[email protected] dnf]#createrepo .
Spawning worker 0 with 3 pkgs
Spawning worker 1 with 2 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
自己配置repo
[[email protected] yum.repos.d]#cat dnf.repo
[dnf]
name=dnf
baseurl=file:///data/dnf
gpgcheck=0
查看是否成功
[[email protected] yum.repos.d]#yum repolist 

后面编脚本了

tar -xvf httpd-2.4.25.tar.bz2
cd httpd-2.4.25/
指定路径,配置文件所在位置,开启一些服务,报错,缺APR
[[email protected] httpd-2.4.25]#./configure  --prefix=/apps/httpd24 --sysconfdir=/etc/httpd --enable-ssl --enable-so
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
configure:
configure: Configuring Apache Portable Runtime library...
configure:
checking for APR... no
configure: error: APR not found.  Please read the documentation.
一般都是devel开发包
[[email protected] httpd-2.4.25]#yum search apr
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
========================================== N/S matched: apr ===========================================
apr-devel.i686 : APR library development kit
apr-devel.x86_64 : APR library development kit
下载APR包
[[email protected] httpd-2.4.25]#yum install apr-devel
缺少什么包补什么包
[[email protected] httpd-2.4.25]#yum install apr-util-devel
[[email protected] httpd-2.4.25]#yum install pcre-devel
错误,不是这个包[[email protected] httpd-2.4.25]#yum install mod_ssl
[[email protected] httpd-2.4.25]#yum install openssl-devel
还有前面装了个gcc
成功后,执行make编译
然后再make install
[[email protected] httpd-2.4.25]#make
[[email protected] httpd-2.4.25]#make install
完成后
[[email protected] httpd24]#cd /apps/httpd24/
写到环境变量中
[[email protected] httpd24]#vim /etc/profile.d/env.sh
PATH=/apps/httpd24/bin:/apps/tree/bin:$PATH
重读,刷新环境变量
[[email protected] httpd24]#. /etc/profile.d/env.sh
开启服务
[[email protected] httpd24]#apachectl restart
自动启动的文件,要把路径写里去
[[email protected] httpd24]#ll /etc/rc.d/rc.local
-rw-r--r--. 1 root root 473 Oct 31  2018 /etc/rc.d/rc.local
[[email protected] httpd24]#vim /etc/rc.d/rc.local
把下面的写到里面
/apps/httpd24/bin/apachectl start
然后给这个文件执行权限。
[[email protected] httpd24]#chmod +x /etc/rc.d/rc.local
页面显示的地方,可以自己修改。
[[email protected] httpd24]#cd htdocs/
[[email protected] htdocs]#ll
total 4
-rw-r--r-- 1 root root 45 Jun 12  2007 index.html

15.编译一个小东西

[[email protected] data]#tar -xvf cmatrix-1.2a.tar.gz
[[email protected] cmatrix]#yum install ncurses-devel
[[email protected] cmatrix]#./configure --prefix=/apps/cmatrix
[[email protected] cmatrix]#make
[[email protected] cmatrix]#make install

16.mbr分区表的备份和还原

查看MBR分区表前512个字节
[[email protected] data]#hexdump -C /dev/sda -n 512
把分区表的64个字节拷贝出来,skip是跳过原文件的446个字节。
[[email protected] data]#dd if=/dev/sda of=/data/mar_db bs=1 count=64 skip=446
64+0 records in
64+0 records out
64 bytes (64 B) copied, 0.000585693 s, 109 kB/s
把数据拷贝到其他服务器上
[[email protected] data]#scp mar_db [email protected]:/data
破坏原来的分区表,seek是跳过目标的446个字节。服务器无法启动。
[[email protected] data]#dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446
重启进入救援模式。临时配一个IP地址
[[email protected] ~]#ifconfig ens33 172.18.145.164
把备份的拷回来
[[email protected] ~]#scp [email protected]:/data/mar_db .
[[email protected] data]#dd if=mar_db of=/dev/sda bs=1 count=64 skip=446
重启电脑
exit

MBR分区
按柱面

最多4个分区,3个主分区,一个扩展分区,扩展分区中可以有多个逻辑分区。

最多管理2T的空间

GPT分区

按扇区

128个分区

最多管理8Z的空间

128位UUID

分区表有备份功能

17.parted命令

parted的操作都是实时生效的,小心使用
用法:parted [选项]... [设备 [命令 [参数]...]...]
parted /dev/sdb mklabel gpt|msdos
parted /dev/sdb print
parted /dev/sdb mkpart primary 1 200 (默认M)
parted /dev/sdb rm 1
parted  /dev/sdb –l 列出分区信息

18.模拟文件系统出故障

破坏
[[email protected] data]#dd if=/dev/zero of=/dev/sda5 bs=1M count=1
已经被破坏,超级块打不开了
[[email protected] data]#tune2fs -l /dev/sda5
tune2fs 1.42.9 (28-Dec-2013)
tune2fs: Bad magic number in super-block while trying to open /dev/sda5
Couldn‘t find valid filesystem superblock.
先取消挂载。必须在取消挂载的情况下修复
[[email protected] ~]#umount /data
文件系统故障。无法挂载
[[email protected] ~]#mount /dev/sda5 /data/
mount: mount /dev/sda5 on /data failed: Structure needs cleaning
xfs系统的修复方法
[[email protected] data]#xfs_repair /dev/sda5
centos6 ext系列的修复方法
fsck /dev/sda5 -y
修复完成可以挂载
[[email protected] ~]#mount /dev/sda5 /data/
[[email protected] ~]#cd /data/
数据丢失
[[email protected] data]#ll
total 12
drwxr-xr-x 246 root root 8192 Aug  8 16:34 lost+found

19.增加swap分区,过程没写。文件不能用UUID,不然重启会丢,要写文件名。

[[email protected] ~]#swapon -s
Filename                Type        Size    Used    Priority
/dev/sdb1                               partition   4194300 0   -1
/dev/sda3                               partition   2097148 0   -2
/swapfile                               file    2097148 0   -3

20.文件挂载文件

创建一个大文件
[[email protected] ~]#dd if=/dev/zero of=/bigfile bs=1M count=1024
格式化EXT4
[[email protected] ~]#mkfs.ext4 /bigfile
mke2fs 1.42.9 (28-Dec-2013)
/bigfile is not a block special device.
Proceed anyway? (y,n) y
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376

Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
查看格式信息
[[email protected] ~]#blkid /bigfile
/bigfile: UUID="9e1393ae-8e18-4dee-af73-4fafa373ff29" TYPE="ext4"
写入文件永久挂载

21.迁移/home数据到一个新的地方,在维护状态。也就是单用户模式。init 1

[[email protected] data]#mkfs.xfs /dev/sdb2
[[email protected] data]#mkdir /mnt/home
[[email protected] data]#mount /dev/sdb2 /mnt/home/
[[email protected] data]#cp -av /home/. /mnt/home/
[[email protected] data]#vim /etc/fstab
UUID=63b5335d-a455-45a8-8f3f-3ebf66fb240a   /home              xfs      defaults    0  0
[[email protected] data]#mount -a
数据保留一段时间,没问题,取消挂载,准备删除原来的数据
[[email protected] data]#umount /home/
现在看到的是原来/home的数据,挂载的时候是被覆盖的,看不到的
[[email protected] data]#ls /home
zhang
把原来的数据都删除了,一定要注意不要把文件夹删除
[[email protected] data]#rm -rf /home/*
重新挂载一下,数据就都迁移到新的硬盘。
[[email protected] data]#mount -a
[[email protected] data]#df
/dev/sdb2        2086912   33052   2053860   2% /home

22.创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项

[[email protected] data]#fdisk /dev/sdb
[[email protected] data]#mke2fs -t ext4 -b 2048 -L ‘TEST‘ -m 1 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=TEST
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 1048576 blocks
10485 blocks (1.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=269484032
64 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
    16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[[email protected] data]#vim /etc/fstab
UUID=e02a9d53-6f8a-4dca-a130-5296fe24975b  /mnt/sdb5              ext4     acl            0 0
[[email protected] data]#mount -a

23.写?个脚本,完成如下功能:(1) 列出当前系统识别到的所有磁盘设备(2) 如磁盘数量为1,则显?其空间使?信息。否则,则显?最后?个磁盘上的空间使?信息。

#颜色配置
COLOR="\033[1;$[RANDOM%7+31]m"
COLOREND=‘\033[0m‘

df |grep /dev/sd | tr -s ‘ ‘|cut -d ‘ ‘ -f1

echo -e "${COLOR}磁盘设备检查完毕 $COLOREND"

NUM=`df |grep /dev/sd |wc -l`
[ "$NUM" -eq 1 ] && echo -e "磁盘的利用率: ${COLOR}`df |grep /dev/sd | tr -s ‘ ‘|cut -d ‘ ‘ -f5` $COLOREND"
[ "$NUM" -gt 1 ] && echo -e "最后一个磁盘的利用率: ${COLOR}`df |grep /dev/sd | tr -s ‘ ‘|cut -d ‘ ‘ -f5|tail -n 1` $COLOREND" 
[[email protected] data]#bash  aaa.sh
/dev/sda2
/dev/sda5
/dev/sda1
/dev/sdb5
磁盘设备检查完毕
最后一个磁盘的利用率: 1% 

24.简述linux下常?的?件系统有哪些,他们有什么区别?

1. EXT3
(1)最多只能支持32TB的文件系统和2TB的文件,实际只能容纳2TB的文件系统和16GB的文件
(2)Ext3目前只支持32000个子目录
(3)Ext3文件系统使用32位空间记录块数量和i-节点数量
(4)当数据写入到Ext3文件系统中时,Ext3的数据块分配器每次只能分配一个4KB的块
2. EXT4
EXT4是Linux系统下的日志文件系统,是EXT3文件系统的后继版本。
(1)Ext4的文件系统容量达到1EB,而文件容量则达到16TB
(2)理论上支持无限数量的子目录
(3)Ext4文件系统使用64位空间记录块数量和i-节点数量
(4)Ext4的多块分配器支持一次调用分配多个数据块
3. XFS
(1)根据所记录的日志在很短的时间内迅速恢复磁盘文件内容
(2)采用优化算法,日志记录对整体文件操作影响非常小
(3) 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间
(4)能以接近裸设备I/O的性能存储数据

25.个人配置简陋般脚本。

#!/bin/bash
#
#********************************************************************
#Author:        zhangfeng
#QQ:            553645084
#Date:          2019-08-03
#FileName:      reset.sh
#URL:           https://blog.51cto.com/14451122
#Description:       The test script
#Copyright (C):     2019 All rights reserved
#********************************************************************

#颜色配置
COLOR="\033[1;$[RANDOM%7+31]m"
COLOREND=‘\033[0m‘

echo -e "${COLOR}开机提示配置 $COLOREND"
cat > /etc/issue << EOF
\S
time is \t
tty is \l
hostname is \n
Kernel \r on an \m
EOF
sleep 1

echo -e "${COLOR}别名环境变量配置 $COLOREND"
cat > /etc/profile.d/env.sh << EOF
alias cdnet="cd /etc/sysconfig/network-scripts"
alias editnet="vim /etc/sysconfig/network-scripts/ifcfg-ens33"
alias scandisk="echo ‘- - -‘ > /sys/class/scsi_host/host2/scan;echo ‘- - -‘ > /sys/class/scsi_host/host0/scan"
export PATH=/app/bin:$PATH
export EDITOR=vim
export HISTTIMEFORMAT="%F %T "
export HISTCONTROL=ignoreboth
EOF

echo -e "${COLOR}提示符配置 $COLOREND"
echo ‘PS1="\[\e[1;32m\][\[email protected]\h \W]\\$\[\e[0m\]"‘ >> /etc/profile.d/env.sh
sleep 1 

echo -e "${COLOR}VIM配置$COLOREND"
cat > ~/.vimrc << EOF
set ignorecase
set cursorline
set autoindent
autocmd BufNewFile *.sh exec ":call SetTitle()"
func SetTitle()
    if expand("%:e") == ‘sh‘
    call setline(1,"#!/bin/bash")
    call setline(2,"#")
    call setline(3,"#********************************************************************")
    call setline(4,"#Author:        zhangfeng")
    call setline(5,"#QQ:            553645084")
    call setline(6,"#Date:          ".strftime("%Y-%m-%d"))
    call setline(7,"#FileName:      ".expand("%"))
    call setline(8,"#URL:           https://blog.51cto.com/14451122")
    call setline(9,"#Description:       The test script")
    call setline(10,"#Copyright (C):    ".strftime("%Y")." All rights reserved")
    call setline(11,"#********************************************************************")
    call setline(12,"")
    endif
endfunc
autocmd BufNewFile * normal G
EOF
sleep 1 

#关闭selinux
echo -e "${COLOR}selinux已经关闭 $COLOREND"
sed -i  ‘s/SELINUX=enforcing/SELINUX=disabled/ ‘ /etc/selinux/config
sleep 1 

#把ens33改为eth0
echo -e "${COLOR}网卡名改为eth0 $COLOREND"
sed -ri ‘/GRUB_CMDLINE_LINUX=/[email protected]"[email protected] net.ifnames=0"@‘ /etc/default/grub
sed -ri ‘/^[[:space:]]+linux16/s#(.*)#\1 net.ifnames=0#‘ /boot/grub2/grub.cfg
sleep 1 

#7版本关闭防火墙
echo -e "${COLOR}关闭7版本防火墙 $COLOREND"
systemctl disable firewalld.service
sleep 1 

#6版本关闭防火墙
echo -e "${COLOR}关闭6版本防火墙 $COLOREND"
chkconfig iptables off
sleep 1 

#配置阿里云YUM源适合7版本
echo -e "${COLOR}7版本阿里云repo源配置 $COLOREND"
#wget http://mirrors.aliyun.com/repo/Centos-7.repo
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
#mv Centos-7.repo /etc/yum.repos.d/
#touch /etc/yum.repos.d/mirrorlist
#cat > /etc/yum.repos.d/mirrorlist <<EOF
#https://mirrors.aliyun.com/epel/$releasever/$basearch/
#EOF
touch /etc/yum.repos.d/epel.repo
cat > /etc/yum.repos.d/epel.repo <<EOF
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
gpgcheck=0
enabled=1
EOF
sleep 1 

echo -e "${COLOR}阿里云普通源配置 $COLOREND"
touch /etc/yum.repos.d/base.repo
cat > /etc/yum.repos.d/base.repo <<EOF
[base]
name=base
baseurl=file:///misc/cd
    https://mirrors.aliyun.com/centos/7/os/x86_64/
gpgcheck=0
EOF
sleep 1 

yum clean all

echo -e "${COLOR}自动下载软件 $COLOREND"
yum install tree -y
yum install ftp -y
yum install lftp -y
yum install telnet -y
yum install autofs gcc gcc-c++ glibc glibc-devel pcre pcre-devel
openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree screen lsof
tcpdump wget ntpdate net-tools iotop bc zip unzip nfs-utils -y

sleep 1 

echo -e "${COLOR}服务器基本信息 $COLOREND"
echo -e  "CPU type is ${COLOR}`cat /proc/cpuinfo|grep -im1 ‘model name‘|cut -d: -f2|tr -s ‘ ‘`$COLOREND"
echo -e "Mem is ${COLOR}`cat /proc/meminfo |head -1 | tr -s " " |cut -d: -f2`$COLOREND"
echo -e "Disk size is ${COLOR}`cat /proc/partitions |grep "sda$" |tr -s " " |cut -d" " -f4` kB$COLOREND"

echo -e "OS version is ${COLOR}`cat /etc/redhat-release`$COLOREND"
echo -e "Kernel version is ${COLOR}`uname -r`$COLOREND"

26.httpd2.4.25自动安装脚本

#!/bin/bash
#
#********************************************************************
#Author:        zhangfeng
#QQ:            553645084
#Date:          2019-08-06
#FileName:      httpdaz.sh
#URL:           https://blog.51cto.com/14451122
#Description:       The test script
#Copyright (C):     2019 All rights reserved
#********************************************************************

#颜色配置
COLOR="\033[1;$[RANDOM%7+31]m"
COLOREND=‘\033[0m‘
echo -e "${COLOR}httpd2.4.25安装脚本 适合centos7.6、7.5版本 ,其他未知 $COLOREND"

#前提必须要有/data目录才可以实现
#获取压缩包的2种方法
#scp [email protected]:/data/httpd-2.4.25.tar.bz2 /data/
wget http://archive.apache.org/dist/httpd/httpd-2.4.25.tar.bz2

#下载配置环境
yum install apr-devel -y
yum install pcre-devel -y
yum install openssl-devel -y
yum install gcc -y
yum install apr-util-devel -y 

#编译安装
tar -xvf /data/httpd-2.4.25.tar.bz2 -C /data/
cd /data/httpd-2.4.25/
./configure  --prefix=/apps/httpd24 --sysconfdir=/etc/httpd --enable-ssl --enable-so
make
make install
echo $? &&  echo -e "${COLOR}httpd2.4.25安装完成 $COLOREND"
echo -e ‘\a‘

#配置环境变量
echo ‘PATH=/apps/httpd24/bin:$PATH‘ >> /etc/profile.d/env.sh
. /etc/profile.d/env.sh

#开启服务
cd /apps/httpd24/
apachectl restart

#开机自动启动配置
echo ‘/apps/httpd24/bin/apachectl start‘ >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
echo -e "${COLOR}httpd2.4.25安装完成,已启动。开机自动启动开启 $COLOREND"

27.卸载httpd2.4.25脚本

#!/bin/bash
#
#********************************************************************
#Author:        zhangfeng
#QQ:            553645084
#Date:          2019-08-07
#FileName:      httpd2.4.25xz.sh
#URL:           https://blog.51cto.com/14451122
#Description:       The test script
#Copyright (C):     2019 All rights reserved
#********************************************************************

#颜色配置
COLOR="\033[1;$[RANDOM%7+31]m"
COLOREND=‘\033[0m‘
echo -e "${COLOR}httpd2.4.25卸载脚本 适合centos7.6、7.5版本 ,只配合httpdaz.sh $COLOREND"

#删除安装目录、配置文件目录、解压包、压缩包。
rm -rf /etc/httpd
rm -rf /apps/httpd24
rm -rf /data/httpd-2.4.25.tar.bz2
rm -rf /data/httpd-2.4.25
echo -e "${COLOR}安装目录、配置文件目录、解压包、压缩包删除完成 $COLOREND"

sed -i ‘/PATH=\/apps\/httpd24\/bin:$PATH/d‘ /etc/profile.d/env.sh
sed -i ‘/\/apps\/httpd24\/bin\/apachectl start/d‘ /etc/rc.d/rc.local

echo -e "${COLOR}httpd2.4.25卸载完成 $COLOREND"

原文地址:https://blog.51cto.com/14451122/2428332

时间: 2024-10-12 11:31:52

linux文本处理sed、软件包管理、磁盘存储和文件系统的相关文章

linux文本处理sed、软件包管理、磁盘存储、文件系统和挂载

Linux文本处理工具sed.软件包管理.磁盘存储及文件系统 文本处理工具sed巧妙用法 1.通过sed获取文件路径的基名和目录名 思路:采用正则表达式将文本字符串分组,取对应的分组后向引用即可. 获取基名 [[email protected] ~]#echo /etc/sysconfig/network-scripts/ |sed -r '[email protected](^/.*/)([^/]+)/[email protected]\[email protected]' network-s

Linux详解之软件包管理与源

包管理与源是Linux学习中不可缺少的部分,同时也令很多初学者倍感困惑.本文整理了一些Linux相关的包管理与源方面的材料,希望对大家有帮助. Linux中的软件包主要分为RPM软件包及DEB软件包两类,其中Redhat Linux等系统使用RPM软件包,Ubuntu Linux等系统使用Deb软件包.本文主要侧重介绍Ubuntu Linux的包管理方法. 首先要介绍几个概念和理解: (1)安装就是把软件送到一个特定的位置,并且配置好其周边环境,使之能够正确运行. (2)Deb包就是一个压缩起来

linux学习笔记(软件包管理)

前言:运维工程师平时安装服务时很正常的事情,所以软件包的管理就显得尤为重要. 内容: 基础知识. 程序发行的源代码都是不可以运行的,需要编译之后才可以运行,linux发行版的厂商会在他的机器上进行编译然后提供下载使用,用户可以直接拿到二进制的可执行文件进行使用. 通过file可以看到文件时不是可执行文件( ELF 32-bit LSB)是可执行文件,shared libs是使用了共享库.shell脚本显示Bourne-Again是应为#!/bin/bash的原因. 程序的组成部分:1.二进制程序

linux学习笔记之软件包管理

软件包管理 软件包组成 二进制程序 配置文件 单文件 将主配置文件切割成多个小文件,并放置于某个目录中. /etc/profile ,/etc/profile.d/* /etc/pam.conf , /etc/pam.d/* 单文件,在内部分割成多个片段. [mysql] [mysqld]... 库文件: 二进制 可执行  函数(c程序都由函数组成) 共享模块 静态库 动态库 帮助文件 手册页 文档(/usr/share/doc) /bin /sbin 系统启动使用 /usr/bin  /usr

linux常用命令---rpm软件包管理

rpm软件包管理 原文地址:https://www.cnblogs.com/open-yang/p/11253278.html

linux命令:rpm软件包管理

  rpm命令简介:      rpm:软件管理器          数据库:/var/lib/rpm   用于软件进行查询相关操作的数据库.      rpmbuild:用于创建rpm软件包的工具 对软件进行安装.查询.卸载.升级.校验.数据库的重建.验证数据包等工作. 1.命令格式: 1.rpm命名规则: 主包: Usage: httpd-2.2.15-15.e16.centos.i686.rpm httpd:软件包名  2.2.15:软件版本号  15:软件发布的次数 e16.centos

Linux运维学习历程-第八天-Linux文本工具sed与Vim(vi)

概述: 本篇我们主要学习两个功能非常强大的文本编辑器,了解这两种文本编辑器的各自的特点 一.vi(vim)文本编辑器 练习和课后作业 1 .删除/etc/grub2.conf 文件中所有以空白开头的行行首的空白字符 sed "s/^[[:space:]]\+//" /etc/grub2.cfg sed -r "s/^[[:space:]]+//" /etc/grub2.cfg 2 .删除/etc/fstab 文件中所有以# 开头,后面至少跟一个空白字符的行的行首的#

Linux文本工具sed

Sed sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有改变,除非你使用重定向存储输出. sed用法: sed [OPTION]...  'script'  [input-file] ... 常用选项: -n:静默模式(禁止在匹配不到的情况下,直接屏幕输出,仅显示scri

linux笔记:RPM软件包管理-yum在线管理

ip地址配置: 用ifconfig命令只能配置ip和子网掩码,这样只能访问内网:如果需要访问公网则还必须要网关和DNS. 使用setup工具配置ip: 网络yum源配置: 常用yum命令:查询 常用yum命令:安装 常用yum命令:升级 常用yum命令:卸载(注意:用yum卸载一个软件包时,系统会自动卸载这个软件包所依赖的所有包,这是非常不安全的,所以尽量不要用yum卸载.) yum软件组管理命令: 光盘yum源搭建: