3:CentOS7文件管理-下

CentOS7文件管理-下

  • CentOS7文件管理-下
    • 特殊属性&lsattr&chattr
      • 特殊属性:是什么?
      • chattr:修改文件的特殊属性
      • lsattr:查看文件的特殊属性
      • 例子:
    • 特殊权限:set_uid
      • set_uid是什么?
      • 设置set_uid:
      • 例子:
    • 特殊权限:set_gid
      • set_gid是什么?
      • 设置set_gid:
      • 例子:
    • 特殊权限:stick_bit
      • stick_bit是什么?
      • 设置stick_bit:
      • 例子:
    • 软链接文件
      • 软链接文件是什么?
      • 创建软链接
      • 例子:
    • 硬连接文件
      • 硬链接文件时什么?
      • Inode:
      • 创建硬链接
      • 例子:
    • 文件查找:find命令
      • find命令的作用?
      • find名的用法:
      • 例子:
    • 文件名后缀
    • linux和windows互传文件
      • 1:lrzsz工具
      • 2:winscp工具
      • 3:Xftp工具

系统环境:
    windows 10 专业版
    CPU:I7-8700K
    内存:16G
    笔记记录软件:MarkDownPad 2

虚拟机环境:
    虚拟机软件:VMware workstation 14
    虚拟机配置:2核CPU,2G内存
    虚拟机系统:CentOS Linux release 7.4.1708 (Core)     

特殊属性&lsattr&chattr

特殊属性:是什么?

文件和目录有一些有特殊作用的属性位,下面列出部分常用的:

a:文件添加a属性后,只能对文件内容进行追加操作,不能删除内容、删除文件和重命名改文件
   目录添加a属性后,改目录下只能创建文件和目录,不能删除文件或目录,不能重命名,
   该目录的子目录下不受影响,该目录下的文件可以修改内容

i:文件添加i属性后,该文件不能删除。不能修改内容,不能重命名。相当于被锁定状态。
   目录添加i属性后,该目录不能被删除,和重命名,目录下不能创建和删除文件。
   目录下的子目录里面不受影响,

详细属性参考:【chattr命令详解】

chattr:修改文件的特殊属性

增加特殊属性命令格式: chattr +a test.txt #给test.txt文件增加隐藏属性 a

[root@long01 ~]# chattr +a  test.txt

设置目录的特殊属性命令格式:chattr =i test #将test.txt文件的特殊属性设置为 i

[root@long01 ~]# chattr =i  test.txt

删除特殊属性命令格式: chattr -i test.txt #删除test.txt文件的特殊属性 i

[root@long01 ~]# chattr -i  test.txt

-R选项:修改目录的隐藏属性同时,将目录下的所有子目录和和文件都一起修改。

[root@long01 ~]# chattr -R +i ./dir
[root@long01 ~]# chattr -R -i ./dir

lsattr:查看文件的特殊属性

格式:lsattr file_name或者dir_name
[root@long01 ~]# chattr +a test.txt
[root@long01 ~]# lsattr  test.txt 
-----a---------- test.txt
[root@long01 ~]# chattr =i test.txt 
[root@long01 ~]# lsattr test.txt 
----i----------- test.txt
[root@long01 ~]# chattr -i test.txt 
[root@long01 ~]# lsattr test.txt 
---------------- test.txt

-R 选项可以查看指定目录下所有的子目录和文件的特殊属性。
[root@long01 ~]# chattr -R +i ./dir #将./dir目录和目录下的所有子目录和文件全部加上 i 属性。
[root@long01 ~]# lsattr -R ./dir
—-i———– ./dir/dir2

./dir/dir2:
----i----------- ./dir/dir2/dir3

./dir/dir2/dir3:
----i----------- ./dir/dir2/dir3/file3

----i----------- ./dir/dir2/file2

----i----------- ./dir/file1

-d选项:查看指定的文件或目录。
[root@long01 ~]# lsattr -d ./dir
—-i———– ./dir
如果查看目录时不加-d选项,将查看到该目录下的子目录和文件的特殊属性。
[root@long01 ~]# lsattr ./dir
—-i———– ./dir/dir2
—-i———– ./dir/file1

例子:

[root@long01 ~]# echo "123" >>  test.txt    #将字符串123追加到test.txt文件中,成功。
[root@long01 ~]# cat test.txt 
123

[root@long01 ~]# echo "abc" >  test.txt     #使用字符串abc覆盖test.txt文件的内容。等于修改,但是失败。
-bash: test.txt: 不允许的操作

