首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux管道符、重定向与环境变量

Linux管道符、重定向与环境变量

作者头像
张旭博客
发布于 2022-12-27 07:47:24
发布于 2022-12-27 07:47:24
2.6K00
代码可运行
举报
文章被收录于专栏:zxbkzxbk
运行总次数:0
代码可运行

把多个 Linux 命令适当地组合到一起,使其协同工作,以便更加高效地处理数据。要做到这一点,就必须搞明白命令的输入重定向和输出重定向的原理。

输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。在日常的学习和工作中,相较于输入重定向,我们使用输出重定向的频率更高,所以又将输出重定向分为了标准输出重定向和错误输出重定向两种不同的技术,以及覆盖写入与追加写入两种模式。

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

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

分别查看两个文件的属性信息,我们先创建出第一个文件,而第二个文件是不存在的。所以,虽然针对这两个文件的操作都分别会在屏幕上输出一些信息,但这两个操作的差异其实很大:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# touch 1
[root@servera ~]# ls -l 1
-rw-r--r--. 1 root root 0 Sep 22 09:42 1
[root@servera ~]# ls -l xxx
ls: cannot access 'xxx': No such file or directory

在上述命令中,名为 1 的文件是真实存在的,输出信息是该文件的一些相关权限、所有者、所属组、文件大小及修改时间等信息,这也是该命令的标准输出信息。而名为 xxx 的第二个文件是不存在的,因此在执行完 ls 命令之后显示的报错提示信息也是该命令的错误输出信息。那么,要想把原本输出到屏幕上的数据转而写入到文件当中,就要区别对待这两种输出信息。

3.1 输入重定向

符合

作用

命令 <

将文件作为命令的标准输入

命令 << 分界符

从标准输入中读入,直到遇见分解符才停止

命令 < 文件1 > 文件2

将文件1作为命令的标准输入 并将标准输出到文件2

输入重定向相对来说比较冷门,输入重定向的作用是把文件直接导入到命令中。

使用输入重定向把 readme.txt 文件导入给 wc -l 命令,统计一下文件中的内容行数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# wc -l < readme.txt 
3
[root@servera ~]# wc -l readme.txt 
3 readme.txt

这次的输出结果与第 2 章讲的时候有所不同:没有了文件名称。

这是因为此前使用的“wc -l /etc/passwd”是一种非常标准的“命令+参数+对象”的执行格式。

而这次的“wc -l < readme.txt”则是将 readme.txt 文件中的内容通过操作符导入到命令中,没有被当作命令对象进行执行,因此 wc 命令只能读到信息流数据,而没有文件名称的信息。

3.2 输出重定向

符合

作用

命令 > 文件

将标准输出重定向一个文件中(清空原有文件的数据)

命令 2> 文件

将错误输出重定向到一个文件中(清空原有文件的数据)

命令 >> 文件

将标准输出重定向一个文件中(追到到原有内容后面)

命令 2>> 文件

将错误输出到一个文件中(追加原有内容后面)

命令 >> 文件 2>&1 或 命令 & >> 文件

将标准输出与错误输出共同写入到文件中(追加到原有内容后边)

通过标准输出重定向将 cat /etc/passwd 命令原本要输出到屏幕的信息写入到文件 readme.txt 中,然后显示 readme.txt 文件中的内容。具体命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# cat /etc/passwd > readme.txt 
[root@servera ~]# cat readme.txt 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
......省略

\> 覆盖,首先通过覆盖写入模式向 readme.txt 文件写入多行数据(该文件中已包含上一个实验的 passwd 信息)。需要注意的是,在通过覆盖写入模式向文件中写入数据时,每一次都会覆盖掉上一次写入的内容,所以最终文件中只有最后一次的写入结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# echo 'Welcaome to www.zxbke.cn' > readme.txt 
[root@servera ~]# echo 'Welcaome to www.zxbke.cn' > readme.txt 
[root@servera ~]# cat readme.txt 
Welcaome to www.zxbke.cn

