Linux基础
本文摘要: 本文系统介绍了Linux系统管理与网络服务配置的关键操作,主要包括:1) 基础文件/目录操作命令(pwd/cd/ls/mkdir等);2) 用户/组管理(useradd/passwd/usermod等);3) 磁盘管理(RAID5创建/分区管理);4) 网络服务配置(NFS/DHCP/DNS);5) Web服务搭建(个人站点/虚拟主机/HTTPS)。详细说明了各服务的配置步骤,包括权限

网络配置文件夹 /etc/sysconfig/network-scripts/ifcfg-eth0
Linux常见命令
-
passwd 用于更改账号密码
-
pwd 查看当前目录位置
-
cd 用来切换目录
cd 回到家目录
cd / 回到根目录
cd .. 返回父目录
-
ls 列出文件或目录信息
参数:
-a查看当前目录下的所有目录和文件(包括隐藏的文件)
-l列表查看当前目录下的所有目录和文件(列表查看,显示更多信息),与命令"ll"效果一样
-
cat 文件名 用于查看文件内容
-
mkdir 文件夹名 / 目录1/目录2/文件夹名 //创建一个或多个目录
-
touch 文件名 //创建普通文件
-
cp 源文件 目的文件 //复制文件或目录
例如:
cp file1 file2 将文件复制成file2,如果file2存在为目录则文件复制到file2目录下
cp -r file1 file2 复制整个目录为file2
-
mv 源文件 目的文件 //移动或更改文件和目录的名称
参数:-r删除包含当前目录的所有子目录 -f删除文件或目录不提示
用户账号管理
-
查看用户配置文件cat /etc/passwd
root : x : 0 : 0 : root: /root: /bin/bash 用户名 : 口令 : 用户标识号 : 组标识号 : 注释性描述 : 主目录 : 默认shell -
查看用户口令文件cat /etc/shadow
root : PTrw1TJDNijAOk1 :17833 : 0 : 99999 : 7 : : : 用户名 : 加密口令 : 最后一次修改时间 : 最小时间间隔 : 最大时间间隔 : 警告时间 : 不活动时间 : 失效时间 : 保留字段 -
查看用户组配置文件 cat /ect/group
root : x : 0 : 组名 : 口令 : 组标识号 : 组内用户列表 -
添加用户useradd 参数 用户

-
例如:Useradd -s /bin/sh -g group -G abc,root q2注意:前提需要有这个组,没有这个组就无法将用户属于这个组
-
删除用户 userdel 参数 用户名
参数:
-r 强制删除
-f 同时删除用户及用户目录
-
修改用户usermod 选项 用户名
常用的选项包括
-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值usermod -s /bin/ksh -d /home/z –g developer sam 此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer -
设置或修改用户口令Passwd 参数 用户名

