持续更新...

检查当前系统发行版本:

#CentOS
cat /etc/redhat-release
#Debian
cat /etc/os-release

查看当前内核:

uname -r

查看底层硬件信息:

dmidecode

修改主机名:

hostnamectl set-hostname [hostname]

查看修改时区:

timedatectl
timedatectl list-timezones
timedatectl set-timezone Asia/Shanghai

修改DNS服务器:

vim /etc/network/interfaces
service networking restart
#查看是否生效:
cat /etc/resolv.conf

强制退出用户:

pkill -kill -t pts/[序号]

查看端口占用:

yum install net-tools
netstat -ntlp

新建用户不允许登录:

useradd -s /sbin/nologin <new username>

查看文件/文件夹大小:

du [文件/文件夹名称] -h

查看指定目录下文件大小:

du -h --max-depth=1 /home

查看大于800M的文件:

find / -size +800M -exec ls -lh {} \;

查看硬盘通电时间

yum install smartmontools
smartctl -A /dev/sda

升级CentOS7内核

1. 引入elrepo库

首先 yum update 更新一下,CentOS可以使用第三方库ELRepo将内核升级到最新版本。

导入公钥:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安装CentOS7的库:

yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

2. 升级内核

列出可用的系统内核相关包:

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

升级内核:

yum --enablerepo=elrepo-kernel install kernel-ml -y

升级最新版内核headers:

yum --enablerepo=elrepo-kernel install kernel-ml-headers -y

如果升级headers报错,则需要先卸载原版内核headers ,然后再安装最新版内核headers。执行命令:

yum remove kernel-headers

开启bbr, vim /etc/sysctl.conf 编辑配置文件添加:

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

加载参数:

sysctl -p

3. 设置默认内核

设置 GRUB 默认的内核版本,打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0 ,将GRUB初始化页面的第一个内核将作为默认内核。

vim /etc/default/grub
> GRUB_TIMEOUT=5
> GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
> GRUB_DEFAULT=0        #把这里的saved改成0
> GRUB_DISABLE_SUBMENU=true
> GRUB_TERMINAL_OUTPUT="console"
> GRUB_CMDLINE_LINUX="crashkernel=auto console=ttyS0 console=tty0 panic=5"
> GRUB_DISABLE_RECOVERY="true"

接下来运行下面的命令来重新创建内核配置:

grub2-mkconfig -o /boot/grub2/grub.cfg

reboot 重启机器,检查系统当前内核版本。

4. 删除旧的多余内核

查询系统中全部的内核:

rpm -qa | grep kernel

删除旧的内核:

yum remove [内核全名称]

一键删除多余内核:

yum remove $(rpm -qa | grep kernel | grep -v $(uname -r))

检查 boot 剩余空间:

df -h /boot

升级Debian10内核

1. 修改软件源

先备份,然后修改:

vim /etc/apt/sources.list

顺便软件源修改为官方默认:

deb http://deb.debian.org/debian buster main
deb-src http://deb.debian.org/debian buster main

deb http://deb.debian.org/debian-security/ buster/updates main
deb-src http://deb.debian.org/debian-security/ buster/updates main

deb http://deb.debian.org/debian buster-updates main
deb-src http://deb.debian.org/debian buster-updates main

# Debian Buster Backports
deb http://deb.debian.org/debian buster-backports main
apt update

2. 安装最新内核

查看内核:

apt search linux-image | grep buster-backports

升级需要的内核版本或者直接升级最新内核:

apt install -t $(lsb_release -sc)-backports linux-image-cloud-$(dpkg --print-architecture) linux-headers-cloud-$(dpkg --print-architecture) --install-recommends -y

更新内核启动顺序:

update-grub

删除旧内核:

dpkg -l | grep linux-image
apt purge [kernel name]

查看线路与测速

使用mtr或者更直观的besttrace查看回程线路;

使用Unixbench测试CPU性能;

使用teddysun的bench或者oldking的superbench测试不同运营商速度:

