Linux基础

防火墙命令

注意:在centos6和centos7中,命令上的区别

1.防火墙:6是iptables,7是firewalld
2.启动服务的命令:6是service 7是systemctl

iptables防火墙

  • iptables 防火墙分类

①过滤防火墙(pack filtering)在网络层对数据包进行选择过滤,采用访问控制列表(Access control table-ACL)检查数据流的源地址,目的地址,源和目的端口,IP等信息。
②代理服务器型防火墙

  • iptables 基础

①规则(rules):网络管理员预定义的条件
②链(chains): 是数据包传播的路径
③表(tables):内置3个表filter表,nat表,mangle表分别用于实现包过滤网络地址转换和包重构的功能
④filter表是系统默认的,INPUT表(进入的包),FORWORD(转发的包),OUTPUT(处理本地生成的包),filter表只能对包进行授受和丢弃的操作。
⑤nat表(网络地址转换),PREROUTING(修改即将到来的数据包),OUTPUT(修改在路由之前本地生成的数据包),POSTROUTING(修改即将出去的数据包)
⑥mangle表,PREROUTING,OUTPUT,FORWORD,POSTROUTING,INPUT

  • iptable 防火墙命令
  • 1.查看防火墙状态
service iptables status 
  • 2.关闭防火墙
# 临时关闭防火墙,重启linux后,防火墙会自动开启
service iptables stop
# 永久关闭防火墙
chkconfig iptables off
  • iptables如何添加端口
  • 格式
iptables [-t 表] -命令 匹配 操作 (大小写敏感)

动作选项
ACCEPT 接收数据包
DROP 丢弃数据包
REDIRECT 将数据包重新转向到本机或另一台主机的某一个端口,通常功能实现透明代理或对外开放内网的某些服务
SNAT 源地址转换
DNAT 目的地址转换
MASQUERADE IP伪装
LOG 日志功能

  • 查看ip端口
telnet localhost 35465
  • 开放的端口位于/etc/sysconfig/iptables
more /etc/sysconfig/iptables 

在这里插入图片描述

  • 开放端口
    • 通过vi /etc/sysconfig/iptables 进入编辑增添一条-A INPUT -p tcp -m tcp --dport 8889 -j ACCEPT 即可
    • 执行 /etc/init.d/iptables restart 命令将iptables服务重启
    • 保存 /etc/rc.d/init.d/iptables save

注意:如若不想修改iptables表,可以直接输入下面命令: iptables -I INPUT -p tcp --dport 8889 -j ACCEPT

  • iptables规则定义

①先拒绝所有的数据包,然后再允许需要的数据包
iptalbes -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
②查看nat表所有链的规则列表
iptables -t nat -L
③增加,插入,删除和替换规则
iptables [-t 表名] <-A|I|D|R> 链名 [规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源ip|源子网] [–sport 源端口号] [-d 目的IP|目标子网] [–dport 目标端口号] [-j 动作]
参数:-A 增加
-I 插入
-D 删除
-R 替换

  • 案例:
①iptables -t filter -A INPUT -s 192.168.1.5 -i eth0 -j DROP
禁止IP为192.168.1.5的主机从eth0访问本机

②iptables -t filter -I INPUT 2 -s 192.168.5.0/24 -p tcp --dport 80 -j DROP
禁止子网192.168.5.0访问web服务

③iptables -t filter -I INPUT 2 -s 192.168.7.9 -p tcp --dport ftp -j DROP
禁止IP为192.168.7.9访问FTP服务

④iptables -t filter -L INPUT
查看filter表中INPUT链的规则

⑤iptables -t nat -F
删除nat表中的所有规则

⑥iptables -I FORWARD -d wwww.playboy.com -j DROP
禁止访问 www.playboy.com网站

⑦iptables -I FORWARD -s 192.168.5.23 -j DROP
禁止192.168.5.23上网

firewalld防火墙介绍

