Linux高级命令进阶(week1_day2)

输出重定向

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

>:覆盖输出,会覆盖掉原先的文件内容

>>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加

2>:错误输出,会覆盖掉原先的文件内容

2>>:错误追加输出,会覆盖掉原始文件内容,会在原始内容末尾继续添加

&>:将标准输出与错误输出共同写入到文件中。覆盖原有内容(最常用)

&>>:将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)(最常用)

标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。

标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。

错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。

案例1:使用覆盖输出(覆盖原文内容)

[root@ken ~]# vim test

[root@ken ~]# cat testthis is ken

[root@ken ~]# echo "this is oscar" > test

[root@ken ~]# cat testthis is oscar

案例2:使用追加输出(原文中追加)

[root@ken ~]# cat testthis is oscar

[root@ken ~]# echo "this is ken" >> test

[root@ken ~]# cat testthis is oscarthis 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

输入重定向

工作中用到的比较少,了解即可,输入重定向的作用是把文件直接导入到命令中。

管道符

管道命令符(|)的作用是把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入。(就是将前面命令的执行结果给后面一个命令再运行一次)

#cat /etc/passwd | grep "root" | wc -l

用于数据动态监控,输出结果为1,说明命令再执行,如果为0,则未执行。

查看ip :# ip a

通过|来一步一步的进行处理,最后得出来IP抓取。

通配符

为Linux运维人员,我们有时候也会遇到明明一个文件的名称就在嘴边但就是想不起来的情况。如果就记得一个文件的开头几个字母,想遍历查找出所有以这个关键词开头的文件,该怎么操作呢?

通配符就是通用的匹配信息的符号,比如

星号(*)代表匹配零个或多个字符(可以为0个)

问号(?)代表匹配单个字符(单个字符必须存在)

中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,

中括号内加上字母[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 $name10.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 原路径 目标路径

特点:

1、就是相当于win中的快捷方式

2、删除链接文件,源文件无影响

3、删除源文件,链接文件失效

4、修改源文件\链接文件,内容都发生改变

5、软链接,删除源文件后,如果创建一个同名源文件,软连接会自动连接上去。

硬链接

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系统中,目录、字符设备、块设备、套接字等都被抽象成了文件,Linux系统中一切都是文件。既然平时我们打交道的都是文件,那么又应该如何找到它们呢?在Windows操作系统中,想要找到一个文件,我们要依次进入该文件所在的磁盘分区(假设这里是D盘),然后在进入该分区下的具体目录,最终找到这个文件。但是在Linux系统中并不存在C/D/E/F等盘符,Linux系统中的一切文件都是从“根(/)”目录开始的,并按照文件系统层次化标准(FHS)采用树形结构来存放文件,以及定义了常见目录的用途。另外,Linux系统中的文件和目录名称是严格区分大小写的。例如,root、rOOt、Root、rooT均代表不同的目录,并且文件名称中不得包含斜杠(/)。Linux系统中的

文件存储结构如图6-1所示。

FHS是根据以往无数Linux系统用户和开发者的经验而总结出来的,是用户在Linux系统中存储文件时需要遵守的规则,用于指导我们应该把文件保存到什么位置,以及告

诉用户应该在何处找到所需的文件。但是,FHS对于用户来讲只能算是一种道德上的约束,有些用户就是懒得遵守,依然会把文件到处乱放,有些甚至从来没有听说过它。

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

当文件系统发生错误时,将一些丢失的文件片段存放在这里

绝对路径和相对路径

在Linux系统中另外还有一个重要的概念—路径。

路径指的是如何定位到某个文件,分为绝对路径与相对路径。

绝对路径指的是从根目录(/)开始写起的文件或目录名称

相对路径则指的是相对于当前路径的写法。

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

  1. Linux高级命令进阶(week1_day2)

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

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

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

  3. linux系统高级命令进阶

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

  4. Linux高级命令进阶

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

  5. Git / 程序员需要知道的12个Git高级命令

    众所周知,Git目前已经是分布式版本控制领域的翘楚,围绕着Git形成了完整的生态圈.学习Git,首先当然是学习Git的基本工作流.相比于SVN等传统版本控制系统来说,Git是专为分布式版本控制而生的强 ...

  6. Linux网卡高级命令、IP别名及多网卡绑定 转

    http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/26/3100065.html 本篇随笔将详细讲解Linux系统的网卡高级命令.IP别名 ...

  7. 你需要知道的12个Git高级命令

    众所周知,Git目前已经是分布式版本控制领域的翘楚,围绕着Git形成了完整的生态圈.学习Git,首先当然是学习Git的基本工作流.相比于SVN等传统版本控制系统来说,Git是专为分布式版本控制而生的强 ...

  8. sed高级命令

    所谓高级,主要是指这里将要提到的命令都能改变sed执行或者控制的流程顺序(sed通常都是一行被读入模式空间,并用脚本中的sed命令一个接一个的应用于那一行). 高级sed命令分成3个组: 1)处理多行 ...

  9. vi/vim高级命令集粹

    vi/vim高级命令集粹 (ctrl +v过来 留着以后看) 1.交换两个字符位置 xp 2.上下两行调换 ddp 3.把文件内容反转 :g/^/m0/ (未通过) 4.上下两行合并 J 5.删除所有 ...

随机推荐

  1. ActiveQt框架 禁止弹出ActiveX控件交互提示

    重点重写QAxBindable的createAggregate() 参考Qt例子: qtactiveqt\activeqt\opengl\glbox.cpp

  2. csrf 攻击和防御

    CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:       攻击者盗用了你的身份,以你的名义发送恶 ...

  3. Java泛型 T.class的获取

    public interface BaseDao<T> { T get(String id); } import java.lang.reflect.ParameterizedType; ...

  4. I - 昂贵的聘礼

    来源poj1062 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低要求 ...

  5. 赶鸭子上架的cdq分治

    前置技能:归并排序,树状数组. cdq分治主要是用来离线解决一些奇怪的问题的.可以用来代替一些高级数据结构比如树套树或者KD-Tree之类的... 话说挑战2上的KD-Tree我到现在还没开始学... ...

  6. bash 脚本。find 命令,xargs

    rm 排除指定文件或文件夹 rm -r !(.git) find 命令两个用法 find <指定目录> <指定条件> <指定动作> $ find . -name ' ...

  7. java学习(一)--- 基础语法

    学习内容来 自菜鸟教程 http://www.runoob.com/java/java-object-classes.html   Java基础 Java:一个Java程序可以认为是一系列的对象组合, ...

  8. js运用4

    ---恢复内容开始--- 1.函数    关键字function 复习 var  是js的关键字,用于声明变量,声明在内存模块完成,定义(=)是在执行模块完成. var可以在内存模块提前(js代码执行 ...

  9. React Router API文档

    React Router API文档 一.<BrowserRouter> 使用HTML5历史记录API(pushState,replaceState和popstate事件)的<Rou ...

  10. elastricsearch学习笔记

    一.基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT)         Elasticsearch是一个接近实时的搜索平台.这意 ...