[root@long01 ~]# echo "" >  test.txt        #清空test.txt,失败。
-bash: test.txt: 不允许的操作

[root@long01 ~]# rm  test.txt               #删除test.txt。失败
rm:是否删除普通文件 "test.txt"?y
rm: 无法删除"test.txt": 不允许的操作

给目录添加 a 属性
[root@long01 ~]# chattr +a test             #给test目录添加 a 属性

[root@long01 ~]# cd test

[root@long01 test]# touch test1.txt         #在test目录下成功创建test1.txt文件。

[root@long01 test]# rm -f test1.txt         #删除test目录下的test1.txt文件失败
rm: 无法删除"test1.txt": 不允许的操作

[root@long01 test]# mv test1.txt test2.txt  #将test1.txt文件重命名为text2.txt失败。
mv: 无法将"test1.txt" 移动至"test2.txt": 不允许的操作

[root@long01 ~]# mv test dir                #将test目录重命名为dir 失败
mv: 无法将"test" 移动至"dir": 不允许的操作

特殊权限:set_uid

set_uid是什么?

set_uid也可称为SUID,是针对二进制可执行文件的一种特殊权限。比如:ls、cat、passwd等命令。

有set_uid权限的命令,在其他用户执行该命令的时候,会临时获得该命令文件所属用户的身份。

set_uid权限以 s 表示。

设置set_uid:

chmod可以给一个命令设置set_uid权限:

比如我给cat命令设置一个set_uid权限:

[root@long01 ~]# ls -ld /usr/bin/cat    
-rwsr-xr-x. 1 root root 54080 11月  6 2016 /usr/bin/cat  
#注意所属用户的执行权限变成了s,这代表该命令有set_uid权限

[root@long01 ~]# chmod u-s /usr/bin/cat     #取消cat命令的set_uid权限
[root@long01 ~]# ls -ld /usr/bin/cat
-rwxr-xr-x. 1 root root 54080 11月  6 2016 /usr/bin/cat

也可以使用数字的方式设置SUID,SUID的代表数字是4

当一个二进制文件的权限为755时,可以使用命令格式:chmod 4755 filename ,给文件添加SUID权限。

[root@long01 ~]# chmod 4755 /bin/ls
[root@long01 ~]# ls -ld /bin/ls
-rwsr-xr-x. 1 root root 117656 11月  6 2016 /bin/ls
[root@long01 ~]# chmod u-s /bin/ls

注意:普通用户使用chmod命令的时候,只能修改所属用户为当前用户的文件权限。不能修改所属用户为其他用户的文件。

比如当前用户为user1,则chmod命令只能修改所属用户为user1的文件权限。

例子:

我们给touch命令设置一下set_uid权限。

再切换到普通用户下使用touch命令来创建一个文件看看所属用户是什么。

[root@long01 ~]# chmod u+s /usr/bin/touch           #给touch命令加上set_uid权限
[root@long01 ~]# su - user1                         #切换到普通用户user1
[user1@long01 ~]$ touch touch1.txt                  #创建一个touch.txt文件
[user1@long01 ~]$ ls -dl touch1.txt 
-rw-rw-r--. 1 root user1 0 5月  15 00:56 touch1.txt  #注意这时touch1.txt文件的所属用户是root,正常应该是当前用户user1.

特殊权限:set_gid

set_gid是什么?

set_gid也可称为SGID,它跟SUID一样可作用于二进制可执行文件上的一种特殊权限。有SGID权限的命令可以让调用该命令的用户临时拥有该命令所属组的身份。

跟SUID不同的是,SGID还可以作用于目录上。当一个目录添加了SGID权限时,任何用户在该目录下创建文件和目录时,所创建的目录和文件的所属组将会跟该目录的所属组相同。

设置set_gid:

使用命令:chmod g+s name , name是目录名或者文件文件名都可以。

[root@long01 ~]# chmod g+s /bin/touch 
[root@long01 ~]# ls -dl /bin/touch 
-rwsr-sr-x. 1 root root 62488 11月  6 2016 /bin/touch    #注意touch命令的所属组的 x 权限已经变成了 s

也可以使用数字的方式设置SGID,SGID的代表数字为:2

[root@long01 user1]# ls -ld /bin/touch
-rwxr-sr-x. 1 root user2 62488 11月  6 2016 /bin/touch
[root@long01 user1]# chmod 2755 /bin/touch

例子:

还是使用touch命令来举例,我们先来看一下touch命令现在的权限:

