linux命令总结&shell总结&如何搭建伪分布式(总结)

本文全面总结了Linux常用命令,包括文件操作、服务管理、用户管理等,以及Shell脚本的基础语法和高级特性,如变量、数组、流程控制等,还提供了搭建伪分布式Hadoop集群的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux命令总结&shell总结&如何搭建伪分布式(总结)

1linux命令总结

(1)vim命令

yy 复制当前行
y数字y 从当前行开始,复制数字行
p 粘贴
u 撤销上一步
dd 删除当前行
d数字d 从当前行开始,删除数字行
x 删除一位,向后删
X 删除一位,向前删
yw 复制一个词
dw 删除一个词
shift+^ 移动到本行开头
shift+$ 移动到本行结尾
gg或者1+G 移动到开头
G 移动到末尾
数字+G 移动到数字行
i 当前光标
a 当前光标后
o 当前光标行的下一行
I 当前行最前
A 当前行最后
O 当前光标行的上一行
:w 保存
:q 退出
:! 强制
/ 要查找的词 n 下一个,N上一个
? 要查找的词 n上一个,N下一个
:set nu 显示行号
:set nonu 关闭行号
ZZ 没有修改文件直接退出,如果修改了文件保存后退出

(2)有关服务

service 服务名 start 开启
service 服务名 stop 关闭
service 服务名 restart 重启
service 服务名 status 查看状态
chkconfig 查看所有服务自启配置
chkconfig 服务名 off 关掉自启
chkconfig 服务名 on 开启自启
chkconfig 服务名 --list 查看状态

(3)关机重启

sync 将数据由内存同步到硬盘中
reboot 重启
halt 关机
shutdowm -h(关机)/r(重启) now(现在)/时间(默认分钟)

(4)帮助

man 命令
命令 --help

(5)文件目录类

pwd 绝对路径
ls -l(详细信息)/a(隐藏文件) 目录的路径(可省略,默认当前目录)列出目录内容
ll = ls -l
cd 路径/~或空(家目录)/-(上次所在目录)/…(上一级) 进入目录
mkdir -p(创建多级) 路径 创建空目录
rmdir 路径 删除空目录
touch 路径 创建文档
cp -r(递归) 旧路径 新路径 复制
rm -r(递归)/f(强制,不提示)/v(详细过程) 路径 删除
mv -r(递归) 旧路径 新路径 移动(重命名)
cat -n(行号) 文件 查看
more 文件 分行查看
空格 下一页;
回车 下一行
q 退出
Ctrl+F 下一页
Ctrl+B 上一页
= 输出行号
:f 输出文件名和行号
less 文件 分行查看
空白键 下一页
向下 下一页
向上 向上翻动一页;
/字串 搜寻 n:向下查找;N:向上查找;
?字串 搜寻 n:向上查找;N:向下查找;
q 退出
echo -e(支持斜杆控制) 内容 输出内容
head -n 数字 文件 查看文件前数字行(默认10行)
tail -n 数字 /-f(实时监控) 文件 查看文件前后字行(默认10行)

覆盖 >>追加 ln -s(没有时创建硬链接(源文件删除无影响)) 文件 软链接 创建软连接 history 历史命令

6时间日期

data -d(显示非当前时间使用)/s(设置时间) +“格式” 查看时间
%Y年
%m月
%d日
%H时
%M分
%S秒
cal 查看日历
cal 年份 某年日历

7用户

useradd 用户名 添加新用户
useradd -g 组名 用户名 添加新用户到某个组
passwd 用户名 设置密码
id 用户名 查看用户是否存在
cat /etc/passwd 查看创建的用户
su 用户名称 切换用户
userdel -r(同时删除主目录) 用户名 删除用户
whoami 显示用户名称
who am i 显示登录用户
usermod -g 用户组 用户名 修改用户所属组
8用户组
groupadd 组名 增加组
groupdel 组名 删除组
groupmod -n 新组名 老组名 修改组名
cat /etc/group 查看创建的组

(7)文件权限

chmod u/g/o/a ± rwx 文件或目录 修改权限
u用户 g组 o 其他用户 +增加 -减少 r可读 w可写 x可执行
chmod 777 文件或目录 修改权限
三位数分别代表 用户 组 其他用户
r=4 w=2 x=1 权限计算相加得到
chown -R(递归) 用户名:组名(可省略) 文件或目录 改变文件或者目录的所有者

(8)搜索

find 目录 -name(文件名)/user(所属用户)/size(大小,+n 大于n,-n 小于n,n 等于n) 查找目录下符合要求的文件
grep -n(显示行号) 查找内容 源文件 过滤
which 命令 查找命令在那个目录下

(9)压缩与解压

gzip 文件 压缩
gunzip 文件.gz 解压
zip -r(压缩目录) 压缩后文件名.zip 文件或目录 压缩
unzip -d(解压后存放目录) XXX.zip 解压
tar -zcvf XXX.tar.gz 压缩前文件 压缩
tar -zxvf XXX.tar.gz -C(解压到指定路径) 路径 解压

