符号与变量

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

1、重定向

输出重定向
命令 【符号】 文件

符号作用
>将标准输出重定向到一个文件中(清空原有文件的数据)
>>将标准输出重定向到一个文件中(追加到原有内容的后面)
2>将错误输出重定向到一个文件中(清空原有文件的数据)
2>>将错误输出重定向到一个文件中(追加到原有内容的后面)
&>>将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
#标准输出写入
[root@localhost ~]# ls -l a.txt
-rw-r--r--. 1 root root 314 Apr 10 20:52 a.txt
[root@localhost ~]# ls -l a.txt > c
[root@localhost ~]# cat c
-rw-r--r--. 1 root root 314 Apr 10 20:52 a.txt

#错误输出写入
[root@localhost ~]# ls -l b > c
ls: cannot access 'b': No such file or directory
[root@localhost ~]# ls -l b 2> c
[root@localhost ~]# cat c
ls: cannot access 'b': No such file or directory

输入重定向

符号作用
<将文件作为命令的标准输入
<<界定符从标准输入中读入,直到遇见分界符才停止
[root@localhost ~]# wc -l anaconda-ks.cfg 
45 anaconda-ks.cfg
[root@localhost ~]# wc -l < anaconda-ks.cfg 
45

#持续写入操作
[root@localhost ~]# cat >> fruit <<EOF
> apple
> banana
> cherry
> EOF
[root@localhost ~]# cat fruit
apple
banana
cherry

Tip:“ wc -l < anaconda-ks.cfg ”。anaconda-ks.cfg主动给这个命令,只是给了里面的内容,没有名字,因此只显示行数

2、管道符

管道命令符的作用也可以用一句话概括为“把前一个命令原本要输出到屏幕的信息当作后一个命令的标准输入”。格式为“ 命令 | 命令 ”。管道符可以重复使用多次

[root@localhost ~]# grep bash /etc/passwd
root:x:0:0:root:/root:/bin/bash
linuxprobe:x:1000:1000:linuxprobe:/home/linuxprobe:/bin/bash
[root@localhost ~]# grep bash /etc/passwd | cut -d : -f 1
root
linuxprobe
[root@localhost ~]# grep bash /etc/passwd | wc -l
2

[root@localhost ~]# echo redhat8 | passwd --stdin linuxprobe
Changing password for user linuxprobe.
passwd: all authentication tokens updated successfully.

将前面命令处理之后的内容传给后面的命令做二次处理

3、通配符

通配符就是通用的匹配信息的符号

参数含义
*任意字符
?单个任意字符
[a-z]单个小写字母
[A-Z]单个大写字母
[a-Z]单个字母
[0-9]单个数字
[[:alpha:]]任意字母
[[:upper:]]任意大写字母
[[:lower:]]任意小写字母
[[:digit:]]所有数字
[[:alnum:]]任意字母加数字
[[:punct:]]标点符号
[root@localhost ~]# ls -l /dev/sda*
brw-rw----. 1 root disk 8, 0 Apr 12 19:41 /dev/sda
brw-rw----. 1 root disk 8, 1 Apr 12 19:41 /dev/sda1
brw-rw----. 1 root disk 8, 2 Apr 12 19:41 /dev/sda2

[root@localhost ~]# ls -l /dev/sda?
brw-rw----. 1 root disk 8, 1 Apr 12 19:41 /dev/sda1
brw-rw----. 1 root disk 8, 2 Apr 12 19:41 /dev/sda2

[root@localhost ~]# ls -l /dev/sd[a-z][0-9]
brw-rw----. 1 root disk 8, 1 Apr 12 19:41 /dev/sda1
brw-rw----. 1 root disk 8, 2 Apr 12 19:41 /dev/sda2

[root@localhost ~]# ls -l /dev/sd[[:alpha:]][1,3,5]
brw-rw----. 1 root disk 8, 1 Apr 12 19:41 /dev/sda1

[root@localhost ~]# ls -l /dev/sda{1,3,5}
ls: cannot access '/dev/sda3': No such file or directory
ls: cannot access '/dev/sda5': No such file or directory
brw-rw----. 1 root disk 8, 1 Apr 12 19:41 /dev/sda1

Tip:{ }如果未匹配到会报错误

4、转义符

将逻辑操作符转变为普通字符

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

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

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

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

[root@localhost ~]# PRICE=5
[root@localhost ~]# echo Price is $PRICE
Price is 5
[root@localhost ~]# echo Price is $$PRICE
Price is 8106PRICE
[root@localhost ~]# echo Price is \$$PRICE
Price is $5

$$ 意思是当前进程的PID值

[root@localhost ~]# echo '$$$$$$$$$$'
$$$$$$$$$$
[root@localhost ~]# echo A B C
A B C
[root@localhost ~]# echo "A B C"
A B C
[root@localhost ~]# echo `uname -a`
Linux localhost.localdomain 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

5、重要的环境变量

变量名称作用
HOME用户的主目录(即家目录)
SHELL用户在使用的Shell解释器名称
HISTSIZE输出的历史命令记录条数
HISTFILESIZE保存的历史命令记录条数
MAIL邮件保存路径
LANG系统语言、语系名称
RANDOM生成一个随机数字
PS1Bash解释器的提示符
PATH定义解释器搜索用户执行命令的路径
EDITOR用户默认的文本编辑器

命令执行的方式

  • 命令路径方式(优先级最高)
[root@localhost ~]# /usr/bin/ls
anaconda-ks.cfg  Desktop    fruit		  Pictures   Videos
a.txt		 Documents  initial-setup-ks.cfg  Public
c		 Downloads  Music		  Templates
  • alias 别名命令
[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias net='nmcli connection up ens160'
alias rm='rm -i'
alias which='(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'
alias xzegrep='xzegrep --color=auto'
alias xzfgrep='xzfgrep --color=auto'
alias xzgrep='xzgrep --color=auto'
alias zegrep='zegrep --color=auto'
alias zfgrep='zfgrep --color=auto'
alias zgrep='zgrep --color=auto'
[root@localhost ~]# nmcli connection up ens160 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
[root@localhost ~]# alias net="nmcli connection up ens160"
[root@localhost ~]# net
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
  • 内部命令
  • 外部命令(99.9%)命令保存在$PATH变量的目录下
#更改Bash标识
[root@localhost ~]# PS1=@
@
@

Tip:定义变量后只能自己用,如果想让其他用户使用,可以使用“ export ”提升为全局变量

[root@localhost ~]# mkdir -p /a/b/c/d/e
[root@localhost ~]# WORKDIR="/a/b/c/d/e"
[root@localhost ~]# cd $WORKDIR
[root@localhost e]# 
[root@localhost e]# cd ~
[root@localhost ~]# su linuxprobe
[linuxprobe@localhost root]$ cd $WORKDIR
[linuxprobe@localhost ~]$ 
[linuxprobe@localhost ~]$ exit
exit
[root@localhost ~]# export WORKDIR
[root@localhost ~]# su linuxprobe
[linuxprobe@localhost root]$ cd $WORKDIR
[linuxprobe@localhost e]$ 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值