防火墙守护 firewalld 服务引入了一个信任级别的概念来管理与之相关联的连接与接口。它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (command) 或 firewall-config (gui) 来动态的管理 kernel netfilter 的临时或永久的接口规则,并实时生效而无需重启服务。

Firewall 能将不同的网络连接归类到不同的信任级别,Zone 提供了以下几个级别

  • drop: 丢弃所有进入的包,而不给出任何响应
  • block: 拒绝所有外部发起的连接,允许内部发起的连接
  • public: 允许指定的进入连接
  • external: 同上,对伪装的进入连接,一般用于路由转发
  • dmz: 允许受限制的进入连接
  • work: 允许受信任的计算机被限制的进入连接,类似 workgroup
  • home: 同上,类似 homegroup
  • internal: 同上,范围针对所有互联网用户
  • trusted: 信任所有连接
  • firewalld防火墙命令

centos从7开始默认使用的是firewalld,这个是基于iptables的,虽然有iptables的命令,但是iptables服务是没有安装的。所以你只要停止firewalld服务就可以了。

  • 如果你的系统上没有安装使用命令安装,安装firewalld 防火墙
yum install firewalld

# 如果需要图形化界面的话

yum install firewall-config
  • 开启服务
systemctl start firewalld.service
  • 关闭防火墙
systemctl stop firewalld.service
  • 开机自动启动
systemctl enable firewalld.service
  • 关闭开机制动启动
systemctl disable firewalld.service
  • 使用firewall-cmd 命令
  • 查看状态
firewall-cmd --state //running 表示运行
  • 查看现有的规则
iptables -nL
  • 获取活动的区域
firewall-cmd --get-active-zones

这条命令将用以下格式输出每个区域所含接口:
<zone1>: <interface1> <interface2> ..<zone2>: <interface3> ..
  • 获取所有支持的服务
firewall-cmd --get-service
  • 在不改变状态的条件下重新加载防火墙:
firewall-cmd --reload
  • 启用某个服务
firewall-cmd --zone=public --add-service=https //临时

firewall-cmd --permanent --zone=public --add-service=https //永久
  • 开启某个端口
# 添加单个端口
firewall-cmd --permanent --zone=public --add-port=81/tcp

# 添加多个端口
firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp //永久

firewall-cmd --zone=public --add-port=8080-8081/tcp //临时
  • 使用命令加载设置
firewall-cmd --reload
  • 查看开启的端口和服务
firewall-cmd --permanent --zone=public --list-services //服务空格隔开 例如 dhcpv6-client https ss

firewall-cmd --permanent --zone=public --list-ports //端口空格隔开 例如 8080-8081/tcp 8388/tcp 80/tcp
  • 设置某个ip 访问某个服务
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"

ip 192.168.0.4/24 访问 http
  • 设置某个ip段访问
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9200" accept"
  • 删除上面设置的规则
firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"
  • 检查设定是否生效
 iptables -L -n | grep 21
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:21 ctstate NEW
  • 执行命令firewall-cmd --list-all
显示:
public (default)
  interfaces:
  sources:
  services: dhcpv6-client ftp ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:
  • 查询服务的启动状态
firewall-cmd --query-service ftp
yes
firewall-cmd --query-service ssh
yes
firewall-cmd --query-service samba
no
firewall-cmd --query-service http
no
  • 自行加入要开放的 Port
firewall-cmd --add-port=3128/tcp
firewall-cmd --list-all
public (default)
  interfaces:
  sources:
  services: dhcpv6-client ftp ssh
  ports: 3128/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

selinux

centos7里面除了默认的firewall还有一个selinux会对开放端口有影响

永久关闭
修改selinux的配置文件,重启后生效。

#打开 selinux 配置文件
[root@localhost ~]# vim /etc/selinux/config

# 修改 selinux 配置文件
将SELINUX=enforcing改为SELINUX=disabled,保存后退出

#重启服务器
reboot 

常用命令集锦

文件目录命令

查看文件及目录

ls命令

