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

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

文章目录
      • 1、cd | pwd
      • 2、mkdir|touch
      • 3、vim/vi | cp | mv
      • 4、cat| more | less
      • 5、head | sort
      • 6、zgrep | zcat
      • 7、ls | rm
      • 8、ifconfig | ping | telnet
      • 9、ps |crontab
    • 推荐阅读

本篇的旅行地图如下:
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 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
【Java开发人员必须掌握的Linux命令(二)】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行内容 -nnum:显示每个文件的前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 root99 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 besthappydaybesthappyday.tar.gz [root@localhost best]# ls -l 总用量 8 -rw-r--r--. 1 root root99 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 root99 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=4163mtu 1500 inet 192.168.1.120netmask 255.255.255.0broadcast 192.168.1.255 inet6 fe80::2011:229e:3407:7b99prefixlen 64scopeid 0x20 ether 08:00:27:ef:a7:71txqueuelen 1000(Ethernet) RX packets 2602bytes 225175 (219.8 KiB) RX errors 0dropped 0overruns 0frame 0 TX packets 1527bytes 193319 (188.7 KiB) TX errors 0dropped 0 overruns 0carrier 0collisions 0lo: flags=73mtu 65536 inet 127.0.0.1netmask 255.0.0.0 inet6 ::1prefixlen 128scopeid 0x10 looptxqueuelen 1000(Local Loopback) RX packets 68bytes 5912 (5.7 KiB) RX errors 0dropped 0overruns 0frame 0 TX packets 68bytes 5912 (5.7 KiB) TX errors 0dropped 0 overruns 0carrier 0collisions 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%的伙伴都很喜欢
Java开发人员必须掌握的Linux命令(二)
文章图片

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

    推荐阅读