centos

centos

一种常见的linux操作系统,目前主流的两个版本是centos7和centos8

启动流程(centos7)

 

 

下载地址

https://archive.kernel.org/centos-vault/

优化原则

企业生产最小化原则:

1、安装软件包最小化

2、用户权限最小化

3、目录文件权限最小化

4、自启动服务最小化

5、服务运行用户最小化

centos7优化

#修改主机名
hostnamectl set-hostname name1
bash

#配置网络
sed -i 's#200#51#g' /etc/sysconfig/network-scripts/ifcfg-eth*
systemctl restart network

# 关闭swap分区
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

#更新yum源信息(示例是阿里源)
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

#关闭selinux
sed -i 's#SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0
getenforce

#关闭firewalld防火墙服务
systemctl stop firewalld
systemctl disable firewalld

# 设置系统时间同步
yum install ntpdate -y
/usr/sbin/ntpdate ntp3.aliyun.com
echo '#crond-id-001:time sync by oldboy' >>/var/spool/cron/root
echo "*/5 * * * * /usr/sbin/ntpdate ntp3.aliyun.com >/dev/null 2>&1">>/var/spool/cron/root
crontab -l

#加大文件描述
echo '*               -       nofile         65535 ' >>/etc/security/limits.conf
tail -1 /etc/security/limits.conf
ulimit -SHn   65535
ulimit -n

#优化系统内核(从高并发的角度来优化)
cat >>/etc/sysctl.conf<<EOF
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000    65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
#以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。
net.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216
EOF
sysctl -p
#优化SSH远程连接效率
\cp /etc/ssh/sshd_config{,.ori}
sed -i  "s/GSSAPIAuthentication yes/GSSAPIAuthentication no/g" /etc/ssh/sshd_config
sed -i  "s/#UseDNS yes/UseDNS no/g" /etc/ssh/sshd_config
systemctl restart sshd
# 提升命令行安全
echo 'export TMOUT=300' >>/etc/profile
echo 'export HISTFILESIZE=5' >>/etc/profile
echo 'export HISTSIZE=10000000' >>/etc/profile
. /etc/profile

# 设置普通用户提权操作
useradd xiaotao
echo 123456|passwd --stdin xiaotao
\cp /etc/sudoers /etc/sudoers.ori
echo "xiaotao ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers
tail -1 /etc/sudoers
visudo -c

# 设置系统中文UTF8字符集(目的是防止汉字乱码,现在xshell兼容很好,不改也没问题)
cp /etc/locale.conf{,.ori}
localectl set-locale LANG="zh_CN.UTF-8"
cat /etc/locale.conf

# 保留yum安装的软件包
#将/etc/yum.conf中的keepcache=0改为keepcache=1,为日后一键安装网站集群留好rpm及依赖工具包。

# 安装企业运维常用基础工具包
yum install psmisc net-tools bash-completion vim-enhanced -y

#命令行加颜色
echo "PS1='[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \w\[\e[0m\]]\\$'" >>/etc/profile
source /etc/profile

centos8优化

以下优化论述与centos7差异的位置

# 配置yum源(示例源为阿里源)
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm

# 常用的工具包
yum install -y expect wget vim bash-completion net-tools gcc

## 配置内核参数
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
EOF
sysctl --system

centos常用命令

# 按列切割
cut 按列切割
-d 指定分隔符 -f指定哪列,多列用逗号
[root@oldboyedu ~]# cat a.txt
1 2 3 4 5 6 7 8 9 10
[root@oldboyedu ~]# cut -d" " -f1,3,5 a.txt
1 3 5
[root@oldboyedu ~]# cut -d" " -f3-5 a.txt
3 4 5

# 容量
du -sh 查看当前目录总容量。不单独列出各子项占用的容量。
du -sh * 查看当前目录下的各文件及子目录的容量(各子项占用容量)
du -sh * | sort -n 统计当前目录下文件及子目录大小,并按 -n(大小)排序

# 路由
netstat -rn
route -n
ip route
https://blog.51cto.com/oldboy/974194

