说明:之前介绍过Linux常用命令,本文补充一些Linux命令,非常实用或者长知识。
查看文本内容
在日常开发中,我们经常需要查看日志文件,来排查BUG,可以使用下面两个命令来查看日志:
# 持续监视log.txt最后100行的内容
tail -n 100 -f log.txt
# 寻找log.txt中有“error”的内容
grep -rina "error" log.txt
这两个命令,前者可以帮助我们打印日志,并在系统中复现BUG,打印出现BUG时的日志内容,后者可以帮助我们定位到指定内容的日志位置。
文件相关
查看当前目录下的内容,我们会用到ls命令,该命令组合的一些参数如下:
-
-l:显示更详细的文件信息;
-
-a:显示包括隐藏文件在内的所有文件和目录;
-
-t:按照修改时间排序;
-
-r:逆序显示;
-
-h:将文件大小以人类可读的方式显示;
部分参数,组合使用如下:
软连接和硬链接。在Linux中,可以通过ln -s命令创建一个软连接,软连接相当于Windows系统中的快捷方式,如果你需要修改一个执行文件的名称方便使用,直接修改执行文件名可能会无法启动程序,此时就可以创建一个软连接来实现,如下:
# mysqld.service为源文件名,mysql.service为链接文件名
ln -s mysqld.service mysql.service
软链接相对于硬链接,软链接文件是几乎没有大小的,相当于一个指向箭头,当源文件被删除时,软链接文件也会打上一个标识,表示该软链接对应的源文件被删除,链接文件也没有用了(如果你够细心,Windows当快捷方式对应的文件被删除,双击快捷方式图标也会有类似的提示)。
而硬链接,是与源文件共享文件内容的,当源文件或者硬链接文件内容被修改,两者的内容会同步修改,使用不带参数的ln命令创建,如下:
# 创建一个source.txt的硬链接文件hardlink.txt
ln source.txt hardlink.txt
硬链接文件,是有文件大小的。
总结一下,软连接和硬链接的区别:
-
大小:软链接是一个快捷方式,几乎没有大小,硬链接与源文件有相同的内容,相同的文件大小;
-
指向:软链接可以指向文件或目录,硬链接只能指向文件;
-
删除:软链接,源文件被删除,链接文件也失去了作用;硬链接,源文件被删除,链接文件没有影响。
目录相关
当我们需要创建一个目录结构时,可通过下面的命令:
mkdir -p dir1/dir2/dir3
切换目录,可以使用cd命令,附带参数-表示回到上次所在的目录,~表示切换到当前用户的家目录;
# 回到上次所在的目录
cd -
# 切换到当前用户的家目录
cd ~
查看目录结构,可使用下面的命令,显示当前位置下所有的目录
du -h
另外,可以安装一个工具,使用tree命令来以树状图的形式显示目录结构,如下:
# 安装tree
yum install tree
# 以树状图的形式,查看当前位置下的目录结构
tree
防火墙相关
# 查看防火墙状态
systemctl status firewalld
# 开启防火墙
systemctl start firewalld
# 关闭防火墙
systemctl stop firewalld
# 查看防火墙配置
sudo firewall-cmd --list-all
# 查看防火墙允许的端口
sudo firewall-cmd --list-ports
# 设置防火墙允许访问的端口,如3306
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 刷新防火墙配置
sudo firewall-cmd --reload
# 移除防火墙开放的某端口,如22
sudo firewall-cmd --zone=public --remove-port=22/tcp --permanent
当我们部署完项目,但是通过IP地址无法访问时,需考虑服务器防火墙相关配置,看防火墙是否开启,开启了是否开放了所需要的端口,没开放要怎么开放?如下:
Java相关
可使用下面的命令,来查看当前系统中运行的Java进程;
# 查看当前系统中运行的Java进程
jps
如果需要后台运行一个Jar包,可使用下面的命令;
# 后台运行Jar包,控制台打印的信息存储到当前目录下的log.txt中
nohup java -jar jar包 > log.txt &
Docker相关
可使用下面的命令,将Docker容器中的文件复制到容器外,或将容器外的文件复制到容器内;
# 将容器外的文件复制到容器内
docker cp 容器外的文件路径 容器名:容器内的文件路径
# 将容器内的文件复制到容器外
docker cp 容器名:容器内的文件路径 容器外的文件路径
总结
文本介绍了Linux的一些命令,参考B站UP主:GeekHour 视频
其他Linux常用命令,参考:Linux常用命令
其他Docker常用命令,参考:Docker常用命令