重定向

在高保护模式下,完全不留操作痕迹删除: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 ‘\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 (给登陆后设置显示信息)

    

posted @ 2020-04-15 23:36  ldyaly  阅读(305)  评论(0编辑  收藏  举报