超详细linux基本命令学习以及hdfs命令详解

前言:
本人刚接触linux不久但是就是这不久的接触使我爱上了linux的脚本
linux脚本就几十个基本命令但是就是这几十个基本命令经过简单的组合后可以创造出实现各种功能的强大命令如:同样是处理数据使用linux仅仅只需要几秒,但是如果使用Excel可能要使用半个小时或是更久特别是庞大的数据excel可能束手无策使用linux脚本可能仅仅是一两分钟所以极大的提高了办事的效率。
以上仅仅是本人个人观点你可以保持个人观点 勿喷

1:接下来就是来讲命令了
在学习hdfs的编程实践的同时我们先来回顾一下linux的基本指令
cd 切换目录的命令 cd ~ 当前用户的家目录 cd - 查看前一个目录
mkdir 命令创建目录命令 rmdir是删除空文件的命令
cp 命令拷贝文件的命令
mv 移动文件的命令
ls 查看当前所在的文件夹
cat 命令显示文件到屏幕
ls -i 命令就是在每个文件的前面加一个索引节点号
ll 就是显示长文件的命令
ls -a 就是查看当前目录的所有的文件包括以点开头的文件
echo 就是将它后面的东西返回
** 命令有转义的意思就是如果你要输出一个\就是用 echo \才会输出
\n换行 \t制表
sed s’/这个是旧的东西 /新的东西 /g’ 替换的命令
tr ’ ’ ‘\n’ 一行变多行 tr ’ ’ ’ ’ 该命令就是多行变一行
xargs -i 命令一次次的传递
grep 命令搜索命令
rm -rf 删除文件的命令 r 表示整个的目录 f表示不询问
put 命令传递文件的命令
bash -c 就是将传递来的东西执行一下
{} 可以说就是传递来的东西 参数或文件
seq 是生成数的命令 如seq 5 就是从一到五生成5个数 1 2 3 4 5
seq 5 30 就是依次生成 5 10 15 20 25 35 这几个数
seq 5 -1 3 生成的数依次是5 4 3 从大到小
| 是管道命令就是将上一级命令的执行结果传递到下一级
. 在linux中表示的是当前的路径
空格 还有在linux中命令是用来区分东西的
如:
seq 5 | xargs -i sl 该命令表示的是 在linux中开5次火车
生成 5 数 | 通过管道传递到下一级 xargs -i 就是一次次传递(传递5次) 给sl执行
shuf 生成随机数

linux基本指令之重定向
> 输出重重定向 就是将命令的执行结果重定向到另一个文件 如:echo hello word > 1
就是本来是将hello word返回显示到屏幕上的但是现在不到屏幕了到 1 这个文件(但是不支持文件的追加写入)
>> 附加输出重定向 和输出重定向一样但是它支持追加写入
< 输入重定向 将文件的命令的标准的格式写入该文件
2> 错误输出重定向 将文件的错误执行结果传递到指定文件夹

cat命令解析
cat 显示文件到屏幕
cat和并文件还可以 cat 1 2 > 3 将1 2 问件合并到 3
cat 建立小型的文件 cat > 文件名 如: cat > 3 建立了一个名为三的文件

reboot 重启命令
who 命令就是查看当前用户
pwd命令返回所在路径的命令
mkdir 命令就是创建文件的命令
mkdir -p 表示递归创建文件的命令 如:mkdir /user/local/software**/hadoop/file** 该条命令就是一次性的创建了个的目录 从user 到 file
jps 命令就是查看当前系统有关java的进程
chmod 命令就是赋予相关权限的命令
就是关闭系统的命令 shutdown -h now 立刻关闭系统 shutdown -r now 立刻重启系统 shutdown 10 十分钟后进入单用户维护模式 shutdown now 立刻进入单用户维护模式
vim / vi 命令进入配置文件的命令 在命令行中 : 表示进入命令行模式 w 表是保存 q 表示退出 !表示强制执行
dd命令删除一行的命令

相关有关hadoop的的命令
start-all.sh 就是开启hadoop的相关进程 /或是开启当前系统的所有的进程
stop-all.sh 就是关闭hadoop的相关进程 /或是开启当前系统的所有的进程

linux中的单元格操作awk操作
**awk ’{system("seq "$1);}’**在这个脚本中 awk 只认识 '{}'里面的东西 里面你可以写你想要的东西
linux中的通配符
**$**在awk中表示单元格 在AWK 外表示的是参数
***** 表示任意一个字符 . 表示单个字符 []指定一个符号的取值范围 如[a-c] 等

sed ‘1d’ 表示的是删除第一行 xd表示的是x行

以上就是我现在所回忆的基本的指令
现在我们结合具体的实例来使用这些命令
结合我上课老师所传授的理念说linux就是一个创造的工具在互联网发展迅速的今天
我们可以通过linux的基本指令简单的结合创造出各种实现功能的命令方便而快捷的实现
相比于在window中的一些图形界面的操作我们使用linux仅仅需在命令行写几个脚本字母即可实现可以更方
便的实现各种操作如数据的统计 等等等等

以下是及格脚本组合的简单例子:
1:命令一 seq 10 | xargs -i sl
命令的解析 生成10个随机的数 | 将命令的执行结果通过管道传递到下一级 然后一次次的传递给 sl去执行 该命令的功能是开火车10次
命令 seq 10 | xargs -i bash -c “sl;sleep 10” 该命令经过了一些的变换
解析 命令的解析 生成10个随机的数 | 将命令的执行结果通过管道传递到下一级 然后一次次的传递给 bash -c “”去执行 将“”号里面的看做是一个整体
;是用来对小事件进行分块 bash -c 将“”里面的东西执行10次 (该命令实现的功能是开10 次火车 10 秒一次)

