0、文档链接

1、查看系统版本

1.1、查看centos系统版本

cat /etc/centos-release
cat /etc/issue
uname -a
lsb_release -a (适用于所有的linux,包括Redhat、SuSE、Debian等发行版,但是在debian下要安装lsb)

1.2、查看debian系统版本

cat /etc/debian_version
uname -a

1.3、查看redhat系统版本

cat /etc/redhat-release
cat /proc/version

2、修改系统语言

2.1、redhad系列修改系统语言

1、查看当前语言包
locale

2、查看系统所有语言包
locale -a
(zh_CN.UTF-8是简体中文,如果没有zh_CN.UTF-8,就安装语言包,如果存在可以直接设置)
安装简体中文包
yum install kde-l10n-Chinese

3、临时修改:设置中文
LANG="zh_CN.UTF-8" #修改为中文
LANG="en_US.UTF-8" #修改为英文

4、永久修改
第一种方法:localectl set-locale LANG=zh_CN.UTF8
第二种方法:
vi /etc/locale.conf
##加下面内容到第一行,设置中文
LANG=zh_CN.UTF8

5、重启
**reboot**

3、查看环境变量

env

4、yum 有未完成事务提示 清除办法

链接

5、开机加载模块

链接

6、文件描述符

  1. #查看当前shell打开的文件描述符 $$:当前进程
  2. ll /proc/$$/fd
  3. exec 6<> /file1 打开文件,分配一个句柄(文件描述符6
  4. exec 6<&- 关闭文件
  5. &6 文件描述符6 echo sdfs >&6 输出内容到文件
  6. &1 标准输出
  7. &2 错误输出
  8. 管道文件不会覆盖,使用> 或>>都一样

7、命名管道

  1. mkfifo /tmp/tmpfifo 创建一个命名管道
  2. file /tmp/tmpfifo 查看文件属性 #/tmp/tmpfifo: fifo (named pipe)
  3. #使用,管道中的数据获取完就没有了
  4. grep sda /tmp/tmpfifo 一个终端获取数据
  5. ll /dev /tmp/tmpfifo 一个终端输入数据

8、linux图形化运维工具,可以安装虚拟机

  1. https://baijiahao.baidu.com/s?id=1666118979367180810&wfr=spider&for=pc
  2. yum install cockpit
  3. systemctl start cockpit

9、开机启动等待时间修改

  1. vim /boot/grub2/grub.cfg
  2. if [ x$feature_timeout_style = xy ] ; then
  3. set timeout_style=menu
  4. set timeout=5 # 修改这里
  5. # Fallback normal timeout code in case the timeout_style feature is
  6. # unavailable.
  7. else
  8. set timeout=5
  9. fi

10、赋予root权限

  1. #轻易不要使用su去切换到root的身份
  2. #普通用户使用sudo来执行root权限的命令
  3. #如,将hadoop用户添加到/etc/sudoers文件中去
  4. #给用户添加root操作权限
  5. visudo
  6. vi /etc/sudoers
  7. root ALL=(ALL) ALL
  8. hadoop ALL=(ALL) ALL
  9. user ALL=(root) NOPASSWD:ALL

11、查看cpu、内存信息

  1. #查看CPU信息(型号)
  2. cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
  3. #查看内 存信息
  4. cat /proc/meminfo
  5. #总核数 = 物理CPU个数 X 每颗物理CPU的核数
  6. # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
  7. # 查看物理CPU个数
  8. cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
  9. # 查看每个物理CPU中core的个数(即核数)
  10. cat /proc/cpuinfo| grep "cpu cores"| uniq
  11. # 查看逻辑CPU的个数
  12. cat /proc/cpuinfo| grep "processor"| wc -l

12、系统内核

  1. 查看系统使用内核
  2. uname -r
  3. 查看系统所有内核
  4. rpm -qa | grep kernel
  5. awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
  6. 删除多余的内核
  7. yum remove -y kernel-3.10.0-957.el7.x86_64
  8. 升级内核
  9. https://www.cnblogs.com/jinyuanliu/p/10368780.html
  10. 1)#导入ELRepo软件仓库的公共秘钥
  11. rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  12. 2)#安装ELRepo软件仓库的yum
  13. rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
  14. 3)#安装主线内核(ml=mainline4.14.11 kernel-lt(4.4)
  15. yum -y --enablerepo=elrepo-kernel install kernel-lt
  16. 4)#查看系统可用内核,并设置启动项
  17. awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
  18. grub2-set-default 0
  19. grub2-set-default 'CentOS Linux (4.4.214-1.el7.elrepo.x86_64) 7 (Core)'
  20. 5)#生成 grub 配置文件
  21. grub2-mkconfig -o /boot/grub2/grub.cfg
  22. 6)#重启生效
  23. reboot