[root@long01 ~]# ls -dl /bin/touch 
-rwxr-xr-x. 1 root root 62488 11月  6 2016 /bin/touch    #此时touch没有任何特殊权限。

先创建一个用户user2,将touch命令文件的所属组改为user2。

[root@long01 ~]# useradd user2
[root@long01 ~]# chown :user2 /bin/touch
[root@long01 ~]# ls -dl /bin/touch 
-rwxr-xr-x. 1 root user2 62488 11月  6 2016 /bin/touch

先不给touch命令文件设置SGID权限,切换到user1用户下touch一个文件user1.txt。

[user1@long01 ~]$ which touch
/bin/touch
[user1@long01 ~]$ touch user1.txt
[user1@long01 ~]$ ls -l user1.txt 
-rw-rw-r--. 1 user1 user1 0 5月  15 19:53 user1.txt

然后切换到root用户下给touch命令文件设置SGID权限,再切换到user1下touch一个文件user2.txt。

[root@long01 ~]# chmod g+s /bin/touch
[root@long01 ~]# su - user1
上一次登录:二 5月 15 19:52:22 CST 2018pts/0 上
[user1@long01 ~]$ touch user2.txt
[user1@long01 ~]$ ls -l
总用量 0
-rw-rw-r--. 1 user1 user1 0 5月  15 19:53 user1.txt  #开始touch的文件所属组为user1
-rw-rw-r--. 1 user1 user2 0 5月  15 20:27 user2.txt  #给touch加上SGID后创建文件的所属组为user2

再试试给目录添加SGID权限。

[root@long01 ~]# cd /home/user1
[root@long01 user1]# mkdir test                 #先在user1用户的家目录下创建一个test目录
[root@long01 user1]# chown user2:user2 test/    #将test目录的所属用户和组都改为user2
[root@long01 user1]# chmod 777 test/            #将test目录的权限修改为任何人都可读写执行。
[root@long01 user1]# ls -ld test/
drwxrwxrwx. 2 user2 user2 6 5月  15 21:07 test/

不给test目录设置SGID权限的情况下,使用user1用户在test目录下创建文件和目录。

[root@long01 user1]# su - user1
上一次登录:二 5月 15 21:11:25 CST 2018pts/0 上
[user1@long01 ~]$ cd test/
[user1@long01 test]$ touch testfile1
[user1@long01 test]$ mkdir testdir1
[user1@long01 test]$ ls -l
总用量 0
drwxrwxr-x. 2 user1 user1 6 5月  15 21:14 testdir1   #user1所创建文件和目录的所属用户和组都是user1
-rw-rw-r--. 1 user1 user1 0 5月  15 21:14 testfile1

给test目录加上SGID权限后,再使用user1在test目录下创建文件和目录

[root@long01 user1]# chmod g+s test/
[root@long01 user1]# ls -dl test/
drwxrwsrwx. 3 user2 user2 39 5月  15 21:14 test/
[root@long01 user1]# su - user1
上一次登录:二 5月 15 21:14:33 CST 2018pts/0 上
[user1@long01 ~]$ cd test/
[user1@long01 test]$ mkdir testdir2
[user1@long01 test]$ touch testfile2
[user1@long01 test]$ ls -l .
总用量 0
drwxrwxr-x. 2 user1 user1 6 5月  15 21:14 testdir1
drwxrwsr-x. 2 user1 user2 6 5月  15 21:24 testdir2   
-rw-rw-r--. 1 user1 user1 0 5月  15 21:14 testfile1
-rw-rw-r--. 1 user1 user2 0 5月  15 21:24 testfile2

结果可以看到加了SGID权限后创建文件的所属组都是user2了。

特殊权限:stick_bit

stick_bit是什么?

stick_bit权限,又可称为SBIT,改权限可以防止普通用户删除别人的文件。

只有给目录设置的SBIT权限才有效, 给文件设置SBIT权限没有意义。

拥有该权限的目录下的文件和子目录,只有文件和子目录的所属用户与ROOT用户能删除。

其他人无法删除,但是对于有读写执行权限的文件和目录都可以正常操作,。

比如/tmp目录就有SBIT权限,可以看到/tmp目录其他人的执行权限是字母:t。这就是有SBIT权限的目录

drwxrwxrwt. 10 root root 4096 5月  15 20:13 /tmp

设置stick_bit:

上面可以看到,SBIT在其他人的权限位。
那么设置SBIT权限的命令就是:chmod o+t dirname。