ls(list)功能:列出目录内容
格式:ls [参数] [文件或者目录]
参数:
-a或者-all:当前目录下的所有文件和目录。注意隐藏文件、特殊目录、.和…
-l :使用详细格式列表 简化命令 ll
-t: 用文件和目录的更改时间排序
-r:方向排序
–help:在线帮助
ll /home:显示指定目录下的内容

  ls
  ls -a
  ls -all
  ls -al
  ls -l
  ll
  ls -t
  ls -r
  ls --help
# 以易读的方式显示文件大小(显示为 MB,GB...)
ls -lh

# 以最后修改时间升序列出文件
ls -ltr

# 在文件名后面显示文件类型
ls -F

root用户登陆,默认目录是/root下。其他用户登陆默认路径是/home/用户名下。

cd 命令

cd (change directory)功能:改变当前目录

格式:cd [目录]

#  ~:当前用户目录
cd ~

#  /:根目录
cd /

#  -:上一次目录
cd -

#  ..:上一级目录
cd ..

#   : 缺省当前用户目录
cd 
pwd 命令

pwd (print working directory)功能:显示当前目录

pwd
mkdir 命令

mkdir (make directory)功能:创建目录
格式:mkdir [参数] [目录]
参数:
-p:创建目录时,如果上级目录不存在,则自动创建上级目录
-v:显示创建目录的详细信息

mkdir -pv ../abc/123

# 在 home 目录下创建一个名为 temp 的目录
mkdir ~/temp

# 使用 -p 选项可以创建一个路径上所有不存在的目录
 mkdir -p dir1/dir2/dir3/dir4/
df命令
# 显示文件系统的磁盘使用情况,默认情况下 将以字节为单位输出磁盘的使用量。
df -k 

# 使选项可以以更符合阅读习惯的方式显示磁盘使用量。
df -h 

# 选项显示文件系统类型。
df -T

文件浏览

cat命令

cat (concatenate)功能:显示文件内容
cat [文件名]:显示指定文件的所有内容

cat install.log

# 你可以一次查看多个文件的内容,下面的命令会先打印 file1 的内容,然后打印 file2 的内容
 cat file1 file2

# -n 命令可以在每行的前面加上行号
cat -n /etc/logrotate.conf

案例1:如何看当前 Linux 系统有几颗物理 CPU 和每颗 CPU 的核数

cat /proc/cpuinfo|grep -c 'physical id'

cat /proc/cpuinfo|grep -c 'processor'
  • more 命令
    more (more)功能:分页显示文件内容,还支持直接跳转行等功能
    more [文件名]:显示指定文件的内容,按空格键显示下一页,按回车键显示下一行,按q键退出
    more -n 10 install.log:显示指定文件的前10行内容
    Enter 键:显示下一行
    Space 键:显示下一页
    q 键:退出
    B键:显示上一页
more install.log
more -n 10 install.log
less 命令

less (less)功能:分页显示文件内容,还支持直接跳转行等功能。可以在不加载整个文件的前提下显示文件内容
格式:less [参数] [文件名]
-m 显示类似more命令的百分比
-N 显示每行的行号

操作:

  1. 显示下一行:空格键
  2. 显示下一页:d
  3. 显示上一页:b
  4. 后退半页:u
  5. 显示上一行:回车键
  6. 后退一行:y
  7. 向上搜索: /字符串
  8. 向下搜索: ?字符串
  9. 进入编辑模式:v
  10. 水平滚动条:左右方向键
  11. 退出:q
    12.向前和向后滚屏:CTRL+F \CTRL+B
less -mN install.log
less huge-log-file.log

tail 命令

tail (tail)功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理
tail [必要参数] [选择参数] [文件名]
参数:
-n 显示指定行数
-f 持续显示文件内容,直到按Ctrl+C退出
& 表示后台运行,否则占用终端
Ctrl+C 退出

tail -n 10 install.log
tail -f install.log
tail -f -n 10 install.log &

# tail 命令默认显示文件最后的 10 行文本
tail filename.txt

