常用命令小结

常用命令小结

          2020-01-17  秦文杰

一、常用的文件、目录操作命令

这是我们使用得最多的命令了,Linux最基础的命令

可用  pwd命令查看用户的当前目录

可用 cd 命令来切换目录

.表示当前目录

.. 表示当前目录的上一级目录(父目录)

-表示用 cd 命令切换目录所在的目录

表示用户主目录的绝对路径名

绝对路径:以斜线(/)开头 ,描述到文件位置的完整说明 ,任何时候你想指定文件名的时候都可以使用

相对路径

不以斜线(/)开头 ,指定相对于你的当前工作目录而言的位置 ,可以被用作指定文件名的简捷方式

tips:输入命令的时候要常用tab键来补全

ls:显示文件或目录信息

mkdir:当前目录下创建一个空目录

rmdir:要求目录为空

touch:生成一个空文件或更改文件的时间

cp:复制文件或目录

mv:移动文件或目录、文件或目录改名

rm:删除文件或目录

ln:建立链接文件

find:查找文件

file/stat:查看文件类型或文件属性信息

cat查看文本文件内容

more可以分页看

less不仅可以分页,还可以方便地搜索,回翻等操作

tail -10 查看文件的尾部的10

head -20:查看文件的头部20

echo:把内容重定向到指定的文件中 ,有则打开,无则创建

管道命令:将前面的结果给后面的命令,例如:ls -la | wc,将ls的结果加油wc命令来统计字数

重定向是覆盖模式,>> 是追加模式,例如:echo "Java3y,zhen de hen xihuan ni" > qingshu.txt把左边的输出放到右边的文件里去

二、文件打包和压缩命令

  

  

压缩的方式也是有好几种,我们常用的有下面这三种:

Gzipbzip2tar

常用的压缩的命令就有:

gzip filename

bzip2 filename

tar -czvf filename

常用的解压命令有:

gzip -d filename.gz

bzip2 -d filename.bz2

tar -xzvf filename.tar.gz

 三、正则表达式+grep

1、正则表达式

        

  

2、grep命令

  grep(global search regular expression)是一个强大的文本搜索工具grep 使用正则表达式搜索文本,并把匹配的行打印出来。

  格式:grep [options] PATTERN [FILE...]

PATTERN 是查找条件:可以是普通字符串、可以是正则表达式,通常用单引号将RE括起来。

FILE 是要查找的文件,可以是用空格间隔的多个文件,也可是使用Shell的通配符在多个文件中查找PATTERN,省略时表示在标准输入中查找。

grep命令不会对输入文件进行任何修改或影响,可以使用输出重定向将结果存为文件

例子:

在文件 myfile 中查找包含字符串 mystr的行 

    grep -n mystr myfile 

显示 myfile 中第一个字符为字母的所有行 

    grep  '^[a-zA-Z]'  myfile 

在文件 myfile 中查找首字符不是 # 的行(即过滤掉注释行 

    grep -v '^#' myfile 