[root@long01 ~]# mkdir /test    
[root@long01 ~]# chmod o+t /test    #给/test目录设置SBIT权限。
[root@long01 ~]# ls -ld /test/
drwxr-xr-t. 2 root root 6 5月  15 22:11 /test/

也可以使用数字来设置SBIT权限。SBIT的代表数字是:1

[root@long01 ~]# chmod o-t /test    #取消/test目录的SBIT权限。
[root@long01 ~]# chmod 1777 /test
[root@long01 ~]# ls -ld /test/
drwxrwxrwt. 2 root root 6 5月  15 22:11 /test/

例子:

上面已经创建了一个目录/test.设置为所有人都可读写执行的权限,并且加上了SBIT权限。

实验:用user2在/test目录下创建一个文件,并将权限设置为所有人可读写

[root@long01 ~]# su - user2
[user2@long01 ~]$ cd /test/
[user2@long01 test]$ touch test1.txt
[user2@long01 test]$ chmod 666 test1.txt 
[user2@long01 test]$ ls -l
总用量 0
-rw-rw-rw-. 1 user2 user2 0 5月  15 22:22 test1.txt

切换到user1用户对/test/test1.txt文件进行操作。

[user1@long01 ~]$ cd /test/
[user1@long01 test]$ echo "123" >> test1.txt #可以写入内容
[user1@long01 test]$ cat test1.txt  
123
[user1@long01 test]$ echo "" >test1.txt      #可以清空内容
[user1@long01 test]$ rm -f test1.txt         #无法删除test1.txt
rm: 无法删除"test1.txt": 不允许的操作

软链接文件

软链接文件是什么?

软链接文件是类似于Windows快捷方式的存在。

软链接是一个独立存在的文件,它指向了另一个文件或目录。

如果一个软连接所指向的目标文件或目录不存在了(重命名,移动到其他目录,删除),那么这个软连接就没有任何作用了。

删除软连接不会对软连接指向的目标文件或目录造成任何影响

创建软链接

创建链接文件的命令:ln

创建软连接的选项:-s

设置软连接的命令格式: ln -s 软连接所指向的文件 软连接名

例子:

1:在/root目录下给网卡配置文件创建一个软连接,软连接名为ens33

[root@long01 ~]# ln -s /etc/sysconfig/network-scripts/ifcfg-ens33  /root/ens33
[root@long01 ~]# ls -ld ens33 
lrwxrwxrwx. 1 root root 42 5月  15 22:51 ens33 -> /etc/sysconfig/network-scripts/ifcfg-ens33
这就是软连接的信息:                       链接名 指向   目标文件

直接cat ens33,就可以查看网卡的配置信息了,

当然如果用vi ens33也是编辑的软连接ens33所指向的网卡配置文件

[root@long01 ~]# cat ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=10.1.1.25
NETMASK=255.255.255.0
GATEWAY=10.1.1.1
DNS1=223.5.5.5
DNS2=61.139.2.69

2:在/root目录下给/etc/ssh/目录创建一个软连接,软链接名为etc_ssh

当软链接指向的是一个目录时,使用软链接名的时候后面最好不要带/,如果带上/那么就代表使用的是软链接所指向的目录本身。

[root@long01 ~]# ln -s /etc/ssh/ /root/etc_ssh
[root@long01 ~]# ls -ld etc_ssh
lrwxrwxrwx. 1 root root 9 5月  15 23:07 etc_ssh -> /etc/ssh/
[root@long01 ~]# ls -ld etc_ssh/                    查看etc_ssh/ 的信息和查看/etc/ssh/的信息一样。
drwxr-xr-x. 2 root root 225 5月  13 20:07 etc_ssh/
[root@long01 ~]# ls -ld /etc/ssh/
drwxr-xr-x. 2 root root 225 5月  13 20:07 /etc/ssh/

硬连接文件

硬链接文件时什么?

硬链接就像一间屋子的多个门或者窗户。通过任何一个门或者窗户都可以放东西进屋子,或者从屋子里拿东西出来。

当文件还在存在硬链接时,文件就不会真正的被删除,就像屋子还有任何一扇门或窗户都可以拿东西和放东西进去。

一个文件所有的硬链接被删除的时候,这个文件才会真正的被删除。

由于系统机制,用户是不能给目录做硬链接

Inode:

inode是格式化磁盘,创建文件系统的时候,由文件系统生成的一系列号码。

Linux每个文件都有一个inode号码,inode记录了文件的属性信息,和文件在磁盘上所存储的位置等信息

当有多个文件使用同一个inode时,它们互为硬链接。

