管道符与重定向系列和环境变量

管道系列:|| xargs

重定向符号系列:>1>1>>2>2>><<<&>

1、输入输出重定向

标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令输入。
标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。
错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。

1.1、输入重定向中用到的符号及其作用

符号作用
命令 < 或 0< 文件将文件作为命令的标准输入(与固定命令搭配)
命令 << 或 0<< 分界符从标准输入中读入,直到遇见分界符才停止(与固定命令搭配)
命令 < 文件1 > 文件2将文件1作为命令的标准输入并将标准输出到文件2
1、替换awk.txt文件中abc替换为ABC
   tr的替换是1对1的替换
tr 'abc' 'ABC' < awk.txt
tr 'a-z' 'A-Z' < awk.txt

2cat > t1.txt << EOF
liming
wangming
wolai
EOF

3cat >> t1.txt << EOF
liming
wangming
wolai
EOF

1.2、输出重定向中用到的符号及其作用

符号作用
命令 > 或 1>文件将标准输出重定向到一个文件中(清空原有文件的数据)
命令 >> 或 1>> 文件将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2> 文件将错误输出重定向到一个文件中(清空原有文件的数据)
命令 2>> 文件将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1
命令 &>> 文件
将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
> wc -l anaconda-ks.cfg 
46 anaconda-ks.cfg

> wc -l < anaconda-ks.cfg 
46

> cat anaconda-ks.cfg | wc -l
46

> grep '/sbin/nologin' /etc/passwd | wc -l
33

> ls -l /etc/ | head -n 2
> ls -l /etc/ | tail -n 2

无询问的修改密码:

> echo root | passwd --stdin root
Changing password for user root.
passwd: all authentication tokens updated successfully.

–stdin:This option is used to indicate that passwd should read the new password from standard input, which can be a pipe.

使用管道符,无交互的发送一封正文为“你好,我是邮件正文”,主体是“This is Subject”给root用户
在这里插入图片描述

2、命令行的通配符

* 匹配零个或多个字符,
? 匹配单个字符,
[0-9] 匹配0~9之间的单个数字的字符,
[abc] 匹配a、b、c三个字符中的任意一个字符

> ls -l /dev/sda*
brw-rw----. 1 root disk 8, 0 Aug 11 16:38 /dev/sda
brw-rw----. 1 root disk 8, 1 Aug 11 16:38 /dev/sda1
brw-rw----. 1 root disk 8, 2 Aug 11 16:38 /dev/sda2

> ls -l /dev/sda?
brw-rw----. 1 root disk 8, 1 Aug 11 16:38 /dev/sda1
brw-rw----. 1 root disk 8, 2 Aug 11 16:38 /dev/sda2

定义变量,及单引号,双引号使用:

反斜杠 \ :使反斜杠后面的一个变量变为单纯的字符串。
单引号 '' :转义其中所有的变量为单纯的字符串。
双引号 "" :保留其中的变量属性,不进行转义处理。
反引号 ``:把其中的命令执行后返回结果。

> PRICE=5
> echo "Price is $PRICE"
Price is 5

> echo "Price is $$PRICE" 
Price is 2086PRICE

> echo "Price is \$$PRICE"
Price is $5

$$作用是显示当前程序的进程ID号码

> alias hhh="grep -n network anaconda-ks.cfg"
> alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias hhh='grep -n network anaconda-ks.cfg'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

> which ls
alias ls='ls --color=auto'
	/usr/bin/ls
	
> whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

3、常用系统环境变量

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

4、管道系列

xargs 将执行结果字符串 转换为 命令参数

> seq 5
1
2
3
4
5

> seq 5 | xargs -n2
1 2
3 4
5

> seq 5 | xargs -n3
1 2 3
4 5

> seq 5 | xargs
1 2 3 4 5

这种情况会列出当前目录的文件
find /etc/ -type f -name "*.conf" | ls -l

这种情况:1、find查询到数据时会列出查询到数据的文件;2、如果没有find到数据时会列出当前目录的文件
find /etc/ -type f -name "*.conf" | xargs ls -l


5、tee:linux命令界的三通

1个输入,2个输出;(一个输出到屏幕,一个输出到文件)

覆盖写入
echo {1..10} | tee a.txt
追加写入
echo {1..10} | tee -a a.txt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值