*2:命令二 seq 5 | sed 's//echo123/gseds/[az]/./g515seds//echo123 /g' | sed 's/[a-z]/./g'** *命令的解析 就是生成5个数从1-5 | 管道将执行的结果传递到下一级 sed 's//echo123 /g’替换 就是$表是的是旧的东西生成的5个数然后替换为
echo123 | 管道传递到下一级 sed 's/[a-z]/./g’将小写的字母换为一个字符就是将echo 换为…

3:命令三 cat z1 | tr ’ ’ ‘\n’ | sed 's/^/echo /g’
解析命令就是显示z1这个文件 | 管道传递到下一级 | tr ’ ’ ‘\n’ 将多行变一行 | 管道传递 sed 's/^/echo /g’将行头替换为echo 空格
cat z1 | tr ’ ’ ‘\n’ | sed ‘s/^/echo /g’ | xargs -i bash -c “{}”
解析:就是显示z1这个文件 | 管道传递到下一级 | tr ’ ’ ‘\n’ 将多行变一行 | 管道传递 sed 's/^/echo /g’将行头替换为echo 空格
|管道传递到下一级 xargs -i bash -c "{}"一次次的传递 交给 bash -c "{}"去执行 将文件返回 {} 就是传递回来的东西

好学习了这些基本的linux指令后我相信你们已经可以看懂一些linux的
命令了。

接下来我们来学习hadoop的hdfs编程:
hdfs的编程实践

查看hdfs中的信息使用命令
hadoop dfs -ls / 查看hdfs根目录的信息

在hdfs中创建目录的命令
hadoop dfs -mkdir /user_file
在hdfs中递归创建了两个目录 -mkdir -p 就是递归创建的意思

在hdfs中上传文件的命令
hadoop dfs -put /home/user_table /user_file
将文件/home/user_table.txt 文件上传到hdfs根目录下的user_file下的原始文件中

使用ls命令验证上传的文件
hadoop dfs -ls /user_file

使用hdfs检索数据
之前我们在hdfs中创建一个名为user_file的文件我们要从hadoop hdfs的文件系统中检索所需要的的数据
首先查看hdfs中的数据
hadoop dfs -cat /

在hdfs中我们使用get命令将文件从hdfs中获取到本地的文件系统
hadoop dfs -get /hihihi /home/get_user
就是将文件从hdfs中的/hihihi下获取到本地文件系统的家目录下的get_user的文件下

在hdfs中创建文件的命令
hadoop dfs -touchz /hihihi
在hdfs的根目录创建hihihi文件

在hdfs中移动文件的命令 在linux中我们使用mv命令对文件进行移动
hadoop dfs -mv /home/user_table /user_file
将本地文件系统中的将目录下的文件 移动到hdfs分布式文件系统的/user_file下

删除文件的命令rm 命令 -r 就是将指定的文件夹以及以下的子文件夹删除
hadoop dfs -rm /hihihi 命令只删除非空的文件和目录
hadoop dfs -rm -r 就是将指定的文件夹下的文件及其子目录递归删除

在hdfs中拷贝文件的命令
hadoop dfs -cp 源文件的路径 目标文件的路径
hadoop dfs -cp /home/user_table /hihihi

在hdfs中的du命令显示指定文件或文件夹中所有文件的大小
hadoop dfs -du /user_table
显示hdfs中的 user_table 文件夹的大小以字节的方式

在hadoop中的hdfs中的清空回收站的命令expunge
hadoop dfs -expunge 清空回收站

区分hadoop中的test 命令 和 text命令
在hadoop中的test命令就是检查指定文件的相关信息
hadoop dfs -e 检查文件的相关信息 存在返回 0 不存在返回 1
hadoop dfs -z 检查文件是否为0字节 是返回 0 不是返回 1
hadoop dfs -d 检查文件是目录是返回 1 不是返回 0

hadoop hdfs中的text命令
指定文件的输出格式如zip和其他的输出格式
hadoop dfs -text
命令的使用经过验证不用担心
以上的命令的实现截图如下截图同时带有解析由于博主赶时间截图和以上命令可能顺序不同但是截图是从头做到尾的且带有解析 解析 解析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述接下来补充一点小的知识hadoop新建用户和无密码登陆
在hadoop中如何创用户和跟换密码
su 命令切换用户
useradd 增加一个新的用户
为新的用户设置密码
passwd
在hadoop中设置无密码登陆
就是使用命令
ssh-keygen -t rsa
cat~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
在hadoop中设置无密码登陆的的必要就是在hadoop的集群中我们需要对hadoop进行不同的操作
如开启和关闭集群这就需要对不同的用户进行身份验证就需要hadoop为用户提供公钥对和私钥对
和不同的用户进行共享
以上的代码就是使用ssh生成键值对 将公共秘钥的表单id_rsa.pub复制到authorized_keys中
并分别给拥有者授予authorized_keys的读写权限

最后:如果本篇文章对你有用请给我点个赞,本人将倾力奉献更多的优秀文章
QAQ QAQ QAQ
鸣谢读者 :你的鼓励是我最大的动力

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章