本章命令(共9个):
输出重定向 | 输入重定向 | 管道符 | 通配符 | 三种引号 | 软连接 | 硬链接 | 根“/” | 绝对路径vs相对路径 |
1.输出重定向
作用:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
- 覆盖输出 >:会覆盖掉原先的文件内容 (1>)
- 追加输出 >>:不会覆盖原始文件内容,会在原始内容末尾继续添加(1>>)
- 错误输出 2>:会覆盖掉原先的文件内容
- 错误追加输出 2>>:会覆盖掉原始文件内容,会在原始内容末尾继续添加
- 将标准输出与错误输出共同写入到文件中 &>:覆盖原有内容
- 将标准输出与错误输出共同写入到文件中 &>>:追加到原有内容的后面
用法:
╭─root@localhost.localdomain ~/2 ╰─➤ echo "hello" > fil1 #会覆盖原文件内容(标准输出)╭─root@localhost.localdomain ~/2 ╰─➤ echo good >> fil1 #不覆盖原文件内容 (标准输出)╭─root@localhost.localdomain ~/2 ╰─➤ cd fil2 &>> fil1 #不覆盖原文件内容(标准与错误输出)╭─root@localhost.localdomain ~/2 ╰─➤ cat fil1 hellogoodcd: 没有那个文件或目录: fil2
2.输入重定向
作用:工作中没吊用,了解即可,输入重定向的作用是把文件直接导入到命令中。
3.管道符
作用:管道命令符“ | ”的作用是把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入。
╭─root@cjk ~/2 ╰─➤ cat /etc/passwd | wc -l 43
4.通配符
作用:通配符就是通用的匹配信息的符号;
- 星号(*)代表匹配零个或多个字符(可以为0个)
- 问号(?)代表匹配单个字符(单个字符必须存在)
- 中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,
- 中括号内加上字母[abc]则是代表匹配a、b、c三个字符中的任意一个字符。
╭─root@cjk ~/2 ╰─➤ ls1abc 1abcde 2abc 2abcde 3abc 3abcde 4abc 4abcde 5abc 5abcde╭─root@cjk ~/2 ╰─➤ ls *a zsh: no matches found: *a╭─root@cjk ~/2 ╰─➤ ls *a* 1abc 1abcde 2abc 2abcde 3abc 3abcde 4abc 4abcde 5abc 5abcde╭─root@cjk ~/2 ╰─➤ ls ?a?? 1abc 2abc 3abc 4abc 5abc╭─root@cjk ~/2 ╰─➤ ls [1..9]abc1abc╭─root@cjk ~/2 ╰─➤ ls [1-9]abc1abc 2abc 3abc 4abc 5abc╭─root@cjk ~/2 ╰─➤ ls 1ab[cde]1abc
5.三种引号
作用:
- 单引号(''):转义其中所有的变量为单纯的字符串;
- 双引号(""):对其中变量进行解释处理;
- 反引号(``):把其中的命令执行后返回结果;
╭─root@cjk ~/2 ╰─➤ fda=cjk ╭─root@cjk ~/2 ╰─➤ echo 'hello $fda' #不解释hello $fda╭─root@cjk ~/2 ╰─➤ echo "hello $fda" #解释hello cjk╭─root@cjk ~/2 ╰─➤ name=`ls /root` #执行命令╭─root@cjk ~/2 ╰─➤ echo $name2anaconda-ks.cfginitial-setup-ks.cfg
6.软连接
【软链接相当于快捷方式,硬链接相当于复制粘贴】
╭─root@cjk ~/2 ╰─➤ ln -s 1 ruan1 #为源文件“1”创建软连接“ruan1” ln -s╭─root@cjk ~/2 ╰─➤ ls1 ruan1 ╭─root@cjk ~/2 ╰─➤ echo "hello" >> ruan1 #写入内容进软连接╭─root@cjk ~/2 ╰─➤ cat 1 hello #源文件内容同步╭─root@cjk ~/2 ╰─➤ rm 1 #删除源文件╭─root@cjk ~/2 ╰─➤ cat ruan1cat: ruan1: 没有那个文件或目录╭─root@cjk ~/2 ╰─➤ lsruan1 ---->特殊显示(变背景)说明源文件已被删除的软连接╭─root@cjk ~/2 ╰─➤ touch 1 #创建一个同名源文件╭─root@cjk ~/2 ╰─➤ cat ruan1 #自动连接并清空原内容╭─root@cjk ~/2 ╰─➤
7.硬链接
【软链接相当于快捷方式,硬链接相当于复制粘贴】
╭─root@cjk ~/2 ╰─➤ ln 2 ying2 #为源文件“2”创建硬链接“ying2”╭─root@cjk ~/2 ╰─➤ ls1 2 ruan1 ying2╭─root@cjk ~/2 ╰─➤ echo "good" >>ying2 #写入内容进硬链接╭─root@cjk ~/2 ╰─➤ cat 2good #源文件同步╭─root@cjk ~/2 ╰─➤ rm 2 #删除源文件╭─root@cjk ~/2 ╰─➤ cat ying2good #硬链接无影响
8.根“/”
一切从根“/”起
Linux系统中常见的目录名称以及相应内容:
/boot | 开机所需文件—内核、开机菜单以及所需配置文件等 |
/dev | 以文件形式存放任何设备与接口 |
/etc | 配置文件 |
/home | 用户主目录 |
/bin | 存放单用户模式下还可以操作的命令 |
/lib | 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数 |
/sbin | 开机过程中需要的命令 |
/media | 用于挂载设备文件的目录 |
/opt | 放置第三方的软件 |
/root | 系统管理员的家目录 |
/srv | 一些网络服务的数据文件目录 |
/tmp | 任何人均可使用的“共享”临时目录 |
/proc | 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等 |
/usr/local | 用户自行安装的软件 |
/usr/sbin | Linux系统开机时不会使用到的软件/命令/脚本 |
/usr/share | 帮助与说明文件,也可放置共享文件 |
/var | 主要存放经常变化的文件,如日志 |
/lost+found | 当文件系统发生错误时,将一些丢失的文件片段存放在这里 |
9.绝对路径vs相对路径
- 在Linux系统中另外还有一个重要的概念—路径。
- 路径指的是如何定位到某个文件,分为绝对路径与相对路径。
- 绝对路径指的是从根目录(/)开始写起的文件或目录名称
- 相对路径则指的是相对于当前路径的写法。