- 切换用户身份su – 用户名
注意:如果加-则使用新用户的环境变量,不加用户名默认使用root用户
组账号管理
-
创建用户组groupadd 参数 用户名
参数:-g 用指定的GID号创建用户 -
修改用户组groupmod 参数 用户名
参数 -n修改用户组名 例如 groupmod -n 新用户名 原用户名 -g 修改用户主的GID 例如 groupmod -g 新GID 用户名 -
groupdel 用户名 删除用户组
例如: groupdel group1 -
用户组的用户管理gpasswd 参数 用户名 组名
参数 -a 添加用户到组 -d删除用户到组
文件权限
-
文件权限字符和数字表示
r: 可读(4), w: 可写(2), x: 可执行(1)
-
chmod [-R] xyz 文件或目录
选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx属性数值的相加。
-R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更
实现挂载换源及关闭selinux
前提:确保虚拟机的CD/DVD已经选择了光盘ISO镜像文件,并且勾上了已连接和启动时连接。
mkdir /mnt/cdrom //创建/mnt/cdrom文件夹
mount /dev/cdrom /mnt/cdrom //将光盘挂载到/mnt/cdrom
cd /etc/yum.repos.d //进入/etc/yum.repos.d目录下
mkdir old //将旧的repo放到其他目录下
mv *.* old
vi CentOS-Media.repo //创建CentOS-Media.repo文件
输入i进入编辑模式,复制以下代码
[CentOS7]
name=CentOS
baseurl=file:///mnt/cdrom/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7.
-----关闭selinux实现对文件系统的控制-------
vi /etc/selinux/config
将 enforcing修改为disabled后重启系统实现永久生效
reboot now
通过mdadm创建raid5
前提:在虚拟机设备上添加4块硬盘
补充:
- raid0:负载均衡模式,速度和容量翻倍,但是不具有冗余性,最少需要2块磁盘
- raid1:镜像模式,速度和容量不变,但是具有很强的冗余性,最少需要2块磁盘
- raid5:校验模式,速度和容量均有提升,具有较好的冗余性,最少需要3块磁盘
- raid需要硬件或者软件的支持,在绝大部分情况下,服务器本身会配置raid卡(磁盘阵列卡)
- 硬件raid:直接从底层进行raid,可以直接在阵列上装系统存数据
- 软件raid:raid不能存在于系统分区上,只能在操作系统安装好后,应用在新添加的硬盘上,性能相比硬件raid会有较大的损失
注意:在创建raid后,raid内的所有硬盘将会被清空
yum install mdadm //下载mdadm
fdisk -l //在硬盘添加完成时查看硬盘状态
mdadm -Cv /dev/md0 -l5 -n3 /dev/sd[bcd] -x1 /dev/sde
//使用mdadm创建raid5其中C表示创建,v表示显示详细信息,l5表示raid5,n3表示使用3块盘创建raid,x1表示一块热备盘
cat /proc/mdstat //查看创建进度
mdadm -D /dev/md0 //查看raid详细信息
mkfs/xfs /dev/md0 //格式化raid 为ext4文件系统
mkdir /raid //创建用于挂载raid的文件夹
vi /ect/fstab //编辑分区表
/dev/md0 /raid xfs defaults 0 0 //在末尾添加以下一行以实现自动挂载
重启后使用mount命令或df- H查看是否有/dev/md0的挂载
模拟磁盘损坏的情况:
mdadm /dev/md0 --fail /dev/sdb //设置sdb为损坏状态
mdadm /dev/md0 --remove /dev/sdb //从raid中移除sdb
mdadm -D /dev/md0 //查看raid状态,可以看到sde热备盘自动接替了被移除的sdb
磁盘分区管理
-
df 检查文件系统的磁盘空间占用情况
df [-ahikHTm] [目录或文件名] 选项与参数: -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统; -k :以 KBytes 的容量显示各文件系统; -m :以 MBytes 的容量显示各文件系统; -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示; -H :以 M=1000K 取代 M=1024K 的进位方式; -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出; -i :不用硬盘容量,而以 inode 的数量来显示 -
fdisk 是 Linux 的磁盘分区表操作工具。
fdisk [-l] 装置名称 fdisk /dev/sda //对第一快磁盘进行分区 参数: m :显示菜单和帮助信息 a :活动分区标记/引导分区 d :删除分区 l :显示分区类型 n :新建分区 p :显示分区信息 q :退出不保存 t :设置分区号 v :进行分区检查 w :保存修改 x :扩展应用,高级功能
NFS服务端的配置
服务器的配置
--步骤1:安装NFS软件包---------
yum -y install rpcbind nfs-utils nano
--步骤2:创建目录和测试文件---------
mkdir -p /mnt/{share,managerdata,upload,nfs}
touch /mnt/share/{share1.txt,share2.txt}
touch /mnt/managerdata/{data1.txt,data2.txt}
touch /mnt/upload/upload.txt
touch /mnt/nfs/{nfs1.txt,nfs2.txt}
- --步骤3:设置权限----------
useradd zhang
echo "123456" | passwd --stdin zhang
chmod 777 /mnt/share
chmod 700 /mnt/managerdata
chown -R zhang:zhang /mnt/managerdata
groupadd -g 123 nfsupload
useradd -g 123 -u 123 -M nfsupload
chown -R nfsupload:nfsupload /mnt/upload
- --步骤4:编辑exports文件---------
nano /etc/exports
输入以下内容:
/mnt/share 192.168.100.0/24(rw,no_root_squash)
/mnt/managerdata 192.168.100.10(rw)
/mnt/upload 192.168.100.0/24(rw,all_squash,anonuid=123,anongid=123)
/mnt/nfs 192.168.100.0/24(ro) *(rw,all_squash)
//ro:目录只读rw:目录读写
//all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
//no_all_squash:与all_squash取反(默认设置);
//root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
//no_root_squash:与rootsquash取反;
- --步骤5:关闭selinux,防火墙并重启服务---------
setenforce 0
systemctl stop firewalld
systemctl restart nfs
---步骤6:修改虚拟机nat模式下的DHCP网段为192.168.100.0/24网段--------
注意,修改完后虚拟机的ip地址就变成了192.168.100.0网段,需重新查看该ip并重新连接CRT
客户端的配置
--步骤1:安装NFS软件包---------
yum -y install rpcbind nfs-utils nano
--步骤2:查看服务器上的共享------
showmount -e 服务器ip
- --步骤3:在本机建立目录并挂载---------
mkdir /mnt/{ClientNFS,ClientUpload}
mount -t nfs 服务器IP:/mnt/nfs /mnt/ClientNFS
mount -t nfs 服务器IP:/mnt/upload /mnt/ClientUpload
- --步骤4:功能测试---------
ls /mnt/ClientNFS //如有nfs1,2两个文件代表成功
touch /mnt/ClientNFS/nfs3.txt //提示只读代表成功
touch /mnt/ClientUpload/updata1.txt
ll /mnt/ClientUpload //可以查看到updata1.txt代表成功
groupadd -g 123 nfsupload
useradd -g 123 -u 123 -M nfsupload
ll /mnt/ClientUpload //可以看到root用户创建的文件属性依然是nfsupload
DHCP配置
服务器设置
-
关闭当前网络中的DHCP服务,避免产生干扰
- 网络设备上的DHCP(没权限关),避开
- 虚拟机上的DHCP服务,关闭
-
克隆一台linux主机作为dhcp客户端
-
修改网卡设置静态获取IP vi /etc/sysconfig/network-scripts/ifcfg-ens33 //修改dhcp服务端的网卡配置
//新增以下内容 将bootprotocol改为static IPADDR=192.168.100.200 NETMASK=255.255.255.0 GATEWAY=192.168.100.254 -
systemctl restart network //重启网卡
-
yum install dhcp -y //安装dhcp服务
-
vi /etc/dhcp/dhcpd.conf //对配置文件进行配置
修改为: option domain-name-servers 114.114.114.114; [//设定所有作用域都使用114.114.114.114作为DNS](<https://xn--114-h69d9ft80c7kgbzo9ok5r9aca0940e9io.114.114.xn--114dns-yy7ij1f/>) ddns-update-style none;. subnet 192.168.100.0 netmask 255.255.255.0 { //作用域 range 192.168.100.3 192.168.100.100; //地址范围 option routers 192.168.100.254; //默认网关 } -
关闭防火墙并开启服务
systemctl stop firewalld systemctl start dhcpd systemctl enable dhcpd
客户机配置
-
在克隆机上做下静态ip配置,从而确保网络可达。配置完后克隆机ping dhcp服务器,可达才行
-
删除网卡上的静态ip的配置并重启网卡
-
重启网卡后查看ip
systemctl restart network、
ip addr
DNS配置
服务器配置
-
将服务器的IP地址配置为静态地址 vi /etc/sysconfig/network-scripts/ifcfg-ens33‘
IPADDR=192.168.100.200 NETMASK=255.255.255.0 GATEWAY=192.168.100.254 -
重启网卡
systemctl restart network
-
配置服务器端的DNS功能
yum install bind bind-utils -y
-
修改主配置文件
vi /etc/named.conf listen-on port 53 { any; }; //监听本机的所有网卡 allow-query { any; }; //允许所有客户端查询 倒数第二行加上 include "/etc/hbnamed.zones"; -
配置自定义域(全文)
vi /etc/hbnamed.zones
zone "[hbliti.com](<http://hbliti.com/>)" IN { type master; file "hbliti.com.files"; }; zone "100.168.192.in-addr.arpa" IN { type master; file "192.168.100.files"; }; -
编辑自定义域的配置文件 vi /var/named/hbliti.com.files
# 正向解析 $TTL 1D @ IN SOA [dns.hbliti.com](<http://dns.hbliti.com/>). [admin.hbliti.com](<http://admin.hbliti.com/>). ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ NS [dns.hbliti.com](<http://dns.hbliti.com/>). @ MX 5 [mail.hbliti.com](<http://mail.hbliti.com/>). @ A 192.168.100.200 dns A 192.168.100.200 www A 192.168.100.254 ftp A 192.168.100.253 data A 192.168.100.253 mail A 192.168.100.254 -
配置反向解析
vi /var/named/192.168.100.files
#配置反向解析 $TTL 1D @ IN SOA [dns.hbliti.com](<http://dns.hbliti.com/>). [admin.hbliti.com](<http://admin.hbliti.com/>). ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ NS [dns.hbliti.com](<http://dns.hbliti.com/>). 200 PTR [dns.hbliti.com](<http://dns.hbliti.com/>). 254 PTR [www.hbliti.com](<http://www.hbliti.com/>). 254 PTR [mail.hbliti.com](<http://mail.hbliti.com/>). 253 PTR [ftp.hbliti.com](<http://ftp.hbliti.com/>). 253 PTR [data.hbliti.com](<http://data.hbliti.com/>). -
启动服务,开机自启,防火墙
systemctl stop firewalld systemctl start named systemctl enable named
客户机测试
cat /etc/resolv.conf //查看dns配置
nslookup
www.hbliti.com //查询结果应该为192.168.100.200
set q=ptr
192.168.100.253 //查询结果应该为data.baidu.com
set q=mx //设置查询方式为邮件
hbliti.com //查询结果应该为mail.hbliti.com
配置个人web站点
1安装web服务软件httpd
前提:设置好本地更新源
yum install httpd nano -y
2创建用户jack,修改默认目录权限,创建网页
useradd jack
mkdir /home/jack/public_html
chown -R jack /home/jack
chmod 711 /home/jack
chmod 755 /home/jack/public_html
3创建网页文件index.html
echo "This is jack's website" > /home/jack/public_html/index.html
4编辑userdir.conf配置文件
vi /etc/httpd/conf.d/userdir.conf
1、在UserDir disabled前添加#号进行注释
2、去掉UserDir public_html前的#号从而启用该功能
3、将option后的参数改为None
<Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options None
Require method GET POST OPTIONS
5关闭selinux,防火墙并重启服务
systemctl stop firewalld
setenforce 0
systemctl restart httpd
6测试
在物理机上打开网址http://ip/~jack/
配置web服务虚拟目录
在服务器中创建名为myweb的虚拟目录,对应的物理目录是/user/web,并对外提供服务
1安装httpd网页服务
yum -y install httpd nano
2创建目录及网页文件
mkdir -p /user/web
echo "虚拟目录 demo" > /user/web/index.html
3修改httpd文件
nano /etc/httpd/conf/httpd.conf
使用ctrl+w可以启用搜索功能
1、找到<IfModule alias_module>段代码,添加以下内容:
Alias /myweb /user/web/
2、在这段代码后
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
添加以下代码:
<Directory "/user/web">
AllowOverride None
Options None
Require all granted
</Directory>
4关闭selinux,防火墙并重启服务
systemctl stop firewalld
setenforce 0
systemctl restart httpd
5测试
在物理机上打开网址http://ip/myweb
基于域名的虚拟主机
域名1: www1.abccc.com 步骤1服务器的地址
域名2: www2.abccc.com 步骤1服务器的地址
1 查看web服务器的IP地址
注意,此处服务器采用虚拟机软件DHCP分配的临时地址,非正规做法
ip addr
2安装web服务软件httpd、dns和nano
安装之前确保已经配置好了本地更新源的设置。
本地更新源笔记 1 本地更新源
yum install httpd bind bind-utils nano -y
3 配置服务器端的DNS功能
// 修改主配置文件
vi /etc/named.conf
listen-on port 53 { any; }; //监听本机的所有网卡
allow-query { any; }; //允许所有客户端查询
//配置自定义域(全文)
vi /etc/named.rfc1912.zones
zone "abccc.com" IN { //正解
type master;
file "named.localhost";
};
zone "xx.168.192.in-addr.arpa" IN { //根据服务器的网段来写反解
type master;
file "named.loopback";
};
//编辑自定义域的配置文件
正解(全文):
vi /var/named/named.localhost
$TTL 1D
@ IN SOA dns.abccc.com. admin.abccc.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns.abccc.com.
@ MX 5 mail.abccc.com.
@ A 服务器地址
dns A 服务器地址
www1 A 服务器地址
www2 A 服务器地址
//启动服务,开机自启,防火墙
systemctl stop firewalld
systemctl start named
systemctl enable named
4 创建网站目录及网页
mkdir -p /var/www/{web1,web2}
echo "This is web1 website" > /var/www/web1/index.html
echo "This is web2 website" > /var/www/web2/index.html
5 修改配置文件
//修改配置文件
vi /etc/httpd/conf/httpd.conf
在<VirtualHost>字段中添加以下代码
<VirtualHost 192.168.141.130> //注意这里的ip要修改
ServerAdmin root@baidu.com
DocumentRoot /var/www/web1
DirectoryIndex index.html
ServerName www1.abccc.com
</VirtualHost>
<VirtualHost 192.168.141.130> //注意这里的ip要修改
ServerAdmin root@baidu.com
DocumentRoot /var/www/web2
DirectoryIndex index.html
ServerName www2.abccc.com
</VirtualHost>
-----------------------------------
//关闭selinux并重启httpd服务
setenforce 0
systemctl restart httpd
systemctl stop firewalld
6 测试
在物理机上配置dns为服务器地址
打开浏览器,分别输入www1.abccc.com和www2.abccc.com
网页信息分别为This is web1 website和This is web2 website即代表成功
基于端口的虚拟主机
1 安装web服务软件httpd和nano
yum install httpd nano -y
2 创建网站目录及网页
mkdir -p /var/www/{8080,8081}
echo "This is port8080 website" > /var/www/8080/index.html
echo "This is port8081 website" > /var/www/8081/index.html
3 修改配置文件
//修改配置文件
nano /etc/httpd/conf/httpd.conf
//修改监听端口
Listen 8080
Listen 8081
//修改虚拟主机的配置
在<VirtualHost>字段中添加以下代码
<VirtualHost 192.168.141.130:8080> //注意这里的ip要修改
ServerAdmin root@baidu.com
DocumentRoot /var/www/8080
DirectoryIndex index.html
</VirtualHost>
<VirtualHost 192.168.141.130:8081> //注意这里的ip要修改
ServerAdmin root@baidu.com
DocumentRoot /var/www/8081
DirectoryIndex index.html
</VirtualHost>
-----------------------------------
//关闭selinux并启动httpd服务
setenforce 0
systemctl start httpd
systemctl stop firewalld
4 测试
打开浏览器,分别输入http://ip:8080和http://ip:8081
网页信息分别为This is port8080 website和This is port8081 website即代表成功
配置基于HTTPS的网站
1 安装web服务软件httpd和nano
yum install httpd nano mod_ssl openssl -y
2 创建网站目录及网页
mkdir -p /var/www/myweb
echo "This is my https website" > /var/www/myweb/index.html
3 创建密钥保存目录
mkdir /etc/httpd/ssl
4 创建自签名证书
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
选项输入信息如下:
name:cn
provice name:fujian
city:fuzhou
company:回车
unit name : 回车
hostname:回车
address:root@baidu.com
5 修改配置文件
//修改配置文件
nano /etc/httpd/conf.d/ssl.conf
//使用CTRL+w搜索<VirtualHost,复制以下内容:
DocumentRoot "/var/www/myweb"
DirectoryIndex index.html
SSLCertificateKeyFile /etc/httpd/ssl/apache.key
SSLCertificateFile /etc/httpd/ssl/apache.crt
//往下几行,找到并注释掉
注释掉 #SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
注释掉#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
-----------------------------------
//关闭selinux并启动httpd服务
setenforce 0
systemctl start httpd
systemctl stop firewalld
6 测试
打开浏览器,输入https://ip
点击高级,继续访问
网页信息分别为This is my https website 即代表成功
PS:如果遇到无法打开或者出现默认页的问题时,请修改/etc/httpd/conf/httpd.conf文件中的
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
将/var/www修改为当前网站的目录,并重启服务即可
更多推荐
所有评论(0)