13、高并发优化

  1. 文件描述符指一切资源(包含socket、目录、文件、设备)
  2. #最大连接数
  3. echo 50000 > /proc/sys/net/core/somaxconn
  4. #立即回收tcp连接
  5. echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
  6. #空的tcp是否允许回收利用
  7. echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
  8. #不做洪水抵御
  9. echo 0 > /proc/sys/net/ipv4/tcp_syncookies
  10. ulimit -n 查看打开文件的数量
  11. ulimit -n 20000 设置最大打开的文件数量
  12. 永久性:在/etc/sysctl.conf中设置
  13. fs.file-max = 1000000
  14. $ sysctl -a|grep fs.file
  15. fs.file-max = 381721
  16. fs.file-nr = 1376 0 381721
  17. fs.xfs.filestream_centisecs = 3000
  18. $ cat /proc/sys/fs/file-nr
  19. 1344 0 381721
  20. 其中第一个数表示当前系统已分配使用的打开文件描述符数,第二个数为分配后已释放的(目前已不再使用),第三个数等于file-max
  21. 所有进程打开的文件描述符数不能超过/proc/sys/fs/file-max
  22. 永久性:上面的方法只是临时性的,注销重新登录就失效了,而且不能增大hard limit,只能在hard limit范围内修改soft limit。若要使修改永久有效,则需要在/etc/security/limits.conf中进行设置(需要root权限),可添加如下两行,表示用户chanon最大打开文件描述符数的soft limit1800000hard limit2000000。以下设置需要注销之后重新登录才能生效:
  23. chanon soft nofile 1800000
  24. chanon hard nofile 2000000
  25. 设置nofilehard limit还有一点要注意的就是hard limit不能大于/proc/sys/fs/nr_open,假如hard limit大于nr_open,注销后无法正常登录。可以修改nr_open的值:
  26. 单个进程打开的文件描述符数不能超过user limitnofilesoft limit
  27. nofilesoft limit不能超过其hard limit
  28. nofilehard limit不能超过/proc/sys/fs/nr_open

13、关闭selinux

  1. #关闭selinux
  2. setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

14、修改安全上下文

  1. #将initdb.log的安全环境应用到weather.txt上
  2. chcon -v --reference=initdb.log weather.txt
  3. -h, --no-dereference:影响符号连接而非引用的文件。
  4. --reference=参考文件:使用指定参考文件的安全环境,而非指定值。
  5. -R, --recursive:递归处理所有的文件及子目录。
  6. -v, --verbose:为处理的所有文件显示诊断信息。
  7. -u, --user=用户:设置指定用户的目标安全环境。
  8. -r, --role=角色:设置指定角色的目标安全环境。
  9. -t, --type=类型:设置指定类型的目标安全环境。
  10. -l, --range=范围:设置指定范围的目标安全环境。

15、永久关闭swap

  1. swapoff -a (重启失效)
  2. sed -ri 's/.*swap.*/#&/' /etc/fstab (永久关闭)

16、创建swap

1.使用物理分区创建swap

  1. #创建一个 Linux swap 类型的分区/dev/sda2
  2. 设备 Boot Start End Blocks Id System
  3. /dev/sda1 * 2048 2099199 1048576 83 Linux
  4. /dev/sda2 2099200 209715199 103808000 82 Linux swap / Solaris
  5. #创建swap格式,格式化为swap
  6. mkswap /dev/sda2
  7. #加载,启动
  8. swapon /dev/sda2
  9. #查看
  10. swapon -s
  11. free

2.使用文件创建swap

  1. #创建一个128M的大文件
  2. dd if=/dev/zero of=/tmp/swap bs=1M count=128
  3. #格式化
  4. mkswap /tmp/swap
  5. #启动
  6. swapon /tmp/swap
  7. #关闭swap
  8. swapoff /tmp/swap
  9. #查看
  10. swapon -s

