Linux系统中一些常用必须掌握的指令
1)查看当前目录
pwd命令用于显示当前目录,效果如下所示。
[hhj@localhost ~]$ pwd
/home/hhj
2)切换目录
cd命令用来切换目录,效果如下所示。
[hhj@localhost ~]$ cd /usr/local
[hhj@localhost local]$ pwd
/usr/local
3)列出文件内容(list)
ls命令用于查看文件与目录,效果如下所示。
[hhj@localhost ~]$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
4)创建目录
mkdir命令用于创建目录,效果如下所示。
[hhj@localhost ~]$ mkdir TestData
[hhj@localhost ~]$ ls
Desktop Downloads Pictures Templates Videos
Documents Music Public TestData
5)拷贝文件或目录
cp命令用于拷贝文件,若拷贝的对象为目录,则需要使用-r参数,效果如下所示。
[hhj@localhost ~]$ cp -r TestData TestData2
[hhj@localhost ~]$ ls
Desktop Downloads Pictures Templates TestData2
Documents Music Public TestData Videos
6)移动或重命名文件或目录
mv命令用于移动文件,在实际使用中,也常用于重命名文件或目录,效果如下所示。
[hhj@localhost ~]$ mv TestData2 TestDataxlh
[hhj@localhost ~]$ ls
Desktop Downloads Pictures Templates TestDataxlh
Documents Music Public TestData Videos
7)删除文件或目录
rm命令用于删除文件,若删除的对象为目录,则需要使用-r参数,效果如下所示。
[hhj@localhost ~]$ rm -rf TestDataxlh
[hhj@localhost ~]$ ls
Desktop Downloads Pictures Templates Videos
Documents Music Public TestData
8)查看进程
ps命令用于显示当前运行中进程的相关信息,效果如下所示。
[hhj@localhost ~]$ ps
PID TTY TIME CMD
69780 pts/0 00:00:00 bash
71680 pts/0 00:00:00 ps
9)压缩与解压文件
tar命令用于文件压缩与解压,参数中的c表示压缩,x表示解压缩,效果如下所示。
[root@localhost local]# tar -zxvf /home/hhj/Downloads/hadoop-2.9.2.tar.gz
10)查看文件内容
cat命令用于查看文件内容,效果如下所示。
[hhj@localhost ~]# cat /usr/local/hadoop-2.9.2/etc/hadoop/core-site.xml
11)查看机器IP配置
ip address命令用于查看机器IP配置,效果如下所示。
[hhj@localhost ~]$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:6d:5d:c9 brd ff:ff:ff:ff:ff:ff
inet 192.168.18.128/24 brd 192.168.18.255 scope global noprefixroute dynamic ens33
valid_lft 1795sec preferred_lft 1795sec
inet6 fe80::6bb8:6e80:d029:10f2/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:0b:74:1b brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:0b:74:1b brd ff:ff:ff:ff:ff:ff
ifconfig命令也可用于查看机器IP配置:
[hhj@localhost ~]$ ifconfig
(二)vim编辑器
vim是一个类似于vi的著名的功能强大、高度可定制的文本编辑器,在vi的基础上改进和增加了很多特性,vim是vi的加强版,比vi更容易使用,vi的命令几乎全部都可以在vim上使用。
vi/vim共分为三种工作模式:命令模式(Command mode)、输入模式(Insert mode)和末行模式(Last line mode)。用户刚刚启动vi/vim,便进入了命令模式,此状态下敲击键盘动作会被vim识别为命令,而非输入字符,命令模式下是常用的几个命令包括:“i”切换到输入模式,以输入字符;“x”删除当前光标所在处的字符;“:”切换到末行模式,以在最底端一行输入命令。在命令模式下按下“i”就进入了输入模式,在输入模式中,可以使用若干按键完成相应任务,例如字符按键以及Shift组合,输入字符;Insert按键切换光标为输入/替换模式,光标将变成竖线/下划线;ESC按键退出输入模式,切换到命令模式等。在命令模式下按下“:”(英文冒号)就进入末行模式,末行模式下可以输入单个或多个字符的命令,可用的命令非常多,例“q”可以退出程序,“w”用于保存文件等,按ESC键可随时退出末行模式。vi/vim三种工作模式的转换如图1-2所示。
图1-2 vi/vim三种工作模式
vim是实验中用到最多的文件编辑命令。在命令行输入“vim 文件名”后,默认进入“命令模式”,不可编辑文档,需按“i”键,方可编辑文档,编辑结束后,需按“ESC”键,先退回命令模式,再按“:”进入末行模式,接着输入“wq”方可保存退出。
(三)Java基本命令
在安装和配置Java后,可以使用Java命令来编译、运行或者打包Java程序。
1)查看Java版本
[root@localhost ~]# java -version
2)查看当前所有Java进程
jps(Java Virtual Machine Process Status Tool)是Java提供的一个显示当前所有Java进程pid的命令,适合在linux/unix平台上简单察看当前Java进程的一些简单情况,如下所示。
[root@localhost ~]$ jps
11973 Jps
3)编译Java程序
[root@localhost ~]# javac HelloWorld.java
4)运行Java程序
[root@localhost ~]# java HelloWorld
5)打包Java程序
[root@localhost ~]# jar -cvf HelloWorld.jar HelloWorld.class
由于打包时并没有指定manifest文件,因此该jar包无法直接运行,如下所示。
[root@localhost ~]# java -jar HelloWorld.jar
no main manifest attribute, in HelloWorld.jar
6)打包携带manifest文件的Java程序
manifest.mf文件用于描述整个Java项目,最常用的功能是指定项目的入口类,新建文件“manifest.mf”,文件内容输入“Main-Class: HelloWorld”。
[root@localhost ~]# vim manifest.mf
打包时,加入-m参数,并指定manifest文件名。
[root@localhost ~]# jar -cvfm HelloWorld.jar manifest.mf HelloWorld.class
added manifest
adding: HelloWorld.class(in = 430) (out= 295)(deflated 31%)
7)运行jar包
可使用“java”命令直接运行jar包。
[root@localhost ~]# java -jar HelloWorld.jar
Welcome to Java.
(四)SSH安全通信协议
对于远程管理其它机器,一般使用远程桌面或者telnet。Linux安装时自带了telnet,但是telnet的缺点是通信不加密,存在不安全因素,只适合内网访问。为解决这个问题,推出了安全通信协议即SSH(Secure Shell),通过SSH可以安全地进行网络数据传输,这得益于SSH采用的是非对称加密体系,传输内容使用RSA或者DSA加密,可以避免网络窃听。
非对称加密的工作流程包括以下几个步骤:服务端接受到远程客户端登陆请求,将自己的公钥发送给客户端;客户端利用这个公钥对数据进行加密;客户端将加密的信息发送给服务端;服务端利用自己的私钥进行解密,验证其合法性;验证结果返回客户端响应。
不过需要注意的是,Hadoop并不是通过SSH协议进行数据传输的,而是Hadoop控制脚本需要依赖SSH来执行针对整个集群的操作。Hadoop在启动和停止HDFS、YARN的时候,需要主节点上的进程通过SSH协议启动或停止从节点上的各种守护进程。也就是说如果不配置SSH免密登录对Hadoop的使用没有任何影响,只需在启动和停止Hadoop时输入每个从节点的用户名和密码即可。试想,若管理成百上千个节点组成的Hadoop集群,连接每个从节点时都输入密码将是一项繁杂的工作。因此,配置Hadoop主节点到各个从节点的SSH免密登录是有需要的。