# 命令行锁屏
锁屏:
ctrl+s
解锁:
ctrl+q

# 锁密码文件
[root@oldboyedu ~]# chattr +i /etc/passwd #<==锁定文件不能删除,不能修改
[root@oldboyedu ~]# lsattr /etc/passwd
----i----------- /etc/passwd
[root@oldboyedu ~]# lsattr /etc/hosts
---------------- /etc/hosts
[root@oldboyedu ~]# cp /etc/passwd{,.ori}
[root@oldboyedu ~]# rm -f /etc/passwd
rm: cannot remove ‘/etc/passwd’: Operation not permitted
[root@oldboyedu ~]# echo ddd > /etc/passwd
-bash: /etc/passwd: Permission denied
[root@oldboyedu ~]# useradd littleboy
useradd: cannot open /etc/passwd

chattr -i /etc/passwd #<==解锁文件。
给重要文件上锁

[root@oldboyedu ~]# chattr +a oldboy.txt
[root@oldboyedu ~]# rm -f oldboy.txt
rm: cannot remove ‘oldboy.txt’: Operation not permitted
[root@oldboyedu ~]# echo dddd >>oldboy.txt
[root@oldboyedu ~]# echo dddd >>oldboy.txt

# 拷贝文件系统不提示是否覆盖
两条命令的作用都是屏蔽系统别名
\cp /etc/hosts m01:/etc/
/bin/cp /etc/hosts m01:/etc/

# 标准输入、输出重定向
>或1>标准输出重定向,箭头方向就是数据流向,
把左边的数据流向到右边,会清空右边之前的数据。

<或0<标准输入重定向,箭头方向就是数据流向,
固定定义:

数字1 标准输出(standard output)
数字0 标准输入(standard input)
数字2 错误输出(error output)

例如:

eho "I am studying linux." 1>/data/oldboy.txt 2>/data/error.txt

[root@lianxi01 ~]#cat<<EOF
> I am oldboy
> EOF
I am oldboy

cat>oldboy.txt<<EOF
I am oldboy
EOF

[root@lianxi01 ~]#cat >>oldboy.txt<<'EOF'
I am $oldboy
EOF

[root@lianxi01 ~]#cat oldboy.txt
I am oldboy
I am $oldboy



此外还有一个特殊重定向用法:将标准错误重定向到标准输出,即标准错误和标准输出一样从定向到文件中,这个功能有3种实现命令方法。
方法1:echo "I am oldboy" >oldboy.txt 2>oldboy.txt
方法2:echo "I am oldboy" &>oldboy.txt
方法3:echo "I am oldboy" 1>oldboy.txt 2>&1

# 查看系统cpu,内存,挂载详细信息
cat /proc/meminfo
cat /proc/cpuinfo
cat /proc/loadavg
cat /proc/mounts
uptime

# 系统日志
cat /var/log/messages #记录系统及软件运行信息文件所在的目录
cat /var/log/secure #记录用户登录信息的日志文件

messages是系统默认的日志文件,当系统及软件遇到运行故障,可以通过查看这个日志文件获取故障信息。文件默认按周切割(配置目录/etc/logrotate.conf)。

# 用户登录系统之后显示提示内容
/etc/motd

# 用户登录终端前显示信息的文件
/etc/issue /etc/issue.net

# socket文件
用于进程间通信的文件

# 把正在执行的命令放到后台          
crtl+z #把命令暂停
bg #把命令放到后台运行
jobs #查看后台命令

# centos挂载硬盘
fdisk -l
mount -t ntfs-3g /dev/sdb1 /mnt/windows/

没有发现新加硬盘:
[root@mubanji ~]# cd /sys/class/scsi_host/
[root@mubanji scsi_host]# ls
host0 host1 host2
[root@mubanji scsi_host]# echo "---" host0/scan
--- host0/scan
[root@mubanji scsi_host]# fdisk -l

 

posted @ 2021-12-02 14:36  陶清刚  阅读(189)  评论(0)    收藏  举报