# -n 选项指定要显示的行数
tail -n N filename.txt

# -f 选项进行实时查看,这个命令执行后会等待,如果有新行添加到文件尾部,它会继续输出新的行,
在查看日志时这个选项会非常有用。你可以通过 CTRL-C 终止命令的执行
tail -f log-file

文件操作

cp 命令

cp (copy)功能:复制文件或目录
cp [参数] [源文件] [目标文件]
参数:
-r:复制目录,包括目录下的所有文件和目录
-v:显示复制操作的详细信息

cp -r /home/abc /home/abc1
cp -v install.log install.log1

# 拷贝 file1 到 file2 ,并保持文件的权限、属主和时间戳
cp -p file1 file2

# 拷贝 file1 到 file2 ,如果 file2 存在会提示是否覆盖
cp -i file1 file2

案例1:
有一普通用户想在每周日凌晨零点零分定期备份 /user/backup到 /tmp 目录下

crontab -e
0 0 * * 7 /bin/cp /user/backup /tmp

案例2:
每周一下午三点将 /tmp/logs 目录下面的后缀为 *.log 的所有文件 rsync 同步到备份服务器 192.168.1.100 中同样的目录下面

crontab -e
00 15 * * 1 rsync -avzP /tmp/logs/*.log root@192.168.1.100:/tmp/logs

相比来说, rsync 比 scp 的性能更好。

mount命令

mount 功能:将硬盘挂在在linux上

# 如果要挂载一个文件系统,需要先创建一个目录,然后将这个文件系统挂载到这个目录上:
 mkdir /u01
 mount /dev/sdb1 /u01

# 也可以把它添加到 fstab 中进行自动挂载,这样任何时候系统重启的时候,文件系统都会被加载
/dev/sdb1 /u01 ext2 defaults 0 2
mv 命令

mv (move)功能:移动或重命名文件或目录
格式:mv [参数] [源文件] [目标文件]
参数:
-v:显示移动操作的详细信息
-f:强制覆盖

# -v 会输出重命名的过程,当文件名中包含通配符时,这个选项会非常方便
mv -v install.log install.log1

mv -f install.log1 install.log
mv -f /home/abc /home/abc1

# 将 file1 重命名为 file2 ,如果 file2 存在则提示是否覆盖
mv -i file1 file2

rm 命令

rm (remove)功能:删除文件或目录
格式:rm [参数] [文件或目录]
参数:
-f:强制删除
-r :删除目录,包括目录下的所有文件和目录

rm -f install.log
rm -r /home/abc
rm -rf /home/abc

# 删除文件前先确认
rm -i filename.txt

# 在文件名中使用 shell 的元字符会非常有用。删除文件前先打印文件名并进行确认
rm -i file*

# 递归删除文件夹下所有文件,并删除该文件夹
rm -r example
find 命令

find (find)功能:查找文件或目录
格式:find [参数] [目录] [条件]
参数:
-name:根据文件名查找

# 根据文件名查找
find -name "*.log"

# 查找指定文件名的文件(不区分大小写)
find -iname "MyProgram.c"

# 对找到的文件执行某个命令
find -iname "MyProgram.c" -exec md5sum {} \; 

# 查找 home 目录下的所有空文件
 find ~ -empty
 
# 如何在 /usr 目录下找出大小超过 10MB 的文件?
find /usr -type f -size +10240k

# 如何在 /var 目录下找出 90 天之内未被访问过的文件
 find /var \! -atime -90

# 如何在 /home 目录下找出 120 天之前被修改过的文件
find /home -mtime +120

# 在整个目录树下查找文件 “core” ,如发现则无需提示直接删除它们
 find / -name core -exec rm {} \;

文档编辑

vi 命令

vi (vi)功能:编辑文件
格式:vi [文件名]
vim 进入“一般模式”
i 进入“插入模式” 在光标前插入
shift+i 在光标后插入
a 在光标后插入
shift+a 在光标当前行末尾插入
o 在光标当前行下一行插入新行
shift+o 在光标当前行前一行插入新行
yy 复制当前行 将光标移动道将要复制的行处
nyy 复制当前行到指定行 将光标移动道将要复制的首行处
p 粘贴 将光标移动道将要粘贴的行处
gg 跳转到第一行
shift+G 跳转到最后一行
dd 删除当前行
ndd 删除指定行到当前行

esc 退出
:q 退出,不保存
:w 保存不退出
:wq 保存并退出
:q! 退出,不保存

vim  install.log
i
esc键
:wq
:q!

管道 |

管道(Pipe)是两个命令之间连接的符号,通过管道可以将一个命令的输出作为另一个命令的输入。
管道命令格式:命令1 | 命令2

ls -l | more
grep 命令

grep (global regular expression print)功能:查找文件内容
格式:grep [参数] [内容] [文件]
参数:
-i 忽略大小写

# 在文件中查找字符串(不区分大小写)
grep -i "error" install.log

# 输出成功匹配的行,以及该行之后的三行
 grep -A 3 -i "example" demo_text

# 在一个文件夹中递归查询包含指定字符串的文件
 grep -r "ramesh" *
sed命令
# 当你将 Dos 系统中的文件复制到 Unix/Linux 后,这个文件每行都会以 \r\n 结尾,sed 可以轻易将其转换
为 Unix 格式的文件,使用 \n 结尾的文件
sed 's/.$//' filename

# 反转文件内容并输出
sed -n '1!G; h; p' filename

# 为非空行添加行号
sed '/./=' thegeekstuff.txt | sed 'N; s/\n/ /'

# 用 sed 命令将指定的路径 /usr/local/http 替换成为 /usr/src/local/http
echo "/usr/local/http/" | sed 's#/usr/local/#/usr/src/local/#'

# 打印 /etc/ssh/sshd_config 的第一百行
sed -n '100p' /etc/ssh/sshd_config

# 用 sed 命令永久关闭防火墙?
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
cat /etc/selinux/config


# 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 - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

磁盘命令

  • ps 命令
    ps (process status)功能:显示进程状态
    ps [参数] [进程]
    参数:
    -e 显示所有进程
    -f 显示进程的详细信息
ps -ef | grep java
  • kill 命令
    kill (kill)功能:终止进程
    格式:kill [参数] [进程]
    参数:
    -9:强制终止进程
kill -9 1234
  • ifconfig 命令
    ifconfig (interface configuration)功能:显示网络接口信息
    ifconfig
ifconfig
  • ping 命令
    ping (ping)功能:测试网络连接
    ping [参数] [主机]
    参数:
    -c 次数:ping次数
    -i 间隔:ping间隔
    -t 测试时间:ping时间
ping -c 10 www.baidu.com
  • reboot 命令
    reboot (reboot)功能:重启计算机

  • halt 命令
    halt (halt)功能:关闭计算机

备份压缩

  • tar 命令
    tar (tar)功能:打包文件或目录
    格式:tar [参数] [文件]
    参数:
    -c:创建tar包
    -x :解压tar包
    -z :使用gzip压缩
    -v :显示打包或解压的详细信息
    -f :指定tar包名称
# 解压
tar -zxvf install.tar.gz
# 打包
tar -zcvf install.tar.gz install.log
文件权限
  • chmod 命令
    chmod (change mode)功能:修改文件权限
    chmod [权限] [文件]
    参数:
    u:用户
    g:组
    o:其他用户
    a:所有用户
    符号:
    +:增加权限
    -:减少权限
    权限:
    r:读,数字代号4
    w:写,数字代号2
    x:执行,数字代号1
    -:无,数字代号0
chmod u+x install.log
chmod u-x install.log
chmod g+x install.log
chmod ugo+x install.log
chmod 777 install.log

在这里插入图片描述

网络配置

  • 命令配置
    查看网卡配置
cat /etc/sysconfig/network-scripts/ifcfg-eth0

在这里插入图片描述

rpm 包管理

二进制包以及源代码包两种。二进制包可以直接安装在计算机上,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。

常用命令组合:

  • -ivh:安装显示安装进度 --install-verbose-hash
  • -Uvh:升级软件包 --Update
  • -qpl:列出RPM软件包内的文件信息[Query Package list]
  • -qpi:列出RPM软件包的描述信息[Query Package install package(s)]
  • -qf:查找指定文件属于哪个RPM软件包[Query File]
  • -Va:校验所有的RPM软件包,查找丢失的文件[View Lost]
  • -e:删除包
rpm -q samba //查询程序是否安装
rpm -ivh /media/cdrom/RedHat/RPMS/samba-3.0.20-1.i386.rpm //按照路径安装并显示进度
rpm -ivh --relocate /=/opt/gaim gaim-2.6.0-1.i386.rpm //安装指定目录
rpm -ivh --test gaim-2.6.0-1.i386.rpm //用来检查依赖关系,并不是真正的安装
rpm -Uvh --oldpackage gaim-2.6.0-1.i386.rpm //新版本降级为旧版本
rpm -qa | grep httpd // [搜索指定rpm是否安装]--all 搜索“httpd”
rpm -ql httpd // [查看rpm包]--list 所有文件安装目录
rpm -qpi Linux-1.4-6.i368.rpm // [查看rpm包]--query--package--install pageage信息
rpm -qpf Linux-1.4.6.i368.rpm // [查看rpm包]--file
rpm -qpR file.rpm // [查看rpm包]--依赖关系
rpm2cpio file.rpm | cpio -div // [抽出文件]
rpm -ivh file.rpm // [安装新的rpm]--install--verbose--hash
rpm -ivh [url]http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm[/url] 
rpm -Uvh file.rpm //[升级一个rpm] --upgrade
rpm -e file.rpm //[删除一个rpm] --erase

常用参数:

Install/Upgrade/Erase options:
-i, --install                     install package(s)
-v, --verbose                     provide more detailed output
-h, --hash                        print hash marks as package installs (good with -v)
-e, --erase                       erase (uninstall) package
-U, --upgrade=<packagefile>+      upgrade package(s)-replacepkge                    无论软件包是否已被安装,都强行安装软件包
--test                            安装测试,并不实际安装
--nodeps                          忽略软件包的依赖关系强行安装
--force                           忽略软件包及文件的冲突
Query options (with -q or --query):
-a, --all                         query/verify all packages
-p, --package                     query/verify a package file
-l, --list                        list files in package
-d, --docfiles                    list all documentation files
-f, --file                        query/verify package(s) owning file

rpm --recompile vim-4.6-4.src.rpm   #这个命令会把源代码解包并编译、安装它,如果用户使用命令:
rpm --rebuild vim-4.6-4.src.rpm  #在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm 的RPM软件包。
demo
[root@localhost src]# rpm -ivh awstats-6.8-1.noarch.rpm
error: Failed dependencies:
perl(LWP::UserAgent) is needed by awstats-6.8-1.noarch
[root@localhost src]#

使用rpm 属性相依套件的档案

[root@localhost src]# rpm -qpR awstats-6.8-1.noarch.rpm
/bin/sh
/usr/bin/perl
config(awstats) = 6.8-1
perl >= 0:5.005
perl(LWP::UserAgent)
perl(POSIX)
perl(Socket)
perl(Time::Local)
perl(strict)
perl(vars)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1

另外:# rpm -ivh --aid samba*.rpm (一定要安装rpmdb后才可以用这种方式安装排除依赖关系)
复制命令
  • 服务器与服务器之间的复制命令(第一次复制时候)
scp -r $pdir/$fname  $user@host:$ip/$fname

scp -r jdk1.8.0/ root@192.168.1.192:/opt/software 
  • 远程同步工具(第二次修改时候)
rsync -av $pdir/$fname $user@host:$ip/$fname

sync -av jdk1.8.0/ root@192.168.1.193:/opt/software 
  • 配置命令在任何路径上都可以执行


Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