作为程序员,一个后端程序员,总是避免不了要亲自上前线进行linux运维工作,那么一些必备的运维命令必须熟练掌握。
以下为我在工作中经常使用的运维命令,希望对你有帮助
find】"test*"】,指将目录名字包含test的文件。【"test?"】,指将目录名字包含test开头的文件。更详细的用法可以搜索。find 指定路径 -name 指定文件名
grep】| grep 关键词 进行搜索cat a.txt | grep 123
grep 关键词 -[A|B|C]数值来显示关键词下文、上文、上下文指定数值行数的内容cat a.txt | grep 123 -A10
cat a.txt | grep 123 -B10
cat a.txt | grep 123 -C10
| wc -l来统计匹配字符的行数,这种在需要统计某些特定的日志打印次数时十分管用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!,表示不保存强制退出编辑状态
注意:以下的服务名可不用写全,会自动匹配以此开头的服务名
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用户名
kubectl -n用户名 cp 实例pod:jar包名称 要复制保存到的路径/jar包名称
kubectl describe 主域名 服务名称 -n用户
# 示例
kubctl test redis -ntest124
kubectl delete -n用户名 实例pod