Linux常见配置服务器的命令整理,基于Centos 7 。

基本操作命令

查看ens33 ip
ifconfig ens33
查看系统版本
cat /etc/redhat-release
查找文件install.log、httpd.conf、hosts、smb.conf、network
find -name te.txt
使用“cp 源文件 目标文件”命令进行复制
cp te.txt /home/jacin/testme/me/
显示路径
pwd
使用“rm 文件路径”命令删除文件
rm /home/jacin/testme/me/te.txt 
以 student用户运行ls -R命令, 并将 STDOUT重定向到/tmp/output.txt
。。。
利用head/tail命令显示/etc/passwd文件中的5行
head -5 /etc/passwd
使用“more”命令查看文件内容 ,使用less命令查看文件内容
more te.txt 
给文件/home/john.txt做一个备份/tmp/john.bak
cp te.txt te.txt.bak
为文件/home/john.txt创建一个符号连接/home/xu
使用“ln -s”命令为文件创建符号连接,完成后查看
.....
在txt文件中查找字符串thi
grep thi te.txt
显示 /etc/hosts 中包含数字的所有行
grep [0-9] /etc/hosts
列出 /usr/share/doc 中以数字4结尾的文件
ls /usr/share/doc|grep '4$'

用户、组、口令

添加用户tempXXX及network_XXX(其中XXX为本人学号最后三位)
useradd temp128
分别查看passwd、shadow、group文件中并对上述用户有关的信息做出解释,并找出用户默认的主目录.
tail -2 /etc/passwd
为上述用户设置密码(密码自定)
passwd temp128
分别使用上述用户名登录
su temp128
把用户XXX添加到root组
gpasswd -a temp128 root
临时禁止tempXX用户
在/etc/passwd对应的用户上加 * (vim)
完全删除用户tempXX
userdel -r temp128
添加两个组
groupadd test2
查看有关配置文件的内容
groups temp128
删除networkXX组
groupdel temp128
创建一个文件名为本人姓名(拼音).exe文件,修改属性使其能执行
touch jacin.exe
chmod a+x jacin.exe
创建用户test2,并给用户设置初始命令为11111,然后从passwd和shadow文件找出所添加的用户,查看并分析用户账号信息,请指出test2用户的UID和GID、密码、主目录、Shell;把用户tes2添加到sudoers文件使其能够完成下面的工作:
设置向系统添加新用户时,使口令最小长度为8个字符(vim /etc/login.defs)
PASS_MIN_LEN    8
设置用户的口令必须每30天修改一 次,否则口令将失效,并在失效前7天给用户发出警告
chage -m 30 -W 7 temp128
chage -l temp128 (查看)
修改用户的UID为600 (无法修改的时候退出,因为嵌套了)
usermod -u 6778 temp128

进程管理

2.查看进程的统计信息(静态、动态)
ps aux|less  //查看所有用户进程的所有信息(静态)
top  //动态查看进程信息
查看进程名中包含“con”字符串的进程信息
ps -aux|grep con
lsof -i:端口号
检测某项服务是否启动
ps -ef |grep atd

3.后台运行gedit软件后,并把它调入前台,然后杀死它。
gedit&  //后台运行gedit软件
fg  //将它调入前台
kill -9   //杀死进程

