在高保护模式下,完全不留操作痕迹删除:shred -zvnu 文件名 z:0填充 v:进度条 n:覆盖次数 u:删除
批量改名:rename conf(后缀名) conf.bak(要改的后缀名) * 变回去:rename .bak "" *
硬链接:与原文件相同 ln
软连接:与原文件不同 ln -s 取软连接名的相对路径或者全是绝对路径(好用) 删除: rm -rf 软连接名 (正确) rm -rf 软件名/ (错误,没删,且把原文件下的内容删除)
将rm改为mv防止误删粗略思路:alias rm='DIR=/data/backup`+%F%T`;mkdir $DIR;mv -t $DIR'
输出重定向:
什么时重定向:大概理解是改变输出、错误到别的文件或端口,别的文件到输入。
清零或创建文件:对所有shell通用:cat /dev/zero >文件
输出重定向:set -C 临时不可覆盖 set +C 恢复不可覆盖 >| 强制覆盖
找不同:ls /data /XXX &>/date/a.txt ; ls /data /XXX 1>/data/a.txt 2>&1 ; ls /data /XXX 2>/data/a.txt 1>&2 ; ls /data /XXX 2>&1 > /data/a.txt (将错误信息输出屏幕,正确信息放入a.txt)
多命令一起追加:(hostname;ls) >>/data/a.file
输入重定向:
echo 2*4 > bc.log bc < bc.log > bc1.log(等价于 bc >bc1.log <bc.log)
清空内容:bc <bc.log >bc.log
发邮件:dnf install -y mailx
ss -ntl 查看25邮件端口号(若没有则安装邮件功能dnf install -y postfix)
mail -s 标题 用户名 内容 .(‘.’是结束符) 或者 mail -s 标题 用户名 < 文件(给多用户发送方便,没有交互)
单行重定向:cat > a.log
多行重定向:cat >a.log <<终止词 内容 终止词
tr转换:tr 123 abc tr 12345 abc(345都会转换为c) tr -t 12345 abc(只转换123) tr -d 'ace' 删除 tr -dc 'ace'(除ace不删,包括回车也删) tr -s ‘ ’ :<文件(将空格压缩,且改名为:)
tr -d ‘ ’(将回车删除,文本转换为linux格式等价于dos2unix)
管道:将第一个命令的结果作为第二个命令的输入,以此类推
ls /data /xxx | & tr 'a-z' 'A-Z' (若不加&,则错误不会改变)
更有效率的改密码:echo 123 | passwd --stdin 用户名 &> /dev/null (&> /dev/null不显示改密码信息)
tee:将数据拷贝到文件且打印在屏幕。作用:使用户能知道在文件中添加了什么,防止出错。
echo hello |tee tee.log (覆盖) echo hello2 | tee -a tee.log(追加) cat <<EOF |tee /etc/motd (给登陆后设置显示信息)