shell疑难杂症
一、shell疑难杂症
一)find命令
find 命令一直都是系统管理员的常用命令之一, 其参数中 “-exec” 尤其实用。而 “xargs” 命令,针对查询也有属于自己的见解。本文着重讲解的是围绕 find 命令查询为主线,使用 -exec 参数(find 命令) 或使用 xargs 命令
https://www.cnblogs.com/itxdm/p/5936907.html
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 patch deployment ${line} -p ${ACD}
# -p 后面不加单引号'',执行shell时,会默认加上 kubectl patch deployment ${line} -p {\"spec\":{\"replicas\":$Namber}} #kubectl patch deployment ${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 don't like systemctl's auto-paging feature: # export SYSTEMD_PAGER= # User specific aliases and functions
3、解决方法(root用户在全局设置:/etc/bashrc )
sudo su - cat <> /etc/bashrc # alias alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' EOF source /etc/bashrc