马哥博客做业第四周

linux文件搜索命令:locate命令 find命令node

locatelinux

updatedb用于生成文件数据库c++

locate查找文件速度快,但查找前须要事先生成数据库,没法对新增文件进行查找正则表达式

find数据库

相对于locate命令来讲速度较慢,可是无需事先生成数据库,能够查找实时生成的文件apache

多个或的关系的type选项须要加括号,且括号须要用\转义vim

搜索层级centos

  -maxdepth level 最大搜索目录深度,指定目录下的文件为第1bash

  -mindepth level 最小搜索目录深度app

先处理目录内的文件,再处理指定目录

  -depth

根据文件名和inode查找:

  -name "文件名称":支持使用glob   *, ?, [], [^]

  -iname "文件名称":不区分字母大小写

  -inum n inode号查找

  -samefile name 相同inode号的文件

  -links n 连接数为n的文件

  -regex PATTERN”:以PATTERN匹配整个文件路径,而非文件名称

根据属主、属组查找:

  -user USERNAME:查找属主为指定用户(UID)的文件

  -group GRPNAME: 查找属组为指定组(GID)的文件

  -uid UserID:查找属主为指定的UID号的文件

  -gid GroupID:查找属组为指定的GID号的文件

  -nouser:查找没有属主的文件

  -nogroup:查找没有属组的文件

根据文件类型查找

  -type TYPE

    f: 普通文件

    d: 目录文件

    l: 符号连接文件

    s:套接字文件

    b: 块设备文件

    c: 字符设备文件

    p: 管道文件

空文件或目录

  -empty

组合条件:

与:-a

或:-o

非:-not或 ! 

德·摩根定律:

(A) (B) = (A B)

(A) (B) = (A B)

根据文件大小来查找:

  -size [+|-]#UNIT

    经常使用单位:k, M, Gcbyte

  #UNIT: (#-1, #]

    如:6k 表示(5k,6k]

  -#UNIT[0,#-1]

    如:-6k 表示[0,5k]

  +#UNIT(#,)

    如:+6k 表示(6k,)

 

根据权限查找:

 

  -perm [/|-]MODE

 

  MODE: 精确权限匹配

 

  /MODE:任何一类(u,g,o)对象的权限中只要能一位匹配便可,或关系,centos7开始淘汰

 

  -MODE:每一类对象都必须同时拥有指定权限,与关系 ,0 表示不关注

 

find处理动做

  -print:默认的处理动做,显示至屏幕

  -ls:相似于对查找到的文件执行“ls -l”命令

  -delete:删除查找到的文件

  -fls file:查找到的全部文件的长格式信息保存至指定文件中

  -ok COMMAND {} \; 对查找到的每一个文件执行由COMMAND指定的命令,对于每一个文件执行命令以前,都会交互式要求用户确认

  -exec COMMAND {} \; 对查找到的每一个文件执行由COMMAND指定的命令

  {}: 用于引用查找到的文件名称自身find传递查找到的文件至后面指定的命令时,查找到全部符合条件的文件一次性传递给后面的命令

 

 

xargs能够将前一个命令的标准输出重定向到不支持标准输入的命令中

 

压缩gzip,解压缩gunzip: .gz,压缩比最小可是速度最快,消耗资源最少
压缩bzip2,解压缩bunzip2: .bz2,相对于xz消耗资源较少,压缩比适中
压缩xz,解压缩unxz: .xz,压缩比最大可是小号系统资源最多

压缩比由大到小排序为xz>bz2>gz

/var/lib/rpm   是rpm软件包的库

ldd 能够查看二进制文件依赖哪些库表

rpm -qi * 能够查询软件的介绍

rpm -qpl  后面必须跟rpm软件包的路径,能够在安装前查询软件包生成的文件,不加p能够写包名

rpm -qf 能够查询命令来自于哪一个包

--replacepkgs    --force 强制安装

rpm2cpio /misc/cd/BaseOS/Packages/tree-1.7.0-15.el8.x86_64.rpm | cpio -tv 能够将丢失的文件从rpm软件包找出来

rpm -U 升级或安装

rpm -F  只升级

rpm -q --scripts * 查询软件带的脚本

rpm -q --provides 查询软件的能力

rpm -K 检查软件包是否被更改、破坏

导入公钥并查询公钥是否正确导入

 

