大数据存储实验笔记

实验1

Linux命令

查看当前用户

who am i
who mom likes
  • 显示所有文件大小,并以普通人能看懂的方式呈现:

ls -AsSh

#其中小 s 为显示文件大小,大 S 为按文件大小排序

修改权限

chmod 700 yourfile
chmod go-rw yourfile

#'g''o'还有'u',分别表示group,others,user,'+','-' 就分别表示增加和去掉相应的权限。

mkdir -p 
  • -p 确保目录名称存在,不存在的就建一个。

目录

当前目录

current_path="$PWD"  # 同 "`pwd`"

上一级目录

path=$(dirname "$PWD") 

上上级目录

path=$(dirname $(dirname "$PWD"))

目录的最后部分

last_component=$(basename "$PWD")

ls 参数

Linux 中ls命令的使用详细介绍_shell_脚本之家 (tuohang.net)

  • 使用more和less命令分页查看文件

more或者less 文件名

  • 使用head和tail命令查看文件

用来只查看的头几行(默认为10行,不足10行则显示全部)和尾几行。

实验二

which hadoop #查看hadoop位置

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。

find的使用格式如下:

  $ find <指定目录> <指定条件> <指定动作>

  - <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。

  - <指定条件>: 所要搜索的文件的特征。

  - <指定动作>: 对搜索结果进行特定的处理。

如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

find的使用实例:

  $ find . -name "my*"

搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。

$ find . -name"my*" –ls

练习

到….hadoop/bin 目录下查找文件名以.cmd结尾的文件。

locate(选做)

locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

若locate 未找到 命令执行:yum -y install mlocate updatedb

scp local_fileremote_username@remote_ip:remote_folder

或者

scp local_fileremote_username@remote_ip:remote_file

或者

scp local_fileremote_ip:remote_folder

或者

scp local_fileremote_ip:remote_file

第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;

第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名。

如:scp stu.txt root@127.0.0.1:/home/

scp stu.txt root@127.0.0.1:/home/stu1.txt

管道是什么,管道是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式就是将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。

管道又分为匿名管道和具名管道。我们在使用一些过滤程序时经常会用到的就是匿名管道,在命令行中由|分隔符表示。具名管道简单的说就是有名字的管道,通常只会在源程序中用到具名管道。下面我们就将通过一些常用的可以使用管道的"过滤程序"来帮助你熟练管道的使用。

试用

先试用一下管道,比如查看/etc目录下有哪些文件和目录,使用ls命令来查看:

$ ls -al /etc

有太多内容,屏幕不能完全显示,这时候可以使用滚动条或快捷键滚动窗口来查看。不过这时候可以使用管道:

$ ls -al /etc | less

grep 命令,在文本中或 stdin 中查找匹配字符串

grep命令是很强大的,也是相当常用的一个命令,它结合正则表达式可以实现很复杂却很高效的匹配和查找,这里介绍它简单的使用。

格式: grep [命令选项]... 用于匹配的表达式 [文件]...

还是先体验一下,我们搜索/usr/local/hadoop/etc/hadoop目录下所有包含"value"的所有文本文件,并显示出现在文本中的行号:

$ grep -rnI "value" /usr/local/hadoop/etc/hadoop

cd /usr/local/hadoop/etc/Hadoop

grep -rnI "value" /usr/local/hadoop/etc/hadoop

也可和管道结合一起用

如:

grep -rnI"value" /usr/local/hadoop/etc/hadoop | less

显示/proc/meminfo文件中以大写S开头的行

cat /proc/meminfo|grep^s

结果:无

显示/proc/meminfo文件中以大写s开头的行

cat /proc/meminfo|grep-i ^s

显示/etc/passwd文件中以/bin/bash结尾的行

cat /etc/passwd |grep/bin/bash$

显示/etc/passwd文件中不以/bin/bash结尾的行

cat /etc/passwd |grep -v/bin/bash$

wc 命令,简单小巧的计数工具

wc 命令用于统计并输出一个文件中行、单词和字节的数目,比如输出/etc/passwd文件的统计信息:

$ wc /etc/passwd

分别只输出行数、单词数、字节数、字符数和输入文本中最长一行的字节数:

wc 命令,简单小巧的计数工具

wc 命令用于统计并输出一个文件中行、单词和字节的数目,比如输出/etc/passwd文件的统计信息:

$ wc /etc/passwd

分别只输出行数、单词数、字节数、字符数和输入文本中最长一行的字节数:

sort排序命令

sort这个命令功能很简单,就是将输入按照一定方式排序,然后再输出,它支持的排序有按字典排序,数字排序,按月份排序,随机排序,反转排序,指定特定字段进行排序等等。

默认为字典排序:$ cat /etc/passwd | sort

反转排序:$ cat /etc/passwd | sort –r

uniq 去重命令

新建文件 uniq_xuehao.txt

输入命令 vim uniq_xuehao.txt

在文件中输入:

test 30

test 30

test 30

Hello 95

Hello 95

Hello 95

Hello 95

Linux 85

Linux 85

执行命令:uniq uniq_xuehao.txt

比较体会uniq uniq_xuehao.txt 与 cat uniq_xuehao.txt结果的不同

数据流重定向

常用到的两个重定向操作:

$ echo 'hello friend'> rd_xuehao.txt

$ echo 'hello friends'>> rd_xuehao.txt

 

AWK是一种处理文本文件的语言,是一个强大的文本分析工具。

之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。

  • 基本用法

log_xuehao.txt文本内容如下:

2 this is a test

3 Are you like awk

This's a test

10 There are orange,apple,mongo

用法一:

awk '{[pattern] action}'{filenames} # 行匹配语句 awk '' 只能用单引号

练习:

# 每行按空格或TAB分割,输出文本中的1、4项

$ awk '{print $1,$4}' log_xuehao.txt

# 格式化输出

注:第一个格式说明符%-8s,将名字左对齐输出,占用8个字符宽度

$ awk '{printf "%-8s%-10s\n",$1,$4}' log_xuehao.txt

用法二:

awk -F #-F相当于内置变量FS, 指定分割字符

# 使用","分割

$ awk-F, '{print $1,$2}' log_xuehao.txt

用法三:

awk -v # 设置变量

实例:

$ awk -va=1 '{print $1,$1+a}' log_xuehao.txt

$ awk -va=1 -vb=s '{print $1,$1+a,$1b}'log_xuehao.txt

用法四:

awk -f {awk脚本} {文件名}

实例:

vi cal.awk

文件输入: {print$1,$1+a,$1b}

$ awk -f cal.awk log_xuehao.txt

用法五:

过滤第一列大于2的行

$ awk '$1>2'log_xuehao.txt

过滤第一列等于2的行

$ awk '$1==2 {print$1,$3}' log_xuehao.txt

过滤第一列大于2并且第二列等于'Are'的行

$ awk '$1>2&& $2=="Are" {print $1,$2,$3}' log_xuehao.txt

上一页下一页

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

返返返

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值