4.利用crontab实现每周一、三、五的17:30时,打包备份/etc/httpd目录中的文件到你的主目录。
vi /etc/crontab
(30 17 * * 1,3,5 tar -Jxvf /etc/httpd /root/httpd.tar.xz
1分钟以后在tty1中,提示 “hello world!”。
at now+1 minutes
echo“hello world!”>/dev/tty1

5.配置yum源
https://zhuanlan.zhihu.com/p/464339170

网络配置

1.下载并安装telnet软件包(分别采用-i、-ivh)
先挂载光盘,找光盘的路径
ls -l /dev |grep cdrom (/dev/cdrom)
mount /dev/cdrom /mnt (挂载光盘,/dev/sr0 写保护,将以只读方式挂载 )
此时/mnt可以访问其内容了
进入包文件  cd Packages/
ls -l |grep telnet (查找内容)
ll telnet*
cp telnet-0.17-65.el7_8.x86_64.rpm /testtmp/
cp telnet-server-0.17-65.el7_8.x86_64.rpm /testtmp/
卸载光盘
umount /mnt
查看是否安装
rpm -qa|grep telnet
rpm -q telnet
yum info telnet
卸载包:
rpm -e telnet



1.使用curl或wget命令,不用离开终端就可以下载文件。如你用curl,键入curl -O后面跟一个文件路径。wget则不需要任何选项。下载的文件在当前目录。
curl -O website.com/file wget website.com/file
2.使用hostname命令临时设置主机名
hostname
localhost.localdomain
3.永久设置主机名
hostnamectl set-hostname localhost
cat /etc/hostname
4.网卡配置文件
cd /etc/sysconfig/network-scripts/
cat ifcfg-ens33
ifconfig ens33
5.配置网卡信息 
  设置IP地址
  ifconfig ens33 192.168.116.133 netmask 255.255.255.0
  修改网卡mac:
  ifdown ens33 // ifdown命令可以禁用网卡
  ifconfig ens33 hw ether 00:0c:29:03:F3:76
  ifup ens33 //ifup命令可以重新启用网卡
  绑定IP和MAC地址:
  echo "192.168.116.130 00:0c:29:03:F3:76">>/etc/ethers
  arp -f 
   arp -a // 查看
  常用命令:
  netstat,traceroute,nslookup (可以输入网址和server ip)
6.配置telnet服务器 23
   安装telnet,telnet-server,xinetd
   systemctl enable telnet.socket
   systemctl start telnet.socket
   systemctl start xinetd.service
 telnet 172.20.10.9
7.安装并配置SSH服务器 22
 rpm -qa |grep openssh
vim /etc/ssh/sshd_config
systemctl status sshd.service
ssh -l jacin 172.20.10.9 (同一主机)

8.安装VNC服务器和客户端 VNC默认使用TCP端口5900至5906,而Java的VNC客户端使用5800至5806。
yum -y  install tigervnc-server
 cd /lib/systemd/system
systemctl daemon-reload //重启生效
vim vncserver@.service //修改<USER>为<root>
vncpasswd
 systemctl start vncserver@.server
yum install tigervnc (图形界面)
 vncserver -kill :2 (杀vnc)
 无法登陆看:

共享服务器Samba与NFS的配置

1.安装并配置SAMBA服务器
关防火墙:firewall-cmd --permanent --add-service = samba
 firewall-cmd --reload
或者:
systemctl stop firewalld.service
setenforce 0
yum -y install samba samba-client
systemctl start smb nmb
vim /etc/samba/smb.conf
补:
[common]
       comment = Common share
       path = /home/samba
       browseable = yes
       guest ok = no
       writable = yes
testparm可以进行纠错
mkdir /home/samba
chmod 777 /home/samba/
touch /home/samba/samba.txt
开启 selinux (注意重启实例)
修改文件:vi /etc/selinux/config
将 SELINUX 的值修改为1
setsebool -P samba_export_all_rw=1
getsebool -a |grep samba_export (安全性)
semanage fcontext -at samba_share_t "/home/samba(/.*)?"
 restorecon /home/samba/

设置访问用户:
useradd -s /sbin/nologin smbuser
smbpasswd -a smbuser
开启服务
systemctl restart smb.service  nmb.service

注意记得关防火墙
在windows中输入 \\ip
linux: smbuser -U smbuser //ip/common
smbclient -L ip -U smbuser

2.安装并配置NFS服务器。将/home/nfs目录通过NFS共享给192.168.140.0/24网络,并且将客户端主机权限设为“可读可写权限”,“同步写入”,“允许从客户机上过来的非授权访问”,“关闭subtree_check功能”,在 Linux客户机上查看NFS服务器并挂载访问。
yum -y install rpcbind
yum -y install nfs-utils
mkdir /home/nfs
chmod -R 777 /home/nfs
vim /etc/exports
/home/nfs 172.20.10.0/24(rw,sync,no_subtree_check,no_root_squash)
systemctl start rpcbind
systemctl start nfs
systemctl stop firewalld.service
客户机:
systemctl restart rpcbind
showmount -e 172.20.10.9
mount -t nfs 172.20.10.9:/home/nfs /mnt
df -h
mount -t nfs 172.20.10.9:/home/nfs /mnt/test/  (注意不要在当前目录进行挂载)
touch 1.txt 

umount /mnt/test (进前一个)
此时服务器端已经有1.txt了

FTP配置

1.安装并配置FTP服务器,记得关防火墙
yum -y install vsftpd
 yum -y install ftp
 vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
ftp_banner=Welcome to FTP!
systemctl start vsftpd.service
客户机安装
ftp ip (anonymous )

2.用实名账户登录FTP服务器,实现在主目录内建立子目录,并进行文件的上传与下载。
setsebool -P  ftpd_full_access on (使得所有用户可以上传下载)
客户机可以用linux用户账号密码登录
可以用命令
put a.txt
get a.txt
服务器添加用户:
useradd -d /var/ftp/mouseftp -s /sbin/nologin -g ftp mouseftp
passwd mouseftp
vim /etc/pam.d/vsftpd
将auth pam_shells.so 注释
以上就可以,注意上传路径到 /var/ftp/mouseftp
浏览器输入http://mouseftp:mouseftp@本机IP地址

Web 应用服务器配置(Apache Nginx Mysql)

1.安装并配置基于httpd的Apache服务器
yum -y install httpd
systemctl start httpd.service
cd /var/www/html
echo "Hello">>index.html

2.安装并配置基于IP地址的虚拟主机
vim /etc/hosts
192.168.31.180 exam.testme.com
3.为每个虚拟主机新建配置文件并定义一个<VirtualHost>容器,如图9-11所示,并在检查虚拟主机配置后重启服务

配置web nginx msyql

/etc/ntp.conf
vncserver :2
/lib/systemd/system/vnc
Apache实验:
/etc/httpd/conf/httpd.conf
vim  DocumentRoot /var/www/html
systemctl restart httpd.service
Listen 

基于域名配置:
在/etc/httpd/conf中创建网页配置目录vhost,并在其中创建两个测试网页的配置文件

vim vhost/a.conf:
<VirtualHost 172.20.10.9>
ServerName www.a.com
DocumentRoot /var/www/html/a
<Directory "/var/www/html/a">
 	   Options Indexes FollowSymLinks
	   AllowOverride None
           Require all granted
<Directory>
</VirtualHost>

vim /etc/httpd/conf/httpd.conf
加 IncludeOptional conf.d/*.conf
Include /etc/httpd/conf/vhost/*.conf

vim /etc/hosts
172.20.10.9 www.a.com www.b.com

mysql服务
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
 yum -y install mysql-server
systemctl start mysqld.service
cat /var/log/mysqld.log |grep password
mysql -u root -p
use mysql;
UPDATE user SET password=password("fzxm.com") WHERE user='root';
flush privileges


php:
yum -y install php 
cd /etc/httpd/conf.modules.d
php.conf

 yum -y install php-mysql php-mbstring
unzip -d /var/www/html/ phpMyAdmin-4.0.10-all-languages.zip 
ln -s /usr/share/phpmyadmin/

systemctl start httpd.service

nginx:
yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
http://nginx.org/en/download.html 
4.10.0 zip
tar -xzvf nginx-1.12.2.tar.gz 
./configure
make && make install
whereis nginx
/usr/local/nginx/sbin
./nginx
cd /usr/local/nginx/conf/
 mkdir vhost
vim exam.conf :
server{
      listen 127.0.0.1;
      server_name exam.excesoft.com;
      access_log /data/logs/exam.excesoft.com.log;
      error_log /data/logs/exam.excesoft.com.error.log;
      location  / {
      root /var/www/html/exam;
      index index.html index.htm;
     }
}

cd /usr/local/nginx/conf
include vhost/*.conf;
mkdir -p /data/logs
[root@www conf]# touch /data/logs/exam.excesoft.com.log
[root@www conf]# touch /data/logs/exam.excesoft.com.error.log
/usr/local/nginx/sbin
./nginx -t

vim /etc/hosts
172.20.10.9 exam.excesoft.com
 vim /etc/hosts
[root@www sbin]# mkdir -p /var/www/html/exam
[root@www sbin]# vim /var/www/html/exam/index.html
nginx

这里再附一份nginx详细配置文件(一般用于项目部署):

# user root;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

		location / {
            #root   /home/ruoyi/projects/ruoyi-ui;
           # root   /usr/local/:nginx/html/dist;
	   root /jacin/project/newsea/dist;
			try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }
		
		location /prod-api/{
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://localhost:8080/;
		}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

     server {
        listen       8082;
        server_name  localhost;

		location / {
            #root   /home/ruoyi/projects/ruoyi-ui;
           # root   /usr/local/:nginx/html/dist;
	   root /jacin/project/newsea/gandist;
			try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }
		
		location /prod-api/{
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://localhost:8080/;
		}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

DNS配置

参考:
yum -y install bind
systemctl start  named.service
systemctl status  named.service
/etc/named.rfc1912.zones
vim named.rfc1912.zones 
在zone配置文件的最后添加test.com的正向解析文件与反向解析文件,zone配置文件路径:/etc/named.rfc1912.zones,在DNS配置文件的最后一行加入这句:include "/etc/named.rfc1912.zones";
include "/etc/named.rfc1912.zones";
vim /etc/named.rfc1912.zones;
zone "test.com" IN {
      type master;
      file "test.com.zone";
      allow-update {none;};
};

zone "10.20.172.in-addr.arpa" IN {
        type master;
        file "10.20.172.zone";
        allow-update { none;};
};
vim /etc/named.conf:

include "/etc/named.root.key";


配置正向解析文件,路径为:/var/named

cp named.empty a
mv a 10.20.172.zone
vim  10.20.172.zone
$TTL 1D
@	IN SOA	test.com  root.test.com (
					42	; serial
					3H	; refresh
					15M	; retry
					1W	; expire
					1D )	; minimum
	NS	dns.test.com.
dns     IN      A        172.20.10.9
www     IN      A        172.20.10.50

vim 10.20.172.zone
$TTL 1D
@	IN SOA	test.com root.test.com. (
					50	; serial
					3H	; refresh
					15M	; retry
					1W	; expire
					1D )	; minimum
	NS	dns.test.com.
9    IN      PTR dns.test.com
50       PTR  www.test.com
named -checkconf // 检查
当网关的 IP 和 DNS 服务器的 IP 相同时,说明路由器的功能不仅仅包括了网关、路由,还包括了转发 DNS 请求的功能,即:中继 DNS。这时的路由器仅仅负责转发而已,将请求转发给该片区域的真正的 DNS 服务器,再将结果返回给主机,从而完成 DNS 查询的功能呢。
chown named:named test/20.
需要把/etc/named.conf  listen-on port 53 中的 127.0.0.1 改成 any ,即允许任意主机监听53端口;allow-query 改成 any ,对任意主机允许查询

 systemctl restart named.service 
 systemctl stop firewalld
 
 客户机进行测试:
 nslookup -sil
server 172.20.10.9
>www.test.com
>172.20.10.50

配置防火墙:

iptables -F   //清空规则
iptables -L
iptables -X    //删除自定义链
iptables -P INPUT DROP  //为INPUT链设置规则
Iptables   -Z     //所有链计数器清零
iptables -A INPUT -i lo -j ACCEPT  //添加一个规则
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT
service iptables save 

参考:
systemctl stop firewalld  
systemctl mask firewalld
service iptables save
iptables-save > /tmp/my.ipt
ls /tmp/
iptables-restore < /tmp/my.ipt
my.ipt内容:
# Generated by iptables-save v1.4.21 on Mon Jun 19 09:03:15 2023
*filter
:INPUT DROP [90:8943]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [37:2443]
-A INPUT -i lo -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 3128 -j ACCEPT
COMMIT
# Completed on Mon Jun 19 09:03:15 2023

配置DHCP 实验:

yum -y install dhcp
vim /etc/dhcp/dhcp.conf
ddns-update-style interim;
subnet 172.20.10.0 netmask 255.255.255.0 {
       range 172.20.10.20 172.20.10.100;
       option routers 172.20.10.1;
       default-lease-time 21600;
       max-lease-time 43200;
       
} 
group {
	hardware ethernet  02:42:8a:89:6b:25;
	fixed-address 172.20.10.70;
}


systemctl start dhcpd.service