\>> 追加,不会抹掉之前的原有内容,在原有内容后边继续追加

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# echo 'Hello ya' >> readme.txt 
[root@servera ~]# echo 'Hello ya' >> readme.txt 
[root@servera ~]# cat readme.txt 
Welcaome to www.zxbke.cn
Hello ya
Hello ya

readme.txt 文件是真实存在的,因此使用标准输出即可将原本要输出到屏幕的信息写入到文件中,而 read.txt 是不存在的,将错误的输出重定向追加到了1.txt。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# ls -l readme.txt 2>> 1.txt 
-rw-r--r--. 1 root root 43 Sep 22 09:56 readme.txt
[root@servera ~]# ls -l read.txt  2>> 1.txt
[root@servera ~]# cat 1.txt 
ls: cannot access 'read.txt': No such file or directory

还有一种常见情况,就是我们想不区分标准输出和错误输出,只要命令有输出信息则全部追加写入到文件中。这就要用到 &>> 操作符了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# ls -l readme.txt &>> 1.txt 
[root@servera ~]# ls -l read.txt &>> 1.txt 
[root@servera ~]# cat 1.txt 
-rw-r--r--. 1 root root 43 Sep 22 09:56 readme.txt
ls: cannot access 'read.txt': No such file or directory

3.3 管道命令符

管道命令符的作用可以用一句话概括 : 把前一个命令原本要输出到屏幕的信息当做后一个命令的标准输入

grep 搜索命令的输出值传递给 wc 统计命令,即把原本要输出到屏幕的用户信息列表再交给 wc 命令作进一步的加工。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# grep /sbin/nologin passwd.txt | wc -l
40

比如用翻页的形式查看/etc 目录中的文件列表及属性信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# ls -l /etc/ | more 

在修改用户密码时,通常都需要输入两次密码以进行确认,这在编写自动化脚本时将成为一个非常致命的缺陷。通过把管道符和 passwd 命令的--stdin 参数相结合,可以用一条命令来完成密码重置操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# echo 'zx123456' | passwd --stdin root
Changing password for user root.
passwd: all authentication tokens updated successfully.

输入ps aux 命令后屏幕信息呼呼闪过,根本找不到有用的信息。现在也可以将ps、grep、管道符三者结合到一起使用了。下面搜索与 bash 有关的进程信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# ps aux | grep bash
root        928  0.0  0.0  25512  2516 ?        S    09:41   0:00 /bin/bash /usr/sbin/ksmtuned
root       2676  0.0  0.1  26432  5008 pts/0    Ss   10:18   0:00 -bash
root       2747  0.0  0.0  12112  1064 pts/0    R+   10:20   0:00 grep --color=auto bash

如果需要将管道符处理后的结果既输出到屏幕,又同时写入到文件中,则可以与 tee 命令结合使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# ps aux | grep bash | tee read.txt
root        928  0.0  0.0  25512  2516 ?        S    09:41   0:00 /bin/bash /usr/sbin/ksmtuned
root       2676  0.0  0.1  26564  5200 pts/0    Ss   10:18   0:00 -bash
root       2772  0.0  0.0  12112  1080 pts/0    R+   10:21   0:00 grep --color=auto bash
root       2773  0.0  0.0  26564  1840 pts/0    R+   10:21   0:00 -bash
[root@servera ~]# cat read.txt 
root        928  0.0  0.0  25512  2516 ?        S    09:41   0:00 /bin/bash /usr/sbin/ksmtuned
root       2676  0.0  0.1  26564  5200 pts/0    Ss   10:18   0:00 -bash
root       2772  0.0  0.0  12112  1080 pts/0    R+   10:21   0:00 grep --color=auto bash
root       2773  0.0  0.0  26564  1840 pts/0    R+   10:21   0:00 -bash

3.4 命令行的通配符

有时候也会遇到明明一个文件的名称就在嘴边但就是想不起来的情况。如果只记得一个文件的开头几个字母,想遍历查找出所有以这几个字母开头的文件,该怎么操作呢?又比如,假设我们想要批量查看所有硬盘文件的相关权限属性,该怎么操作呢?:

通配符

含义

