批量改名文件
for var in `ls *.bak`;do mv -f "$var" `echo "$var"|sed 's/....$//'`;done //将去除文件名字后面的 .bak
for var in `ls *.bak`;do mv -f "$var" `echo "$var"|sed 's/...$/xxx/'`;done //将文件名字最后的三个字符改为 xxx
查找
/etc
目录下大于1M的文件,并将其文件名写入
/tmp/etc
.largefiles文件中;
find /etc -size +1M -exec echo {} >> /tmp/etc.largefiles ; find /etc -size +1M >> /tmp/etc.largefiles
删除类型不是目录,而且没有属主的文件;
find / -not -type d -a -nouser -exec rm -f {} ; find / -not -type d -a -nouser | xargs -i rm -f {}
使用scp命令复制另外一台的文件到当前目录下面
scp -rp root@192.168.137.16:/root/. ./ #注意/root/. root后面的 . 要加上,它复制的是这个目录下面的所有文件包含隐藏文件,否则不成功
复制目录排除目录里面的某个文件夹或者文件,注意:--exclude后面必须是相对路径,使用绝对路径不行
rsync -av --exclude yum.log --exclude ks-script-rTogPV /tmp/ /tmp-li/
ssh的免密登陆,说明:很多公司是禁止root直接登陆的,因此设置了root的免密登陆,会提示权限拒绝,
免密登陆的原理就是:将a服务器生成的后缀为.pub的文件内容复制到 b服务器的家目录下面的.ssh下面的 authorized_keys文件里面,并且权限为600,a就可以免密访问b服务器
ssh-keygen -t rsa #一路回车 ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.137.3 #这个是单向的
ssh-copy-id -i /root/.ssh/id_rsa.pub cdp@192.168.137.3 #设置一个从root无密码使用cdp用户登陆到其他服务器,其他服务器上面的cdp 要执行 ssh-keygen -t rsa
远程使用sudo方式不切换root,执行root的命令
sudo -i -u root -- sh -c "ls;echo "------------";whoami"
sudo -i -u root -- sh -c "cp /home/li/*.jar /tmp/jenkins-linshi/ ;bash /tmp/jenkins-linshi/test.sh"
sshpass远程登陆并带入密码,执行命令,-p后面接密码,特殊符号要使用
/usr/local/sshpass/bin/sshpass -p cbi@123!@# ssh -p 22222 cbi@10.122.1.1 "ps -ef|grep $1|grep -v grep" #注意密码:cbi@123!@#
链接一个文件到一个目录:使用软链接
ln -s 目录 文件 例如: [root@mylinux test]# ln -s muli hhh [root@mylinux test]# ll 总用量 12 lrwxrwxrwx 1 root root 4 11月 23 10:47 hhh -> muli drwxr-xr-x 2 root root 19 11月 23 10:46 muli [root@mylinux test]# ll hhh lrwxrwxrwx 1 root root 4 11月 23 10:47 hhh -> muli [root@mylinux test]# ls hhh 1.txt
linux系统上面通过其他代理主机下载东西
使用网络下载时的代理,指定搭建的代理服务器
export http_proxy=http://ip:3128 && export https_proxy=https://ip:3128 && export ftp_proxy=ftp://ip:3128
tree命令排除某些文件或者目录
tree -I '201401|201404' 目录 排除某些名字是201401或者201404的目录或者文件
date设置时间的命令
date 月日小时分钟年.秒
find命令排除某个目录
find / -path "/data" -prune -o -name "*.log" -print
linux备份30天之前的文件
1 find ./ -ctime +30 >bak.txt -->将文件帅选出来
2 tar -T bak.txt zcpf beifen.tar.gz
————————————————————sh-----------------
sh -n 检查语法错误,但不执行 sh -x 进入跟踪方式,显示所执行的每一条命令的执行结果
linux如何注释一大段
if false;then .... .... ..... fi
linu语法比较大小
if [ 1207713600 -gt 1207810800 ];then echo "a>b";else echo "a<b";fi if [[ 1207713600 > 1207810800 ]];then echo "a>b";else echo "a<b";fi 下面是错误写法: if [ 1207713600 > 1207810800 ];then echo "a>b";else echo "a<b";fi
找出两个文件中相同的行
grep -Ff a.txt b.txt 或者 awk 'FNR==NR{a[$0]=1;next}(a[$0]==1)' a.txt b.txt
找出文件不同的行,例如下面找出文件test3文件里面的行不在test1文件的行内容
grep -vFf t1.txt t3.txt #没有输出则t3的内容都在t1文件里面 或者 awk 'FNR==NR{a[$0]=1;next}(a[$0]!=1)' t1.txt t3.txt
在远程执行命令,并在本地回显
ssh root@ip 'bash -x -s' </data/sh/auto_deploy_script.sh
删除文件或者目录,只留下想要的文件或者目录
只留下 3.txt 7.txt m1 m4 其他统统删除
[root@localhost test]# touch {1,2,3,4,5,6,7}.txt [root@localhost test]# ls 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt [root@localhost test]# mkdir m{1,2,3,4} [root@localhost test]# ls 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt m1 m2 m3 m4 [root@localhost test]# ls m1 [root@localhost test]# rm -rf `ls | egrep -v '(3.txt|7.txt|m1|m4)'` [root@localhost test]# ls 3.txt 7.txt m1 m4
Linux查看时区
[root@localhost backup]# timedatectl Local time: 三 2019-08-28 01:10:43 CST Universal time: 二 2019-08-27 17:10:43 UTC RTC time: 二 2019-08-27 17:10:43 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: no RTC in local TZ: no DST active: n/a [root@localhost backup]# timedatectl|grep "Time zone" Time zone: Asia/Shanghai (CST, +0800) [root@localhost backup]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [root@localhost backup]#
[root@localhost backup]# date +"%Z %z"
CST +0800
mvn -P tst的解释:mvn clean package -P tst -Dversion=201907
mvn编译的时候往往会有-P选项,它是根据配置文件pom.xml来的 -P 环境变量 例如:pom.xml下面部分profiles里面的内容 <profile> <id>tst</id> <properties> <profileActive>tst</profileActive> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>prd</id> <properties> <profileActive>prd</profileActive> </properties> <activation> <activeByDefault>false</activeByDefault> </activation> </profile>
将以空格隔开的字符串各字段进行排序
echo $union|sed 's/ / /g'|sort
linux查看磁盘是否是ssd盘
lsscsi #命令回车后查看第四栏,ssd的就是ssd [abc@hhh config]# lsblk -d -o name,rota NAME ROTA sdc 1 sdb 1 sdd 1 sdf 1 sdh 1 sdi 1 sdg 1 sde 1 sda 1 sdj 1 sdk 1 sdl 1 sdm 1 sdn 1 sdo 1 sdp 1 sdq 1 sdr 1 上面结果为1的就是机械盘,为0 为固态,rota表示可以旋转
ntpdate同步问题:
记centos7使用ntpdate同步时间出现的问题 24 Apr 09:41:56 ntpdate[2873]: no server suitable for synchronization found 当时的解决方法: 先ntpdate -d cn.pool.ntp.org 后ntpdate cn.pool.ntp.org
iptraf-ng
yum -y install iptraf-ng
iptraf是一个基于ncurses开发的IP局域网监控工具,它可以实时地监视网卡流量,可以生成各种网络统计数据,
包括TCP信息、UDP统计、ICMP和OSPF信息、以太网负载信息、节点统计、IP校验和错误和其它一些信息。
nload:查看网卡的进出流量
yum -y install nload
nload ens33 #查看指定的网卡