前言
本篇博客为大家总结了常用的Linux命令,包括文件操作、系统管理、网络配置、软件安装等方面,通过阅读和练习,可以快速掌握Linux命令行技能,提高工作效率。
日志
查看日志
cat logback.log
带行号
cat -n logback.log
查找关键字
cat -n logback.log | grep graceful
查找关键字前后几行
- 取得关键字行号后:
cat -n logback.log | tail -n +50 | head -n 100
tail -n +50
:从文件的第50行往后显示
head -n 100
:显示50行后的100行
- 另一种方式:
cat -n logback.log | grep graceful -C10 #-C显示前后多少行
cat -n logback.log | grep graceful -A10 #-A显示后多少行
cat -n logback.log | grep graceful -B10 #-B显示前多少行
docker
容器生命周期
创建
docker run --name ${容器} -p ${对外端口}:${容器端口} -d -v ${宿主机目录}:${容器目录} -it --privileged=true --restart unless-stopped -e TZ=Asia/Shanghai ${镜像}
--name
:指定容器名字
${容器}
:容器名字
-p
:是否开放外部端口,可以多个,用多组-p
${对外端口}
:映射出来宿主机的端口(默认网络模式host适用)${容器端口}
:容器内部暴露的端口
-v
:持久化容器内目录,可以多个,用多组-v
${宿主机目录}
:宿主机上的目录${容器目录}
:容器内部的目录
-d
:容器后台运行
-it
:容器可以执行
-privileged=true
:高级权限
--restart unless-stopped
:重启的模式,有always
总是、never
从不(默认)、unless-stopped
非手动停止会重启
-e
:定义环境变量
TZ=Asia/Shanghai
:指定时区
${镜像}
:需要启动的镜像,如果不写标签默认为lastest
--rm
:执行一次就删除
启动
docker start ${容器}
${容器}
:容器完整名字或ID,ID可以只写前几个字符
重启
docker restart ${容器}
${容器}
:容器完整名字或ID,ID可以只写前几个字符
删除
docker rm -f ${容器}
-f
:强行删除容器,如果不带-f
删除失败的话可以尝试
${容器}
:容器完整名字或ID,ID可以只写前几个字符
日志
docker logs -f ${容器} --tail ${行数}
-f
:持续输出日志
${容器}
:容器完整名字或ID,ID可以只写前几个字符
${行数}
:只看最后几行的日志,防止历史日志过多导致的卡顿
进入容器
docker exec -it ${容器} ${命令}
${容器}
:容器完整名字或ID,ID可以只写前几个字符
${命令}
:进入容器的默认命令,一般是bash
或sh
网络
查看端口占用
lsof -i :${port_number}
#或
netstat -tulpn | grep ${port_number}
${port_number}
:实际的端口,如80
防火墙
iptables
查看所有防火墙策略
iptables -L -n
更详细的信息
iptables -S
添加防火墙规则
iptables -I INPUT 1 -s ${源IP}/32 -p tcp -m tcp --dport ${端口} -j ACCEPT
${源IP}
:认可的来源IP
${端口}
:需要打开的端口
删除防火墙规则
# 查看防火墙的行号
iptables -L --line-numbers
# 删除对应行的规则
iptables -D INPUT ${行号}
${行号}
:需要删除的防火墙的行号
firewalld
查看防火墙状态
firewall-cmd --state
#或 systemctl status firewalld
查看防火墙规则
firewall-cmd --list-all
关闭防火墙
systemctl stop firewalld
文件
转化换行符
win -> linux
sed -i 's/\r//' ${filename}
linux -> win
sed -i ':label;N;s/\n/;/;b label' ${filename}
sed -i 's/;/\r\n/g' ${filename}
${filename}
:文件路径
查找文件
查找执行文件
which ${文件名}
#或
whereis ${文件名}
修改上面的
${文件名}
递归查询文件
find ${路径} -name '${文件名}'
${路径}
:需要开始递归的路径,如/
${文件名}
:需要查找的文件名,如redis
,可以使用*
进行模糊匹配,如*redis*
一些问题
cannot execute binary file
系统无法执行二进制文件,可能是文件不可执行或系统架构不兼容
ls -l ${文件名}
如果文件没有可执行权限,用下面的命令添加
chmod +x ${文件名}
如果文件有执行权限,则使用下面的命令排查系统架构兼容问题
file ${文件名}
查询当前的系统架构
uname -a
如果文件与系统架构不匹配,则需要下载适合当前系统版本的文件
${文件名}
:二进制文件名