*

任意字符

单个任意字符

[a-z]

单个小写字母

[A-Z]

单个大写字母

[a-Z]

单个字母

[0-9]

单个数字

[[:alpha:]]

任意字母

[[:upper:]]

任意大写字母

[[:lower:]]

任意小写字母

[[:digit:]]

所有数字

[[:alnum:]]

任意字母加数字

[[:punct:]]

标点符号

下面我们就来匹配所有在/dev 目录中且以 sda开头的文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# ls -l /dev/nv*
crw-------. 1 root root 243,   0 Sep 22 09:41 /dev/nvme0
brw-rw----. 1 root disk 259,   0 Sep 22 09:41 /dev/nvme0n1
brw-rw----. 1 root disk 259,   1 Sep 22 09:41 /dev/nvme0n1p1
brw-rw----. 1 root disk 259,   2 Sep 22 09:41 /dev/nvme0n1p2
crw-------. 1 root root  10, 144 Sep 22 09:41 /dev/nvram

如果只想查看文件名以 sda 开头,但是后面还紧跟其他某一个字符的文件的相关信息,这时就需要用到问号来进行通配了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# ls -l /dev/nvme?
crw-------. 1 root root 243, 0 Sep 22 09:41 /dev/nvme0

除了使用[0-9]来匹配 0~9 之间的单个数字,也可以用[135]这样的方式仅匹配这 3 个指定数字中的一个;若没有匹配到数字 1 或 2 或 3,则不会显示出来:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# ls -l /dev/nvme0n1p[1-9]
brw-rw----. 1 root disk 259, 1 Sep 22 09:41 /dev/nvme0n1p1
brw-rw----. 1 root disk 259, 2 Sep 22 09:41 /dev/nvme0n1p2

[root@servera ~]# ls -l /dev/nvme0n1p[135]
brw-rw----. 1 root disk 259, 1 Sep 22 09:41 /dev/nvme0n1p1

通配符不一定非要放到最后面,也可以放到前面。比如,可以使用下述命令来搜索/etc/目录中所有以.conf 结尾的配置文件有哪些:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# ls -l /etc/*.conf
-rw-r--r--. 1 root root       55 Feb  1  2019 /etc/asound.conf
-rw-r--r--. 1 root root    25696 Dec 12  2018 /etc/brltty.conf
-rw-r--r--. 1 root root     1083 Apr  4  2018 /etc/chrony.conf
-rw-r--r--. 1 root root     1174 Aug 12  2018 /etc/dleyna-server-service.conf
......省略

通配符不仅可用于搜索文件或代替被通配的字符,还可以与创建文件的命令相结合,一口气创建出好多个文件。不过在创建多个文件时,需要使用大括号,并且字段之间用逗号间隔:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]#  touch {1,2,3,4,5}.conf

使用通配符还可以输出一些指定的信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# echo file{1,2,3,4,5}
file1 file2 file3 file4 file5

3.5 常用的转义符

4 个最常用的转义字符如下所示。

反斜杠( \ ) :使反斜杠后面的一个变量变为单纯的字符。

单引号( ‘ ’ ):转义其中所有的变量为单纯的字符串。

双引号( “ ” ):保留其中的变量属性,不进行转义处理。

反引号( `` ):把其中的命令执行后返回结果。

先定义一个名为 zxbke 的变量并赋值为 www.zxbke.cn,然后分别输出以单引号和双引号括起来的字符串与变量信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# zxbke='www.zxbke.cn'
[root@servera ~]# echo '张旭博客地址为 $zxbke'    #变量为单纯的字符串。
张旭博客地址为 $zxbke
[root@servera ~]# echo "张旭博客地址为 $zxbke"    #保留其中的变量属性,不进行转义处理
张旭博客地址为 www.zxbke.cn

希望能够输出“Price is 55

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# PRICE=5
[root@servera ~]# echo "Price is $$PRICE"   #$$作用是显示当前程序的进程 ID 号码
Price is 2676PRICE
[root@servera ~]# echo "Price is \$$PRICE"  #让第一个“$”作为美元符号,使用反斜杠(\)来进行转义
Price is $5

