2021-10-15

1 输入输出重定向

表3-2 输出重定向中用到的符号及其作用
符号 作用
命令 > 文件 将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件 将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件 将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1

命令 &>> 文件 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
输入重定向的作用是把文件直接导入到命令中。接下来使用输入重定向把readme.txt文件导入给wc -l命令,统计一下文件中的内容行数:
[root@linuxprobe ~]# wc -l < readme.txt 2
注意:
file命令不区分标注和错误输出
可以使用&>将全部输出写入文件
wc -l init.txt //49 init.txt ,init.txt是对象
wc -l < init.txt //49 ,此时init.txt不是对象,只是进行导入操作
<< EOF end of file
在这里插入图片描述

2.管道命令符

管道命令符的作用也可以用一句话概括为“把前一个命令原本要输出到屏幕的信息当作后一个命令的标准输入”
如果需要将管道符处理后的结果既输出到屏幕,又同时写入到文件中,则可以与tee命令结合使用。
[root@linuxprobe ~]# ps aux | grep bash | tee result.txt
root 1070 0.0 0.1 25384 2324 ? S Sep21 0:00 /bin/bash /usr/sbin/ksmtuned
root 3899 0.0 0.2 26540 5136 pts/0 Ss 00:27 0:00 bash
root 4320 0.0 0.0 12112 1112 pts/0 S+ 00:51 0:00 grep --color=auto bash
[root@linuxprobe ~]# cat result.txt
root 1070 0.0 0.1 25384 2324 ? S Sep21 0:00 /bin/bash /usr/sbin/ksmtuned
root 3899 0.0 0.2 26540 5136 pts/0 Ss 00:27 0:00 bash
root 4320 0.0 0.0 12112 1112 pts/0 S+ 00:51 0:00 grep --color=auto bash
统计文件夹中文件
ls > abc
cat abc | wc -l
ls | wc -l
管道符可以嵌套使用 命令A | 命令B | 命令C | 命令D
查看httpd服务
systemctl status httpd
pidof httpd
ps aux | grep ssh |

echo 1 2 3 4 5 6 //作为一个整体对象输出
echo “1 2 3 4 5 6” //
参数或变量中有空格,加" "

3.3 命令行的通配符

通配符 含义

  • 任意字符
    ? 单个任意字符
    [a-z] 单个小写字母
    [A-Z] 单个大写字母
    [a-Z] 单个字母
    [0-9] 单个数字
    [[:alpha:]] 任意字母
    [[:upper:]] 任意大写字母
    [[:lower:]] 任意小写字母
    [[:digit:]] 所有数字
    [[:alnum:]] 任意字母加数字
    [[:punct:]] 标点符号
    {} 没有匹配上会报错
    []没有被匹配上不会报错

4 常用的转义字符

反斜杠(\):使反斜杠后面的一个变量变为单纯的字符。
单引号(’ '):转义其中所有的变量为单纯的字符串。
双引号(" "):保留其中的变量属性,不进行转义处理。
反引号():把其中的命令执行后返回结果。
[root@linuxprobe ~]# echo AA BB CC
AA BB CC
[root@linuxprobe ~]# echo “AA BB CC”
AA BB CC
两者的区别在于用户无法得知第一种执行方式中到底有几个参数。
如果参数中出现了空格,就加双引号;如果参数中没有空格,那就不用加双引号。
$$ bash PID

5 重要的环境变量

命令在Linux中的执行分为4个步骤。
第1步:判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是绝对路径则直接执行,否则进入第2步继续判断。
第2步:Linux系统检查用户输入的命令是否为“别名命令”,即用一个自定义的命令名称来替换原本的命令名称。
alisa haha=“nmcli connection up enp1s0”
查看环境变量
alias
set
env

第3步:Bash解释器判断用户输入的是内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行;而用户在绝大部分时间输入的是外部命令,这些命令交由步骤4继续处理。可以使用“type命令名称”来判断用户输入的命令是内部命令还是外部命令:
type echo builtin
type uptime
第4步:系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作PATH,可以简单地把它理解成是“解释器的小助手”,作用是告诉Bash解释器待执行的命令可能存放的位置,然后Bash解释器就会乖乖地在这些位置中逐个查找。PATH是由多个路径值组成的变量,每个路径值之间用冒号间隔,对这些路径的增加和删除操作将影响到Bash解释器对Linux命令的查找。
[root@linuxprobe ~]# echo KaTeX parse error: Expected 'EOF', got '#' at position 31: …t@linuxprobe ~]#̲ su - linuxprob… echo $HOME
/home/linuxprobe

[root@linuxprobe ~]# mkdir /home/workdir
[root@linuxprobe ~]# WORKDIR=/home/workdir
[root@linuxprobe ~]# cd $WORKDIR
[root@linuxprobe workdir]# pwd
/home/workdir

[root@linuxprobe ~]# export WORKDIR
[root@linuxprobe ~]# su linuxprobe
[linuxprobe@linuxprobe ~]$ cd W O R K D I R [ l i n u x p r o b e @ l i n u x p r o b e w o r k d i r ] WORKDIR [linuxprobe@linuxprobe workdir] WORKDIR[linuxprobe@linuxprobeworkdir] pwd
/home/workdir
直接在终端设置的变量能够立即生效,但在重启服务器后就会失效,因此我们需要将变量和变量值写入到.bashrc或者.bash_profile文件中,以确保永久能使用它们。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值