17、kickstart (anaconda-ks.cfg)

  1. 通过启动配置参数知道配置文件地址
  2. linux ks=http://192.100.3.221/anaconda-ks.cfg

18、启动级别/运行级别

centos7之前的配置文件/etc/inittab
之后的配置文件:
获取当前启动级别
systemctl get-default

设置启动级别
systemctl set-default TARGET.target

  1. 缺省的运行级,RHS用到的级别如下:
  2. 0:关机
  3. 1:单用户模式
  4. 2:无网络支持的多用户模式
  5. 3:有网络支持的多用户模式
  6. 4:保留,未使用
  7. 5:有网络支持有X-Window支持的多用户模式
  8. 6:重新引导系统,即重启
  9. # 对各个运行级的详细解释:
  10. 0 为停机,机器关闭。
  11. 1 为单用户模式,就像Win9x下的安全模式类似。
  12. 2 为多用户模式,但是没有NFS支持。
  13. 3 为完整的多用户模式,是标准的运行级。
  14. 4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本 电脑的电池用尽时,可以切换到这个模式来做一些设置。
  15. 5 就是X11,进到X Window系统了。
  16. 6 为重启,运行init 6机器就会重启。

19、设置开机执行脚本

链接

第一种方法(/etc/rc.d/rc.local):

1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权

chmod +x /etc/rc.d/rc.local

2、赋予脚本可执行权限假设/usr/local/script/autostart.sh是你的脚本路径,给予执行权限

chmod +x /usr/local/script/autostart.sh

3、打开/etc/rc.d/rc.local文件,在末尾增加如下内容

/usr/local/script/autostart.sh

第二种方法(chkconfig)

1、将脚本移动到/etc/rc.d/init.d目录下

mv /usr/local/script/autostart.sh /etc/rc.d/init.d

2、增加脚本的可执行权限

chmod +x /etc/rc.d/init.d/autostart.sh

3、在脚本开头添加以下内容

  1. #!/bin/sh
  2. #chkconfig:2345 10 90
  3. #decription:autostart
  4. 说明:chkonfig后面是启动级别和优先级,description后面是服务描述。如上面脚本意思是,
  5. 服务必须在运行级2345下被启动或关闭,启动的优先级是90,停止的优先级是10
  6. :不添加以上内容的话添加启动项时会提示service myservice does not support chkconfig

3、添加脚本到开机自动启动项目中

  1. cd /etc/rc.d/init.d
  2. chkconfig --add autostart.sh
  3. chkconfig autostart.sh on

20、代理服务器设置

设置环境变量:

  1. [root@node-1 yum.repos.d]# cat /etc/profile.d/env.sh
  2. export http_proxy="http://192.100.5.117:13333"
  3. export https_proxy=$http_proxy
  4. source /etc/profile

可以通过代理服务器上外网

如果想要yum能安装包 还需要在/etc/yum.conf中加入 配置 否则报解析不了yum;

  1. proxy=http://192.100.5.117:13333

yum install nginx
已经可以成功安装了
遇到的问题
#proxyconnect tcp: tls: oversized record received with length 20527
解决:代理地址协议为http

21、命令和关键字补全

tab可以不全命令 但是有的服务名称不能补全
systemctl status firewalld 不能补全firewalld
要想补全服务名称 安装下面工具,安装后需要重启
yum install bash-completion

22、修改最大进程数

vim /etc/security/limits.conf

  1. root soft nofile 655350
  2. root hard nofile 655350
  3. * soft nofile 655350
  4. * hard nofile 655350
  5. * soft stack 20480
  6. * hard stack 20480
  7. * soft nproc 65535
  8. * hard nproc 655360
  9. * soft core unlimited
  10. * hard core unlimited

nofile:打开文件数
nproc:最大进程限制
:表示所有用户
root:表示root用户
注意:还需要将**_/etc/security/limits.d/20-nproc.conf_***文件的进程数修改才能生效

vim /etc/security/limits.d/20-nproc.conf

  1. # Default limit for number of user's processes to prevent
  2. # accidental fork bombs.
  3. # See rhbz #432903 for reasoning.
  4. * soft nproc 65535
  5. root soft nproc unlimited

重新登录
ulimit -a
image.png