linux的一些命令和hadoop的一些命令

linux命令和hadoop命令

关于2>&1 &的详细解释

1、首先,bash中0,1,2三个数字分别代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,
即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出
错信息输出)。
2、输入输出可以重定向,所谓重定向输入就是在命令中指定具体的输入来源,譬如 cat < test.c 将
test.c重定向为cat命令的输入源。输出重定向是指定具体的输出目标以替换默认的标准输出,譬如ls >
1.txt将ls的结果从标准输出重定向为1.txt文本。有时候会看到如 ls >> 1.txt这类的写法,> 和 >> 的区别
在于:> 用于新建而>>用于追加。即ls > 1.txt会新建一个1.txt文件并且将ls的内容输出到新建的1.txt
中,而ls >> 1.txt则用在1.txt已经存在,而我们只是想将ls的内容追加到1.txt文本中的时候。
3、默认输入只有一个(0,STDIN_FILENO),而默认输出有两个(标准输出1 STDOUT_FILENO,标
准错误2 STDERR_FILENO)。因此默认情况下,shell输出的错误信息会被输出到2,而普通输出信息会
输出到1。但是某些情况下,我们希望在一个终端下看到所有的信息(包括标准输出信息和错误信
息),要怎么办呢?
对了,你可以使用我们上面讲到的输出重定向。思路有了,怎么写呢? 非常直观的想法就是2>1(将
2重定向到1嘛),行不行呢?试一试就知道了。我们进行以下测试步骤:
1)mkdir test && cd test ; 创建test文件夹并进入test目录
2)touch a.txt b.c c ; 创建a.txt b.c c 三个文件
3)ls > 1 ; 按我们的猜测,这句应该是将ls的结果重定向到标准输出,因此效果和直接ls应
该一样。但是实际这句执行后,标准输出中并没有任何信息。
4)ls ; 执行3之后再次ls,则会看到test文件夹中多了一个文件1
5)cat 1 ; 查看文件1的内容,实际结果为:1 a.txt b.c c 可见步骤3中 ls > 1并不是将ls的
结果重定向为标准输出,而是将结果重定向到了一个文件1中。即1在此处不被解释为
STDOUT_FILENO,而是文件1。
4、到了此时,你应该也能猜到2>&1的用意了。不错,2>&1就是用来将标准错误2重定向到标准输出1
中的。此处1前面的&就是为了让bash将1解释成标准输出而不是文件1。至于最后一个&,则是让bash
在后台执行。

Linux命令


ls -l:查看文件详细信息,不包括隐藏文件。
ls -la:包括隐藏文件。

linux的一些命令和hadoop的一些命令_第1张图片

“-”表示普通文件;
“l”是链接文件,相当于windows的快捷方式;
“b”是块设备,硬盘就是一个例子;
“c”是字符设备文件,鼠标,键盘算是;
“d”是目录文件,相当于windows的文件夹。
chmod 【数字】【文件名】:修改权限位


Hadoop常用命令

命令分类

  • hadoop fs:

    • FS relates to a generic file system which can point to any file systems like local, HDFS etc. So this can be used when you are dealing with different file systems such as Local FS, HFTP FS, S3 FS, and others
    • 该命令可以用于其他文件系统,不止是hdfs文件系统内,也就是说该命令的使用范围更广
  • hadoop dfs

    • 专门针对hdfs分布式文件系统
  • hdfs dfs(推荐)
    和上面的命令作用相同,相比于上面的命令更为推荐,并且当使用hadoop dfs时内部会被转为hdfs dfs命令。

Hadoop FS命令

  • 介绍

    • 调用文件系统(FS)Shell命令应使用 bin/hadoop fs 的形式。 所有的的FS shell命令使用URI路径作为参数。
    • URI格式是scheme://authority/path。对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file。
    • 其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。
    • 一个HDFS文件或目录比如/parent/child可以表示成 hdfs://namenode: namenodeport/parent/child,或者更简单的/parent/child(假设你配置
      文件中的默认值是namenode:namenodeport)。
    • 大多数FS Shell命令的行为和对应的Unix Shell命令类似,不同之处会在下面介绍各命令使用详情时指出。出错信息会输出到stderr,其他信息输出到stdout。
  • 网址 http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html

1 hadoop fs -ls 

列出指定目录下的内容,支持pattern匹配。输出格式如filename(full path)size.n代表
备份数。

2 hadoop fs -lsr 

递归列出该路径下所有子目录信息

3 hadoop fs -du

显示目录中所有文件大小,或者指定一个文件时,显示此文件大小

4 hadoop fs -dus

显示文件大小 相当于 linux的du -sb s代表显示只显示总计,列出最后的和 b代表显示文件大小时以byte
为单位

5 hadoop fs -mv  

将目标文件移动到指定路径下,当src为多个文件,dst必须为目录
6 hadoop fs -cp  

拷贝文件到目标位置,src为多个文件时,dst必须是个目录

7 hadoop fs -rm [skipTrash] 
删除匹配pattern的指定文件

8 hadoop fs -rmr [skipTrash] 

递归删除文件目录及文件
9 hadoop fs -rmi [skipTrash] 

为了避免误删数据,加了一个确认

10 hadoop fs -put <> ... 

从本地系统拷贝到dfs中
11 hadoop fs -copyFromLocal...

从本地系统拷贝到dfs中,与-put一样

12 hadoop fs -moveFromLocal ...

从本地系统拷贝文件到dfs中,拷贝完删除源文件
13 hadoop fs -get [-ignoreCrc] [-crc]  

