0、文档链接
- LInux系统简介
- CentOS6安装与学习
- ubuntu安装
- ubuntu apt镜像源
- redhat基础课程
- 技术干活
- Linux命令大全
- 制作yum源
- jdk安装
- 一次Linux遭入侵,挖矿进程被隐藏案例分析
- 查看病毒进程:
- 查看文件属性
- numa:优化
- 查看资源使用情况
- 一文彻底明白linux中的selinux到底是什么 链接2
- systemctl 说明文档
- systemd中文手册,配置文件指定:
- chkconfig 详解
- linux proxy设置
- 详解Linux查看实时网卡流量的几种方式(转)
- shell 多线程实现
- linux 挂载ntfs文件系统移动硬盘 解决读写权限问题
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、查看环境变量
4、yum 有未完成事务提示 清除办法
5、开机加载模块
6、文件描述符
#查看当前shell打开的文件描述符 $$:当前进程
ll /proc/$$/fd
exec 6<> /file1 打开文件,分配一个句柄(文件描述符6)
exec 6<&- 关闭文件
&6 文件描述符6, echo sdfs >&6 输出内容到文件
&1 标准输出
&2 错误输出
管道文件不会覆盖,使用> 或>>都一样
7、命名管道
mkfifo /tmp/tmpfifo 创建一个命名管道
file /tmp/tmpfifo 查看文件属性 #/tmp/tmpfifo: fifo (named pipe)
#使用,管道中的数据获取完就没有了
grep sda /tmp/tmpfifo 一个终端获取数据
ll /dev /tmp/tmpfifo 一个终端输入数据
8、linux图形化运维工具,可以安装虚拟机
https://baijiahao.baidu.com/s?id=1666118979367180810&wfr=spider&for=pc
yum install cockpit
systemctl start cockpit
9、开机启动等待时间修改
vim /boot/grub2/grub.cfg
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5 # 修改这里
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
10、赋予root权限
#轻易不要使用su去切换到root的身份
#普通用户使用sudo来执行root权限的命令
#如,将hadoop用户添加到/etc/sudoers文件中去
#给用户添加root操作权限
visudo
vi /etc/sudoers
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
user ALL=(root) NOPASSWD:ALL
11、查看cpu、内存信息
#查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
#查看内 存信息
cat /proc/meminfo
#总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
12、系统内核
查看系统使用内核
uname -r
查看系统所有内核
rpm -qa | grep kernel
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
删除多余的内核
yum remove -y kernel-3.10.0-957.el7.x86_64
升级内核
https://www.cnblogs.com/jinyuanliu/p/10368780.html
1)#导入ELRepo软件仓库的公共秘钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2)#安装ELRepo软件仓库的yum源
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
3)#安装主线内核(ml=mainline)4.14.11 kernel-lt(4.4)
yum -y --enablerepo=elrepo-kernel install kernel-lt
4)#查看系统可用内核,并设置启动项
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
grub2-set-default 0 或
grub2-set-default 'CentOS Linux (4.4.214-1.el7.elrepo.x86_64) 7 (Core)'
5)#生成 grub 配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
6)#重启生效
reboot
13、高并发优化
文件描述符指一切资源(包含socket、目录、文件、设备)
#最大连接数
echo 50000 > /proc/sys/net/core/somaxconn
#立即回收tcp连接
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
#空的tcp是否允许回收利用
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
#不做洪水抵御
echo 0 > /proc/sys/net/ipv4/tcp_syncookies
ulimit -n 查看打开文件的数量
ulimit -n 20000 设置最大打开的文件数量
永久性:在/etc/sysctl.conf中设置
fs.file-max = 1000000
$ sysctl -a|grep fs.file
fs.file-max = 381721
fs.file-nr = 1376 0 381721
fs.xfs.filestream_centisecs = 3000
$ cat /proc/sys/fs/file-nr
1344 0 381721
其中第一个数表示当前系统已分配使用的打开文件描述符数,第二个数为分配后已释放的(目前已不再使用),第三个数等于file-max。
所有进程打开的文件描述符数不能超过/proc/sys/fs/file-max
永久性:上面的方法只是临时性的,注销重新登录就失效了,而且不能增大hard limit,只能在hard limit范围内修改soft limit。若要使修改永久有效,则需要在/etc/security/limits.conf中进行设置(需要root权限),可添加如下两行,表示用户chanon最大打开文件描述符数的soft limit为1800000,hard limit为2000000。以下设置需要注销之后重新登录才能生效:
chanon soft nofile 1800000
chanon hard nofile 2000000
设置nofile的hard limit还有一点要注意的就是hard limit不能大于/proc/sys/fs/nr_open,假如hard limit大于nr_open,注销后无法正常登录。可以修改nr_open的值:
单个进程打开的文件描述符数不能超过user limit中nofile的soft limit
nofile的soft limit不能超过其hard limit
nofile的hard limit不能超过/proc/sys/fs/nr_open
13、关闭selinux
#关闭selinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
14、修改安全上下文
#将initdb.log的安全环境应用到weather.txt上
chcon -v --reference=initdb.log weather.txt
-h, --no-dereference:影响符号连接而非引用的文件。
--reference=参考文件:使用指定参考文件的安全环境,而非指定值。
-R, --recursive:递归处理所有的文件及子目录。
-v, --verbose:为处理的所有文件显示诊断信息。
-u, --user=用户:设置指定用户的目标安全环境。
-r, --role=角色:设置指定角色的目标安全环境。
-t, --type=类型:设置指定类型的目标安全环境。
-l, --range=范围:设置指定范围的目标安全环境。
15、永久关闭swap
swapoff -a (重启失效)
sed -ri 's/.*swap.*/#&/' /etc/fstab (永久关闭)
16、创建swap
1.使用物理分区创建swap
#创建一个 Linux swap 类型的分区/dev/sda2
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 209715199 103808000 82 Linux swap / Solaris
#创建swap格式,格式化为swap
mkswap /dev/sda2
#加载,启动
swapon /dev/sda2
#查看
swapon -s
free
2.使用文件创建swap
#创建一个128M的大文件
dd if=/dev/zero of=/tmp/swap bs=1M count=128
#格式化
mkswap /tmp/swap
#启动
swapon /tmp/swap
#关闭swap
swapoff /tmp/swap
#查看
swapon -s
17、kickstart (anaconda-ks.cfg)
通过启动配置参数知道配置文件地址
如 linux ks=http://192.100.3.221/anaconda-ks.cfg
18、启动级别/运行级别
centos7之前的配置文件/etc/inittab
之后的配置文件:
获取当前启动级别systemctl get-default
设置启动级别systemctl set-default TARGET.target
缺省的运行级,RHS用到的级别如下:
0:关机
1:单用户模式
2:无网络支持的多用户模式
3:有网络支持的多用户模式
4:保留,未使用
5:有网络支持有X-Window支持的多用户模式
6:重新引导系统,即重启
# 对各个运行级的详细解释:
0 为停机,机器关闭。
1 为单用户模式,就像Win9x下的安全模式类似。
2 为多用户模式,但是没有NFS支持。
3 为完整的多用户模式,是标准的运行级。
4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本 电脑的电池用尽时,可以切换到这个模式来做一些设置。
5 就是X11,进到X Window系统了。
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、在脚本开头添加以下内容
#!/bin/sh
#chkconfig:2345 10 90
#decription:autostart
说明:chkonfig后面是启动级别和优先级,description后面是服务描述。如上面脚本意思是,
服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,停止的优先级是10。
:不添加以上内容的话添加启动项时会提示service myservice does not support chkconfig
3、添加脚本到开机自动启动项目中
cd /etc/rc.d/init.d
chkconfig --add autostart.sh
chkconfig autostart.sh on
20、代理服务器设置
设置环境变量:
[root@node-1 yum.repos.d]# cat /etc/profile.d/env.sh
export http_proxy="http://192.100.5.117:13333"
export https_proxy=$http_proxy
source /etc/profile
可以通过代理服务器上外网
如果想要yum能安装包 还需要在/etc/yum.conf中加入 配置 否则报解析不了yum;
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
root soft nofile 655350
root hard nofile 655350
* soft nofile 655350
* hard nofile 655350
* soft stack 20480
* hard stack 20480
* soft nproc 65535
* hard nproc 655360
* soft core unlimited
* hard core unlimited
nofile:打开文件数
nproc:最大进程限制
:表示所有用户
root:表示root用户
注意:还需要将**_/etc/security/limits.d/20-nproc.conf_**
*文件的进程数修改才能生效
vim /etc/security/limits.d/20-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 65535
root soft nproc unlimited
重新登录ulimit -a