本文共 3347 字,大约阅读时间需要 11 分钟。
系统加固
密码输入错误超过3次锁定账号
sed -i '3aauth required pam_tally2.so.deny=3' /etc/pam.d/system-authsed -i '17d;16apassword requisite pam_cracklib.so retry=3 minlen=8 ucredit=0 lcredit=-1 dcredit=-1 ocredit=0 try_first_pass' /etc/pam.d/system-authsed -i '18d;17apassword sufficient pam_unix.so use_authtok sha512 shadow remember=3 try_first_pass ' /etc/pam.d/system-auth/etc/motd 设置系统登录提示语
禁ping
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_allchattr +a /etc/profile
echo "echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all" >>/etc/profileecho -e "\033[37;31;5mMySQL Server Stop...\033[39;49;0m"xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 stdin 的资料分隔成为 arguments 。 因为是以空白字元作为分隔,所以,如果有一些档名或者是其他意义的名词
内含有空白字元的时候, xargs 可能就会误判了,如果需要处理特殊字符,需要使用-0参数进行处理。
选项解释0 :当sdtin含有特殊字元时候,将其当成一般字符,想/'空格等$ echo "/ / "|xargs echo #不显示空格/ / $ echo "/ / "|xargs -0 echo/ /注意,-I 必须指定替换字符 -i 是否指定替换字符-可选
find . | xargs -I {} cp {} $D_PATHfind . | xargs -i cp {} $D_PATH注意:cshell和tcshell中,需要将{}用单引号、双引号或反斜杠,否则不认识。bash可以不用。find /shell -maxdepth 2 -name a -print | xargs -t -i sed -i '1 i\111' ‘{}‘在当前目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:
find . -perm -7 -print | xargs chmod o-w查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件find . -type f -print | xargs file./liyao: empty尝试用rm 删除太多的文件,你可能得到一个错误信息:/bin/rm Argument list too long. 用xargs 去避免这个问题$find ~ -name ‘.log’ -print0 | xargs -i -0 rm -f {}查找所有的jpg 文件,并且压缩它find / -name .jpg -type f -print | xargs tar -cvzf images.tar.gz拷贝所有的图片文件到一个外部的硬盘驱动 ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directoryps -ef
uid pid ppidps -ef | grep /usr/local/tomcat/ | grep -v grep | awk '{print $2}' | xargs kill -9
查看现在登录的用户IP
who -u | awk -F "[(|)]" '{print $2}'w | sed -n '{3,$p}' | awk '{print $3}'w | grep pts | awk '{print $3}'统计Tomcat日志中IP连接次数最多的,倒序排列
awk '{print $2}' localhost_access_log-20171201.log |sort -nr |uniq -c | head -n 10查看Tomcat对应的进程 ps -ef |grep tomcat | grep -v grep | awk '{print $2}'查看Tomcat的线程数 ps -Lf pid | wc -l查看tomcat的并发数 netstat -an|grep 10050|awk '{count[$6]++} END{for (i in count) print(i,count[i])}'怎样隐藏文件
mv 原文件名 .文件名 ------> 前面加.即可屏蔽某一列,使其不打印
awk '{$5="",print $0}' /etc/passwd打印某一列及其后面的列uptime|awk 'BEGIN{print "1Min""\t","5Min""\t","15Min""\t"}{for(i=10;i<=NF;i++)printf$i"\t";printf"\n"}'查看CPU型号
cat /proc/cpuinfo | grep "model name" |cut -c 14-删除后面重复的内容
awk '!x[$0]++' filename 简要解释一下,awk 的基本执行流程是,对文件的每一行,做一个指定的逻辑判断,如果逻辑判断成立,则执行指定的命令;如果逻辑判断不成立,则直接跳过这一行。我们这里写的 awk 命令是!x[$0]++,意思是,首先创建一个 map 叫x,然后用当前行的全文$0作为 map 的 key,到 map 中查找相应的 value,如果没找到,则整个表达式的值为真,可以
执行之后的语句;如果找到了,则表达式的值为假,跳过这一行。由于表达式之后有++,因此如果某个 key 找不到对应的 value,该++操作会先把对应的 value 设成 0,然后再自增成 1,
这样下次再遇到重复的行的时候,对应的 key 就能找到一个非 0 的 value 了。
对齐
df -ih|awk '{printf "%-6s %-3s %-5s %5s %-8s\n",$2,$3,$4,$5,$6}'真正清空终端屏幕.
printf “\033c” 或者 printf “\ec”reset文件比较
common 文件比较
比较已经排序的文件
comm [options] file1 file2
comm将逐行比较已经排序的两个文件。显示结果包括3列:
第1列为只在file1中找到的行;第2列为只在file2中找到的行;第3列为两个文件的公用行。
参数
参数file1和file2为comm要比较的文件的路径名。用连字符(-)来替代file1或者file2时,comm将从标准输入读取输入信息
注意
如果文件没有排序,comm就不能正常的工作
diff 文件比较
命令格式:diff [参数][变动前的文件1或目录1][变动后的文件2或目录2]
命令功能:
diff命令能比较单个文件或者目录内容。如果指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。如果指定比较的是目录的的时候,diff 命令
会比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。
y 以并列的方式显示文件的异同之处。
c 显示全部内文,并标出不同之处。
u,-U 以合并的方式来显示文件内容的不同。
r或--recursive 比较子目录中的文件。
查看文件类型
file 文件转载于:https://blog.51cto.com/13497735/2047838