零基础班第二课-Linux命令01

一、SecureCRT或Xshell连接虚拟机或云主机

二、bios开启虚拟化

三、Linux命令一

四、Linux命令二

五、Linux命令三

一、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;使用{}就能够有效避免这个问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值