Linux高阶命令

目录

管道符

重定向

输出重定向

标准输出重定向

错误输出重定向

正确输出和错误信息同时保存

正确信息和错误信息分开保存

不想将输出结果显示到屏幕上,又不想保存到文件中

输入重定向

xargs 命令

wc 命令

别名

which 命令

type 命令

通过 PATH 查找外部命令

alias 命令

tar 命令


管道符

管道符(”|“)的作用是将一个命令的标准输出(stdout)重定向为另一个命令的标准输入(stdin)。这样可以将命令的结果一步步传递给后续的命令,避免冗余的中间步骤

命令A	| 命令B | 命令C
  1. 命令 A 执行并将结果输出
  2. 命令 B 接收命令 A 的输出作为输入,执行并输出结果
  3. 命令 C 接收命令 B 的输出作为输入,执行并输出最终结果
//查看passwd文件前5行的信息,并编号
cat -n /etc/passwd | head -5
//逐页显示/etc/passwd文件的内容,并为每一行加上行号
cat -n /etc/passwd | more
//查看系统进程
ps -ef | tail
//将/etc/issue的文件内容,进行转化为大写,保存到/tmp/issue.out
cat /etc/issue		//第一步:查看/etc/issue
tr [a-z] [A-Z]		//第二步:小写转大写
> /tmp/issue.out		//第三步:保存输出到/tmp/issue

完整的命令:cat /etc/issue | tr [a-z] [A-Z] > /tmp/issue.out
//计算1+2
echo 1+2		//让屏幕输出1+2
echo 1+2 | bc		//让屏幕输出的内容,交给bc执行
echo {1..100}		//屏幕上输出1到100
//求1到100的和
echo {1..100}		//第一步:屏幕输出1到100
tr ' ' '+'		//第二步:将空格转换为+号
//第三步:交给bc计算

完整的命令:echo {1..100} | tr ' ' '+' | bc

重定向

重定向允许用户将命令的输出或输入从默认位置(如屏幕或键盘)重定向到文件、另一个命令或其他设备。通过重定向符号,用户可以更灵活地控制命令的输入和输出。

重定向主要包括两种类型:输出重定向输入重定向

  • 输入重定向:默认数据流向某个程序,改变数据流向——将数据内容导入到其他命令
  • 输出重定向:默认数据流向屏幕,改变数据流向,导入其他命令或文件

输出重定向
标准输出重定向
command >file		//以覆盖的形式,将command的正确输出结果输出到file文件中
command >>file		//以追加的形式,将command的正确输出结果输出到file文件中
错误输出重定向
command 2>file		//以覆盖的形式,将command的错误输出结果输出到file文件中
command 2>>file		//以追加的形式,将command的错误输出结果输出到file文件中
正确输出和错误信息同时保存
command >file 2>&1		//以覆盖的形式,将command的正确和错误输出结果都输出到file文件中
command >>file 2>&1		//以追加的形式,将command的正确和错误输出结果都输出到file文件中
正确信息和错误信息分开保存
command >file1 2>file2		
//以覆盖的形式,将command的正确输出结果输出到file1文件中,错误信息输出到file2文件中
command >>file1 2>>file2		
//以追加的形式,将command的正确输出结果输出到file1文件中,错误信息输出到file2文件中

command >file 2>file		
//不推荐,正确信息和错误信息都保存到同一个file文件中,导致文件被打开两次,产生资源竞争
不想将输出结果显示到屏幕上,又不想保存到文件中
command >/dev/null
输入重定向
command < file		//使用文件的内容,作为命令的输入
command << end		//从键盘读取数据,当遇到分界符end,停止
command <file1 >file2		//将file1的内容作为输入到命令,将命令的返回结果重定向到文件2中

案例

1. 创建一些测试文件 file1.txt ,file2.txt ,file3.txt 并给它们各自写入一些内容