创建硬链接

ln命令不带选项的情况下就是创建硬链接。

[root@long01 ~]# touch test1        #创建一个文件test1
[root@long01 ~]# ln test1 test2     #对test1创建一个硬链接test2
[root@long01 ~]# ls -lih
总用量 0
33574978 -rw-r--r--. 2 root user2 0 5月  16 00:11 test1
33574978 -rw-r--r--. 2 root user2 0 5月  16 00:11 test2  #test1和test2两个文件的inode号码相同。

例子:

上面创建了文件test1和硬链接test2,
先向test1里面写入点数据。看看test2有什么变化。

[root@long01 ~]# cat /etc/profile > test1    #将/etc/profile文件的内容写入test1
[root@long01 ~]# head -5 test1 test2        #查看test1和test2两个文件前5行的内容,结果输出一样。并没有主动给test2写入数据。
==> test1 <==
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc


==> test2 <==
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

下面将test1删除再看看test2的内容。数据并没有因为删除test1而消失。

[root@long01 ~]# rm -f test1
[root@long01 ~]# ls -l
总用量 4
-rw-r--r--. 1 root user2 1795 5月  16 00:18 test2
[root@long01 ~]# head -5 test2 
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

如下,不允许给目录做硬链接

[root@long01 ~]# ln test test1
ln: "test": 不允许将硬链接指向目录

文件查找:find命令

find命令的作用?

find命令可以查找指定目录下的所有文件和子目录。

find名的用法:

find 指定查找的目录 选项

常用选项:(<>为选项的参数)
-type  <>   指定文件类型,(f:普通文件,l:符号连接,d:目录,c:字符设备,b:块设备,s:套接字,p:管道文件)
-name  <>   指定文件名或目录名,全名或模糊文件名都可以
-mtime <>   指定文件内容被修改的时间   +1:1天以前,-1:1天以内  不带+或- 表示今天前第几天,单独的一天
-ctime <>   指定文件访问时间或创建时间 +1:1天以前,-1:1天以内  不带+或- 表示今天前第几天,单独的一天
-atime <>   指定文件属性被修改的时间   +1:1天以前,-1:1天以内  不带+或- 表示今天前第几天,单独的一天
-inum  <>   按inode号查找
-mmin  <>   按分钟查找
-size  <>   按文件大小查找
-exec 命令 {} \;  查找的结果交给指定命令作为参数执行。  

例子:

1:查找/etc/ssh/目录下的普通文件

[root@long01 ~]# find /etc/ssh/ -type f
/etc/ssh/moduli
/etc/ssh/sshd_config
/etc/ssh/ssh_config
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_rsa_key.pub
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_ed25519_key.pub

2:查找/etc/目录下文件名为ifcfg-ens33的文件

[root@long01 ~]# find /etc/ -name ifcfg-ens33
/etc/sysconfig/network-scripts/ifcfg-ens33

3:查找/etc/ssh/目录下文件名以 .pub结尾的文件,find -name选项可以使用通配符来查找。

[root@long01 ~]# find /etc/ssh/ -name *.pub
/etc/ssh/ssh_host_rsa_key.pub
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_ed25519_key.pub

4:查找指定目录下7天以前的文件,这里需要使用touch按时间来创建一些文件

for i in {01..16} ;do touch -t 201805${i}1200 file$i ;done  
for循环是Shell的知识,先不说,这条命令可以按时间2018年5月1号到5月16号,每天创建一个文件,文件名为file01到file16

查找7天以前创建的文件:
[root@long01 test]# date        #date查看当前系统时间。
2018年 05月 16日 星期三 01:49:59 CST
[root@long01 test]# find . -type f -mtime +7 -exec ls -dl {} \;   
#-exec选项是把find查找的结果交给后面的命令作为参数。 “{} \;” 为-exec选项的固定格式。
-rw-r--r--. 1 root root 0 5月   1 00:00 ./file01
-rw-r--r--. 1 root root 0 5月   2 00:00 ./file02
-rw-r--r--. 1 root root 0 5月   3 00:00 ./file03
-rw-r--r--. 1 root root 0 5月   4 00:00 ./file04
-rw-r--r--. 1 root root 0 5月   5 00:00 ./file05
-rw-r--r--. 1 root root 0 5月   6 00:00 ./file06
-rw-r--r--. 1 root root 0 5月   7 00:00 ./file07
-rw-r--r--. 1 root root 0 5月   8 00:00 ./file08

5:查找只有今天或只有今天前的第几天的文件。

