Linux九阴真经之催心掌残卷2

 硬链接

   硬链接的作用就是一个文件赋予它几个名字,每个相同的文件属性相同。但仅限于同一个分区,跨分区不可创建。

   创建硬链接 ln    例如  ln f1 f2    

 

 软链接

   软连接相当于一条网络连接, 且可以夸分区创建。创建方法:  ln -s    例 ln  -s  f1  f1.bak

                                                              

  如在同一目录,前面的路径要写针对于软连接的相对路径  例 ls -n ../date/f2  /root/date/f2_link3

  确定文件

   -f filelist 列出文件filelist中文件名的文件类                                                                     
  -L 查看对应软链接对应文件的文件类型     file   -L   f2.blk

                            

 重定向文件  

   

1 表示标准输出  cmd  >  /date/history.log(目录下的文件内)

2 表示错误输出  cmd 2>  /date/history.log(目录下的文件内)

       

 > 把STDOUT重定向到文件

 >>追加内容,但不会覆盖

 2> 把STDERR重定向到文件

 &> 把所有输出重定向到文件

 标准输出和错误输出各自定向至不同位置

 COMMAND > /path/to/file.out 2> /path/to/error.out

    ls /abc(错误命令) /date(正确命令) >1  2>f2

 合并标准输出和错误输出为同一个数据流进行重定向 

 COMMAND > /path/to/file.out 2>&1 (顺序很重要)

 Ls /abc /date >f1 2>&1或 ls /abc /date &>f1

 

 tr命令

tr 转换和删除字符
tr [OPTION]... SET1 [SET2]

 例 tr  'abcd'  'ABCD' 将输入的的小写字母替换哼大写字母       tr  '源‘   ‘ 目的’ 

    

tr  -d         删除字符 

tr  -c         取反,排除要输入的字符 

tr  -s         将连续的重复字符压缩成一个字符表示

hexdump  -C +文件名    查看文件的八进制

在linux可以直接用bc 进行计算

  tr ‘a-z‘‘A-Z’< /etc/issue   将issue文件里的小写字母转换成大写字母

  tr –d abc < /etc/fstab                      删除fstab文件中的所有abc中任意字符

 

cat > file(单行重定向)
mage
wangxiaochun
按ctrl+d离开,可以使用文件来代替键盘的输入

 

<<’终止词‘  即多行重定向      cat  > aa <<end

邮件重定向

mail  -s  'hello'  laobai  <<end

 给多个用户发邮件,可将邮件内容创建好(mail.txt),再重定向给用户 ,且邮件内容可添加变量和命令

mail -s 'Hello' laobai<mail.txt

 管道

命令1 | 命令2 | 命令3 | …


将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN 

如命令里有错误,可使用管道传递  ls /boot/aaa  2>&1  | tr 'a-z' 'A-Z' 或 ls /boot/aaa  |& tr 'a-z' 'A-Z'

利用管道更改符号,例  df  |  tr -s  ' ' ':'(把空格改为:号)

如何自动计算从1+到100等于几? 可以用管道实现

echo {1..100} | tr ' ' '+' | bc(将数字之间的空格变为+号)

或 seq  -s  +  1  100  | bc

tee命令

将文件重定向到文件后,结果是不会显示在屏幕上的,这时需要用到tee命令

ls  |  tee  aaa.txt

 练习

   1、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中


2、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中


3、一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:
Hello, I am 用户名,The system version is here,please help me to check it ,thanks!
操作系统版本信息


4、将/root/下文件列表,显示成一行,并文件名之间用空格隔开


5、计算1+2+3+..+99+100的总和



7、处理字符串“xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4”,只保留其中的数字和空格

echo ”xt.,l 1 jr#abc.txtmn 2 c*/fe 3 uz 4” | tr -dc '[:space:][:alnum:]'


8、将PATH变量每个目录显示在独立的一行


9、将指定文件中0-9分别替代成a-j


10、将文件/etc/centos-release中每个单词(由字母组成)显示在独立的一行,并无空行

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                                                           

 

原文地址:https://www.cnblogs.com/huxiaojun/p/8688241.html