从dfs中拷贝文件到本地系统,文件匹配pattern,若是多个文件,dst必须是个目录
14 hadoop fs -getmerge  
从dfs中拷贝多个文件合并排序为一个文件到本地文件系统
15 hadoop fs -cat 
输出文件内容

16 hadoop fs -copyTolocal [-ignoreCre] [-crc]  

与 -get一致

17 hadoop fs -mkdir 

在指定位置创建目录
18 hadoop fs -setrep [-R] [-w]  

设置文件的备份级别,-R标志控制是否递归设置子目录及文件

19 hadoop fs -chmod [-R] PATH

修改文件权限, -R递归修改 mode为a+r,g-w,+rwx ,octalmode为755

20 hadoop fs -chown [-R] [OWNER][:[GROUP]] PATH

递归修改文件所有者和组
21 hadoop fs -count[q] 
统计文件个数及占空间情况,输出表格列的含义分别为:
DIR_COUNT.FILE_COUNT.CONTENT_SIZE.FILE_NAME,如果加-q 的话,还会列出
QUOTA,REMAINING_QUOTA,REMAINING_SPACE_QUOTA

hdfs dfs命令

-mkdir 创建目录 hdfs dfs -mkdir [-p] < paths>

-ls 查看目录下内容,包括文件名,权限,所有者,大小和修改时间 hdfs dfs -ls [-R] 

-put 将本地文件或目录上传到HDFS中的路径 hdfs dfs -put < localsrc> … < dst>

-get 将文件或目录从HDFS中的路径拷贝到本地文件路径 hdfs dfs -get [-ignoreCrc] [-crc] < src> < localdst>
选项:-ignorecrc选项复制CRC校验失败的文件。-crc选项复制文件和CRC。

-du 显示给定目录中包含的文件和目录的大小或文件的长度,用字节大小表示。 hdfs dfs -du [-s] [-h] URI [URI …] 选项:-s选项将显示文件长度的汇总摘要,而不是单个文件。-h选项将以“人可读”的方式格式化文件大小(例如64.0m而不是67108864);第一列标示该目录下总文件大小,第二列标示该目录下所有文件在集群上的总存储大小和你的副本数相关(第二列内容=文件大小*副本数),第三列标示你查询的目录

-dus 显示文件长度的摘要。 hdfs dfs -dus < args> 注意:不推荐使用此命令。而是使用
hdfs dfs -du -s。mv 在HDFS文件系统中,将文件或目录从HDFS的源路径移动到目标路径。不允许跨文件系统移动文件。

-cp 在HDFS文件系统中,将文件或目录复制到目标路径下 hdfs dfs -cp [-f] [-p | -p
[topax] ] URI [ URI …] < dest> 选项:-f选项覆盖已经存在的目标。-p选项将保留文件属性
[topx](时间戳,所有权,权限,ACL,XAttr)。如果指定了-p且没有arg,则保留时间戳,所有权和权
限。如果指定了-pa,则还保留权限,因为ACL是一组超级权限。确定是否保留原始命名空间扩展属性与-p标
志无关。
pyFromLocal 从本地复制文件到hdfs文件系统(与-put命令相似)hdfs dfs -copyFromLocal <
localsrc> URI 选项:如果目标已存在,则-f选项将覆盖目标。

-copyToLocal 复制hdfs文件系统中的文件到本地 (与-get命令相似) hdfs dfs -
copyToLocal [-ignorecrc] [-crc] URI < localdst>

-rm 删除一个文件或目录 hdfs dfs -rm [-f] [-r|-R] [-skipTrash] URI [URI …] 选
项:如果文件不存在,-f选项将不显示诊断消息或修改退出状态以反映错误。-R选项以递归方式删除目录及其
下的任何内容。-r选项等效于-R。-skipTrash选项将绕过垃圾桶(如果已启用),并立即删除指定的文件。
当需要从超配额目录中删除文件时,这非常有用。

-cat 显示文件内容到标准输出上。 hdfs dfs -cat URI [URI …]

-text 获取源文件并以文本格式输出文件。允许的格式为zip和TextRecordInputStream。 hdfs
dfs -text

-touchz 创建一个零长度的文件。 hdfs dfs -touchz URI [URI …]

-stat 显示文件所占块数(%b),文件名(%n),块大小(%n),复制数(%r),修改时间(%y%Y) hdfs dfs -stat URI [URI …]

-tail 显示文件的最后1kb内容到标准输出 hdfs dfs -tail [-f] URI 选项: -f选项将在文件增长时输出附加数据,如在Unix中一样
-count 统计与指定文件模式匹配的路径下的目录,文件和字节数 hdfs dfs -count [-q] [-h]
< paths>

-getmerge 将源目录和目标文件作为输入,并将src中的文件连接到目标本地文件(把两个文件的内容合
并起来) hdfs dfs -getmerge < src> < localdst> [addnl] 注:合并后的文件位于当前目
录,不在hdfs中,是本地文件

-grep 从hdfs上过滤包含某个字符的行内容 hdfs dfs -cat < srcpath> | grep 过滤字段

-chown hdfs上文件权限修改 hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]#修
改文件的所有者 例如:hdfs dfs -chown -R Administrator:Administrator /user/

-distcp 最常用在集群之间的拷贝:hadoop distcp hdfs://master1:8020/foo/bar hdfs://master2:8020/bar/foo

你可能感兴趣的:(大数据,linux,hadoop,bash)