wget -qO- bench.sh | bash
wget -qO- git.io/superbench.sh | bash -s info
wget -qO- git.io/superbench.sh | bash -s io
wget -qO- git.io/superbench.sh | bash -s speed
wget -qO- git.io/superbench.sh | bash -s fast
wget -qO- git.io/superbench.sh | bash -s share

挂载硬盘

使用 fdisk -l 开查看当前磁盘情况

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    41943039    20458496   8e  Linux LVM
# 这个就是新的硬盘
# 记下/dev/sdb这个名称
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

1. 分区

使用过 fdisk /dev/sdb 来进行分区操作

  • n:添加一个分区
  • P:主分区,最多可以4个主分区
  • e:扩展分区,linux上扩展分区只能有1个,扩展分区创建后不能直接使用,还要在扩展分区上创建逻辑分区。
  • w:写入磁盘

2. 格式化分区

使用命令:

mkfs.ext4 /dev/sdb

EXT3与EXT4区别:

ETX3

  • 最多只能支持32TB的文件系统和2TB的文件,实际只能容纳2TB的文件系统和16GB的文件
  • Ext3目前只支持32000个子目录
  • Ext3文件系统使用32位空间记录块数量和i-节点数量
  • 当数据写入到Ext3文件系统中时,Ext3的数据块分配器每次只能分配一个4KB的块

EXT4

  • Ext4的文件系统容量达到1EB,而文件容量则达到16TB
  • 理论上支持无限数量的子目录
  • Ext4文件系统使用64位空间记录块数量和i-节点数量
  • Ext4的多块分配器支持一次调用分配多个数据块

3. 挂载使用

在根目录下创建data目录:

mkdir /mnt/data

将/dev/sdb挂载到/data下:

mount /dev/sdb /mnt/data

使用 df 命令查看是否挂载成功,新创建的分区不能开机自动挂载,每次重启机器都要手动挂载,设置开机自动挂载需要修改 /etc/fstab 文件,在最后添加一行:

/dev/sdb /data ext4 defaults 1 2

*注:

  • defaults = rw, suid, dev, exec, auto, nouser, and async
  • 1:需要dump设置为1;不需要dump设置为2
  • 2:开机时检查顺序,非boot文件系统为1,其它文件系统都为2,如要检查就为0

扩容root分区

CentOS安装时默认最多给root分区50G容量,其余的会分配到home分区,一段时间后root空间就不够用,因此需要扩容。

划分空间会删除所有数据,先备份home分区数据:

tar cvf /tmp/home.tar /home

卸载home文件系统:

umount /home

如果提示无法卸载,是因为有进程占用/home,终止进程:

fuser -km /home/

删除/home所在的lv

lvremove /dev/mapper/centos-home

扩展/root所在的lv(增加512G):

lvextend -L +512G /dev/mapper/centos-root

扩展/root文件系统

xfs_growfs /dev/mapper/centos-root

重新创建home lv,这里home的大小自己决定,先创建一个1G的home lv,然后再将所有的空闲分区追加到home lv

lvcreate -L 1G -n /dev/mapper/centos-home
lvextend -l +100%FREE /dev/mapper/centos-home

创建home文件系统:

mkfs.xfs /dev/mapper/centos-home

挂载home文件系统:

mount /dev/mapper/centos-home

恢复home文件:

tar xvf /tmp/home.tar -C /home/
cd /home/home/
mv * ../

unzip解压中文乱码

zip格式中并没有指定编码格式,Linux下的默认编码是UTF8,而在Windows下生成的zip文件中的编码是GBK/GB2312等,因此,这些zip文件在Linux下解压时会出现乱码问题,解决办法是加上-O参数,但多数Linux发行版本中安装的unzip并不支持,因为官方太高冷(xx),所以只有通过补丁的方式添加:

git clone https://github.com/ikohara/dpkg-unzip-iconv
cd dpkg-unzip-iconv
make source
make build-dep
make
make install

安装好后就可以通过以下命令进行解压了:

unzip -O cp936 file.zip

Tags: CentOS, Linux, Debian

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.