Linux常见配置服务器的命令整理,基于Centos 7 。
基本操作命令
bash
查看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$'
用户、组、口令
bash
添加用户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
进程管理
bash
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
网络配置
bash
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)
无法登陆看:https://blog.csdn.net/iteye_3997/article/details/82489276
共享服务器Samba与NFS的配置
bash
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配置
bash
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)
bash
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
bash
/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详细配置文件(一般用于项目部署):
bash
# 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配置
bash
参考:https://blog.csdn.net/weixin_44801526/article/details/104155898
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
配置防火墙:
bash
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
https://www.cnblogs.com/han-1034683568/p/8854613.html
参考:https://blog.csdn.net/xou6363/article/details/80686850
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 实验:
bash
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