敢说敢作敢为, 无怨无恨无悔。这篇文章主要讲述shell疑难杂症相关的知识,希望能为你提供帮助。
一、shell疑难杂症
一)find命令
find 命令一直都是系统管理员的常用命令之一, 其参数中 “-exec” 尤其实用。而 “xargs” 命令,针对查询也有属于自己的见解。本文着重讲解的是围绕 find 命令查询为主线,使用 -exec 参数(find 命令) 或使用 xargs 命令
?
1、批量重命名查找到的文件名解释:
- -exec 后面接复杂的命令时,使用sh -c command\\;
- 有变量时,需要使用 “-”,“_”,“/”特殊字符占位,使用特殊字符的数量和变量的数量保持一致
find . -name "*.md" -exec sh -c mv "$1" "$1%.md.html" /\\;
二)k8s多集群管理kubectl命令问题
1、kubectl patch 扩、缩容pod数
#!/bin/bash
KubeConfig_name=$KubeConfig_name
#Deployment_Name=$Deployment_Name
# 下面两个变量先写成固定值,验证
Deployment_Name=nginx-deployment
Namber=2
#ACD=\\"spec\\":\\"replicas\\":$Namber
echo $KubeConfig_name
for line in $Deployment_Name
do
cd /root/.kube
pwd
#source /etc/profile
#kubectx 多集群管理命令
#kubectx $KubeConfig_name
echo $KubeConfig_name
echo $ACD
#kubectl patchdeployment $line -p $ACD
# -p 后面不加单引号,执行shell时,会默认加上
kubectl patchdeployment $line -p \\"spec\\":\\"replicas\\":$Namber
#kubectl patchdeployment $line -p "spec":"replicas":2
sleep 35
done
执行如图:
三)普通用户在有权限的目录下,操作删除rm没提醒(直接删除了文件)
1、问题描述:默认情况下:普通用户在有权限的目录下,操作删除rm没提醒(直接删除了文件);但是root用户是有提醒的
root用户操作示范
普通用户操作示范
2、出现这个现象的原因在root用户下有rm对应别名,在普通用户没有rm别名
root用户/root/.bashrc有别名,文件如下
# .bashrc
# User specific aliases and functions
alias rm=rm -i
alias cp=cp -i
alias mv=mv -i
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
普通用户/$USER/.bashrc没有别名,文件如下
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# Uncomment the following line if you dont like systemctls auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
3、解决方法(root用户在全局设置:/etc/bashrc )
sudo su -
cat < < EOF > > /etc/bashrc
# alias
alias rm=rm -i
alias cp=cp -i
alias mv=mv -i
EOF
source /etc/bashrc
【shell疑难杂症】
推荐阅读
- Linux学习教程1.4 类UNIX系统是什么鬼()
- nvm node版本管理
- win8系统更新CF后不能全屏怎样办|win8系统更新CF后不能全屏处理措施
- Win8纯净版系统点击文件夹总显示未响应如何处理
- win8系统没有更新补丁导致office2010不能安装怎样办
- 更新Win8 update系统提示代码80244fff怎样回事
- win8/win8.1系统更新usb2.0驱动后不能运用怎样办
- 如何设置win8系统进入睡眠状态后音乐继续播放
- 2015年最受欢迎温8系统下载排行榜top10