Linux常用命令
查询格式
语句1|语句2|语句3 :对语句1的输出结果进行语句2的判定,然后对输出结果进行语句3的判定。如:cat a.txt |head -10|wc -l
'cat a.txt'
输出文件a.txt
全文;'head -10'
输出上一步输出结果的前十行,即a.txt
全文的前十行;'wc -l'
统计上一步输出结果总行数,即 10
hadoop/hdfs
多数类似于普通命令行,在前面加上 hadoop dfs - 即可
hadoop fs
(常用) 或者 hdfs dfs
(只用于hdfs文件系统)hadoop fs –help ls
查看某个[ls]命令的帮助文档hadoop fs -ls /
查询/目录下的所有文件和文件夹hadoop fs -ls -R /
以递归的方式查询/目录下的所有文件hadoop fs -mkdir /test
创建test文件夹hadoop fs -touchz /aa.txt
在/目录下创建一个空文件aa.txthadoop fs -cat /test/aa.txt
hadoop fs -text /test/aa.txt
查看/test目录下文件aa.txt的内容hadoop fs -du /test/aa.txt
hadoop fs -count /test/aa.txt
查看文件大小(单位byte)
Hadoop与当前目录文件传输{hadoop fs -put aa.txt /test
hadoop fs -copyFromLocal aa.txt /test
将当前目录下的aa.txt文件复制到hdfs目录下的/test中hadoop fs -moveFromLocal aa.txt /test
将当前目录下的aa.txt文件移动到hdfs目录下的/test中hadoop fs -get /test/aa.txt
hadoop fs -copyToLocal /test/aa.txt
将/test/aa.txt文件复制到当前目录(可指定其他目录)hadoop fs -getmerge / local-file
将/目录下的所有文件合并到本地文件local-file中
}
grep
正则表达式搜索文本,并把匹配的行打印出来grep 交通 *.{txt,html,csv}
例:在所有txt/html/csv文件中进行匹配-e或--regexp=PATTERN
用PATTERN来进行匹配操作,可指定多个-e-v或--invert-match
选中不匹配的行-i或--ignore-case
忽略大小写-m或--max-count=NUM
NUM 次匹配后停止-n或--line-number
输出的同时打印行号-c或--count
只打印每个FILE中的匹配行数目-B或--before-context=NUM
打印文本及其前面NUM 行-A或--after-context=NUM
打印文本及其后面NUM 行-C或--context=NUM 或-NUM
打印文本及其前后各NUM 行-d或--directories=ACTION
读取目录的方式;ACTION 可以是’read’, ‘recurse’,或’skip’-r或--recursive
等同于–directories=recurse,在目录下递归搜索所有文件(包括子文件夹内的文件)--include=FILE_PATTERN
只查找匹配FILE_PATTERN 的文件--exclude=FILE_PATTERN
跳过匹配FILE_PATTERN 的文件和目录--exclude-from=FILE
跳过所有文件FILE中列出的文件--exclude-dir=PATTERN
跳过所有匹配PATTERN 的目录
du
查看使用空间-s或--summarize
仅显示总计,只列出最后加总的值-b或--bytes
以byte为单位输出-k或--kilobytes
以KB(1024bytes)为单位输出(默认为这种方式)-m或--megabytes
以MB为单位输出-h或--human-readable
以K,M,G为单位,提高信息的可读性du -ak / | sort -nrk 1 | head
查找指定目录中最大的10个文件
tr
字符替换、删除
不能直接对文件进行操作,对标准输入进行操作,一般与cat 联用
如:cat a.txt | tr 'a-z' 'A-Z'
-d或--delete
删除,如 tr -d ‘a-f’-s或--squeeze-repeats
把连续重复的字符以单独一个字符表示
sed
用来替换给定文本中的字符串,可以用正则表达式进行匹配sed 's/pattern/replace_string/g' file
将file中的pattern替换成replace_string打印出来sed -i 's/pattern/replace_string/g' file
将替换结果写入到原文件(没有g的话只会替换每行第一个匹配的字符串)sed '/^$/d' file
移除空白行/pattern/d
会移除匹配样式的行,在空白行中,行尾标记($)紧随着行首标记(^)
find
find /
列出/目录和子目录下的所有文件和文件夹find / -name '*txt'
根据文件名或者正则表达式匹配搜索find / -iname '*txt'
同上,忽略大小写find / ! -name '*txt'
对上面的搜索结果取反find / -type d
根据文件类型搜索,d文件夹,f普通文件,etcfind / -type f -size +2k
根据文件大小搜索,+2k大于2k的文件,-2k小于2k的文件,2k等于2k的文件find / -type f -name '*txt' -delete
删除匹配到的文件
tar
tar -cf output.tar file1 file2 file3...
-c代表创建文件,-f代表指定文件名tar -rvf output.tar file1...
-r代表添加文件,向已存在的tar包中添加文件tar -tf archive.tar
列出归档文件中的内容tar -tvf archive.tar
列出归档文件中内容的详细信息tar -xf archive.tar
提取归档文件到当前目录tar -xf archive.tar -C /
提取归档文件到指定目录/tar -Af file1.tar file2.tar
将file2.tar合并到file1.tar中tar -f archive.tar --delete file1 file2...
从归档文件中删除文件