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

663 阅读7分钟

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

做一个积极的人
编码、改bug、提升自己
我有一个乐园,面向编程,春暖花开!

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

目录

1、登录服务器SSH命令

简单说,SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。

最基本的用法:

常用格式:ssh [-l login_name] [-p port] [user@]hostname

例子:

ssh 192.168.1.110
ssh -l root 192.168.0.11
# 比较常用 
ssh root@192.168.0.11

图解:

ssh示例

2、传输文件scp命令

scp命令用于Linux服务器之间复制文件和目录。scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

最基本的用法:

常用格式:scp [可选参数] file_source remote_username@remote_ip:remote_folder

例子:

scp /home/test.log root@192.168.1.110:/home/happy/

注意: 使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。

3、查看系统状态 top、free、df

top命令用于实时显示 process 的动态。可以配合用来查询vm的一些问题!具体参数不做介绍。

# 表示更新两次后终止更新显示
top -n 2
#表示更新周期为3秒
top -d 3
# 显示进程号为2586的进程信息,CPU、内存占用率等
top -p 2586
更新显示二次的结果输入到名称为 top.log 的档案里
top -n 2 -b < top.log

free命令用于显示内存状态。

# 显示内存使用信息 , -h 选项为根据大小适当显示(人类可以读懂的方式)
free -h
# 每10s 执行一次命令
free -hs 10

df 以磁盘分区为单位查看文件系统,可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

# 查看磁盘信息, -h 选项为根据大小适当显示
df -h

du会显示指定的目录或文件所占用的磁盘空间。用于查看当前目录的总大小。

 # 通过排序的方式显示前十条
[root@localhost ~]# du -am  | sort -nr | head -n 10
183    ./jdk-8u191-linux-x64.tar.gz
183    .
1    ./.viminfo
....

4、压缩/解压tar命令

tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

  • 压缩文件

命令 : tar -zcvf 备份文件.tar.gz 备份文件/目录

后缀也可以是.tgz。

# 创建一个文件
[root@localhost ~]# touch text.log    
# 压缩 text.tar.gz
[root@localhost ~]# tar -zcvf text.tar.gz text.log 

[root@localhost ~]# tar -zcvf text.tgz text.log 
text.log
[root@localhost ~]# ll
-rw-r--r--. 1 root root       114 3月  12 22:45 text.tgz

  • 列出压缩文件内容

命令: tar -ztvf 备份文件.tar.gz 或 tar -ztvf 备份文件.tgz

[root@localhost ~]# tar -ztvf text.tar.gz 
-rw-r--r-- root/root         0 2019-03-12 22:41 text.log
[root@localhost ~]# tar -ztvf text.tgz 
-rw-r--r-- root/root         0 2019-03-12 22:41 text.log

  • 解压文件

命令: tar -zxvf 备份文件.tar.gz 或 tar -zxvf 备份文件.tgz

[root@localhost ~]# tar -zxvf text.tar.gz 
-rw-r--r-- root/root         0 2019-03-12 22:41 text.log
[root@localhost ~]# tar -zxvf text.tgz 
-rw-r--r-- root/root         0 2019-03-12 22:41 text.log

tar -z 压缩(c)、查看(t)、解压(x)vf

  • -z或--gzip或--ungzip 通过gzip指令处理备份文件
  • -c或--create 建立新的备份文件
  • -t或--list 列出备份文件的内容
  • -x或--extract或--get 从备份文件中还原文件
  • -v或--verbose 显示指令执行过程
  • -f<备份文件>或--file=<备份文件> 指定备份文件

5、修改文件属性chmod命令

Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。

读,写,执行的权限。r=4,w=2,x=1

  • 若要rwx属性则4+2+1=7;
  • 若要rw-属性则4+2=6;
  • 若要r-x属性则4+1=5。

一般情况,赋值 命令

chmod 755 file

此外chmod也可以用字母来表示权限,这里就不进行说明。

6、查找文件find命令

find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

find . -iname \*.txt(大小写都匹配)
find . -type d(当前目录下的所有子目录)
find /usr -type l(当前目录下所有的符号链接)
find /usr -type l -name "z*" -ls(符号链接的详细信息 eg:inode,目录)
find /home/test -size +250000k(超过250000k的文件,当然+改成-就是小于了)
find /home/test f -perm 777 -exec ls -l {} \; (按照权限查询文件)
find /home/test -atime -1  1天内访问过的文件
find /home/test -ctime -1  1天内状态改变过的文件    
find /home/test -mtime -1  1天内修改过的文件
find /home/test -amin -1  1分钟内访问过的文件
find /home/test -cmin -1  1分钟内状态改变过的文件    
find /home/test -mmin -1  1分钟内修改过的文件
#----------
#查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们
find /var/log -type f -mtime +7 -ok rm {} \;

#查找系统中所有文件长度为0的普通文件,并列出它们的完整路径
find / -type f -size 0 -exec ls -l {} \;

7、查询字符 grep命令

grep命令用于查找文件里符合条件的字符串。

grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。

# 显示所有以d开头的文件中包含test的行。
grep 'test' d* 
# 显示在text1,text2,text3文件中匹配test的行。
grep 'test' text1 text2 text3
# text文件中显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
grep '[a-z]\{5\}' text

# 查找文件名中包含 test 的文件中不包含test 的行
grep -v test *test*

8、查看端口占用netstat命令

netstat命令用于显示网络状态。

利用netstat指令可让你得知整个Linux系统的网络情况。

# 查看端口1212的使用情况
netstat -tln | grep 1212
查看端口属于哪个程序
lsof -i :1212

9、查看文件内容 tail命令

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

真实使用:

# 查看日志
tail -f  xxxx.out
# 查看 100行日志
tail  -n100 xxxx.out
# 查看带有'test'的日志
tail -f | grep 'test' 这样可以只显示

10、停止应用kill命令

kill命令用于删除执行中的程序或工作。

查找tomcat服务,并彻底杀死进程。

# 查找tomcat服务器
ps aux | grep tomcat
root  25689
# 杀掉进程 -9 强制杀
kill -9 25689

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

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

image.png | center| 747x519

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