Hadoop初级之Linux命令

一、简介

Linux是一类Unix计算机操作系统的统称。Linux操作系统也是自由软件开放源代码发展中最著名的例子。在1991 年的十月,由一个名为 Linus Torvalds的年轻芬兰大学生带头开发的作业系统。

二、特点

开放性,多用户,多任务,优异的性能和稳定性

 

三、安装

参考文档

镜像下载https://wiki.centos.org/Download   一般是非盈利社区

四、目录结构

/ 最顶级目录,所有的东西都在/目录下

bin 可执行文件,可以被root和一般用户使用的指令,也就是常用命令

dev 外接设备

etc 配置文件

home 普通用户家目录   非root用户

lib 二进制文件,如支持命令的库

mnt 挂载文件系统的目录

proc 存放一些执行的进程的信息

root 超级用户的家目录  ~

sbin 超级用户使用的命令

tmp 临时文件存放目录

usr 用户程序命令

var 存放日志或数据文件

五、基础命令

标准格式: 命令 [参数] [操作对象]

01.ls

显示当前目录所有文件(和文件夹)简单信息

举例:ls    (其后面也可以加路径,例如:ls /test/aaa)

-l 显示详细信息

-a 显示所有文件,包括隐藏文件

-alh 显示文件大小 不分先后顺序

相对路径: 根据参照物确定路径,一般为当前目录(../代表当前目录  ../代表上一级目录  ~代表家目录)

绝对路径: 直接从顶级目录开始,比如/

02.ll

显示所有文件(和文件夹)详细信息

举例:ll 路径名   例如:ll /test/aaa

如果ll后面不加路径就代表查看当前目录

显示出来的东西如果以-开头,说明它是文件

如果以d开头,说明它是目录,文件夹

-h 显示文件的大小

-a 显示隐藏文件

03.cd 

进入到某个目录

举例 cd /

cd .. 返回上一级目录

04.pwd

显示路径(绝对路径)

05.mkdir

创建目录

举例:mkdir aaa

-p 创建多级目录

06.rmdir    

删除空目录

举例rmdir aaa

07.touch

创建空文件

举例:touch aaa.txt(touch 后面也可以跟路径,如:touch /test/aaa.txt)

创建多个文件

       touch a.txt b.txt

08.cp

复制

cp复制文件

举例:cp aaa.txt bbb.txt

cp -r 复制目录

09.mv

移动文件或目录(也是重命名)

举例:mv /test/aaa/a.txt /test/bbb (把/test/aaa/a.txt移动到/test/bbb)

mv /test/aaa/a.txt /test/aaa/b.txt(重命名)

10.rm

删除 (不提示删除 rm -rf) (rm -r 递归删除)

举例:rm -rf a.txt

       删除多个:rm -rf a.txt b.txt

11.vim

编辑文本

例如:vim /test/a.txt

输入i进行编辑

编辑完先按Esc,取消insert

命令

说明

:w

保存

:wq

保存并退出

:x

保存并退出

:q

退出,如果有改动,需要使用强制退出

:q!

强制退出,对修改的内容不保存

:set nu

显示行号

:n

跳到第n行

:%s/o/xxxxxx/g

把文件中的o替换为xxxxxx

/xxx

/xxx 查找xxx  输入n查找下一个,输入N查找上一个

G

跳到文件最后一行

gg

跳到文件第一行

$

跳到本行末尾

^

跳到本行行首

yy

复制,5yy复制5行

P

粘贴

dd

删除1行,10dd删除10行

U

撤销

w

光标每个单词跳动

vim是vi的加强版

12.>和>>

                 输出重定向

> 覆盖输出

>> 追加输出

13.cat

查看文件内容

举例:cat /test/aaa.txt

查看多个文件 cat a.txt b.txt

14.head

查看文件前n行内容

举例:head -10 /test/test01/bbb.txt

-10代表前10行

15.less

                 分页查看

       空格显示下一行

可以使用【pageup】和【pagedown】键进行前翻页和后翻页

16.more

分页显示

按空格键显示下一页,ctrl+b返回上一页

v 调用vi编辑器

q     退出

17.tail

查看文件的后几行

举例:tail -10 /test/aaa.txt

tail -f是动态查看(例子:tail -f /test/aaa.txt)

18.echo

打印

举例:echo “hello world”

echo “hello java”> /test/a.txt        (覆盖)

echo “hello java”>> /test/a.txt             (追加)

echo -e “hello\n”

19.clear

清空屏幕

Ctrl l

20.which

显示命令路径

举例:which ls

六、进阶命令

01.du

查看目录大小

du -sh /etc/

02.df

查看磁盘大小      

一般使用df -h

03.free  

显示内存大小

-m 以MB显示

-g 以GB显示

04.wc

统计

wc 有四个参数可选,分别是l,c,m,w
              wc -l filename 报告行数
              wc -c filename 报告字节数
              wc -m filename 报告字符数
              wc -w filename 报告单词数 根据换行和空格统计单词数

05.date

时间相关

date 显示时间

date +%Y-%m-%d 格式化显示时间date "+%Y-%m-%d %H:%M:%S"

date -d “1 month ago” 1个月之前

date -d “20180101 1 day ago” 1天之前

date -s 时间 (修改时间)

举例:[root@hadoop /]# date -s "2019-01-09 15:06:30"

06.cal

日历

07.|

管道符

把左边的结果传给右边

08.grep

过滤

功能:查找匹配格式的内容

格式:grep[参数] <要找的字串> <要寻找字 串的源文件>

用法1:grep linux a.txt #搜索a.txt文件中字符串linux并输出

用法2:ls / | grep a.txt #匹配当前目录下文件名字是a.txt的文件

用法3:cat a.txt | grep linux #搜索a.txt文件中字符串linux并输出

