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中每个单词(由字母组成)显示在独立的一行,并无空行