[21:36:37 root@centos8 ~]#rpm -qa "gpg-pubkey*"
gpg-pubkey-8483c65d-5ccc5b19
[21:38:32 root@centos8 ~]#rpm -qi gpg-pubkey-8483c65d-5ccc5b19
Name        : gpg-pubkey
Version     : 8483c65d
Release     : 5ccc5b19
Architecture: (none)
Install Date: Wed 18 Mar 2020 05:42:51 PM CST
Group       : Public Keys

 

yum history 能够查询yum安装历史

yum history undo +数字 能够撤销安装,能够卸载掉新安装的依赖包

rpm -qi kernel 能够查询系统安装时间

yum -y install autofs;systemctl enable --now autofs 安装并启动autofs,而且开机启动,该命令为centos7和8的命令,yum -y install autofs;chkconfig autofs on;service autofs start centos6安装并启动autofs的命令

 

编译安装

最小化安装系统最好先安装以下软件包

yum install gcc make autoconf gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree tmux lsof tcpdump wget net-tools iotop bc bzip2 zip unzip nfs-utils man-pages

第一步:运行 configure 脚本,生成Makefile 文件

安装路径设定:

  --prefix=/PATH:指定默认安装位置,默认为/usr/local/

  --sysconfdir=/PATH:配置文件安装位置

第二步执行make

第三步执行make install

在安装完毕后建立一个脚本文件,更改PATH变量

  vi /etc/profile.d/httpd24.sh

  PATH=/apps/httpd24/bin:$PATH

而后编辑/etc/man.config或/etc/man_db.conf,添加新装软件的man帮助手册

 

wget+下载连接能够下载文件,-P能够指定文件下载路径

 

文本三剑客之sed命令,逐行对文本进行操做,相较于grep命令占用内存少,比grep功能强大,缺点是语句更为复杂

 

经常使用选项

 

  -n 不输出模式空间内容到屏幕,即不自动打印

 

  -e 多点编辑

 

  -f /PATH/SCRIPT_FILE 从指定文件中读取编辑脚本

 

  -r, -E 使用扩展正则表达式

 

  -i.bak 备份文件并原处编辑

 

 

 

地址界定

 

  不给地址:对全文进行处理

 

单地址:

 

  #:指定的行,$:最后一行

 

  /pattern/:被此处模式所可以匹配到的每一行

 

地址范围:

 

  #,# ##行到第#行,3从第3行到第6

 

  #,+# ##行到+#行,3,+4 表示从3行到第7

 

  /pat1/,/pat2/

 

  #,/pat/

 

步进:~

 

  1~2 奇数行

 

  2~2 偶数行

 

 

 

打印当前模式空间内容,追加到默认输出以后

 

Ip 忽略大小写输出

 

删除模式空间匹配的行,并当即启用下一轮循环

 

a [\\]text 在指定行后面追加文本,支持使用\n实现多行追加

 

i [\\]text 在行前面插入文本

 

c [\\]text 替换行为单行或多行文本

 

w /path/file 保存模式匹配的行至指定文件

 

r /path/file 读取指定文件的文本至模式空间中匹配到的行后

 

为模式空间中的行打印行号

 

模式空间中匹配行取反处理

 

s/pattern/string/修饰符 查找替换,支持使用其它分隔符,能够是其它形式:s@@@s###

 

替换修饰符:

 

行内全局替换

 

显示替换成功的行

 

w /PATH/FILE 将替换成功的行保存至文件中

 

I,i 忽略大小写

 

自动安装apache脚本

 

yum -y install gcc make apr-devel apr-util-devel pcre-devel openssl-devel redhat-rpm-config #安装apache依赖包

wget https://mirror.bit.edu.cn/apache//httpd/httpd-2.4.43.tar.bz2 #下载apache源码包

tar xvf httpd-2.4.43.tar.bz2 -C /usr/local/src #解压源码包

cd /usr/local/src/httpd-2.4.43/
./configure --prefix=/apps/httpd24 --sysconfdir=/etc/httpd24 --enable-ssl #执行configure脚本生成makefile文件

make -j 4 && make install #同时执行4个编译程序来编译安装apache

echo 'PATH=/apps/httpd24/bin:$PATH' > /etc/profile.d/httpd24.sh
. /etc/profile.d/httpd24.sh #更改环境变量                                                                                                                                                                                                                                     

useradd -r -s /sbin/nologin -d /var/www -c Apache -u 48 apache #建立没法登陆uid为48的apachee帐户

sed -ri.bak 's/^(User ).*/\1apache/' /etc/httpd24/httpd.conf;sed -ri.bak 's/^(Group ).*/\1apache/' /etc/httpd24/httpd.conf #修改httpd配置文件帐户