只需要某个命令的输出值,可以像命令这样,将命令用反引号括起来,达到预期的效果。例如,将反引号与 uname -a 命令结合,然后使用 echo 命令来查看本机的 Linux 版本和内核信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# echo uname -a
uname -a
[root@servera ~]# echo `uname -a`   #把其中的命令执行后返回结果

什么时候使用双引号?简单小技巧,虽然可能不够严谨,但绝对简单:

如果参数中出现了空格,就加双引号;如果参数中没有空格,那就不用加双引号。

3.6 重要的环境变量

变量是计算机系统用于保存可变值的数据类型。在 Linux 系统中,变量名称一般都是大写的,命令则都是小写的,这是一种约定俗成的规范。Linux 系统中的环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录、邮件存放位置等。可以直接通过变量名称来提取到对应的变量值。

在 Linux 系统中一切都是文件,Linux 命令也不例外。那么,在用户执行了一条命令之后,Linux 系统中到底发生了什么事情呢?简单来说,命令在 Linux 中的执行分为 4 个步骤。

  • 第一步:判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls).如果是绝对路径则直接执行,否则进入第二步继续判断。
  • 第二步:linux 系统检查用户输入的命令是否为“ 别名命令 ”。
    • 可以用 alias 命令来创建一个属于自己的命令别名。如:alias rm='rm -ir'
    • 使用 unalias rm 进行取消别名
  • 第三步:Bash解释器判断用户输入的内部命令还是外部命令。内部命令是解释器内部的指令,会直接被执行; 而用户绝大部分时间输入的是外部命令,这些命令交由步骤四来继续处理。
    • 可以使用 ' type 命令名称 ' 来判断用户输入的命令是内部命令还是外部命令。
  • 第四步:系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作 PATH,可以简单的理解成 “ 解释器的小助手 ”,然后 Bash 解释器就在这些个位置中逐个查找。PATH是否多个路径值组成的变量,每个路径之间使用冒号 : 间隔。对这些路径的增加和删除操作将影响到 Bash 解释器对 Linux 命令的查找。
    • 添加变量:PATH=$PATH:/root/bin

这里有比较经典的问题:“为什么不能将当前目录(.)添加到 PATH 中呢?”原因是,尽管可以将当前目录(.)添加到 PATH 变量中,从而在某些情况下可以让用户免去输入命令所在路径的麻烦。但是,如果黑客在比较常用的公共目录/tmp 中存放了一个与 ls 或 cd 命令同名的木马文件,而用户又恰巧在公共目录中执行了这些命令,那么就极有可能中招了。

我们可以使用 env 命令来查看 Linux 系统中所有的环境变量,比较重要的 10 个环境变量,如表所示。

变量名称

作用

HOME

用户的主目录(即家目录)

SHELL

用户在使用的Shell解释名称

HISTSIZE

输出的历史命令记录条数

HISTFILESIZE

保存的历史命令记录条数

MAIL

邮件保存路径

LANG

系统语言、语系名称

RANDOM

生成一个随机数字

PS1

Bash解释器的提示符

PATH

定义解释器搜索用户执行命令的路径

EDITOR

用户默认的文本编辑器

使用下述命令来查看 HOME 变量在不同的用户身份下都有哪些值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# echo $HOME    #输出root用户下的HOME变量值
/root
[root@servera ~]# su - zhangxu
[zhangxu@servera ~]$ echo $HOME #输出zhangxu用户下的HOME变量值
/home/zhangxu

设置一个名称为 WORKDIR 的变量,方便用户更轻松地进入一个层次较深的目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# mkdir /home/workdir
[root@servera ~]# WORKDIR=/home/workdir
[root@servera ~]# cd $WORKDIR
[root@servera workdir]# pwd
/home/workdir

但是,这样的变量不具有全局性,作用范围也有限,默认情况下不能被其他用户使用:

