CentOS笔记
1. 初次使用
CentOS Linux 发行版是一个稳定、可预测、可管理和可重现的平台,源自 Red Hat Enterprise Linux (RHEL) 的源代码。CentOS项目是一个社区驱动的自由软件项目,其目标是为开源社区提供一个丰富的基础平台以供其构建。
在初次使用CentOS时,有些寇墨觉得有些意思的命令和技巧,便记录到本手册里了,如果有任何疑问欢迎联系我~
1.1 远程连接
允许root远程登陆
vim /etc/ssh/sshd_config
修改
# 取消注释
ListenAddress 0.0.0.0
ListenAddress ::
# 允许root登录
PermitRootLogin yes
# 允许密码登录
PasswordAuthention yes
问题
Q1: 出现拒绝 转发X11 请求的警告

yum install xorg-x11-xauth -y
解决:
- 首先需要了解
X11 forwarding的作用
X11转发是TCP/IP端口转发服务的特殊情况,可以轻松的搞定==端口转发设置 ??==,为操作带来很多便利
X11协议由PC X Server (服务器端)软件使用,从==远程主机==到用户PC建立连接,可以说是与电子邮件或Telnet等的其他客户端程序相反的情况。利用X11转发功能,无需进行复杂的端口转发设置,通过安全的加密隧道在用户PC上使用远程的X11 应用程序。
- 安装

