修改主机名 1 2 3 hostname ubuntu18-04 hostnamectl set-hostname ubuntu18-04
创建账号和修改密码 CentOS批量添加用户和修改密码_批量修改centos6服务器用户密码_烟雨醉梦里的博客-CSDN博客
Linux:如何在centos下创建新用户名和密码_centos创建用户_技术探索者的博客-CSDN博客
centos 7修改用户名和密码_centos7修改用户名_古人诚不我欺的博客-CSDN博客
Centos 7 忘记密码重置用户密码 - 简书 (jianshu.com)
创建账号/修改密码 1 2 echo 密码 | passwd --stdin 账号名
配置开机默认用户 配置文件路径:/etc/gdm/custom.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 vim /etc/gdm/custom.conf [daemon] [security] [xdmcp] [chooser] [debug] AutomaticLoginEnable=True AutomaticLogin=<用户名>
重启系统后即可自动进入你指定的账户了。
配置静态IP地址 Centos 7配置静态IP地址 1 2 3 4 5 6 7 8 9 10 11 12 13 14 vim /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=static IPADDR=10.0.0.181 PREFIX=24 DNS=10.0.0.1 GATEWAY=10.0.0.1 DEFROUTE=yes NAME=eth0 DEVICE=eth0 ONBOOT=yes systemctl restart network
ubuntu配置静态IP地址 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 vim /etc/netplan/01-netcfg.yaml network: ethernets: eth0: addresses: [10.0.0.182/24] dhcp4: no optional: true gateway4: 10.0.0.1 nameservers: addresses: [180.76.76.76,223.5.5.5 ] version: 2 renderer: networkd sudo netplan apply vim /etc/netplan/00-installer-config.yaml network: version: 2 renderer: networkd ethernets: ens33: dhcp4: no dhcp6: no addresses: - 10.0.0.10/24 routes: - to: default via: 10.0.0.2 nameservers: addresses: - 180.76.76.76 - 223.5.5.5 sudo netplan apply
Centos 8配置静态IP地址 在centos 8之后,使用systemctl restart network
命令重启网络时,会出现以下报错:
1 2 Failed to restart network.service: Unit network.service not found. 意思为无法重启网络服务,原因是无法找到network.service网络服务。
在rhel8(含centos8)上,在/etc/sysconfig/network-scripts/里也看不到任何脚本文件(centos7中此路径下包含网卡配置文件和一些脚本),没有传统的network.service。因此只能通过NM命令工具集进行网络配置。换言之,在rhel8上,必须开启NM,否则无法使用网络。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 vim /etc/sysconfig/network-scripts/ifcfg-ens32 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth0 UUID=066b4926-b40c-4c28-a5b4-2310d2b96613 DEVICE=eth0 ONBOOT=yes IPADDR=192.168.1.200 NETMASK=255.255.255.0 GATEWAY=192.168.1.254 DNS1=223.5.5.5 DNS2=180.76.76.76 PREFIX=24 nmcli c reload eth0 nmcli c up eth0
nmcli常用命令一览 Centos8 配置静态IP - 浅雨凉 - 博客园 (cnblogs.com)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 nmcli nmcli c add type ethernet con-name ens32 ifname ens32 ipv4.addr 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual nmcli c add type ethernet con-name ens32 ifname ens32 ipv4.method auto nmcli c modify ens32 ipv4.addr '192.168.1.200/24' nmcli c up ens32 nmcli c up ens32 nmcli c down nmcli c delete ens32 nmcli c show nmcli c show ens32 nmcli c reload nmcli c up ens32 nmcli d reapply ens32 nmcli d connect ens32 nmcli d show nmcli d show ens32 nmcli n nmcli n on nmcli n off
yum、apt的基本使用 yum/dnf常用命令 DNF,即DaNdiFied,是新一代的RPM软件包管理器。DNF 发行日期是2015年5月11日,DNF 包管理器采用Python 编写,发行许可为GPL v2,首先出现在Fedora 18 发行版中。在 RHEL 8.0 版本正式取代了 YUM,DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等.
yum客户端配置文件
1 2 /etc/yum.conf /etc/yum.repos.d/*.repo:
常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 yum instll -y package_name yum update yum upgrade package_name yum repolist yum list yum clean all yum makecache yum provides httpd yum deplist httpd yum remove package_name yum install --downloadonly --downloaddir=/package_installdir/ package_name yum search package_name yum info package_name yum installed yum list available yum list updates yum check-update
yum仓库管理
1 2 3 4 5 yum repolist all yum repolist enabled yum repolist disabled yum-config-manager --disable epel yum-config-manager --enable epel
apt常用命令 apt 相当于 apt-get、apt-cache
和 apt-config
中最常用命令选项的集合
apt 具有更精减但足够的命令选项,而且参数选项的组织方式更为有效。此外,启用的几个特性也非常 有帮助。例如:可以在使用 apt 命令安装或删除程序时看到进度条,apt 还会在更新存储库数据库时提示
用户可升级的软件包个数 apt 与 apt-get 有一些类似的命令选项,但它并不能完全向下兼容 apt-get 命令,也即可用 apt 替换部分 apt-get 系列命令,但不是全部.
APT包索引配置文件:
1 2 /etc/apt/sources.list /etc/apt/sources.list.d
常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 apt list apt list --installed apt edit-sources apt search apache2 apt show apache2 apt-cache madison nginx apt install apache2 apt install nginx=1.14.0-0ubuntu1.6 apt remove apache2 apt purge apache2 apt autoremove apache2 apt update apt upgrade apt full-upgrade apt-file search 'string' apt-file search -x '正则表达式' apt-file search -F /path/file apt depends xxx apt-cache depends xxx apt rdepends xxx apt-cache rdepends xxx
安装常用软件包 ubuntu
1 2 3 4 5 apt install purge ufw lxd lxd-client lxcfs lxc-common apt install iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute gcc openssh-server lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute iotop unzip zip libevent-dev apt install procps apt install iputils-ping apt install net-tools
centos
1 2 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 autofs
rpm、dpkg包的基本查询和使用 rpm常用命令 RPM包默认安装路径: 通常情况下,RPM 包采用系统默认的安装路径,所有安装文件会按照类别分散安装到目录中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 /etc/ /usr/bin/ /usr/lib/ /usr/share/doc/ /usr/share/man/ rpm -Uvh 包全名 rpm -ivh xxx.rpm rpm -ivh xxx.rpm --force rpm -e 包全名 rpm -qa vsftpd rpm -qa |wc -l rpm -qa |grep vsft rpm -qi vsftpd rpm -ql vsftpd rpm -qc vsftpd rpm -q --scripts vsftpd rpm -qf /etc/issue
dpkg常用命令 注意:一般建议不要使用dpkg卸载软件包。因为删除包时,其它依赖它的包不会卸载,并且可能无法再正常运行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 dpkg -i package.deb dpkg -r package dpkg -P package dpkg -l dpkg -I package.deb dpkg -s package dpkg -L package dpkg -S <pattern> dpkg --configure package dpkg -c package.deb dpkg --unpack package.deb
配置sshd root远程登陆 默认情况下,ubuntu不允许root⽤⼾远程ssh,如果有实际场景需要允许 root⽤⼾远程ssh,则需要设置root密码,并且编辑/etc/ssh/sshd_config ⽂件(注意,不是/etc/ssh/ssh_config文件)修改如下 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 vim /etc/ssh/sshd_config 32 33 PermitRootLogin yes 57 58 PasswordAuthentication yes su - root passwd root systemctl restart sshd sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config; sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config; systemctl restart sshd
修改网卡名称为eth0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 sudo vim /etc/default/grub GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US" grub-mkconfig -o /boot/grub/grub.cfg grub2-mkconfig -o /boot/grub2/grub.cfg sudo update-grub reboot cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-eth0vim /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=static IPADDR=10.0.0.181 PREFIX=24 DNS=10.0.0.1 GATEWAY=10.0.0.1 DEFROUTE=yes NAME=eth0 DEVICE=eth0 ONBOOT=yes systemctl restart network vim /etc/netplan/01-netcfg.yaml network: ethernets: eth0: addresses: [10.0.0.182/24] dhcp4: no optional: true gateway4: 10.0.0.1 nameservers: addresses: [180.76.76.76,223.5.5.5 ] version: 2 renderer: networkd sudo netplan apply
查看和关闭防火墙 1 2 3 4 5 6 7 systemctl stop firewalld systemctl disable --now firewalld systemctl status firewalld sudo ufw disable && sudo ufw status
查看和关闭Selinux 1 2 3 4 5 6 7 8 9 10 11 12 13 sudo systemctl status apparmor sudo systemctl stop apparmor sudo systemctl disable apparmor sestatus cat /etc/selinux/configsetenforce 0 sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
查看和关闭swap分区 1 2 3 4 5 6 7 8 9 swapoff -a vim /etc/fstab /dev/mapper/rl-root / xfs defaults 0 0 UUID=e309bcf8-7056-4f7d-961a-3e6c8b1e2c48 /boot xfs defaults 0 0 UUID=D330-01CD /boot/efi vfat umask =0077,shortname=winnt 0 2 /dev/mapper/rl-home /home xfs defaults 0 0
配置系统服务systemd systemd(是的,全小写,即使在句子开头也是小写),是初始化程序(init)和 SystemV 初始化脚本的现代替代者。
像 init 一样,systemd 是所有进程之母,它负责使 Linux 主机启动到可以做生产性任务的状态。systemd 设定的一些功能比老的初始化程序要广泛得多,它要管理正在运行的 Linux 主机的许多方面,包括挂载文件系统、管理硬件、处理定时器以及启动和管理生产性主机所需的系统服务。
centos6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 service [服务] start service [服务] stop service [服务] restart service [服务] status chkconfig [服务] on chkconfig [服务] off chkconfig --add name chkconfig --del name chkconfig --list [name] chkconfig --level 2345 httpd on
centos7/8、ubuntu 可能是史上最全面易懂的 Systemd 服务管理教程!( 强烈建议收藏 )-腾讯云开发者社区-腾讯云 (tencent.com)
常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 /etc/systemd/system:系统或用户自定义的配置文件 Ubuntu: Unit文件指向该目录 /run/systemd/system:软件运行时生成的配置文件 /usr/lib/systemd/system:系统或第三方软件安装时添加的配置文件。 CentOS 7/8:Unit 文件指向该目录 systemctl daemon-reload systemctl enable docker systemctl status docker systemctl start docker systemctl enable --now docker systemctl disable docker systemctl is-enabled docker systemctl cat docker.service systemctl -H root@rhel7.example.com status httpd.service systemctl list-units --type =service --state=running systemctl list-units --type =service --state=active
target启动管理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 systemctl list-unit-files --type =target systemctl list-units --type =target systemctl list-dependencies multi-user.target systemctl get-default systemctl set-default multi-user.target systemctl set-default graphical.target systemctl isolate multi-user.target systemctl isolate graphical.target
systemctl: 用于检查和控制各种系统服务和资源的状态
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 systemctl reboot systemctl poweroff systemctl suspend systemctl hibernate systemctl hybrid-sleep systemctl rescue systemctl emergency
systemd-analyze: 显示此次系统启动时运行每个服务所消耗的时间,可以用于分析系统启动过程中的性能瓶颈
1 2 3 4 5 6 7 8 9 10 11 systemd-analyze systemd-analyze blame systemd-analyze critical-chain systemd-analyze critical-chain atd.service
hostnamectl: 查看和修改系统的主机名和主机信息
1 2 3 4 5 hostnamectl hostnamectl set-hostname rhel7
timedatectl: 用于查看和管理系统的时间和时区信息
1 2 3 4 5 6 7 8 9 10 11 timedatectl timedatectl list-timezones timedatectl set-timezone America/New_York timedatectl set-timezone Asia/Shanghai timedatectl set-time YYYY-MM-DD timedatectl set-time HH:MM:SS
loginctl: 用于管理系统已登录用户和 Session 的信息
1 2 3 4 5 6 7 8 loginctl list-sessions loginctl list-users loginctl show-user ruanyf
systemd-ask-password: 辅助性工具,用星号屏蔽用户的任意输入,然后返回实际输入的内容
1 2 PASSWORD=$(systemd-ask-password "Input Your Passowrd:" ) systemd-detect-virt
systemd-detect-virt:显示主机的虚拟化类型
systemd-run: 用于将任意指定的命令包装成一个临时的后台服务运行
systemd-run 中文手册 金步国
systemd-run 可以将一个指定的操作变成后台运行的服务。它的效果似乎与直接在命令后加上表示后台运行的 & 符号很相似。然而,它让命令成为服务还意味着,它的生命周期将由 Systemd 控制。具体来说,包括以下好处:
服务的生命击期由 Systemd 接管,不会随着启动它的控制台关闭而结束
可以通过 systemctl 工具管理服务的状态
可以通过 journalctl 工具查看和管理服务的日志信息
可以通过 Systemd 提供的方法限制服务的 CPU、内存、磁盘 IO 等系统资源的使用情况。
systemd unit配置文件 [systemd.index 中文手册 ]https://www.jinbuguo.com/systemd/systemd.index.htm
unit部分: systemd.unit 中文手册
service部分: systemd.service
如何杀死进程: systemd.kill 中文手册
进程环境变量: systemd.exec 中文手册
常见service unit文件示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 vi /usr/lib/systemd/system/prometheus.service [Unit] Description=Prometheus server daemon After=network.target [Service] Type=simple User=prometheus Group=prometheus KillMode=process Restart=on-failure ExecStart=/usr/local/prometheus/prometheus --config.file "/usr/local/prometheus/prometheus.yml" --web.listen-address "0.0.0.0:9090" --storage.tsdb.retention.time=60d ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
service unit文件说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 vim /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service time-set.target Wants=network-online.target [Service] Type=notify ExecStart=/usr/local/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID TimeoutStartSec=0 RestartSec=2 Restart=always StartLimitBurst=3 StartLimitInterval=60s LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TasksMax=infinity Delegate=yes KillMode=process OOMScoreAdjust=-500 [Install] WantedBy=multi-user.target 进程环境变量: * $PATH :可执行文件的目录列表(冒号分隔的绝对路径), 此值固定为 `/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin` * $LANG :本地化设置。可以通过 locale.conf(5) 文件设置 * $USER , $LOGNAME , $HOME , $SHELL :用户名, 用户名, 家目录, 登录shell * $MAINPID :单元主进程的PID (如果能确定的话)
日志管理工具 journalctl [journalctl 中文手册 金步国] (jinbuguo.com)
1 概述
journalctl是ubuntu/centos7及以上专有的日志管理工具,该工具是从message这个文件里读取信息。Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件是/etc/systemd/journald.conf
2 journalctl 使用方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 journalctl journalctl -k journalctl -b journalctl -b -0 vim /etc/systemd/journald.conf [Journal] Storage=persistent systemctl restart systemd-journald journalctl -b -1 journalctl --since yesterday journalctl --since "2023-08-9 20:00:00" --until "2023-08-10 13:00" journalctl --since "12:00" --until now journalctl -n journalctl -n 20 journalctl -f journalctl /usr/lib/systemd/systemd journalctl _PID=1 journalctl /usr/bin/dbus-daemon journalctl /usr/bin/bash journalctl _UID=33 --since today journalctl -u nginx.service journalctl -u nginx.service --since today journalctl -u nginx.service -f journalctl -u nginx.service -u php-fpm.service --since today 0: emerg 1: alert 2: crit 3: err 4: warning 5: notice 6: info 7: debug journalctl -p err -b journalctl -b -u httpd.service -o json journalctl -b -u httpd.service -o json-pretty journalctl --disk-usage journalctl --vacuum-size=1G journalctl --vacuum-time=1years
生成随机字符 1 2 3 4 openssl rand -base64 8 echo $RANDOM cat /dev/urandom |tr -dc '[:alnum:]' |head -c12 echo $RANDOM 12345|tr -d ' '
时间同步 搭建chrony时间同步服务器(局域网同步时间) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 yum install chrony -y cat > /etc/chrony.conf << EOF pool ntp.aliyun.com iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync allow 192.168.0.0/24 local stratum 10 keyfile /etc/chrony.keys leapsectz right/UTC logdir /var/log/chrony EOF systemctl restart chronyd ; systemctl enable chronyd yum install chrony -y cat > /etc/chrony.conf << EOF pool 192.168.0.31 iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync keyfile /etc/chrony.keys leapsectz right/UTC logdir /var/log/chrony EOF systemctl restart chronyd ; systemctl enable chronyd chronyc sources -v
设置时间和时区 设置时间
设置时区
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 timedatectl timedatectl list-timezones timedatectl set-timezone America/New_York timedatectl set-timezone Asia/Shanghai timedatectl set-time YYYY-MM-DD timedatectl set-time HH:MM:SS ls /usr/share/zoneinfo/Asia/ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimehwclock -w timedatectl status
优化内核参数
LVM磁盘分区