Skip to content

CentOS入坑指南

方跃明 2019-05-09

一入 CentOS 深似海,从此再也爬不出来。

基本命令

若没有命令行基础,操作 Linux 将寸步难行。 最好的学习命令的方法是使用--help参数查看在线帮助。

命令说明
help系统帮助
ls --helpls命令的系统帮助
ls -la格式化列出当前目录下所有文件(含隐藏文件)
`lsgrep 'user'`
llls -l,通常情况下ll是Linux的一个别名,使用频繁的命令建议定义别名
find -name 'user'查找当前目录及子目录含有user的文件和目录
grep 'user' file查找file文件包含user的内容
cd ~切换到用户主目录
mkdir dir在当前目录下新建dir目录
rm file删除当前目录下的file文件
rm -rf dir强制删除dir目录且不提示(传说中的从删库到跑路
cp file1 file2将文件file1复制到file2
cp -r dir1 dir2将目录dir1复制到dir2
mv file1 file2将file1重命名为file2;若file2是已存在目录,则将file1移动到file2目录下
ln -s file link创建file的符号连接link
cat >> file <<EOF将标准输入写入file并创建(换行输入EOF结束)
`cat filemore`
ps显示当前活动进程
kill pid杀掉id为pid的进程
chmod -R 755 web将web目录及子目录设置读写权限为755
tar -zxf file.tar.gz -C ~将file.tar.gz解压到用户主目录
df显示磁盘占用情况
free显示内存及交换器占用情况
rpm -ivh file.rpm全新安装file.rpm
./configure && make && make install编译源码并安装
ping host查询到host主机的网络连接情况
wget url-to-file/file下载url-to-file/file到当前目录
exit注销当前会话

网络配置

一般情况下,Linux安装完成后第一项任务是将其联网。

shell
# 默认情况第一张网卡为ifcfg-eth0,不排除被命名成其他名称的可能
# 一般情况下只需要指定IPADDR、NETMASK、GATEWAY和DNS1、DNS2即可
vi /etc/sysconfig/network-scripts/ifcfg-eth0
ini
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.20.25
NETMASK=255.255.252.0
GATEWAY=192.168.20.1
DNS1=8.8.8.8
DNS2=8.8.4.4
NETWORK=192.168.20.0
BROADCAST=192.168.23.255
DEFROUTE=yes
PEERDNS=no
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=5b0a7d76-1602-4e19-aee6-29f57618ca01
ONBOOT=no
shell
vi /etc/resolv.conf       # 配置DNS
ini
# /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8
shell
service network restart     # 重启网络服务使其生效
参数可选值说明
DEVICEname设备名称通常是eth0
BOOTPROTOprotoproto为none、static、dhcp、bootp,IP分配协议
IPADDRaddrIP地址
NETMASKmask子网掩码
GATEWAYaddr网关地址
DNS1dnsDNS1服务器IP
DNS2dnsDNS2服务器IP
NETWORKaddr所属网络
BROADCASTaddr广播地址
HWADDRmacMAC地址
ONBOOTansweranswer为yes或no,是否系统启动时激活连接
USERCTLansweranswer为yes或no,非root用户是否可以控制该设备
PEERDNSansweranswer为yes或no,是否重写/etc/resolv.conf

安装EPEL和net-tools

EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Fedora. CentOS最小安装默认不带基本的网络命令,需要手动安装net-tools。

shell
yum install epel-release
yum install net-tools

开启SSH

Linux主机一般通过SSH来远程管理

shell
# 除非自定义取消,CentOS默认安装包含了OpenSSH Server
yum list installed | grep openssh-server
# 若此处没有openssh-server信息,请务必安装
yum install openssh-server

防火墙firewalld

CentOS 7 使用新的防火墙系统firewalld,大多数服务需要开启防火墙端口才能被正确访问。

shell
## 开启80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent  # success
firewall-cmd --reload
参数解释
--zone作用域
--add-port=80/tcp添加端口,格式为:端口/通讯协议
--permanent永久生效,没有此参数重启后失效
shell
## 常用服务
systemctl start   firewalld   # 启动
systemctl stop    firewalld   # 停止
systemctl restart firewalld   # 重启
systemctl status  firewalld   # 状态
systemctl disable firewalld   # 禁用
shell
## 常用配置
firewall-cmd --version                            # 查看版本
firewall-cmd --help                               # 查看帮助
firewall-cmd --state                              # 状态
firewall-cmd --reload                             # 更新防火墙规则
firewall-cmd --complete-reload                    # 更新防火墙规则(断开连接)
firewall-cmd --panic-on                           # 拒绝所有包
firewall-cmd --panic-off                          # 取消拒绝状态
firewall-cmd --query-panic                        # 查看是否拒绝
firewall-cmd --get-active-zones                   # 查看区域信息
firewall-cmd --set-default-zone=public            # 设置默认区域
firewall-cmd --get-zone-of-interface=eth0         # 查看指定接口所属区域
firewall-cmd --zone=dmz --list-ports              # 查看所有打开的端口
firewall-cmd --zone=public --add-interface=eth0   # 指定区域加入接口
firewall-cmd --zone=dmz --add-port=8080/tcp       # 加入一个端口到区域
firewall-cmd --zone=work --add-service=smtp       # 添加一个服务
firewall-cmd --zone=work --remove-service=smtp    # 移除一个服务

配置SELinux

很多应用需要禁用SELinux才能正常运行,配置文件位于/etc/sysconfig/selinux, 修改配置后重启系统生效,设置为SELINUX=disabled关闭。

ini
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=disabled

# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted
shell
getenforce      # 查询状态
# disabled
setenforce 0    # 临时设置
# setenforce 1 设置SELinux 成为enforcing模式
# setenforce 0 设置SELinux 成为permissive模式

查看系统信息

shell
rpm -ql nginx                 # 查看nginx软件包的安装位置
rpm -qa                       # 查看所有安装的软件包
uname -a                      # 查看内核/操作系统/CPU信息的linux系统信息命令
head -n 1 /etc/issue          # 查看操作系统版本,是数字1不是字母L
cat /proc/cpuinfo             # 查看CPU信息的linux系统信息命令
hostname                      # 查看计算机名的linux系统信息命令
lspci -tv                     # 列出所有PCI设备
lsusb -tv                     # 列出所有USB设备的linux系统信息命令
lsmod                         # 列出加载的内核模块
env                           # 查看环境变量资源
free -m                       # 查看内存使用量和交换区使用量
df -h                         # 查看各分区使用情况
du -sh                        # 查看指定目录的大小
grep MemTotal /proc/meminfo   # 查看内存总量
grep MemFree /proc/meminfo    # 查看空闲内存量
uptime                        # 查看系统运行时间、用户数、负载
cat /proc/loadavg             # 查看系统负载磁盘和分区
mount | column -t             # 查看挂接的分区状态
fdisk -l                      # 查看所有分区
swapon -s                     # 查看所有交换分区
hdparm -i /dev/hda            # 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE              # 查看启动时IDE设备检测状况网络
ifconfig                      # 查看所有网络接口的属性
iptables -L                   # 查看防火墙设置
route -n                      # 查看路由表
netstat -lntp                 # 查看所有监听端口
netstat -antp                 # 查看所有已经建立的连接
netstat -s                    # 查看网络统计信息进程
ps -ef                        # 查看所有进程
top                           # 实时显示进程状态用户
w                             # 查看活动用户
id                            # 查看指定用户信息
last                          # 查看用户登录日志
cut -d: -f1 /etc/passwd       # 查看系统所有用户
cut -d: -f1 /etc/group        # 查看系统所有组
crontab -l                    # 查看当前用户的计划任务服务
chkconfig –list               # 列出所有系统服务
chkconfig –list | grep on     # 列出所有启动的系统服务程序
cat /proc/cpuinfo             # 查看CPU相关参数的linux系统命令
cat /proc/partitions          # 查看linux硬盘和分区信息的系统信息命令
cat /proc/meminfo             # 查看linux系统内存信息的linux系统命令
cat /proc/version             # 查看版本,类似uname -r
cat /proc/ioports             # 查看设备io端口
cat /proc/interrupts          # 查看中断
cat /proc/pci                 # 查看pci设备的信息
cat /proc/swaps               # 查看所有swap分区的信息
CentOS
Linux