[root@long01 test]# find . -type f -atime 0 #查找只有今天访问过的文件
./file16
[root@long01 test]# find . -type f -atime 1 #查找只有今天的前1天访问过的文件
./file15
[root@long01 test]# find . -type f -atime 2 #查找只有今天的前2天访问过的文件
./file14
[root@long01 test]# find . -type f -atime 3 #查找只有今天的前3天访问过的文件
./file13

6:查找3天内创建或修改过内容的文件

[root@long01 test]# find . -type f -mtime -3 -exec ls -l {} \;
-rw-r--r--. 1 root root 0 5月  14 00:00 ./file14
-rw-r--r--. 1 root root 0 5月  15 00:00 ./file15
-rw-r--r--. 1 root root 0 5月  16 00:00 ./file16

7:查找并删除7天以前访问过的文件

[root@long01 test]# find -type f -atime +7 -exec rm -f {} \;
[root@long01 test]# ls
file09  file10  file11  file12  file13  file14  file15  file16  #还剩8个文件,今天的一个加上前面7天的。

8:由于文件全部是今天创建的, 所以ctime全是今天,就不做实例了,基本跟操作-atime与-mtime一样。

文件名后缀

Windows中,大部分软件都使用后缀名来识别一个文件的文件类型,只要后缀名不正确就可能打不开这个文件。

而Linux不同,Linux中一切皆文件的特性,使文件的后缀名基本没什么实际作用,

Linux中的文件后缀名大部分只是为了方便人们识别,按照一套大家都默认的约定来给各种类型的文件名加上后缀名。

Linux中主要的后缀名就是 .cfg、.conf .info等等的配置文件后缀。

.rpm软件安装包后缀名

.tar打包文件后缀名

.gz、.bz、.zip等等压缩包后缀名。

还有就是各种编程语言的后缀名:

shell:.sh

C语言:.c .h

java:.java .jar

python:.py

Linux中虽然也会给各种类型的文件加上后缀名,但是并不完全依赖后缀名。

linux和windows互传文件

1:lrzsz工具

lrzsz工具是Linux端的一个工具,可以在远程终端和Linux本地传输文件。

Xhell和SecureCRT都支持这个工具。

首先需要安装这个工具才能使用

yum install -y lrzsz    #安装lrzsz软件

需要上传文件到Linux可以输入命令:rz 会弹出一个浏览窗口,让你选择需要上传的文件。

此时选中你需要上传到Linux的文件,点击打开就可以了,

注:rz上传的文件存放在用户当前所在的目录,如果当前目录已有和上传的文件同名的文件会导致上传失败

如果需要从Linux下载文件到Windows就输入命令:sz 需要下载的文件

然后就会弹出一个串口让人选择文件的存放位置。

此时我将文件保存到d:\360download文件夹下面

注:和上传一样,如果保存文件的文件夹里面已经有与下载的文件同名的文件存在会导致下载失败。

2:winscp工具

winscp是一款开源免费的SFTP客户端软件,也可作为FTP的客户端。

winscp的安装过程这里就略过了,

附上winscp的下载地址:【下载WinScp】

打开WinScp软件,按下图进行操作。

之后会弹出窗口,提示时候将主机的密钥添加到缓存中,点击是即可。

登录后的界面。只需要相互拖拽文件到另一边就可以完成上传下载。非常方便。

3:Xftp工具

Xftp工具是Xshell同一个公司的产品,与Xhell有相辅相成的效果

可以直接用Xhell的会话连接Xftp。

附上Xftp下载地址:【Xftp下载地址】

同样安装过程略过。

打开Xftp软件,新建会话。需要填写的内容大致跟WinScp一样。

登录后的界面与操作也跟Winscp类似。

这里需要提到的是,将Xhell的会话导出来可以直接导入到Xftp使用。

这样就不用二次建立N个链接了

导出Xhell的会话。Xhell界面选择文件导出选项。

选择导出会话文件的保存位置。这里我保存在桌面上的。

然后点下一步。就会将会话导出到桌面上点击完成就OK了

接下来在Xftp的界面点击文件–>导入选项,

然后在弹出的窗口中点击红框中的按钮浏览打开刚才保存在桌面的会话文件。

然后点击下一步,选择源和目标。保持默认即可,

然后再点击下一步会弹出一个确认窗口。直接点击是,即可完成导入。

在Xftp主界面点击文件–>打开选项,就可以看到我们刚才导入的会话。

双击一个会话就可以进行Xftp连接了。

你可能感兴趣的:(Linux基础)