输出重定向
命令 【符号】 文件
符号 | 作用 |
---|---|
> | 将标准输出重定向到一个文件中(清空原有文件的数据) |
>> | 将标准输出重定向到一个文件中(追加到原有内容的后面) |
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 < apple
> banana
> cherry
> EOF
[root@localhost ~]# cat fruit
apple
banana
cherry
Tip:“ wc -l < anaconda-ks.cfg ”。anaconda-ks.cfg主动给这个命令,只是给了里面的内容,没有名字,因此只显示行数
管道命令符的作用也可以用一句话概括为“把前一个命令原本要输出到屏幕的信息当作后一个命令的标准输入”。格式为“ 命令 | 命令 ”。管道符可以重复使用多次
[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.
将前面命令处理之后的内容传给后面的命令做二次处理
通配符就是通用的匹配信息的符号
参数 | 含义 |
---|---|
* | 任意字符 |
? | 单个任意字符 |
[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:{ }如果未匹配到会报错误
将逻辑操作符转变为普通字符
反斜杠(\):使反斜杠后面的一个变量变为单纯的字符。
单引号(’ '):转义其中所有的变量为单纯的字符串。
双引号(" "):保留其中的变量属性,不进行转义处理。
反引号(` `):把其中的命令执行后返回结果。
[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
变量名称 | 作用 |
---|---|
HOME | 用户的主目录(即家目录) |
SHELL | 用户在使用的Shell解释器名称 |
HISTSIZE | 输出的历史命令记录条数 |
HISTFILESIZE | 保存的历史命令记录条数 |
邮件保存路径 | |
LANG | 系统语言、语系名称 |
RANDOM | 生成一个随机数字 |
PS1 | Bash解释器的提示符 |
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
[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)
#更改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]$