zoukankan      html  css  js  c++  java
  • Java开发人员必须掌握的Linux命令(二)

    子曰:“工欲善其事,必先利其器。“

    学习应该是快乐的,在这个乐园中我努力让自己能用简洁易懂(搞笑有趣)的表达来讲解让知识或者技术,让学习之旅充满乐趣,这就是写博文的初心。

    本篇的旅行地图如下:

    • 第一站:小木 会先 登录酷炫的服务器,进入(cd)到神秘的magic 空间(目录),当我们忘记是怎么进入magic空间(目录)时候,可以使用(pwd)立刻得知目前所在的工作目录。
    • 第二站:在magic空间(目录)中,创建(mkdir)一个属于自己的奇幻目录,然后创建(touch)属于自己文件。
    • 第三站:打开(vim)创建好的文件,添加此时的感受,发现这个文件要复制一份到(cp)另一个空间中,并进行改名(mv)!
    • 第四站:一日之后,忘记了当前的感受,想在全部回味(cat)一下,发现内容太多,还是一点一点(more|less)回味
    • 第五站:二日之后,想看一下之前写的前(head)5行内容是什么,然后在能排个顺序(sort)。
    • 第六站:五日之后,文件内容太多,压缩(tar)一下,压缩后有想看内容或查找某个内容(zgrep | zcat)。
    • 第七站:十日之后文件太多,查看(ls)一下,删除(rm)不想要的文件。
    • 第八站:小木还是想探索更奇特的世界,先看一下自己的IP配置(ifconfig),然后挑逗(ping)一下GoogleMM,发现GoogleMM没理会,又挑逗(ping)BaiDuMM,挑逗成功。然后查看(telnet)一下BaiDuMM 的8080房间门(端口)是否打开!
    • 第九站:查看了房间门开启后,小木“PS”了自己的照片,然后写了个定时器,发送给BaiduMM。
    • 第十站:发送的时候发现自己无权限发送,切换(su)到root用户,发送成功,小木累的睡着了,睡梦中梦到自己特别牛逼,因为自己可以通过一个“man”了解所有细节。

    1、cd | pwd

    #  登录酷炫的服务器
    Connecting to 192.168.1.120:22...
    Connection established.
    To escape to local shell, press 'Ctrl+Alt+]'
    

    cd 命令用于切换当前工作目录至 dirName(目录参数)。

    其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。

    另外,"~" 也表示为 home 目录 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。

    pwd命令用于显示工作目录。

    执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

    # 进入 magic “空间”
    [root@localhost ~]# cd magic/
    
    # 查看magic “空间”当前的目录
    [root@localhost magic]# pwd
    /root/magic
    

    2、mkdir|touch

    mkdir命令用于建立名称为 dirName 之子目录。

    touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

    # 创建一个奇幻目录,也可以一次性创建多个。或者多级
    # 创建一个
    [root@localhost magic]# mkdir fantasy
    [root@localhost magic]# ls
    fantasy
    # 创建多个
    [root@localhost magic]# mkdir great best
    [root@localhost magic]# ll
    总用量 0
    drwxr-xr-x. 2 root root 6 3月  14 22:47 best
    drwxr-xr-x. 2 root root 6 3月  14 22:45 fantasy
    drwxr-xr-x. 2 root root 6 3月  14 22:47 great
    
    # 创建多级
    [root@localhost magic]# mkdir -p surprise/otherworld
    [root@localhost magic]# cd surprise/otherworld/
    [root@localhost otherworld]# pwd
    /root/magic/surprise/otherworld
    
    #-------------------#
    # 在fantasy 下创建一个文件
    [root@localhost fantasy]# touch happyday
    [root@localhost fantasy]# ll
    总用量 0
    -rw-r--r--. 1 root root 0 3月  14 22:50 happyday
    
    # 在fantasy 下创建多个文件
    [root@localhost fantasy]# touch sadday busyday
    [root@localhost fantasy]# ll
    总用量 0
    -rw-r--r--. 1 root root 0 3月  14 22:50 busyday
    -rw-r--r--. 1 root root 0 3月  14 22:50 happyday
    -rw-r--r--. 1 root root 0 3月  14 22:50 sadday
    
    

    3、vim/vi | cp | mv

    Unix 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。

    但是目前我们使用比较多的是 vim 编辑器(有时候系统安装好没有vim需要自行安装一下)。

    原因:vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

    vim涉及的知识还是挺多,这里简单介绍,不详细展开,如不是很了解的可以阅读:Linux学习—vim文本编辑器学习:http://uee.me/aSabA。

    # 打开happyday
    [root@localhost fantasy]# vim happyday 
    #点击 i 后插入内容
    
    # 输入完成 按 esc 输入 :wq  ,回车保存
    
    # 拷贝 复制一份
    [root@localhost fantasy]# cp happyday ../best/
    [root@localhost fantasy]# cd ..
    [root@localhost magic]# ll best/happyday 
    -rw-r--r--. 1 root root 99 3月  14 23:02 best/happyday
    
    # 改名
    [root@localhost magic]# cd best/
    [root@localhost best]# mv happyday besthappyday
    [root@localhost best]# ll
    总用量 4
    -rw-r--r--. 1 root root 99 3月  14 23:02 besthappyday
    

    注: Vim相关模式

    (1)命令模式 -Command Mode
    (2)输入模式 -Insert Mode
    (3)底行模式(尾行,末行) - Last Line Mode

     --vim 打开(创建)文件
        默认进入的命令模式,输入I 转换到输入模式,
        到底行模式--esc :wq
    

    4、cat| more | less

    cat 命令用于连接文件并打印到标准输出设备上。

    more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似)。

    lessmore 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

    # 这里就只演示 cat
    [root@localhost best]# cat besthappyday 
    0315 happy
    0812 happy
    0201 happy
    .....
    

    5、head | sort

    head命令 用来显示档案的开头至标准输出中。

    sort命令用于将文本文件内容加以排序。sort可针对文本文件的内容,以行为单位来排序。

    # 查看前5行内容 -n  num:显示每个文件的前num 行内容
    [root@localhost best]# head -n 5 besthappyday 
    0315 happy
    0812 happy
    0201 happy
    0403 happy
    9046 happy
    
    # 排序一下
    [root@localhost best]# head -n 5 besthappyday | sort 
    0201 happy
    0315 happy
    0403 happy
    0812 happy
    9046 happy
    

    6、zgrep | zcat

    避免解压文件,可以使用zgrep命令查找文件内容信息、zcat查看压缩文件中的信息。

    # 五日后文件记录内容太多,压缩一下
    [root@localhost best]# tar -zcvf besthappyday.tar.gz besthappyday 
    besthappyday
    [root@localhost best]# ll
    总用量 8
    -rw-r--r--. 1 root root  99 3月  14 23:02 besthappyday
    -rw-r--r--. 1 root root 163 3月  14 23:14 besthappyday.tar.gz
    # 查看 压缩文件内容 
    [root@localhost best]# zcat -a besthappyday.tar.gz 
    0812 happy
    0201 happy
    0403 happy
    9046 happy
    ...
    # 查找 压缩文件中的内容
    [root@localhost best]# zgrep -a "0201" besthappyday.tar.gz 
    0201 happy
    
    

    注: 一般公司日志都会每天压缩并且日志量较大的时候,如果想要排查问题,查找日志,那就不用解压在查看了。

    7、ls | rm

    ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。ls -l可以显示档案的时间记录。

    rm命令用于删除一个文件或者目录。

    # 查看best目录文件
    [root@localhost best]# ls
    besthappyday  besthappyday.tar.gz
    [root@localhost best]# ls -l
    总用量 8
    -rw-r--r--. 1 root root  99 3月  14 23:02 besthappyday
    -rw-r--r--. 1 root root 163 3月  14 23:14 besthappyday.tar.gz
    [root@localhost best]# ll
    总用量 8
    -rw-r--r--. 1 root root  99 3月  14 23:02 besthappyday
    -rw-r--r--. 1 root root 163 3月  14 23:14 besthappyday.tar.gz
    
    # 删除 文件 besthappyday 
    [root@localhost best]# rm -i besthappyday
    [root@localhost best]# ll
    总用量 4
    -rw-r--r--. 1 root root 163 3月  14 23:14 besthappyday.tar.gz
    
    

    注意: rm使用一定不能胡搞,尤其还是root用户的时候,**千万注意使用 rm -rf / ,生产环境切记! **

    • -i 删除前逐一询问确认。

    • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。

    • -r 将目录及以下之档案亦逐一删除。

    注: 如果不能使用 ll,可以进行配置(临时):alias ll='ls -l --color=auto' ,如果想服务重启后还生效要改配置文件。

    8、ifconfig | ping | telnet

    ifconfig命令用于显示或设置网络设备。ifconfig可设置网络设备的状态,或是显示目前的设置,可用于启动关闭指定网卡、配置IP地址等。

    ping命令用于检测主机。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

    telnet命令用于远端登入。执行telnet指令开启终端机阶段作业,并登入远端主机

    # 查询显示网络信息 配置的IP: 192.168.1.120
    [root@localhost best]# ifconfig
    enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.1.120  netmask 255.255.255.0  broadcast 192.168.1.255
            inet6 fe80::2011:229e:3407:7b99  prefixlen 64  scopeid 0x20<link>
            ether 08:00:27:ef:a7:71  txqueuelen 1000  (Ethernet)
            RX packets 2602  bytes 225175 (219.8 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 1527  bytes 193319 (188.7 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 68  bytes 5912 (5.7 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 68  bytes 5912 (5.7 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
            
    # 勾搭 googleMM 和 勾搭BaiduMM
    [root@localhost best]# ping www.google.com
    PING www.google.com (69.171.225.13) 56(84) bytes of data.
    ^C
    --- www.google.com ping statistics ---
    17 packets transmitted, 0 received, 100% packet loss, time 16019ms
    
    [root@localhost best]# ping www.baidu.com
    PING www.a.shifen.com (119.75.217.26) 56(84) bytes of data.
    64 bytes from 119.75.217.26 (119.75.217.26): icmp_seq=1 ttl=55 time=101 ms
    64 bytes from 119.75.217.26 (119.75.217.26): icmp_seq=2 ttl=55 time=124 ms
    ^C
    --- www.a.shifen.com ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1001ms
    rtt min/avg/max/mdev = 101.591/113.020/124.449/11.429 m
    
    # 看房间门是否打开
    [root@localhost ~]# telnet 192.168.1.120 8080
    
    -- telnet : ctrl + ] + quit
    

    9、ps |crontab

    ps命令用于显示当前进程 (process) 的状态。

    这个命令第一篇中提到过!

    # 查询java服务
    [root@localhost ~]# ps -aux | grep java
    

    crontab是用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。

    crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。

    crontab的使用这里略,感兴趣的请自行查找资料。

    10、su | man

    su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。

    使用权限:所有使用者。

    # 显示当前用户
    dufy@localhost:~$ whoami 
    dufy
    # 切换到root用户
    dufy@localhost:~$ su - root 
    密码: 
    [root@localhost ~]# whoami
    root
    
    

    man命令来查看一些不熟悉的命令的使用方法,还可以用来查询系统库文件中的一些函数定义和使用方法。man就是manual(参考手册)。

    # 查看对应命令的使用说明
    [root@localhost ~]# man mv
    [root@localhost ~]# man ls
    
    

    推荐阅读

    Java开发人员必须掌握的Linux命令(一)


    谢谢你的阅读,如果您觉得这篇博文对你有帮助,请点赞或者喜欢,让更多的人看到!祝你每天开心愉快!



    不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!

    博客首页 : http://blog.csdn.net/u010648555

    愿你我在人生的路上能都变成最好的自己,能够成为一个独挡一面的人

    © 每天都在变得更好的阿飞云

  • 相关阅读:
    系统设计的一些原则
    分层开发思想与小笼包
    工作与生活
    Microsoft .NET Pet Shop 4 架构与技术分析
    用人之道(二) 如何管理软件开发团队
    也谈很多开发人员的毛病
    《3S新闻周刊》第10期,本期策划:“超女”营销带来的启示
    浅析ArcIMS
    MapX的坐标问题
    应用ArcIMS构建GMap风格的地图应用
  • 原文地址:https://www.cnblogs.com/aflyun/p/10534507.html
Copyright © 2011-2022 走看看