输出重定向
 
场景:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
>:覆盖输出,会覆盖掉原先的文件内容
>>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
2>:错误输出,会覆盖掉原先的文件内容
2>>:错误追加输出,会覆盖掉原始文件内容,会在原始内容末尾继续添加
&>:将标准输出与错误输出共同写入到文件中。覆盖原有内容
&>>:将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
 
标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。
标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。
错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。
 
案例1:使用覆盖输出(覆盖原文内容)
[root@ken ~]# vim test
[root@ken ~]# cat test
this is ken
[root@ken ~]# echo "this is oscar" > test
[root@ken ~]# cat test
this is oscar
 
案例2:使用追加输出(原文中追加)
[root@ken ~]# cat test
this is oscar
[root@ken ~]# echo "this is ken" >> test
[root@ken ~]# cat test
this is oscar
this is ken
 
案例3:使用错误输出重定向
默认错误输出会输出倒终端之上
[root@ken ~]# cat klkl > test             #使用输出重定向无法使错误输出导入到文本中
cat: klkl: No such file or directory
[root@ken ~]# cat klkl 2> test             #需要使用2>错误输出重定向
[root@ken ~]# cat test
cat: klkl: No such file or directory
 
案例4:将标准输出与错误输出共同写入到文件中
[root@ken ~]# cat klkl &> test
[root@ken ~]# cat test
cat: klkl: No such file or directory
 
输入重定向
 
工作中用到的比较少,了解即可,输入重定向的作用是把文件直接导入到命令中。
案例:统计文本行数
[root@ken ~]# wc -l < /etc/passwd
28
 
管道符
 
管道命令符(|)的作用是把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入。
例如我们需要统计passwd文件包含root的行数
[root@ken ~]# cat /etc/passwd | grep "root"  | wc -l
2
把搜索命令的输出值传递给统计命令,即把原本要输出到屏幕的用户信息列表再交给wc命令作进一步的加工,因此只需要把管道符放到两条命令之间即可
 
通配符
 
为Linux运维人员,我们有时候也会遇到明明一个文件的名称就在嘴边但就是想不起来的情况。如果就记得一个文件的开头几个字母,想遍历查找出所有以这个关键词开头的文件,该怎么操作呢?
通配符就是通用的匹配信息的符号,比如
  1. 星号(*)代表匹配零个或多个字符(可以为0个)
  2. 问号(?)代表匹配单个字符(单个字符必须存在)
  3. 中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,
  4. 中括号内加上字母[abc]则是代表匹配a、b、c三个字符中的任意一个字符。
案例1:查看dev目录下所有以sda开头的文件
[root@ken ~]# ls /dev/sda*
/dev/sda  /dev/sda1  /dev/sda2
 
案例2:查看dev目录下以sda开头,后面有一个字符的文件
[root@ken ~]# ls /dev/sda?
/dev/sda1  /dev/sda2
加上问号之后/dev/sda就匹配不到了
 
案例3:查看dev下以sda开头,后面跟上数字的文件
匹配不到sda
[root@ken ~]# ls /dev/sda[0-9]
/dev/sda1  /dev/sda2
 
案例4:查看dev下以sda开头,后面跟上字母的文件
[root@ken ~]# ls /dev/sda[a-z]
ls: cannot access /dev/sda[a-z]: No such file or directory
匹配不到任何文件,也匹配不到/dev/sda,后面跟上字符必须存在才能匹配到。
 
三种引号的作用
 
  1. 单引号(''):转义其中所有的变量为单纯的字符串。
  2. 双引号(""):保留其中的变量属性,不进行转义处理。
  3. 反引号(``):把其中的命令执行后返回结果。
 
案例1:单引号,不解释变量即所见即所得
[root@ken ~]# age=10
[root@ken ~]# echo 'my age is $age'
my age is $age
 
案例2:双引号,解释变量
[root@ken ~]# age=10
[root@ken ~]# echo "my age is $age"
my age is 10
 
案例3:反引号,用来执行命令
[root@ken ~]# name=`ls /root`
[root@ken ~]# echo $name
10.txt 11.txt 12.txt 13.txt 14.txt 1.txt 2.txt 3.txt 4.txt 5 =5 5.txt 6.txt 7.txt 8.txt 9.txt anaconda-ks.cfg elasticsearch-6.4.0.tar.gz elasticsearch-6.4.0.tar.gz.1 ken kenken nohup.out redis-manager-1.1 redis-manager-1.1-release.tar.gz test test1.sh test.sh
 
软连接、硬连接
 
软连接
软连接:就是相当于windows下面的快捷方式
【软链接相当于快捷方式,硬链接相当于复制粘贴】
创建完成后,源文件、软链接和硬链接均可以查看到文件内容。
编辑源文件,软、硬链接跟着动。
删除源文件,软链接失效,硬链接无影响。再重新建一个与源文件同名的文件,软链接就直接链接到新的文件,而硬链接不变。因为软链接是按着名称进行链接。
ln -s
-s:指定源文件是谁  后面接 连接目标文件
[root@ken ~]# ln -s ken kenken
[root@ken ~]# ls
elasticsearch-6.4.0.tar.gz    ken     nohup.out          redis-manager-1.1-release.tar.gz
elasticsearch-6.4.0.tar.gz.1  kenken  redis-manager-1.1
 