apachectl start #开启apache服务

 

 

#!/bin/bash                                                                                                                                                                                                                                                                   
#
#********************************************************************
#Author:            rzx
#QQ:                970707452
#Date:              2020-04-05
#FileName:         /data/scripts/reset.sh
#URL:               https://www.cnblogs.com/rzx-006/
#Description:      The test script
#Copyright (C):     2020 All rights reserved
#********************************************************************
NET=`ls /etc/sysconfig/network-scripts/ |head -n 1 | cut -d"-" -f2`

echo '正在进行初始化配置'

if cat /etc/sysconfig/network-scripts/ifcfg-"$NET" | grep dhcp > /dev/null; then
    echo '正在配置IP'
        mv /etc/sysconfig/network-scripts/ifcfg-"$NET" /etc/sysconfig/network-scripts/ifcfg-"$NET".bak #备份原网卡配置文件
cat > /etc/sysconfig/network-scripts/ifcfg-"$NET" <<EOF
DEVICE=$NET
NAME=$NET
IPADDR=10.0.0.88
PREFIX=24
GATEWAY=10.0.0.2
DNS1=180.76.76.76
DNS2=223.6.6.6
BOOTPROTO=static
EOF
echo 'IP配置完成'
fi

if ! cat ~/.bashrc | grep ^alias.*scripts\'$ > /dev/null; then
    echo '正在设置cdnet别名'
    echo alias cdnet=\'cd /etc/sysconfig/network-scripts\' >> ~/.bashrc #设置cdnet别名
    echo 'cdnet别名设置完毕'
fi

if ! cat ~/.bashrc | grep ^alias.*vim\'$ > /dev/null; then
    echo '正在设置vi别名'
    echo alias vi=\'vim\' >> ~/.bashrc #设置vim别名
    echo 'vi别名设置完成'
fi

if ! [ -e /etc/profile.d/env.sh ]; then
    echo '正在更改PS1变量'
    echo 'PS1="\[\e[1;32m\][\[\e[0m\]\t \[\e[1;33m\]\u\[\e[36m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' >> /etc/profile.d/env.sh #设置PS1变量
    echo 'PS1变量设置完成'
fi

echo '正在修改yum仓库配置文件'

mkdir /etc/yum.repos.d/bak

mv /etc/yum.repos,d/*.repo /etc/yum.repos.d/bak

cat > Centos-Base.repo <<EOF
[AppStream]
name=AppStream
baseurl=http://10.0.0.8/centos/8/AppStream/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[BaseOs]
name=BaseOs
baseurl=http://10.0.0.8/centos/8/BaseOs/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[extras]
name=extras
baseurl=http://10.0.0.8/centos/8/extras/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[epel]
name=epel
baseurl=http://10.0.0.8/centos/8/epel
gpgkey=http://10.0.0.8/centos/8/epel/RPM-GPG-KEY-EPEL-8
EOF

echo 'yum仓库配置完成'

echo '正在安装经常使用软件包'
yum -y install gcc make autoconf gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree tmux lsof tcpdump wget net-tools iotop bc bzip2 zip unzip nfs-utils man-pages
echo '安装完毕'

if ! [ -e ~/.vimrc ]; then
    echo '正在生成.vimrc'
cat > ~/.vimrc <<EOF
set ts=4
set expandtab
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:            rzx") 
    call setline(5,"#QQ:                970707452") 
    call setline(6,"#Date:              ".strftime("%Y-%m-%d"))
    call setline(7,"#FileName:         ".expand("%"))
    call setline(8,"#URL:               https://www.cnblogs.com/rzx-006/")
    call setline(9,"#Description:      The test script") 
    call setline(10,"#Copyright (C):    ".strftime("%Y")." All rights reserved")
    call setline(11,"#********************************************************************") 
    call setline(12,". /data/color.sh")
endif                                                               
endfunc
autocmd BufNewFile * normal G
EOF
echo '.vimrc配置完成'
fi

echo '正在关闭selinux'
sed -ri.bak 's/^(SELINUX=).*/\1disabled/' /etc/selinux/config                                                                                                                                                                                                                 
echo '已关闭selinux'

echo '正在关闭防火墙'
chkconfig iptables off || systemctl disable firewalld.service

echo '已关闭防火墙'

echo -e "\E[1;31m"初始化配置已完成,IP地址为默认IP,请及时修改IP地址"\E[0m"
相关文章
相关标签/搜索