(10)磁盘类

df 查看磁盘空间使用情况
fdisk -l 查看磁盘分区详情
11进程
ps 查看当前系统进程状态
kill -9(强制) 进程号 杀死进程
killall 进程名 杀死进程
pstree 查看进程树
top 查看系统健康状态
11定时
crontab -e(编辑)/l(查询)/r(删除) 定时任务

  • 执行的任务
    分 时 天 月 星期几
  • 任何
    , 分割不连续的时间
  • 从…到…
    / 每
    12rpm
    rpm -qa 查询安装的所有rpm包
    rpm -e --nodeps(不检查依赖)RPM软件包 卸载
    rpm -ivh RPM包全名 安装
    13yum
    yum
    -y 默认yes
    install 安装
    update 更新
    check-update 检查是否有可更新
    remove 删除
    list 显示信息
    clean 清理过期的缓存
    deplist 显示所有依赖关系

2.shell总结

(1)变量

定义变量:变量=值,等号两边不要加空格
撤销变量:unset 变量名
变量都是本次有效,下次使用需要重新定义变量

(2)数组

添加数组的方法 array=(value1 value2 value3 )(值之间要用等号隔开)
数组的长度会自动增长
读取数组的一般格式是:$ echo {array[index]}
获取数组中的所有元素: a r r a y [ ∗ ] 获 取 数 组 长 度 : {array[*]} 获取数组长度 : array[]{#array[*]}

(3)运算符

运算式 :expr 运算式 举例:expr 2 + 3
采用运算式 :S= [ 运 算 式 ] 举 例 : S = [运算式] 举例:S= []S=[(2+3)*4] 使用echo $S查看
特别注意事项:expr运算符间要有空格

(4)条件判断

常用判断
-lt 小于(less than) -le 小于等于(less equal)
-eq 等于(equal) -gt 大于(greater than)
-ge 大于等于(greater equal) -ne 不等于(Not equal)
举例 :[ 23 -ge 22 ]
使用多条件判断时要注意 :&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一条命令执行失败后,才执行下一条命令

(5)流程控制

  • (a)if判断格式
if [ 条件判断式 ] 		
  then 
    程序 
elif [ 条件判断式 ]
	then
		程序
else
	程序
fi

注意:(if后要有空格,中括号和条件判断式之间必须有空格)

  • (b)For循环个事故
for (( 初始值;循环控制条件;变量变化 )) 
  do 
    程序 
  done
s=0
for((i=0;i<=100;i++))
do
        s=$[$s+$i]
done
echo $s

输入参数使用for循环

#!/bin/bash
#打印数字

for i in $*
    do
      echo "ban zhang love $i "
    Done
[jinghnag@hadoop101 datas]$ chmod 777 for2.sh 
[jinghnag@hadoop101 datas]$ bash for2.sh cls xz bd
ban zhang love cls
ban zhang love xz
ban zhang love bd

∗ 和 *和 @都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以$1 2 … 2 … 2n的形式输出所有参数。[jinghnag@hadoop101 datas]$ touch for.sh
[jinghnag@hadoop101 datas]$ vim for.sh

> #!/bin/bash 
> 
> for i in $*
>  do
>      		 echo "ban zhang love $i "
>       done


for j in $@
do      
        echo "ban zhang love $j"
done
#!/bin/bash
#打印数字

for i in $*
    do
      echo "ban zhang love $i "
    Done
[jinghnag@hadoop101 datas]$ chmod 777 for2.sh 
[jinghnag@hadoop101 datas]$ bash for2.sh cls xz bd
ban zhang love cls
ban zhang love xz
ban zhang love bd

当它们被双引号“”包含时,“$*”会将所有的参数作为一个整体,以“$1 2 … 2 … 2n”的形式输出所有参数;“$@”会将各个参数分开,以“$1” “ 2 ” … ” 2”…” 2n”的形式输出所有参数。
$*中的所有参数看成是一个整体,所以这个for循环只会循环一次
@ 中 的 每 个 参 数 都 看 成 是 独 立 的 , 所 以 “ @中的每个参数都看成是独立的,所以“ @@”中有几个参数,就会循环几次

  • ©while循环基本格式
while [ 条件判断式 ] 
  do 
    程序
  done

While举例

#!/bin/bash
s=0
i=1
while [ $i -le 100 ]
do
        s=$[$s+$i]
        i=$[$i+1]
done

echo $s

[jinghnag@hadoop101 datas]$ chmod 777 while.sh 
[jinghnag@hadoop101 datas]$ ./while.sh 
5050

(6)函数分为自定义函数和系统函数,系统函数现在还不知道怎么用

function 函数名()
{
函数体
}
调用函数:函数名 参数1 参数2;

(7)cut [选项参数] filename 切割

C
-f 列号,提取第几列
-d 分隔符,按照指定分隔符分割列
-c 指定具体的字符

切割举例
Cut -d 以什么为切割 -f 行数 文件名
cut -d " " -f 1 cut.txt

(8)sed

sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。
功能参数
a 新增,a的后面可以接字串,在下一行出现
d 删除
s 查找并替换
拿s参数举例: 将sed.txt文件中wo替换为ni

[jinghnag@hadoop101 datas]$ sed 's/wo/ni/g' sed.txt 
dong shen
guan zhen
ni  ni
lai  lai

le  le

(9)AWK的基本用法

awk [选项参数] ‘pattern1{action1} pattern2{action2}…’ filename
pattern:表示AWK在数据中查找的内容,就是匹配模式
action:在找到匹配内容时所执行的一系列命令

  • 1.选项参数说明

表1-55
选项参数 功能
-F 指定输入文件折分隔符
-v 赋值一个用户定义变量

  • 2.案例实操

(0)数据准备
[jinghnag@hadoop102 datas]$ sudo cp /etc/passwd ./
(1)搜索passwd文件以root关键字开头的所有行,并输出该行的第7列。

[jinghnag@hadoop102 datas]$ awk -F: '/^root/{print $7}' passwd 
/bin/bash

(2)搜索passwd文件以root关键字开头的所有行,并输出该行的第1列和第7列,中间以“,”号分割。

[jinghnag@hadoop102 datas]$ awk -F: '/^root/{print $1","$7}' passwd 
root,/bin/bash

注意:只有匹配了pattern的行才会执行action
(3)只显示/etc/passwd的第一列和第七列,以逗号分割,且在所有行前面添加列名user,shell在最后一行添加"dahaige,/bin/zuishuai"。

[jinghnag@hadoop102 datas]$ awk -F : 'BEGIN{print "user, shell"} {print $1","$7} END{print "dahaige,/bin/zuishuai"}' passwd
user, shell
root,/bin/bash
bin,/sbin/nologin
。。。
jinghnag,/bin/bash
dahaige,/bin/zuishuai

注意:BEGIN 在所有数据读取行之前执行;END 在所有数据执行之后执行。

(4)将passwd文件中的用户id增加数值1并输出

[jinghnag@hadoop102 datas]$ awk -v i=1 -F: '{print $3+i}' passwd
1
2
3
4

3.如何搭建伪分布式

1创建虚拟机

2修改ip,刷新网络

3修改主机名

4关闭防火墙及自动启动防火墙

5编辑/etc/hosts文件添加集群ip和hostname

6关机重启

7创建普通用户,修改密码,添加sudo权限

8在opt下创建module(存放解压后文件)、software(压缩包)文件夹

9更改所属用户及所属组

10创建SFTP链接,将Java及Hadoop的压缩包从本地拖到software中

11将压缩包解压到module中

12配置环境变量并刷新

#java
export JAVA_HOME=/opt/module/jdk1.8.0_144/
export PATH=$PATH:$JAVA_HOME/bin

#hadoop
export HADOOP_HOME=/opt/module/hadoop-2.7.2/
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

13修改hadoop的配置

位置类似于/opt/module/hadoop-2.7.2/etc/hadoop/
第一个hadoop-env.sh
export JAVA_HOME=jdk的路径
第二个core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
	<name>fs.defaultFS</name>
    	<value>hdfs://主机名(配置/etc/hosts后可使用,否则写ip):9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

第三个hdfs-site.xml

<!-- 指定HDFS副本的数量 -->
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>

第四个·yarn-env.sh
export JAVA_HOME=jdk的路径
第五个yarn-site.xml

<!-- Reducer获取数据的方式 -->
<property>
 		<name>yarn.nodemanager.aux-services</name>
 		<value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>主机名(配置/etc/hosts后可使用,否则写ip)</value>
</property>

第六个mapred-env.sh
export JAVA_HOME=jdk的路径
第七个 mapred-site.xml(复制并重命名mapred-site.xml.template)

<!-- 指定MR运行在YARN上 -->
<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
		<name>mapreduce.jobhistory.address</name>
		<value>主机名(配置/etc/hosts后可使用,否则写ip):10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
    		<name>mapreduce.jobhistory.webapp.address</name>
    		<value>主机名(配置/etc/hosts后可使用,否则写ip):19888</value>
</property>

14格式化
hdfs namenode -format
15启动服务

hadoop-daemon.sh start/stop(关闭) 
namenode/datanode
yarn-daemon.sh start/stop 
resourcemanager/nodemanager start/stop 
mr-jobhistory-daemon.sh start/stop historyserver(历史记录)

16查看已启动服务jps

17浏览器查看
datanode节点信息:http://主机名:50070
资源调度:http://主机名:8088

18采用hadoop官方样例检验hadoop伪分布式集群是否能够正常运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值