如果工作需要,可以使用 export 命令将其提升为全局变量,这样其他用户也就可以使用它了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# WORKDIR=/home/workdir   #创建变量 WORKDIR=/home/root
[root@servera ~]# export WORKDIR          #设置为全局变量 所有用户都可以使用
[root@servera ~]# cd $WORKDIR 
[root@servera workdir]# pwd
/home/workdir
[root@servera workdir]# su zhangxu      #切换成zhangxu用户
[zhangxu@servera workdir]$ cd $WORKDIR
[zhangxu@servera workdir]$ pwd
/home/workdir

若删除或查看本地环境变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zxbke ~]# set | grep WORKDIR
WORKDIR=/home/workdir
[root@zxbke ~]# unset WORKDIR 
[root@zxbke ~]# set | grep WORKDIR
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
linux 管道符重定向
表3-1                                         输入重定向中用到的符号及其作用
用户8006012
2022/10/23
3.5K0
必须掌握的Linux命令
一台完整的计算机是由运算器、控制器、存储器、输入/输出等多种硬件设备共同组成的,而能让各种硬件设备各司其职且又能协同运行的东西就是系统内核。Linux 系统的内核负责完成对硬件资源的分配、调度等管理任务,对系统的正常运行起着十分重要的作用。
张旭博客
2022/12/27
1.5K0
必须掌握的Linux命令
Shell脚本管道符与重定向
命令格式: 命令1 | 命令2,有一定的编程思想在里面 命令1的正确输出作为命令2的操作对象,和逻辑与不一样
全栈工程师修炼指南
2020/10/26
1.9K0
Shell脚本管道符与重定向
linux的重定向、管道与环境变量PATH
使用 which 查询 ls 命令,发现是一个 64为可执行 程序,可以动态链接。
lovevivi
2022/11/10
2.2K0
linux的重定向、管道与环境变量PATH
Linux笔记4.重定向及管道
重定向及管道 I/O重定向 I(input)/O(output)重定向,即输入输出重定向。 标准输入,输出,和错误 默认情况下,标准输入来自键盘;标准输出和错误显示在屏幕。通过I/O重定向,可以指定输入输出的载体 重定向标准输出 I/O 重定向允许我们来重定义标准输出送到哪里。使用“>”重定向符。 如:将ls命令的运行结果输送到文件ls-output.txt中 [root@senlong io]# ls -l /usr/bin > ls-output.txt [root@senlong io]# ll to
章鱼喵
2018/06/27
8960
Linux输入输出重定向
输入重定向:把指定文件导入到命令中 输出重定向:把原本要输出到屏幕的信息写入到指定文件中 输出重定向分为:标准输出重定向和错误输出重定向 [root@linuxprobe ~]# touch linuxprobe [root@linuxprobe ~]# ls -l linuxprobe total 0 drwxr-xr-x. 3 root root 14 Jun 11 15:07 a [root@linuxprobe ~]# ls - xxxxxxx ls: cannot access -: No su
心跳包
2020/08/28
3.2K0
Linux命令5-输入输出重定向
计算机的硬件设备有很多种,常见的输入设备有键盘、鼠标、手写板等,输出设备有显示器、投影仪、打印机等。不过,在 Linux 中,标准输入设备指的是键盘,标准输出设备指的是显示器(屏幕)。
皮大大
2021/03/01
3.5K0
Linux命令5-输入输出重定向
Linux 温习(九): IO 重定向与进程管道
I/O输入/输出(Input/Output)的简称,I 即为输入,常见的输入设备有键盘和鼠标。O为输出,常见的打印机等。
陈大剩博客
2023/02/17
1.2K0
Linux 温习(九): IO 重定向与进程管道
09_Linux基础-SHELL-标准输入与标准输出-重定向-管道
@TOC09_Linux基础-SHELL-标准输入与标准输出-重定向-管道---作业编辑文本文件/home/text/file1,分4行输入bbb bbb bbb、 ddd ddd ddd、aaa aaa aaa、ccc ccc ccc。 保存不要退出;在末行模式下打开一个新文件/text/file2;在file2中输入内容为eee eee eee在这一行内容之后, 将file1的内容读入到file2中,接着在命令模式下按照 abcde的显示顺序调整每行的位置,最后保存退出;同时编辑file1和file
mycpen
2022/09/02
2.3K0
[Linux]常用命令、组合命令以及输入输出重定向
删除非空目录,还有一种更为简单的方法:把-R(或recursive)和-f(或--force)选项结合起来使用。-r选项告诉rm命令进入到它发现的每个子目录中去删除文件,而-f选项只是告诉rm命令完成任务但不要因为些细节问题(比如文件夹非空)而烦扰用户。
祥知道
2020/03/10
1.8K0
【精通Linux系列】Linux中的输入输出与错误重定向详解
通俗的讲,输出重定向就是把要输出的信息写入到一个文件中去,而不是将要输出的文件信息输出到控制台(显示屏)
大数据小禅
2021/12/16
2.1K0
linux实战(2)输入输出与错误重定向详解
通俗的讲,输出重定向就是把要输出的信息写入到一个文件中去,而不是将要输出的文件信息输出到控制台(显示屏)
大数据小禅
2021/08/16
2K0
07_Linux基础-计划任务-备份脚本-变量定义和使用
@TOC07_Linux基础-计划任务-备份脚本-变量定义和使用---一. 计划任务主要内容:周期性的计划任务crontab==/var/spool/cron/ 统一存放计划任务的目录====/var/log/cron日志文件====/etc/cron cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/ crontab的顺风车==/etc/crontab==crontab -l====crontab -e==crontab ==-u cali== -ecr
mycpen
2022/09/02
1.3K0
Linux用户管理命令
Linux 系统的管理员之所以是 root,并不是因为名字叫 root,而是因为该用户的身份号码即 UID(User IDentification)的数值为 0。在 Linux 系统中 UID 就像我们的身份证号码一样具有唯一性,因此可通过用户的 UID 值来判断用户身份。在 RHEL 8 系统中,用户身份有下面这些。
张旭博客
2022/12/29
2.5K0
Linux用户管理命令
Linux文件权限与归属
在 Linux 系统中,每个文件都有归属的所有者和所属组,并且规定了文件的所有者、所属组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。
张旭博客
2022/12/29
8960
Linux文件权限与归属
【linux学习指南】Linux管理文件与处理数据二(重定向与管道)
本文将介绍Linux系统中的常用命令:mv、cat、echo、重定向、head和tail,主要用于文件管理和数据处理。重点讲解mv命令和重定向的示例,最后演示如何用head和tail快速提取大型文件中的指定行。
学习起来吧
2024/08/16
5580
【linux学习指南】Linux管理文件与处理数据二(重定向与管道)
shell 管道与重定向
使用 >> 或 > 将输出流重定向到文件。如果文件不存在则创建文件;如果文件已存在的话,> 覆盖文件,>> 附加文本到文件。例如:
sir5kong
2023/05/25
9580
浅谈Linux下的管道与重定向
小编最近在研究Linux下的脚本编写,其中很多环节涉及到和多个命令组合使用,如:自动输入系统密码等;而在Linux下最常用的就是管道和重定向。
用户5521279
2020/10/19
1.4K0
浅谈Linux下的管道与重定向
Linux重定向
在 Linux 中,重定向是一种将命令的输出或输入重定向到文件或其他命令的机制。它可以用于管理标准输入、标准输出、标准错误等。重定向通常与命令行中的 >、<、>>、2> 等符号一起使用。下面是关于 Linux 重定向的详细说明。
ljw695
2024/10/18
5900
Linux文件的特殊权限[SUID&amp;SGID&amp;SBIT]
在复杂多变的生产环境中,单纯设置文件的 rwx 权限无法满足我们对安全和灵活性的需求,因此便有了 SUID、SGID 与 SBIT 的特殊权限位。这是一种对文件权限进行设置的特殊功能,可以与一般权限同时使用,以弥补一般权限不能实现的功能。
张旭博客
2022/12/29
2.4K0
Linux文件的特殊权限[SUID&amp;SGID&amp;SBIT]
相关推荐
linux 管道符重定向
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档