往连接文件添加一些内容
[root@ken ~]# echo "this is ken" > kenken
[root@ken ~]# cat kenken
this is ken
[root@ken ~]# cat ken
this is ken
发现源文件内容同步
 
删除连接文件
[root@ken ~]# rm -rf kenken
[root@ken ~]# cat ken
this is ken
源文件不变
 
删除源文件
[root@ken ~]# rm -rf ken
[root@ken ~]# cat kenken
cat: kenken: No such file or directory
连接文件失效
 
再次创建源文件
[root@ken ~]# touch ken
[root@ken ~]# cat kenken
[root@ken ~]# cat ken
再重新建一个与源文件同名的文件,软链接就直接链接到新的文件。因为软链接是按着名称进行链接
 
总结:
软连接
ln - s 原路径 目标路径
特点:
1、就是相当于win中的快捷方式
2、删除链接文件,源文件无影响
3、删除源文件,链接文件失效
4、修改源文件\链接文件,内容都发生改变
 
硬链接
ln 源文件 目标文件
[root@ken ~]# ln ken ken1
[root@ken ~]# ls
elasticsearch-6.4.0.tar.gz    ken   kenken     redis-manager-1.1
elasticsearch-6.4.0.tar.gz.1  ken1  nohup.out  redis-manager-1.1-release.tar.gz
 
总结:
1、删除链接文件,源文件无影响
2、删除源文件,链接文件无影响
3、修改源文件\链接文件,内容都发生改变
 

Linux高级命令进阶(week1_day2)的更多相关文章

  1. Linux高级命令进阶(week1_day2)--技术流ken

    输出重定向 场景:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术. >:覆盖输出,会覆盖掉原先的文件内容 ...

  2. Linux高级命令进阶

    输出重定向 场景:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术. >:覆盖输出,会覆盖掉原先的文件内容 ...

  3. 20190402Linux高级命令进阶(week1_day2

    Linux高级命令进阶(week1_day2) 输出重定向 场景:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技 ...

  4. Linux mount 命令进阶

    笔者在<Linux mount 命令>一文中介绍了 mount 命令的基本用法,本文我们接着介绍 mount 命令的一些高级用法,比如 bind mounts(绑定挂载)和 shared ...

  5. 逼格高又实用的Linux高级命令,开发运维都要懂!

    在运维的坑里摸爬滚打好几年了,我还记得我刚开始的时候,我只会使用一些简单的命令,写脚本的时候,也是要多简单有多简单,所以有时候写出来的脚本又长又臭. 像一些高级点的命令,比如说 Xargs 命令.管道 ...

  6. Linux高级命令及mysql数据安装

    Linux系列--高级命令--mysql数据库安装 数据库是用来组织.存储和管理数据的仓库 1.安装数据库:执行命令yum -y install mysql -server 2.启动数据库:安装完毕, ...

  7. linux系统高级命令进阶

    输出重定向 >:覆盖文件内容 echo "123" > test:把原来的内容覆盖 echo "123" >> test:把原来的存在( ...

  8. Linux之命令进阶

    Linux系统的启动过程 1.开机自检 BIOS2.MBR引导3.GRUB菜单4.加载内核5.运行init进程6.从/etc/inittab读取运行级别7.根据/etc/rc.sysinit 初始化系 ...

  9. linux高级命令组合

    ps -auxww | grep httpd 快速找到正在运行的apache服务安装目录 find / -path  'sina_app_v3*' 快速找到根目录下面的sina_app_v3目录 fi ...

随机推荐

  1. mongodb添加索引

    mongodb可以添加多列索引 稠密索引:该列中即使有null值也能给你查出来 稀疏索引:该列中查不出包含null值的列 二叉树索引是由码放的顺序的,哈希则是散列,相邻的数字,排列顺序并不一定紧邻

  2. 第十一天 unittest参数化模块

    unittest的工作原理:一下例子简单的描述了整个过程 def calc(a,b): return a//b import unittest,HTMLTestRunner import Beauti ...

  3. No message错误

    Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException No message 错误原因是因为表单提交的 ...

  4. 生成CA免费证书

    环境 OpenSSL 1.0.2k FireFox 60.0 64位 Chrome 66.0.3359.181 (正式版本)(32位) Internet Explorer 11.2248.14393. ...

  5. LA 6434 The Busiest City dfs

    Tree Land Kingdom is a prosperous and lively kingdom. It has N cities which are connected to eachoth ...

  6. 项目部署中,tomcat报java.lang.OutOfMemoryError: PermGen space

    原因: PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader ...

  7. Binary Protocol

    A. Binary Protocol 这道题要唯一注意的一点就是数字0的表示--0个"1"来表达,所以字符串"100"所表示的数字就是100 附代码: // C ...

  8. 第一章 大体知道java语法1----------能写java小算法

    很多人开始学习java时,都是抱着诸如<Thinking in java>.<疯狂java>等书籍,从前到后慢慢翻看,不管其内容重要与否,也不关心自己以后能否使用到.我的建议是 ...

  9. Selenium 的页面加载以及几种等待的问题

    1. PageLoadStrategy : 当调用driver.get("https://xxxx.xxx.xxx")来访问某页面时,get方法通常会阻塞浏览器直到页面完全加载后才 ...

  10. stingstream 类

    使用完后在使用必须要clear():