grep -i 忽略大小写

-i

-h

 

09.find

查找

find /test -name a.txt 搜索系统根目录下的test文件夹下名为a.txt的文件

find 查找路径 -name 要查找的文件名

[root@jh /]# find /aaa/bbb/ -name a

/aaa/bbb/a

[root@jh /]# find /aaa/bbb/ -name "a*"

/aaa/bbb/a

/aaa/bbb/abc.txt

查找文件size大于10个字节的文件或目录

find ./ -size +10c

查找文件size小于10k的文件或目录

find ./ -size -10k

find ./ -size -10M

find ./ -size -10G

其他...

find ./ -type

10.useradd

创建用户

创建新用户:useradd 用户名

修改用户密码:passwd 用户名

编辑/etc/sudoers文件,使用命令visudo

在root    ALL=(ALL)       ALL这一行下面添加:

用户名    ALL=(ALL)       ALL

:x!

使用普通用户来操作root用户的文件使用命令sudo + 命令,如:

sudo vi/etc/profile

切换用户使用su 用户名

删除用户:userdel -rf 用户名

11.chmod

修改权限

语法为:chmod abc file 

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 

r=4 读,w=2 写,x=1 执行权限

若要rwx属性则4+2+1=7; 

若要rw-属性则4+2=6; 

若要r-x属性则4+1=5。

-rw-r--r--. 1 root root  145 Apr 26 03:22 aaa.txt 文件

-代表文件,-后面的三位代表用户权限,再后三位代表用户组的权限,再后三位代表其他     用户权限

例如:chmod 777 /test/a.txt 

chmod [u所属用户  g所属组  o其他用户  a所有用户]  [+增加权限  -减少权限]  [r  w  x]   目录名

例如:chmod u+x aaa.txt

12.chown

修改所属用户和组

chown hadoop:hadoop filename 修改所属用户各组

chown –R 递归修改

13.ps  

显示当前状态的进程信息    

ps -ef | grep mysql

14. top 

功能:显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等

15.tar

压缩和解压

tar -zcvf /test.tar.gz /test/ 压缩

tar -zxvf /test/a.txt.gz  解压a.txt.gz到当前目录

tar -zxvf /test/a.txt.gz -C /test 解压a.txt.gz到指定目录(大写C)

16.kill

杀死进程

kill -9 1123(进程号)     

17.service

service network restart 重启网卡

18. systemctl是CentOS7的服务管理工具中主要的工具

它融合之前service和chkconfig的功能于一体。

firewalld的基本使用

启动: systemctl start firewalld

关闭: systemctl stop firewalld

查看状态: systemctl status firewalld

开机禁用  : systemctl disable firewalld

开机启用  : systemctl enable firewalld

19.rpm

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提  升了Linux的适用度。

rpm -qa 列出所有安装过的包

举例:rpm -qa | grep mysql

rpm -ivh 带进度安装

rpm -ivh xxx.rpm

rpm -e --nodeps卸载

rpm来安装mysql

20.yum                 

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum install ...         安装

wget

yum remove ...      卸载

yum update ...       升级所有包,改变软件设置和系统设置,系统版本内核都升级

yum upgrade ...     升级所有包,不改变软件设置和系统设置

yum list                    列出所有的包文件
       yum -y ...               
不提示执行

21.nohup

后台启动进程,配合&使用

例如:  nohup sh a.sh &

22.scp

远程发送   将当前机器上的某一个文件发送给另一台机器

scp -r ./a.txt test-hadoop-2-21:/home/hadoop

sync:作用:将内容中数据保存到磁盘

23.rsync

                 同步 作用:将两个节点的指定文件夹内容 同步

rsync -a -auvzP --bwlimit=30000 192.168.2.21:$src_dir $dst_dir

24.wget

                 一般下载资源使用

wget http://xxxxxxxxxx

七、其他命令

01. ip addr

查看ip

02.reboot

重启系统

03.init 0

关机

04.history

历史命令

05.who

显示在线登陆用户

06.hostname

显示主机名

设置主机名:

hostnamectl set-hostname 要设置的名字

08.cut

分割     echo "hello world" | cut -d 指定分隔符 " " -f 2 (通过空格分割,显示第二列)

09.sort

排序 cat /etc/passwd | sort 字典排序,自然排序

10.uniq

去重cat /etc/passwd | sort|uniq (去重依赖于sort)

11.Ctrl c  

强行停止进程(Ctrl键与C同时按)

12.tree

              以树状形式显示目录结构

 

八、定时任务

crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

crontab

 

crontab -e        编辑定时任务 编辑多个任务

crontab -l         列出定时任务

crontab -r         删除定时任务

 

*  *  *  *  *  command

分 时 日 月 周 命令

0-6

虚拟机,一直开着

除了数字还有几个个特殊的符号就是"*""/""-"","*代表所有的取值范围内的数字,"/" 代表每的意思,"/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。

几个例子:

1.每天早上6点

0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron       把任何输出都email到root的信箱了。

2.每两个小时

0 */2 * * * echo "Have a break now." >> /tmp/test.txt 

3.晚上11点到早上8点之间每两个小时和早上八点

0 23-8/2,8 * * * echo "Have a good dream" >> /tmp/test.txt

4.每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * 1-3 command line

 

实现秒级执行任务:

*/1     *       *       *       *       sleep 3 && echo "goodmorning" >> /test/a.txt

*/1     *       *       *       *       sleep 6 && echo "goodmorning" >> /tess/a.txt

*/1     *       *       *       *       sleep 9 && echo "goodmorning" >> /test/a.txt

*/1     *       *       *       *       sleep 12 && echo "goodmorning" >> /test/a.txt

猜你喜欢

转载自www.cnblogs.com/zxn0628/p/11204876.html