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

551 阅读10分钟

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

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

本篇的旅行地图如下:

在这里插入图片描述

  • 第一站:小木 会先 登录酷炫的服务器,进入(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命令(一)
Java开发人员必须掌握的Linux命令(二)
Java开发人员必须掌握的Linux命令(三)
Java开发人员必须掌握的两个Linux魔法工具(四)
Java开发人员必须掌握的Linux命令-学以致用(五)

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

Java编程技术乐园:一个分享编程知识的公众号。跟着园长老司机一起学习,每天进步一点点。

扫描关注,后台回复【资源】,获取珍藏干货! 99.9%的伙伴都很喜欢

image.png | center| 747x519

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