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. Zephyr学习(四)系统时钟

    每一个支持多进程(线程)的系统都会有一个滴答时钟(系统时钟),这个时钟就好比系统的“心脏”,线程的休眠(延时)和时间片轮转调度都需要用到它. Cortex-M系列的内核都有一个systick时钟,这个 ...

  2. greenplum 安装笔记

    折腾两天了,终于把greenplum装成功了.记录下遇到的问题. 环境变量一点要配置准确. greenplum安装,按照这里一步步走: http://www.cnblogs.com/liuyungao ...

  3. Qt编写视频监控画面分割界面(开源)

    其实qt应用在安防领域还是蛮多的,尤其是视频监控系统,但是网上几乎没有看到qt做的最基础的视频监控画面分割的demo,今天特意花几分钟提取出来,开源放出来.欢迎大家多多点赞!源码下载:点击打开链接 运 ...

  4. python之刷博客访问量

    通过写刷访问量学习正则匹配 说明信息 说明:仅仅是为了熟悉正则表达式以及网页结构,并不赞成刷访问量操作. 1.刷访问量第一版 1.1 确定网页url结构,构造匹配模式串 首先是要确定刷的网页.第一版实 ...

  5. node.js用logio实时监控log

    http://logio.org/ 1.先装好node.js $ yum install nodejs 2.安装log.io $sudo npm install -g log.io --user &q ...

  6. phantomjs 是什么?----主要是mac下面

    phantomjs 是什么? PhantomJS是一个无界面的,可脚本编程的WebKit浏览器引擎.它原生支持多种web 标准:DOM 操作,CSS选择器,JSON,Canvas 以及SVG. pha ...

  7. 七牛免费SSL证书申请全流程

    购买证书 在七牛ssl 首页点击购买 购买限免证书 补全订单信息 免费证书,随意填写,问题不大 购买成功,查看订单详情,获取 TXT 值信息 添加 DNS TXT 验证 根据上一步,查看证书订单详情, ...

  8. Water Buying

    Water Buying time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  9. 磁盘异步I / O在Windows上显示为同步

    概要 Microsoft Windows上的文件I / O可以是同步或异步的.I / O的默认行为是同步的,其中调用I / O函数并在I / O完成时返回.异步I / O允许I / O函数立即将执行返 ...

  10. 常用类枚举和DATE的介绍

    1 常用类 日期时间类 时间戳的内容:就是距离特定时间的时间间隔.,本质上也是一种整形(long). 例如:计算机时间戳就是距离历元(1970-01-01 00:00:00:000)的时间间隔. 世界 ...