列出/etc目录(包括子目录)下所有文件内容中包含字符串“root”的文件名

    grep -lr root /etc/* 

四、系统管理命令

  stat              显示指定文件的详细信息,比ls更详细

  who               显示在线登陆用户

  whoami          显示当前操作用户

  hostname      显示主机名

  uname           显示系统信息

  top                动态显示当前耗费资源最多进程信息

  ps                  显示瞬间进程状态 ps -aux

  du                  查看目录大小 du -h /home带有单位显示目录信息

  df                  查看磁盘大小 df -h 带有单位显示磁盘信息

  ifconfig          查看网络情况

  ping                测试网络连通

  netstat          显示网络状态信息

  man                命令不会用了,找男人  如:man ls

  clear              清屏

  alias               对命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit

  kill                 杀死进程,可以先用ps top命令查看进程的id,然后再用kill命令杀死进程。

五、远程登录与NFS

  TelnetInternet提供的一项基本服务,用来将本地计算机作为远程计算机的终端机使用。 

  telnet 主机名或IP地址 

  exitlogout命令退出 

  telnet以明文传输不安全,因此禁止root身份登录 

  SSH 主机名或IP地址 //作为telnet的替代,以公开密钥算法加密数据,允许root登录

  scp 本地文件路径 远程用户名@主机:文件路径 //用于本地与远程计算机之间安全拷贝文件 如: 

    scp z3@202.207.30.136:a.txt

  sftp 远程用户名@主机 //以安全模式进入ftp状态,此时可执行该状态下的命令: 

  get 远程路径 本地路径 //下载 

  put 本地路径 远程路径 //上传 

  quit 退出 

  ? //列出该状态可使用的命令清单,其中不少同Linux Bash命令如mkdircdls等,都是针对被登录机操作,若对本地机操作,则在命令前加字母l,如lmkdirlls

  NFSNetwork File System:通过网络将远程主机的文件系统挂载到本地主机目录下,以便于使用,它基于客户机/服务器模式,建立在TCP/IP协议的表示层协议与会话层协议机制之上。

六、vim程序编辑器

  vimvi文本编辑器的进阶版,在所有linux系统上均可使用,被称为编辑器之神

  vi分为三种模式:一般模式,编辑模式和指令列命令模式 

  vi hello.c //进入hello.c文件,此时为一般模式,若hello.c不存在则自动新建 

  一般模式下执行vi定义的键盘上转义字符操作,del为删除光标上字符,dd为删除一整列,退格键及上下左右键移动光标,i进入插入光标前编辑模式,a进入插入光标后编辑模式,r进入改写编辑模式; 

  编辑模式下键盘上所有按键除ESC外都可输入字符,如上下左右键分别代表ABCD大写字母,按ESC退出编辑;

在一般模式下按:进入指令列模式,最下面一行为指令列,wq保存并退出。

mysql操作

  SQL:Structured Query Language 

  netstat -tap|grep mysql //检查系统有没有已安装mysql,若socket显示listen则表示就绪。 

  mysqlunique key(唯一键)指除主键外确保某一列唯一性的约束,该列可包含NULL(空值);primary key为主键

  apt-get install mysql-server //安装mysql 

  mysql -u root -p //root用户登录mysql server,之后需输入密码 

  show databases; show tables; //查看数据库和数据表单,注意在mysql server中输入指令以;结尾。 

  use mysql; //使用数据库mysql也可以在登录时输入指令: 

  mysql -D mysql -u root -p 

  quit; //退出 

  insert into students(id,name,sex) value(1,zhengfeng,man); //students表中插入zhengfeng的信息 

  select * from students //输出students的所有信息,*是通配符,可指定为列名称

  1.   create table students(
  2.   id int(8) not null auto_increment,
  3.   name varchar(255) not null,
  4.   sex char(4) not null,
  5.   tel char(13) not null default “-”,
  6.   primary key(id),
  7.   unique key unique_name(name)
  8.   );  

  describe students //输出表结构信息 

  mysql_config --libs //使用mysql_config工具确定MySql程序的链接参数,同理,若需确定编译参数,使用mysql_config –includ

 

hadoop常用操作命令 

 

1.列出根目录下所有的目录或文件

hadoop dfs -ls /

2.列出/user目录下的所有目录和文件

Hadoop  dfs  -ls  /user

3.列出/user目录及其子目录下的所有文件(谨慎使用)

hadoop dfs -ls -R /user

4.创建/soft目录

hadoop dfs -mkdir /soft

5.创建多级目录

hadoop dfs -mkdir -p /apps/windows/2017/01/01

6.将本地的wordcount.jar文件上传到/wordcount目录下

hadoop dfs -put wordcount.jar /wordcount

7.下载words.txt文件到本地

hadoop dfs -get /words.txt 

8./stu/students.txt文件拷贝到本地

hadoop dfs -copyToLocal /stu/students.txt

 

9.word.txt文件拷贝到/wordcount/input/目录

hadoop dfs -copyFromLocal word.txt /wordcount/input 

10.word.txt文件从本地移动到/wordcount/input/目录下

hadoop dfs -moveFromLocal word.txt /wordcount/input/

11./stu/students.txt拷贝一份为/stu/students.txt.bak

hadoop dfs -cp /stu/students.txt /stu/students.txt.bak 

12./flume/tailout/目录下的子目录或文件都拷贝到/logs目录(如果此目录不存在会创建)下

hadoop dfs -cp /flume/tailout/ /logs 

13./word.txt文件重命名为/words.txt

hadoop dfs -mv /word.txt /words.txt

14./words.txt文件移动到/wordcount/input/目录下

hadoop dfs -mv /words.txt /wordcount/input/

15./ws目录以及子目录和文件都删除(谨慎使用)

hadoop dfs -rm -r /ws 

16.删除以"xbs-"开头的目录及其子目录

hadoop dfs -rm -r /xbs-*

 

 

17./wordcount/output2/目录下的a.txt文件删除

hadoop dfs -rm /wordcount/output2/a.txt 

18./wordcount/input/目录下面的所有文件都删除

hadoop dfs -rm /wordcount/input/*

19.查看HDFS集群的磁盘空间使用情况

hadoop dfs -df -h 

20.查看/word.txt文件的内容

hadoop dfs -cat /word.txt 

21.name.txt文件中的内容添加到/wordcount/input/words.txt文件中

hadoop dfs -appendToFile name.txt /wordcount/input/words.txt

22.动态查看/wordcount/input/words.txt文件的内容

hadoop dfs -tail -f /wordcount/input/words.txt

23.统计/flume目录总大小

hadoop dfs -du -s -h /flume

 

24.分别统计/flume目录下各个子目录(或文件)大小

hadoop dfs -du -s -h /flume/*

25.运行jar包中的程序

//hadoop jar + 要执行的jar+ 要运行的类 + 输入目录 + 输出目录
hadoop jar wordcount.jar com.xuebusi.hadoop.mr.WordCountDriver /wordcount/input /wordcount/out

 

26.查看hdfs集群状态

hdfs dfsadmin -report

 View Code

27.查看hadoop fs命令使用帮助

Hive常用操作命令

create database db_name;

create database if not exists db_name;//创建一个不存在的数据库final

查看数据库

show databases;

选择性查看数据库

show databases like ‘f.*’;

查看某一个数据库的详细信息

describe database db_name;

删除非空数据库

drop database db_name CASCADE;

创建数据库时,指定数据库位置

create database db_name location ‘/home/database/’

创建数据库的时候希望能够给数据库增加一些描述性东西

create database db_name comment ‘helloworld’;

创建数据库的时候,需要为数据库增加属性信息,可以使用with dbproperties信息

create database db_name with dbproperties<‘createor’=‘hello’,‘date’=‘2018-3-3’);

如果要使用自己已经存在的数据库

use db_name;

修改数据库的属性信息

alter database db_name set dbproperties(‘edited-by’=‘hello’);

创建表

create table tab_name(id int,name string) row format delimited fields terminated by ‘\t’;

创建一个表,该表和已有的某一个表的结构一样(复制表结构)

create table if not exists emp like employeel;

查看当前数据库下的所有表

show tables;

删除一个已经存在的表

drop table employee;

修改一个表明,重命名

alter table old_name rename to new_name;

hdfs上面的文件信息导入到hive表中(/home/bigdata代表文件在在HDFS上位置)使用改命令时一定要注意数据与数据之间在txt文件编辑的时候一定要Tab间隔

load data local inpath ‘/home/bigdata’ into table hive.dep;

修改某一个表的某一列的信息

alter table tab_name change column key key_1 int comment ‘h’ after value;

给某一个表增加某一列的信息

alter table tab_name add columns(value1 string,value2 string);

如果想替换表中的某一个列

alter table tab_name replace columns(values string,value11 string);

修改表中某一列的属性

alter table tab_name set tblproperties(‘value’=‘hello’);

hive成批向某一表插入数据

insert overwrite table tab_name select * from tab_name2;

查询结果保留到一个新表中去

create table tab_name as select * from t_name2;

将查询结果保存到指定的文件目录(可以是本地,也可以HDFS

insert overwrite local directory ‘/home/hadoop/test’ select *from t_name;

insert overwrite directory ‘/aaa/bbb/’ select *from t_p;

两表内连

select *from dual a join dual b on a.key=b.key;

hive查询结果输出到本地特定目录

insert overwrite local directory ‘/home/bigdata1/mydir’ select *from test;

hive查询结果输出到HDFS特定目录

insert overwrite directory ‘/home/mydir’ select *from test;

 

Hbase常用操作命令

1. 进入hbase

./hbase shell

  • 参数说明
  1. 进入到hbase目录并进入hbase

2. 浏览所有表

list

  • 参数说明
  1. 查看表列表

3. 查看表结构

describe 'BizvaneV2.VipSearch'

  • 参数说明
  1. describe 动作命令,BizvaneV2.VipSearch 为要查看表结构的表名

4. 创建表

create 'UserInfo', { NAME => 'info', REPLICATION_SCOPE => '1' }

  • 参数说明
  1. create 动作命令,UserInfo 为要创建的表名
  2. NAME 列族名,info 为列族名称
  3. REPLICATION_SCOPE 是否复制,0为不复制,1为复制

5. 修改表结构

disable 'UserInfo'

alter 'UserInfo', {NAME => 'extendInfo', REPLICATION_SCOPE => '1'}

describe 'UserInfo'

  • 参数说明
    • 修改表结构要使表不启用状态
  1. disable 动作命令,使要修改结构的表无效,UserInfo 为表名
  2. 修改命令
    1. alter 动作命令
    2. UserInfo 要修改的表名称
    3. {NAME => 'extendInfo', REPLICATION_SCOPE => '1'} 要修改的结构体
  3. describe 动作命令,查看表结构描述,验证是否修改成功

6. 添加数据

put 'UserInfo','row_1','info:firstname','liu'

  • 参数说明
  1. 添加命令
    1. put 动作命令,
    2. UserInfo 要添加数据的表名称
    3. row_1 数据行
    4. info:firstname 列及列名字
    5. liu 要添加的值

7. 查看数据

 scan 'UserInfo'

  • 参数说明
  1. scan 动作命令
    1. 要查看表的名称

8. 修改数据

put 'UserInfo','row_1','info:firstname','liu_copy'

  • 参数说明
  1. 添加命令
    1. put 动作命令,
    2. UserInfo 要修改数据的表名称
    3. row_1 数据行
    4. info:firstname 列及列名字
    5. liu 新数据值

9. 删除数据

delete 'UserInfo','row_1','info:firstname'参数说明

  1. 删除命令
    1. delete 动作命令,
    2. UserInfo 要修改数据的表名称
    3. row_1 数据行
    4. info:firstname 列及列名字

10. 删除表

disable 'UserInfo'

drop 'UserInfo'

  • 参数说明
    • 修改表结构要使表不启用状态
  1. 删除命令
    1. disable 使表不启用,UserInfo 要不启用的表名称
    2. drop 删除命令 UserInfo 要删除的表名称

11. 帮助

help

  • 参数说明
  1. help 帮助命令,可以查看Hbase提供的命令清单

 

Kafka常用topic操作命令汇总 

topic 工具
https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools

offset相关

# 最大offset

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 192.168.32.43:9092 --topic test_topic --time -1

# 最小offset

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 192.168.32.43:9092 --topic test_topic --time -2

# offset

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 192.168.32.43:9092 --topic test_topic

topic相关

# 创建topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic test_topic --replication-factor 3 --partitions 1

 

bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic test_topic --replication-factor 3 --partitions 50 --config cleanup.policy=compact

 

bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic my-topic --partitions 1   --replication-factor 1 --config max.message.bytes=64000 --config flush.messages=1

# 查看topic

bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic test_topic

# 修改topic

bin/kafka-configs.sh --alter --zookeeper localhost:2181 --entity-name test_topic --entity-type topics --add-config cleanup.policy=compact

 

bin/kafka-configs.sh --alter --zookeeper localhost:2181 --entity-name test_topic --entity-type topics --delete-config cleanup.policy

consumer-group相关

bin/kafka-consumer-groups.sh --bootstrap-server 192.168.21.11:9092,192.168.21.12:9092,192.168.21.13:9092 --group test_group  --describe

 

bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server localhost:9092 --list

 

bin/kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --group test_group --describe

consumer相关

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic

# 带有key

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic --property print.key=true

 

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test_topic

producer相关

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic

 

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic --property "parse.key=true" --property "key.separator=:"

producer-golang

# golang实现的kafka客户端

https://github.com/Shopify/sarama/tree/master/tools

# Minimum invocation

kafka-console-producer -topic=test -value=value -brokers=kafka1:9092

# It will pick up a KAFKA_PEERS environment variableexport KAFKA_PEERS=kafka1:9092,kafka2:9092,kafka3:9092

kafka-console-producer -topic=test -value=value

# It will read the value from stdin by using pipesecho "hello world" | kafka-console-producer -topic=test

# Specify a key:echo "hello world" | kafka-console-producer -topic=test -key=key

# Partitioning: by default, kafka-console-producer will partition as follows:# - manual partitioning if a -partition is provided# - hash partitioning by key if a -key is provided# - random partioning otherwise.## You can override this using the -partitioner argument:echo "hello world" | kafka-console-producer -topic=test -key=key -partitioner=random

# Display all command line options

kafka-console-producer -help

 

linux nc命令传输文件(远程复制文件)

2019-06-14 11:02来源:脚本之家所属分类:Linux

今天主要讲下用nc 传输文件。由于公司的设备sudo 后没有ssh ,scp 等远程接入命令,或host.deny 里面设置了ssh 的deny ,不管怎样的原因。我今天跨过大家常用的scp, 来说明下一个更有用的轻量级工具,nc 的另一个强大的功--- 文件传输

nc 到底干嘛用的我不多描述,今天主要讲下用nc 传输文件。由于公司的设备sudo 后没有ssh ,scp 等远程接入命令,或host.deny 里面设置了ssh 的deny ,不管怎样的原因。我今天跨过大家常用的scp, 来说明下一个更有用的轻量级工具,nc 的另一个强大的功--- 文件传输。 

 

范例如下: 

 

目的主机监听 

 

nc -l 监听端口[ 未使用端口] > 要接收的文件名 

nc -l 4444 > cache.tar.gz 

 

源主机发起请求 

 

nc 目的主机ip 目的端口 < 要发送的文件 

nc 192.168.0.85 4444 < /root/cache.tar.gz 

 

netstat 如下 

 

[root@localhost jiangbao]# netstat -tpln 

 

tcp 0 0 0.0.0.0:4444 0.0.0.0:* LISTEN 18166/nc 

 

英文描述如下 

 

DATA TRANSFER 

 

Start by using nc to listen on a specific port, with output captured into a file: 

 

$ nc -l 1234 > filename.out 

Using a second machine, connect to the listening nc process, feeding it the file which is to be transferred: 

 

$ nc host.example.com 1234 < filename.in 

 

另附nc 的其他选项说明: 

 

语  法: nc [-hlnruz][-g< 网关...>][-G< 指向器数目>][-i< 延迟秒数>][-o< 输出文件>][-p< 通信端口>][-s< 来源位址>][-v...][-w< 超时秒数>][ 主机名称][ 通信端口...] 

 

补充说明: 执行本指令可设置路由器的相关参数。 

 

参  数: 

-g< 网关> 设置路由器跃程通信网关,最丢哦可设置8 个。 

-G< 指向器数目> 设置来源路由指向器,其数值为4 的倍数。 

-h 在线帮助。 

-i< 延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。 

-l 使用监听模式,管控传入的资料。 

-n 直接使用IP 地址,而不通过域名 服务器 。 

-p< 通信端口> 设置本地主机使用的通信端口。 

-r 乱数指定本地与远端主机的通信端口。 

-s< 来源位址> 设置本地主机送出数据包的IP 地址。 

-u 使用UDP 传输 协议 。 

-v 显示指令执行过程。 

-w< 超时秒数> 设置等待连线的时间。 

-z 使用0 输入/ 输出模式,只在扫描通信端口时使用

 

Linux 远程复制文件 

 

如果想把机器A上面的dir目录下面的所有文件复制到机器B的dir目录下,我们可以使用nc命令来完成 

 

在机器A的dir目录下面执行: 

 

tar -czf - * | nc -l 4444 

 

然后再机器B的目录目录dir下面执行: 

 

sudo nc 「机器A的机器ip」 4444 | sudo tar -xzf -

 

补充资料2:

1,在Linux下需要对大量小文件进行移动或复制时,用cp、mv都会显得很没有效率,可以用tar先压缩再解压缩的方式。

2,在网络环境中传输时,可以再结合nc命令,通过管道和tcp端口进行传输。

nc和tar可以用来快速的在两台机器之间传输文件和目录,比ftp和scp要来得简单的多。

由于nc是一个超轻量的命令,所以一般busybox都会集成它。当一个linux终端,比如linux pda,通过usblan的方式连接到另一台linux主机的时候,这样的嵌入式终端上一般不会集成ftp server, ssh server这样比较笨重的服务,这个时候, nc可能成为唯一的上传手段。

比如将机器A上的mytest目录上传到到机器 B(192.168.0.11)上,只需要:

在机器B上,用nc来监听一个端口,随便就好,只要不被占用;并且将收到的数据用tar展开。-l代表监听模式。

[root@ www.linuxidc.com ~]#nc -l 4444 |tar -C /tmp/dir -zxf -

然后,在A上通过nc和 tar发送test目录。使用一致的4444的端口。

[root@ www.linuxidc.net ~]#tar -zcvf - mytest|nc 192.168.0.11 4444

记得有一次,一台机器内核崩了,后来有位高手用liveCD把机器启动起来,就是用了类似的方法把数据导出来的。

 

1.登陆ftp服务器

ftp [IP] [PORT]        # 登陆ftp服务器,本机登陆可以不写IP

实例演示:

 

[root@ftpsrv vsftpd]# ftp 127.0.0.1 21

Connected to 127.0.0.1 (127.0.0.1).220 (vsFTPd 2.2.2)

Name (127.0.0.1:root): nice331 Please specify the password.

Password:230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>

 

可以看出登陆后默认为二进制传输模式

回到顶部

2.ftp子命令

2.1.帮助命令

ftp> ?|help                  # 显示ftp内部命令的帮助信息

2.2.查看ftp中的文件列表(ls和dir都可以查看)

 

ftp> dir227 Entering Passive Mode (127,0,0,1,44,241).150 Here comes the directory listing.

drwxr-xr-x    2 501      501          4096 Sep 04 07:18 aaa

drwxr-xr-x    2 501      501          4096 Sep 05 08:59 bbb226 Directory send OK.

ftp> ls227 Entering Passive Mode (127,0,0,1,71,215).150 Here comes the directory listing.

drwxr-xr-x    2 501      501          4096 Sep 04 07:18 aaa

drwxr-xr-x    2 501      501          4096 Sep 05 08:59 bbb226 Directory send OK.

ftp>

 

2.3.切换ftp的目录

 

ftp> cd aaa      # 切换到ftp的aaa目录250 Directory successfully changed.

ftp> pwd        # 查看当前所在的ftp目录257 "/aaa"

ftp> ls227 Entering Passive Mode (127,0,0,1,88,202).150 Here comes the directory listing.-rw-r--r--    1 501      501             0 Sep 05 09:01 aaa1-rw-r--r--    1 501      501             0 Sep 05 09:02 aaa2226 Directory send OK.

ftp>

 

2.4.查询linux系统信息

1) 查询系统中的文件列表

ftp> ! [linux系统命令]          # 在ftp服务器中执行系统命令,之后回到ftp环境中

ftp> ! ls /usr/local/

aegis  bin  cloudmonitor  etc  games  include  lib  lib64  libexec  logs  nginx  sbin  share  src

2)切换linux中的工作目录

ftp> lcd /tmp/            # 在ftp服务器中切换本地工作目录(登陆ftp前的系统中的目录),可以tab补全

Local directory now /tmp

2.5.下载上传文件或目录

1)创建和删除ftp目录

 

ftp> mkdir ccc257 "/aaa/ccc" created

ftp> ls227 Entering Passive Mode (127,0,0,1,194,152).150 Here comes the directory listing.-rw-r--r--    1 501      501             0 Sep 05 09:01 aaa1-rw-r--r--    1 501      501             0 Sep 05 09:02 aaa2

drwxr-xr-x    2 501      501          4096 Sep 05 09:06 ccc226 Directory send OK.

ftp> rmdir ccc250 Remove directory operation successful.

ftp> ls227 Entering Passive Mode (127,0,0,1,214,114).150 Here comes the directory listing.-rw-r--r--    1 501      501             0 Sep 05 09:01 aaa1-rw-r--r--    1 501      501             0 Sep 05 09:02 aaa2226 Directory send OK.

 

2)下载ftp的文件

# 下载单个文件

 

ftp> !pwd        # 查看当前所在的系统工作目录 /tmp

ftp> ls 227 Entering Passive Mode (127,0,0,1,223,180).150 Here comes the directory listing.-rw-r--r--    1 501      501             0 Sep 05 09:01 aaa1-rw-r--r--    1 501      501             0 Sep 05 09:02 aaa2226 Directory send OK.

ftp> get aaa1    # 下载aaa1文件

local: aaa1 remote: aaa1227 Entering Passive Mode (127,0,0,1,33,232).150 Opening BINARY mode data connection for aaa1 (0 bytes).226 Transfer complete.

ftp> !ls

aaa1

ftp> get aaa2 aaa3    # 下载aaa2文件,并命名为aaa3

local: aaa3 remote: aaa2227 Entering Passive Mode (127,0,0,1,171,86).150 Opening BINARY mode data connection for aaa2 (0 bytes).226 Transfer complete.

ftp> !ls          # 查看,下载成功

aaa1  aaa3

 

# 下载多个文件

 

ftp> mget aaa1 aaa2

mget aaa1? y227 Entering Passive Mode (127,0,0,1,83,114).150 Opening BINARY mode data connection for aaa1 (0 bytes).226 Transfer complete.

mget aaa2? y227 Entering Passive Mode (127,0,0,1,217,121).150 Opening BINARY mode data connection for aaa2 (0 bytes).226 Transfer complete.

ftp> !ls -l

total 1532

-rw-r--r-- 1 root root       0 Sep  5 17:20 aaa1    # 可以看到文件创建时间已经更改-rw-r--r-- 1 root root       0 Sep  5 17:20 aaa2-rw-r--r-- 1 root root       0 Sep  5 17:14 aaa3

 

3)上传文件

# 上传单个文件

# 创建测试文件

 

[root@ftpsrv tmp]# touch ddd1

[root@ftpsrv tmp]# touch ddd2

[root@ftpsrv tmp]# ll

total 1532

-rw-r--r-- 1 root root       0 Sep  5 17:20 aaa1-rw-r--r-- 1 root root       0 Sep  5 17:20 aaa2-rw-r--r-- 1 root root       0 Sep  5 17:14 aaa3-rw-r--r-- 1 root root       0 Sep  5 17:23 ddd1-rw-r--r-- 1 root root       0 Sep  5 17:23 ddd2

 

# 上传

 

ftp> put ddd1       # 上传单个文件,可以tab补全

local: ddd1 remote: ddd1227 Entering Passive Mode (127,0,0,1,69,10).150 Ok to send data.226 Transfer complete.

ftp> put ddd1 eee1    # 上传单个文件并改名

local: ddd1 remote: eee1227 Entering Passive Mode (127,0,0,1,243,160).150 Ok to send data.226 Transfer complete.

ftp> ls227 Entering Passive Mode (127,0,0,1,234,62).150 Here comes the directory listing.-rw-r--r--    1 501      501             0 Sep 05 09:01 aaa1-rw-r--r--    1 501      501             0 Sep 05 09:02 aaa2

drwxr-xr-x    2 501      501          4096 Sep 05 09:18 bbb-rw-r--r--    1 501      501             0 Sep 05 09:23 ddd1-rw-r--r--    1 501      501             0 Sep 05 09:23 eee1226 Directory send OK

 

# 上传多个文件

 

ftp> mput ddd1 ddd2

mput ddd1? y227 Entering Passive Mode (127,0,0,1,92,11).150 Ok to send data.226 Transfer complete.

mput ddd2? y227 Entering Passive Mode (127,0,0,1,66,108).150 Ok to send data.226 Transfer complete.

ftp> ls227 Entering Passive Mode (127,0,0,1,191,91).150 Here comes the directory listing.-rw-r--r--    1 501      501             0 Sep 05 09:01 aaa1-rw-r--r--    1 501      501             0 Sep 05 09:02 aaa2

drwxr-xr-x    2 501      501          4096 Sep 05 09:18 bbb-rw-r--r--    1 501      501             0 Sep 05 09:27 ddd1    # 查看修改时间可以确认已经上传成功-rw-r--r--    1 501      501             0 Sep 05 09:27 ddd2-rw-r--r--    1 501      501             0 Sep 05 09:23 eee1226 Directory send OK.

 

2.6.ftp文件目录操作

1)修改ftp文件名

 

ftp> rename aaa1 qqq1350 Ready for RNTO.250 Rename successful.

ftp> ls227 Entering Passive Mode (127,0,0,1,29,54).150 Here comes the directory listing.-rw-r--r--    1 501      501             0 Sep 05 17:02 aaa2

drwxr-xr-x    2 501      501          4096 Sep 05 17:18 bbb-rw-r--r--    1 501      501             0 Sep 05 17:27 ddd1-rw-r--r--    1 501      501             0 Sep 05 17:27 ddd2-rw-r--r--    1 501      501             0 Sep 05 17:23 eee1-rw-r--r--    1 501      501             0 Sep 05 17:37 fff-rw-r--r--    1 501      501             0 Sep 05 17:01 qqq1    # 修改后的文件名226 Directory send OK.

 

2)删除ftp文件

 

ftp> delete aaa2    # 删除aaa2文件250 Delete operation successful.

ftp> ls227 Entering Passive Mode (127,0,0,1,138,61).150 Here comes the directory listing.

drwxr-xr-x    2 501      501          4096 Sep 05 17:18 bbb-rw-r--r--    1 501      501             0 Sep 05 17:27 ddd1-rw-r--r--    1 501      501             0 Sep 05 17:27 ddd2-rw-r--r--    1 501      501             0 Sep 05 17:23 eee1-rw-r--r--    1 501      501             0 Sep 05 17:37 fff-rw-r--r--    1 501      501             0 Sep 05 17:01 qqq1226 Directory send OK.

 

# 删除多个ftp文件

 

ftp> mdelete ddd1 ddd2 eee1

mdelete ddd1? y250 Delete operation successful.

mdelete ddd2? y250 Delete operation successful.

mdelete eee1? y250 Delete operation successful.

ftp> ls227 Entering Passive Mode (127,0,0,1,166,205).150 Here comes the directory listing.

drwxr-xr-x    2 501      501          4096 Sep 05 17:18 bbb-rw-r--r--    1 501      501             0 Sep 05 17:37 fff-rw-r--r--    1 501      501             0 Sep 05 17:01 qqq1226 Directory send OK.

 

3)删除ftp目录

 

ftp> rmdir bbb    # 删除bbb目录250 Remove directory operation successful.

ftp> ls227 Entering Passive Mode (127,0,0,1,143,198).150 Here comes the directory listing.-rw-r--r--    1 501      501             0 Sep 05 17:37 fff-rw-r--r--    1 501      501             0 Sep 05 17:01 qqq1226 Directory send OK.

 

2.7.其他ftp命令

1)切换传输模式

ftp> ascii        # 切换为ascii模式200 Switching to ASCII mode.

ftp> bin        # 切换为二进制模式,默认登陆就是二进制传输模式200 Switching to Binary mode.

2)关闭和重连ftp

 

ftp> close      # 断开ftp的连接221 Goodbye.

ftp> ls        # 可以看出,无法显示ftp服务器的文件列表

Not connected.

ftp> open 127.0.0.1 21    # 重新连接ftp服务器

Connected to 127.0.0.1 (127.0.0.1).220 (vsFTPd 2.2.2)

Name (127.0.0.1:root): admin     # 使用admin登陆ftp331 Please specify the password.

Password:230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls        # 可以再次查看ftp服务器的文件列表227 Entering Passive Mode (127,0,0,1,227,247).150 Here comes the directory listing.

drwxr-xr-x    2 501      501          4096 Sep 05 17:47 aaa

drwxr-xr-x    2 501      501          4096 Sep 05 16:59 bbb226 Directory send OK.

 

3) 退出ftp会话

ftp> quit    # 也可以使用bye和exit221 Goodbye.

[root@ftpsrv vsftpd]# 

posted on 2020-01-17 10:03  好像条狗  阅读(402)  评论(0编辑  收藏  举报