1.2 高亮显示
通过修改``PS1`环境变量就可以实现修改 CentOS 命令行用户和@主机 的颜色.
使用vim进入.bashrc,添加一行设置PS1的代码:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;33;1m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
# 使用[]将关键词包围起来
PS1='[${debian_chroot:+($debian_chroot)}\[\033[01;33;1m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]]\$ '
效果:

常用的:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[00m\]@\h: \[\033[01;36m\]\w\[\033[00m\] \[\t\]\n\$ '
PS1='[${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[00m\]@\[\033[01;31m\]\h: \[\033[01;36m\]\W\[\033[00m\] ]\$ '
一个单独的颜色设置: [\033[代码;前景;背景m],
如:
[\033[1;32;40m] 表示高亮显示字体为绿色,背景色为黑色。 下面来说说配色的过程:
前景 背景 颜色 30 40 黑色 31 41 紅色 32 42 綠色 33 43 黃色 34 44 藍色 35 45 紫紅色 36 46 青藍色 37 47 白色
代码 意义 0 OFF 1 高亮显示 4 underline 5 闪烁 7 反白显示 8 不可见
PS1的常用参数
- /w: 显示完整的当前路径
- /W: 只显示最后一个目录名
- /$: root用户: 提示符显示#; 普通用户:提示符显示为$
1.3 修改主机名
hostnamectl set-hostname xxx

2. 用户管理
2.1 登录权限
1、禁止个别用户登录。比如禁止 user 用户登录。
passwd -l user 这就话的意思是锁定user用户,这样该用户就不能登录了。
passwd -u user 对锁定的用户user进行解锁,用户可登录了。
2、通过修改 /etc/passwd 文件中用户登录的shell
vim /etc/passwd 找到user这个用户(或者是你选定的用户)
user:500:500::/home/lynn:/bin/bash 更改为:
lynn
500:500::/home/lynn:/sbin/nologin
/bin/false是最严格的禁止login选项,一切服务都不能用。
/sbin/nologin只是不允许login系统,但可以使用其他ftp等服务。
3、禁止所有用户登录。
touch /etc/nologin
除root以外的用户不能登录了。
创建用户:useradd [选项] 用户名 -c comment 指定一段注释性描述。 -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 -g 用户组 指定用户所属的用户组。 -G 用户组,用户组 指定用户所属的附加组。 -s Shell文件 指定用户的登录Shell。 -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。 例:useradd -s /bin/sh -d /home/tuw -m tuw
创建一个用户名为tuw,用户主目录在/home/tuw,登录Shell为/bin/sh 。可以不指定用户目录与登录shell,直接用useradd 用户名创建用户。
设置用户密码:passwd 用户名
例:passwd tuw
回车后输入密码,密码需要重复输入一次。
允许远程登录:修改/etc/ssh/ssh_config 文件,在最下面添加AllowUsers root 用户名。之后使用命令systemctl restart sshd重启服务。
例:AllowUsers root tuw。就是允许root、tuw用户远程连接
之后就可以用终端使用该用户登录CentOS了。但是,这样创建的用户无法使用sudo,一些命令就没有权限执行。
2.2 root权限
允许用户使用sudo
授予sudoers文件权限:chmod u+w /etc/sudoers
然后在
root ALL=(ALL) ALL
下面添加:用户名 ALL=(ALL) NOPASSWD: ALL 如:tuw ALL=(ALL) NOPASSWD: ALL
四种格式:
username ALL=(ALL) ALL 用户使用sudo需要输入密码
%username ALL=(ALL) ALL 用户组使用sudo需要输入密码
username ALL=(ALL) NOPASSWD: ALL 用户使用sudo不需要输入密码
%username ALL=(ALL) NOPASSWD: ALL 用户组使用sudo不需要输入密码
移除sudoers文件权限:chmod u-w /etc/sudoers
2.3 文件权限
2.3.1 文件权限管理
命令 chmod可以修改文件权限, 并提供了两种修改文件的方式
二进制数字
r是read, w是write, x是excute
-
rwx ====> 111 ====> 7
可读、可写、可执行
-
rw- ====> 110 ====> 6
可读写,不可执行
-
r-x ====> 101 ====> 5
可读、可执行,不可写
-
r– ====> 100 ====> 4
仅可读
chmod [-R] 755 文件或目录
# 将指定的文件或目录设置为:
# 文件或目录的所有者 ===> 可读、可写、可执行
# 文件或目录的非所有者 ===> 可读、可执行、不可修改
符号类型
三类身份:
u: 文件的所有者
g: 文件的所有者的所在组
o: 其他人
a: 所有用户[u+g+o]
chmod u=rwx, go+w 文件或目录
# 将指定的文件或目录设置为:
2.3.2 文件所属管理
命令 chown和chgrp可以修改文件拥有者和所属用户组
3. 磁盘管理
3.1 概述
3.2 磁盘扩容
如果使用虚拟机: 在虚拟机管理下新增磁盘空间后,将空闲空间进行挂载,增加磁盘容量
参考: 粽先生https://www.cnblogs.com/straycats/p/11261365.html
3.1.1 确认硬盘空间:
# 查看文件系统的硬盘使用
df -h
# 查看硬盘数量和分区情况
fdisk -l
(默认情况下)当在虚拟机新增磁盘空间时, 会在 /dev/sda中可以体现, 但是属于未分配空间,需要对其进行分配
3.1.2 对未分配空间进行分区
# 进入fdisk交互式控制台, 进入后可以通过输入h查看帮助信息
fdisk /dev/sda
# 输入 n(新建分区) --> 输入p(或者直接回车) --> 一直选用默认
# 输入 t(设置分区号) --> 输入L(查看所有代码) --> 选择Linux LVM对应的选项
# 输入 w(保存修改并推出)
重启虚拟机后,再查看新的分区情况(可以看到在上一步中新增的分区)
fdisk -l
3.1.3 对目标分区扩容
# 创建物理卷
pvcreate /dev/sda3
# 添加物理卷到(centos)
vgextend centos /dev/sda3
# 查看卷组的属性, 能够看到新增的空闲空间
vgdisplay
# 将所有空闲空间分配到root文件系统(此处看需求)
# 在这一步时, 有可能会出现卡顿,可以再重启一次执行试试
lvextend -i +100%FREE /dev/mapper/centos-root
# 对root文件系统执行扩容
xfs_growfs /dev/mapper/centos-root
# 查看扩容之后的文件系统的银盘使用
df -h
4. 网络管理
4.1 防火墙管理
4.1.1 firewalld的基本使用
启动: systemctl start firewalld
查看状态: systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
4.1.2 服务管理
systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service 关闭一个服务:systemctl stop firewalld.service 重启一个服务:systemctl restart firewalld.service 显示一个服务的状态:systemctl status firewalld.service 在开机时启用一个服务:systemctl enable firewalld.service 在开机时禁用一个服务:systemctl disable firewalld.service 查看服务是否开机启动:systemctl is-enabled firewalld.service 查看已启动的服务列表:systemctl list-unit-files|grep enabled 查看启动失败的服务列表:systemctl –failed
4.1.3 firewalld-cmd命令
查看版本: firewall-cmd –version
查看帮助: firewall-cmd –help
显示状态: firewall-cmd –state
查看所有打开的端口: firewall-cmd –zone=public –list-ports
更新防火墙规则: firewall-cmd –reload
查看区域信息: firewall-cmd –get-active-zones
查看指定接口所属区域: firewall-cmd –get-zone-of-interface=eth0
拒绝所有包:firewall-cmd –panic-on
取消拒绝状态: firewall-cmd –panic-off
查看是否拒绝: firewall-cmd –query-panic
添加端口
firewall-cmd –zone=public –add-port=80/tcp –permanent (–permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd –reload
查看
firewall-cmd –zone= public –query-port=80/tcp
删除
firewall-cmd –zone= public –remove-port=80/tcp –permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=6443/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --query-port=80/tcp
firewall-cmd --zone=public --query-port=6443/tcp
firewall-cmd --list-ports
4.2 修改网卡

修改:
vi /etc/sysconfig/network-scripts/ifcfg-enp0s8




6. 常见问题整理
6.1 yum 更新失败
提示: yum cannot find a valid baseurl for repo
网络问题或者源问题
如果无法连接网络, 仅使用内网,需要将指定的源禁用掉!
在CentOS7下, 通过下列命令将对应的repo禁用掉!
yum-config-manager --disable [repo id]
# 注意在这里repo id不需要全写, 全写有问题, 说明如下
可以通过yum repolist查看当前启用的源,例如:
yum repolist
repo id repo name status
base/7/x86_64 CentOS-7 - Base 0
update/7/x86_64 CentOS-7 - Updates 0
如果需要将base/7/x86_64禁用的话, 仅需要使用如下命令即可:
yum-config-manager --disable base
如果需要将base/7/x86_64以及update/7/x86_64同时禁用 ,格式如下
yum-config-manager --disable base update
6.2 换源
备份
mv /etc/yum.repos.d/ /data/backup
选择合适的源
aliyun
下载
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 如果没有wget, 可以使用curl命令
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
北邮
https://mirrors.bupt.edu.cn/help/centos/
选择自己的版本
vim CentOS-Base.repo
# 将对应版本的内容复制过来即可
cat << EOF > CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.bupt.edu.cn/centos/$releasever/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=https://mirrors.bupt.edu.cn/centos/$releasever/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.bupt.edu.cn/centos/$releasever/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://mirrors.bupt.edu.cn/centos/$releasever/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7
EOF
清空缓存
yum clean all
生成缓存
yum makecache
6.3 Virtual Box安装虚拟机
安装Vitrual Box,下载ios镜像
后台运行VirtualBox虚拟机
运行一个VirtualBox虚拟机最常见的方式是:
- 打开VirtualBox
- 点击对应的虚拟机来运行
使用这种传统方式运行的虚拟机通常都有一个前台界面,可以像操作本地电脑一样进行操作。但是Linuxer有时候更喜欢通过终端远程接入,而不是在虚拟机界面里点点画画。好在VirtualBox提供了这样一种后台运行虚拟机的方式,如下:
- 打开windows命令行cmd
- 进入到VirtualBox的安装目录,执行命令:VBoxManage.exe list vms 这时候可以看到当前已经安装的虚拟机名称和uuid
- 执行命令:VBoxManage.exe startvm “xxxxxxxxxx” –type headless xxxxxxxxxx表示的是要启动的虚拟机的名称,headless表示不显示界面。
参考: https://blog.csdn.net/liu_shi_jun/article/details/78300818
6.4 Xshell连接VirtualBox虚拟机
7. 参考及记录
7.1 命令手册
鸟哥Linux命令大全: https://man.niaoge.com/
Linux命令大全: https://www.linuxcool.com/