echo "This is file 1" > file1.txt
echo "This is file 2" > file2.txt
echo "This is file 3" > file3.txt

2. 创建 filenames.txt 文件,包含想要读取的文件名

echo -e "file1.txt\nfile2.txt\nfile3.txt" > filenames.txt

3.  使用输入重定向将 filenames.txt 的内容传递给 cat 命令

cat < filenames.txt
xargs cat < filenames.txt

解释,第一条命令实际上是将 filenames.txt 的内容作为标准输入传递给 cat,而不是将其内容作为文件名传递给 cat。如果要作为文件名传递给 cat,则需要使用第二条命令

xargs 命令

xargs 可以将文本内容转换为命令参数

xargs cat < filenames.txt
输出:
This is file 1
This is file 2
This is file 3

wc 命令

wc 命令是用来统计的

wc -l file		//统计file文件行数
wc -c file		//统计file文件字节数
wc -w file		/统计file文件字数(单词数)
wc -l <<end		//统计用户在终端上输入的行数,直到输入end为止结束
wc -l <file		//将统计的行数输出到file文件中
wc -L file		//统计file文件列数(最长的一行的长度/字符数)
wc -l /etc/passwd		//统计有多少个用户
ls /bin/ | wc -l		//统计/bin一共有多少命令

别名

which 命令

which 命令的作用是查找并显示可执行命令的路径。它会从环境变量 PATH 中指定的目录里查找用户输入的命令,并返回该命令的可执行文件的完整路径。如果该命令是一个别名,which 也会显示别名信息

which 命令的用途

  1. 查找命令的路径
  2. 检测命令是否存在
  3. 识别别名
which ls
输出:
alias ls='ls --color=auto'
  /usr/bi/ls

说明ls命令的可执行文件位于/usr/bin/ls目录中
type 命令

type 命令用来检测命令是内部命令还是外部命令

  • 内部命令:由 shell 自带的命令,如 echo、cd 等,它们直接由 shell 处理
  • 外部命令:通常是可执行文件,存储在系统文件路径中,如 ls、touch、cat 等

通过 PATH 查找外部命令

如果输入的命令不是内部命令或别名,CentOS 7 会依次在环境变量 PATH 指定的目录中查找外部命令的执行文件

echo $PATH		//查看当前系统中的搜索路径列表
alias 命令

alias 用于别名

alias 命令仅局限于本次登录时的操作,如果向永久生效,需要进入用户的家目录下,bash 初始化文件中定义

alias ll='ls -l --color=auto'		//创建别名,显示彩色的长列表格式
//通过运行不带参数的alias命令,可以查看当前会话中定义的所有别名
alias
alias -p
alias 别名		//查看某个具体别名的定义
例如:alias ll
unalias 别名		//删除某个别名
例如:unalias ll
      unalias -a		//删除所有别名
\命令名		//临时禁用别名,临时使用原始命令,而不用定义的别名
例如:\ls

要使别名永久生效,需要将其写入用户的 ~/.bashrc 文件中

nano ~/.bashrc		//永久生效的别名

tar 命令

压缩归档

tar -c		//创建新的归档文件
tar -x		//提取归档文件中的内容
tar -z		//对归档文件使用 gzip 压缩
tar -v		//显示过程信息
tar -f		//指定归档文件的名称
tar -j		//对归档文件使用 bzip2 压缩
tar -k		//保留原文件,不覆盖

案例

1. 将所有文件都进行归档,形成all.tar的新文件

tar -cf all.tar *

2. 将 jpg 文件进行归档

touch {1..100}.jpg
tar -cf xxx.tar *.jpg

3.  归档完之后,进行 gzip 压缩

第一种:先归档,再压缩
tar -cf x.tar *
gzip x.tar

第二种:命令参数
tar -zcvf 2.tar.gz 2.txt

4. 解压归档

tar -jxf test.tar.bz2
tar -zxf test.tar.gz

5.  万能解压

tar -xf 压缩后的文件名

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值