一、SecureCRT或Xshell连接虚拟机或云主机
-
自行百度SecureCRT或者Xshell的下载与安装
-
SecureCRT连接本地虚拟机
二、Bios开启虚拟化
- Windows上部署虚拟机需要Bios虚拟化
- 自行百度解决即可
三、Linux命令一
1、pwd 查看当前光标所在的路径
[root@hadoop004 ~]# pwd
/root
2、root用户和普通用户
- root用户 :超级管理员
hadoop用户:是普通用户 /home/hadoop
mysqladmin用户:普通用户 /home/hadoop/mysqlamdin - 在Linux系统中,目录开始多是以根目录 / 开始的
查看根目录下文件命令:ls /
[root@hadoop004 ~]# ls /
bin boot etc lib lost+found misc net proc sbin srv tmp var
booot dev home lib64 media mnt opt root selinux sys usr
家目录:~
3、切换目录
-
目录可以形象的理解为文件夹
-
从root用户切换到hadoop用户
[root@hadoop004 ~]# cd /home/hadoop
[root@hadoop004 hadoop]# pwd
/home/hadoop
回退到家目录:需要快速访问家目录
- cd
- cd ~
回退到上一次的路径:
- cd -
回退到上一层的目录:
- cd …/
回退到上二层的目录:
- cd …/…/
4、路径分为绝对路径和相对路径
绝对路径:从根目录开始补全
- cd /home/hadoop/app/hive/conf
相对路径:当前目录开始没有以 / 为开头
- cd conf
5、清空当前屏幕
- clear 只是启动当前屏幕
6、ls命令
- ls 打印当前目录的所有文件夹和文件的名称
7、ls -l命令
ls -l --> ll 别名
[hadoop@hadoop004 bin]$ ll
total 32
-rwxr-xr-x. 1 hadoop hadoop 881 Mar 24 2016 beeline
drwxr-xr-x. 3 hadoop hadoop 4096 Mar 24 2016 ext
-rwxr-xr-x. 1 hadoop hadoop 7751 Mar 24 2016 hive
-rwxr-xr-x. 1 hadoop hadoop 1900 Mar 24 2016 hive-config.sh
-rwxr-xr-x. 1 hadoop hadoop 885 Mar 24 2016 hiveserver2
-rwxr-xr-x. 1 hadoop hadoop 832 Mar 24 2016 metatool
-rwxr-xr-x. 1 hadoop hadoop 884 Mar 24 2016 schematool
8、ls -l -a ==> ls -la(查看隐藏文件、文件夹)
-
在Linux中,隐藏文件或文件夹是以.开头的
-
如下所示:以.开头的都是隐藏文件
[root@hadoop004 ~]# ls -la
total 252
-rw-------. 1 root root 1385 Apr 17 22:32 anaconda-ks.cfg
-rw-------. 1 root root 9795 Sep 14 01:50 .bash_history
-rw-r--r--. 1 root root 18 May 20 2009 .bash_logout
-rw-r--r-- 1 root root 176 Jun 29 21:04 .bash_profile
-rw-r--r--. 1 root root 176 Sep 23 2004 .bashrc
9、ll -h 查看文件的大小
10、文件名称按照时间排序(从小到大)
- ll -rt
[hadoop@hadoop004 app]$ ll -rt
total 36
drwxr-xr-x 10 hadoop hadoop 4096 Feb 27 2013 protobuf-2.5.0
drwxr-xr-x 10 hadoop hadoop 4096 Mar 24 2016 sqoop-1.4.6-cdh5.7.0
drwxrwxr-x. 6 hadoop hadoop 4096 Nov 10 2017 scala-2.11.12
lrwxrwxrwx. 1 hadoop hadoop 36 Apr 17 16:14 hive -> /home/hadoop/app/hive-1.1.0-cdh5.7.0
drwxrwxr-x. 6 hadoop hadoop 4096 May 2 17:41 apache-maven-3.3.9
drwxrwxr-x. 6 hadoop hadoop 4096 May 9 12:09 apache-maven-3.5.4
lrwxrwxrwx 1 hadoop hadoop 39 Jun 29 23:46 hadoop -> /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/
drwxr-xr-x 11 hadoop hadoop 4096 Jul 2 01:31 zookeeper-3.4.6
drwxr-xr-x 11 hadoop hadoop 4096 Jul 2 05:46 hue-3.9.0-cdh5.7.0
drwxr-xr-x. 11 hadoop hadoop 4096 Jul 23 12:56 hive-1.1.0-cdh5.7.0
drwxr-xr-x 17 hadoop hadoop 4096 Sep 9 01:43 hadoop-2.6.0-cdh5.7.0
11、虚拟机查看本机ip
- Linux:ifconfig
- Window:ipconfig
[hadoop@hadoop004 app]$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:97:F2:74
inet addr:10.0.0.135 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe97:f274/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:764751 errors:0 dropped:0 overruns:0 frame:0
TX packets:763374 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:121510143 (115.8 MiB) TX bytes:169970871 (162.0 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2811875 errors:0 dropped:0 overruns:0 frame:0
TX packets:2811875 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3424784069 (3.1 GiB) TX bytes:3424784069 (3.1 GiB)
12、mkdir创建一层目录
[hadoop@hadoop004 ~]$ mkdir ruozedata
[hadoop@hadoop004 ~]$ ll
total 52
drwxrwxr-x 2 hadoop hadoop 4096 Sep 15 10:25 ruozedata
[hadoop@hadoop004 ~]$ cd ruozedata/ 相对路径
13、级联创建目录(串行)
- mkdir -p 1/2/3
14、并行的创建目录
- mkdir 4 5 6
15、移动
- 移动原路径文件夹、文件,到目标端文件夹
1、ll查看data
[root@hadoop004 data]# ll
total 96
-rw-rw-r-- 1 hadoop hadoop 54 Jul 1 03:49 a.log
drwxrwxr-x 2 hadoop hadoop 4096 Sep 12 13:42 topN
2、移动这个文件
[root@hadoop004 data]# mv a.log topN/
3、移动文件夹的同时进行重命名
[root@hadoop004 data]# mv b.txt /topN/b1.txt
4、对文件夹进行操作:
[root@hadoop004 ruozedata]# mkdir 4 5 6
[root@hadoop004 ruozedata]# mv 4 5/
[root@hadoop004 ruozedata]# mv 5 6/5_tmp
注意:好的习惯,目录间要以/为分割
- 既然是移动,数据始终只有一份
16、复制
- cp 原路径文件夹/文件 目标端的路径文件夹/文件
拷贝文件:cp city_info.java data/
拷贝文件夹:cp -r tmp data/ 拷贝文件夹要加参数-r
拷贝文件夹并且重命名:cp -r tmp data/tmp666 重命名
17、怎样查看命令帮助、查看官网
[hadoop@hadoop004 data]$ cp --help
Usage: cp [OPTION]... [-T] SOURCE DEST
or: cp [OPTION]... SOURCE... DIRECTORY
or: cp [OPTION]... -t DIRECTORY SOURCE...
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
四、Linux命令二
一、查看静态文件内容:
cat:文件内容一下子全部显示,会不停的打印完才会结束。
more:文件内容会一页页的往下翻,按空格键往下翻,缺点是:无法回退。
less:文件内容 往下 往上都可以;按住键盘上的上下左右都可以,按q退出。
二、查看动态文件内容:
tail -f xxx.log 实时查看
tail -F xxx.log 实时查看+retry
应用场景:在大数据组件环境中,一个log日志文件可能有1个G,拷贝到Windows电脑上查看error现实么;或者是vi编辑这个文件搜索error也不现实。
生产上的场景应用:
xxx.log 系统记录10份,每100M切一次
程序 --》 xxx.log 当第一份写满100M了之后;
mv xxx.log xxx.log1 重命名下;
touch xxx.log 再去创建一份新的文件
mv xxx.log9 xxx.log10
测试tail -f和tail -F的区别:
在这个目录下创建一个文件 /home/hadoop/ruozedata:
- touch ruoze.log 新建一个空的ruoze.log
分别新开两个session:
session1:tail -f ruoze.log
session2:tail -F ruoze.log
此时使用命令往ruoze.log中写入数字:
- echo “123” >> ruoze.log 把数字123追加进入ruoze.log
tail -f和tail -F都能够检测到ruoze.log
[hadoop@hadoop004 ruozedata]$ tail -f ruoze.log
123
[hadoop@hadoop004 ruozedata]$ tail -F ruoze.log
123
此时进行如下操作:删除ruoze.log这个文件
- 回到session1和session2去查看状态:
- 我们可以看见tail -f的光标不再闪动了,tail -F可以检测出已经没有这个文件了。
[hadoop@hadoop004 ruozedata]$ tail -f ruoze.log
123
[hadoop@hadoop004 ruozedata]$ tail -F ruoze.log
123
tail: `ruoze.log' has become inaccessible: No such file or directory
又进行如下操作:重新touch一个同名的文件
- touch ruoze.log
- echo “456” >> ruoze.log
查看两个session的状态:
- tail -F能够重新检测出新创建的ruoze.log这个文件,tail -f自从ruoze.log删除后就跟死了一样
[hadoop@hadoop004 ruozedata]$ tail -f ruoze.log
123
[hadoop@hadoop004 ruozedata]$ tail -F ruoze.log
123
tail: `ruoze.log' has become inaccessible: No such file or directory
tail: `ruoze.log' has appeared; following end of new file
456
三、追加和覆盖命令:
-
:覆盖命令
-
:追加命令
J总日志:【在线日志分析】之记录一个flume-ng的tail -f参数所诱发的血案
- http://blog.itpub.net/30089851/viewspace-2134067/
五、Linux命令三
问题:mv的速度快还是cp的速度快?
- mv快,mv其实就是改了一个路径;cp要把文件变成两份,它的内容要从内存中生成出来。
一、alias别名:
[root@hadoop004 ~]# alias rzcd=’/home/hadoop/app/hive/conf’
- 使用rzcd就相当于进行了调用,rzcd就会进入对应的目录中去了。
注意:有本事机器掌握在自己的手上,新进来大数据组件,组件的调研肯定是你去做,you are important.
概念:临时生效和永久生效:
我们的这个别名是只针对当前session有效,当前的session关闭后这个rzcd是不生效的。
怎样配置使其永久生效?
- 个人环境变量文件 在~/.bash_profile 配置谁的家目录下隐藏文件就是对谁永久生效
- 全局环境变量文件 /etc/profile 等等都可以去使用这个命令
vi /etc/profile (编辑全局环境变量配置环境)
如下是在root用户下的etc/profile中配置的:
在文末加上这段话:
alias rzcd='cd /root/Desktop'
按住wq保存
source使其生效:
source /etc/profile
在root用户下输入rzcd,就直接能切换了
我们在hadoop用户下使用rzcd进行测试:会提示权限不够:
[hadoop@hadoop004 ~]$ alias
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias rzcd='cd /root/Desktop'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[hadoop@hadoop004 ~]$ rzcd
-bash: cd: /root/Desktop: Permission denied
小结:这说明了全局设定etc/profile确实是对所有用户都生效了,只是/root下的目录不能被hadoop用户访问
那我们如何操作只对当前用户生效?
根据用户习惯环境变量可以放置在.bash_profile或者.bashrc中,这两种都是认的。
我们在hadoop用户下进行编辑:
1、编辑这个配置文件
vi ~/.bash_profile
alias bull='cd /home/hadoop/app/hive/bin'
2、使其生效
source ~/.bash_profile
3、在hadoop用户下查看是否有alias命令
[hadoop@hadoop004 ~]$ alias
alias bull='cd /home/hadoop/app/hive/bin'
4、测试在root用户下是否有这个命令,经测试,root用户下是没有bull这个命令的
小结:
-
这也就印证了我们说的,它确实只对当前用户生效。
-
touch:创建一个空的文件
二、rm删除命令
- 删除文件:
[hadoop@hadoop004 ruozedata]$ ll
total 12
drwxr-xr-x 3 root root 4096 Sep 15 10:36 6
-rw-rw-r-- 1 hadoop hadoop 18 Sep 15 11:35 ruoze.log
-rw-r--r-- 1 root root 6 Sep 15 10:38 text.log
[hadoop@hadoop004 ruozedata]$ rm ruoze.log
[hadoop@hadoop004 ruozedata]$ rm text.log
rm: remove write-protected regular file `text.log'? y
- 删除文件夹:
- rm -f 强制删除,不询问
- rm -r 只代表文件夹
送大家一句话:删除上敲命令或者shell脚本,千万不要有 rm -rf /
生产举例在shell脚本种:
rm -rf ${key}/log,如果{key}的值为空了,==> rm -rf /
[hadoop@hadoop004 4]$ path=/var
[hadoop@hadoop004 4]$ echo $path
/var
[hadoop@hadoop004 4]$ path=""
[hadoop@hadoop004 4]$ echo $path
[hadoop@hadoop004 4]$ echo $path/
/
所以在shell脚本种,要进行判断,if {key} = NULL,为空就不删;不为空就进行删除;
- 高级的shell脚本是面向对象的函数式变成
三、设置变量
How to use?
- 设置key=value ==> =号前后不能有空格
- 使用“${path}”
测试:
- [hadoop@hadoop004 4]$ key=“5million”
[hadoop@hadoop004 4]$ echo ${key}
5million
遵循规范:
- [hadoop@hadoop004 4]$ echo " k e y y " 5 m i l l i o n y [ h a d o o p @ h a d o o p 0044 ] {key}y" 5milliony [hadoop@hadoop004 4] keyy"5milliony[hadoop@hadoop0044] echo $keyy
小结:
Linux系统并不会识别我们输入的keyy其实时key和y;使用{}就能够有效避免这个问题