标签:red 一起 文本 恢复 好用 不可 覆盖 批量 怎么
在高保护模式下,完全不留操作痕迹删除:shred -zvnu 文件名 z:0填充 v:进度条 n:覆盖次数 u:删除
批量改名:rename conf(后缀名) conf.bak(要改的后缀名) * 变回去:rename .bak "" *
硬链接:与原文件相同 ln
问题:若有个大文件需要删除但会占用很大cpu,且此时用户访问量高,怎么办:可以先在其他地方创建一个硬链接,然后删除此文件,等cup不忙时,再将那个硬链接删除。
软连接:与原文件不同 ln -s 取软连接名的相对路径或者全是绝对路径(好用) 删除: rm -rf 软连接名 (正确) rm -rf 软件名/ (错误,没删,且把原文件下的内容删除)
将rm改为mv防止误删粗略思路:alias rm=‘DIR=/data/backup`+%F%T`;mkdir $DIR;mv -t $DIR‘
输出重定向:
什么时重定向:大概理解是改变输出、错误到别的文件或端口,别的文件到输入。
清零或创建文件:对所有shell通用:cat /dev/zero >文件
问题:若磁盘发现马上满了,发现了无用的记录大文件,但此文件又不可被停止,怎么办?(若rm -rf,文件进程结束方可删除,所以此办法不行) cat /dev/zero > 大文件,此时大文件大小就变为0了。
输出重定向: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 ‘\r’(将回车删除,文本转换为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 (给登陆后设置显示信息)
问题:计算1到100的奇数和? 法一:echo {1..100..2} |str ‘ ‘ + | bc 法二:seq -s + 1 2 100 |bc (-s指定分隔符)
标签:red 一起 文本 恢复 好用 不可 覆盖 批量 怎么
原文地址:https://www.cnblogs.com/ldyaly/p/12709579.html