导语
作为程序员,一个后端程序员,总是避免不了要亲自上前线进行linux运维工作,那么一些必备的运维命令必须熟练掌握。
以下为我在工作中经常使用的运维命令,希望对你有帮助
查找命令
- 搜索指定路径下的名字包含指定字符的指定文件 - 【
find
】
注意:可以使用通配符,例如【"test*"
】,指将目录名字包含test的文件。【"test?"
】,指将目录名字包含test开头的文件。更详细的用法可以搜索。find 指定路径 -name 指定文件名
- 文件中的查找命令 - 【
grep
】
任何可以在linux显示文本信息的命令,都可以加| grep 关键词
进行搜索
例如:查找a.txt文件中字符串123
grep还有其他常用的用法,参考【传送门】cat a.txt | grep 123
其中最常用的是grep 关键词 -[A|B|C]数值
来显示关键词下文、上文、上下文指定数值行数的内容
例如:查看a.txt中123字符串下文10条的日志内容
例如:查看a.txt中123字符串上文10条的日志内容cat a.txt | grep 123 -A10
例如:查看a.txt中123字符串上下文10条的日志内容cat a.txt | grep 123 -B10
grep还可搭配cat a.txt | grep 123 -C10
| wc -l
来统计匹配字符的行数,这种在需要统计某些特定的日志打印次数时十分管用
例如:统计a.txt中字符串123总共有多少行cat a.txt | grep 123 | wc -l
- 文件中的查找命令 - 【
less
】
除了grep
外,less
命令也是一个很好的查找日志的命令,有个时候grep
有个缺陷,就是你通过shell工具连接服务器查找相关日志,grep
日志太多的话,导致显示的内容超出工具能显示的最大内容,这个时候就需要用到less
命令了,因为它能翻页,查看日志更简便。
例如:
在通过cat a.txt | less
/关键词
向下搜索关键词,?关键词
向上搜索关键词
找到第一个关键词后,可以通过键盘上的[pagedown]
向下翻一页,或者[pageup]
向上翻动一页查看
更多使用细节参考【传送门】
远程跳转
通过ssh
命令跳转链接到另一台服务器,只要网络连通,知道用户名密码
ssh 用户名@ip
之后就会提示输入密码,输入不会显示明文,直接输入之后按enter键即可。
当然,还有一个常见的情况,ssh默认的端口22被改了,这时候就得指定端口号链接
ssh -p 端口号 用户名@ip
文件复制、删除、移动,创建
-
文件或者文件夹的复制
# 复制到文件A到路径A目录下 cp 文件A 路径A # 示例 cp /root/a.txt /root/A # 复制到目录A到路径A目录下 cp -r 目录A 路径A # 示例 cp -r /root/A /root/B
-
文件或文件夹的删除
# 删除路径下制定文件 rm 文件A # 示例 rm /root/a.txt # 强制删除,不会提示文件不存在 rm -f 文件A # 示例 rm -f /root/a.txt # 删除文件夹 rm -r /root/A # 强制删除文件夹 rm -rf /root/A
-
跨服务器的文件复制
scp 用户名@另一服务器的ip:指定路径下的文件 当前服务器下的路径 # 示例 要把13.32.32.42服务器下/root/A/a.txt复制到当前服务器/root/A路径下 scp root@13.32.32.42:/root/A/a.txt /root/A
-
文件或文件夹的移动
mv [选项] 源文件或者目录 目标文件或者目录 #示例 mv /root/A/a.txt /root/B #示例 移动加改名 mv /root/A/a.txt /root/B/b.txt # mv命令可以用来改名
-
文件夹的创建
mkdir 文件夹名 # 示例 mkdir /root/A
-
文件的创建
一般不会创建文件,但偶尔可能需要touch /root/a.txt # 之后在里面输入内容保存即可
文件内容修改
-
进入文件内容编辑状态
vi /root/a.txt # 如果有vim,可以使用vim vim /root/a.txt
-
修改文件内容
键盘I
键。等于insert -
保存修改
点击ESC
键,看到左下角的出现:
号,输入wq
,按enter
键保存退出
如果修改了,又不想保存,把wq
指令换成q!
,表示不保存强制退出编辑状态
K8S集群环境操作
注意:以下的服务名可不用写全,会自动匹配以此开头的服务名
- 查看指定实例的pod
kubectl get pod -n用户名 | grep 服务名
- 查看指定实例的日志
# 实时刷新 kubectl logs -f --tail=日志显示的行数 -n用户名 实例pod
- 查找服务对应的配置文件名称
kubectl get cm -n用户名 | grep 服务名
- 查看指定服务的配置文件信息
kubectl -n用户名 edit cm 服务对应的配置文件名称
- 查看指定服务的部署信息
kubectl edit deploy -n用户名 服务名
- 进入实例中查看容器内部的文件
kubectl exec -it 实例pod /bin/bash -n用户名
- 获取服务当前实例pod容器内部运行的jar包
kubectl -n用户名 cp 实例pod:jar包名称 要复制保存到的路径/jar包名称
- 查找k8s环境配置域名对应的服务组件
kubectl describe 主域名 服务名称 -n用户 # 示例 kubctl test redis -ntest124
- 重启实例
kubectl delete -n用户名 实例pod