导航:首页 > 程序命令 > linux管道命令参数

linux管道命令参数

发布时间:2023-11-21 23:24:27

linux命令中的“<”和“|”是什么意思

”<” 表示的是输入重定向的意思,就是把<后面跟的文件取代键盘作为新的输入设备。
”| ”则表示一个管道的意思,可以理解为东西从管道的一边流向另外一边。

㈡ Linux 系统中“|”管道的作用是什么

“|”是管道命令操作符,简称管道符。利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。

它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 standard error 信息没有直接处理能力。

用法示例:

ls -l | more

该命令列出当前目录中的文档,并把输出送给more命令作为输入,more命令分页显示文件列表。

㈢ linux命令ps -ef | grep httpd 是啥意思

这条命令是用来检查进程中有无httpd开启或是启动。
下面是ps命令参数解释:
-e
命令之后显示环境(如:ps
-d
e;
ps
-a
e)(utility)
-f
全部列出,通常和其他选项联用。如:ps
-fa
or
ps
-fx
and
so
on。
|管道命令
grep命令是一种强大的文本搜索工具,能使用正则表达式搜索文本,并把匹配的行打印来。grep全称是Global
Regular
Expression
Print,表示全局正则表达式版本,使用权限是所有用户。
ps
-ef
|
grep
httpd

检查httpd进程是否存在。

㈣ Linux 的管道命令如何使用

管道不支持像,ls mv cp 等,
如果要用到这些命令,就要在管道后加参数:xarg
如:which touch | xarg ls -la 就行了。

㈤ Linux 高级命令

echo "HelloWorld"

向控制台输出HelloWorld信息

Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。

ls > test.txt

test.txt 如果不存在,则创建,存在则覆盖其内容

注意: > 输出重定向会覆盖原来的内容, >> 输出重定向则会追加到文件的尾部

cat xxx.py 可以用来快速查看某个文件内容,输出到控制台

cat test.txt >> haha.txt 将test.txt的内容追加到haha.txt中

cat 1.txt 2.txt > 1_2.txt 将1.txt 2.txt内容合并到1_2.txt中

分屏显示:more

查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,从头开始,每次只显示一页,空格键显示下一页,b键上一页,按下q键退出显示,按下h键可以获取帮助。

more xxx.py

管道:一个命令的输出可以通过管道做为另一个命令的输入。

管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。即管道左边的输出结果作为管道右侧的参数

cat info.txt | more
tree | more

::: warning

more管道符读到的内容只能前进,不能后退;只能使用空格或回车向下看,不能使用b回看

:::

Linux链接文件类似于Windows下的快捷方式。

链接文件分为软链接和硬链接。

ln -s 源文件 链接文件

ln 源文件 链接文件

没有-s 选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,一般用于保护系统重要的文件。所以-s选项是更常见的形式。

::: warning 注意

如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。

:::

find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。

常用用法:

Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

grep一般格式为:

在grep命令中输入字符串参数时,最好用引号或双引号括起来。

例如:

从某个文件搜索

搜索当前目录所有文件

常用选项说明:**

grep搜索内容串可以是正则表达式。

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

grep常用正则表达式:

计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。

tar使用格式:

tar [参数] 打包文件名 文件

tar命令很特殊,其参数前面可以使用“-”,也可以不使用。

常用参数:

注意:除了f需要放在参数的最后,其它参数的顺序任意。

常用命令:

tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。也会见到缩写的.tgz这种扩展名。

gzip使用格式如下:

常用选项:

tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项 -z 可以调用gzip实现压缩的功能,最终实行一个先打包后压缩的过程。

-z :指定压缩包的格式为 xxx.tar.gz

tar压缩: tar zcvf xxx.tar.gz 文件1 文件2 ...

tar解压 tar zxvf xxx.tar.gz

解压到指定目录: tar zxvf xxx.tar.gz -C target_dir/ (大写字母“C”)

tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。

tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.bz2。

在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。

压缩用法 : tar -jcvf 压缩包包名 文件1 文件2... (例: tar jcvf bak.tar.bz2 *.c )

解压用法 : tar -jxvf 压缩包包名 (例: tar jxvf bak.tar.bz2 )

通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。

压缩文件 :zip [-r] 目标文件(没有扩展名) 源文件

解压文件 :unzip -d 解压后目录文件 压缩文件

使用tree命令可以查看指定目录的树状结构

有时我们想知道被执行的命令在哪个目录,以方便切换或更新不同版本,如Python。可以使用 which 命令

文件内容为:123 aaa bbb哈

执行 echo "123 aaa bbb哈" > xxx.txt

wc -l xxx.txt 文件内容的行数1

wc -w xxx.txt 文件内容的单词数3

wc -c xxx.txt 文件内容的字节数15

wc xxx.txt 文件内容的行数,单词数,字节数1 3 15

wc -m xxx.txt 文件的字符数13

sed 是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用。一般用于自动编辑转换程序,动态调整文件内容。

sed 's/good/GOODS/' file 替换每行第一个指定字符串(输出所有行)

sed -n 's/good/GOODS/p' file 替换每行第一个指定字符串(只输出替换的行)

sed -i 's/good/GOODS/g' file 替换所有指定字符串,并应用到文件

sed ƈd' file 删除第二行

sed '/^test/d' 删除good开头的行

sed -n Ɖp' file 打印第3行

显示当前时间 # Tue May 7 14:35:31 DST 2019

当前日期和时间 # 20190507-14:34:25

使用history命令可以查看之前输过的命令及其id,

使用 !id 的形式,可以快速执行指定历史命令

Linux命令大全: http://man.linuxde.net/

菜鸟Linux命令: https://www.runoob.com/linux/linux-command-manual.html

㈥ linux借用外部命令expr,实现计算器功能,利用管道,进程

test指令(使用指令man查询)

功能:检查文件类型,值比较。

test的各种参数和使用。

test EXPRESSION1 –a EXPRESSION2

当表达式1和表达式2同时为真时值为真

test EXPRESSION1 –o EXPRESSION2

当表达式1或者表达式2为真时值为真

test –n STRING

或者

test STRING

当STRING串的长度不为零时值为真

test –z STRING

当STRING串长度为零时值为真

test STRING1 = STRING2

当STRING1和STRING2相同时值为真

test STRING1 != STRING2

当STRING1 和 STRING2不同时值为真

test INTEGER1 –eq INTEGER2

当INTEGER1等于INTEGER2时值为真

test INTEGER1 –ge INTEGER2

当INTEGER1大于或者等于INTEGER2时值为真

test INTEGER1 –gt INTEGER2

当INTEGER1 大于INTEGER2时值为真

test INTEGER1 –le INTEGER2

当INTEGER1小于等于INTEGER2时值为真

test INTEGER1 –lt INTEGER2

当INTEGER1 小于INTEGER2时值为真

test INTEGER1 –ne INTEGER2

当INTEGER1不等于INTEGER2时值为真

test FILE1 –ef FILE2

当FILE1和FILE2有同样的device和inode号时为真(详细见linux文件学习笔记)

test FILE1 –nt FILE2

当FILE1修改时间比FILE2新时值为真

test FILE1 –ot FILE2

当FILE1修改时间比FILE2旧时值为真

test –b FILE

FILE存在并且内容是block类型的

test –c FILE

FILE存在并且是字符类型的

test –d FILE

FILE存在并且是一个目录

test –e FILE

FILE是否存在

test –f FILE

FILE存在并且是一个正则表达式类型的文档

test –g FILE

FILE存在并且是 set-group-ID也就是SGID(详细见后文学习笔记)

test –G FILE

FILE存在并且由有效的GROUP ID所拥有(详细见后文学习笔记)

test –h FILE

FILE存在并且是一个符号链接(详细见后文学习笔记)

test –k FILE

FILE存在并且设置了sticky bit set(详细见后文学习笔记)

test –L FILE

FILE存在并且是一个符号链接

test –O FILE

FILE存在并且由一个有效的USER ID所拥有

test –p FILE

FILE存在并且是一个命名管道(命名管道见后文学习笔记)

test –r FILE

FILE存在并且授予了可读的权限

test –s FILE

FILE存在并且size大于0

test –S FILE

FILE存在并且是一个socket

test –t FD

文件的描述符FD在终端打开

test –u FILE

FILE存在并且SUID已经被设置

test –w FILE

FILE存在并且授予了写操作权限

test –x FILE

FILE存在并且授予了可执行的权限

----------------------------------------------------------------------------------------------------------------------------------------------------

expr

expr是linux的手工命令行计数器,它可以帮助我们完成一些基本的表达式值运算。同时它也是一个字符串处理工具

(1) 整数运算

$expr ARG1 | ARG2

$expr ARG1 & ARG2

$expr ARG1 < ARG2

$expr ARG1 <= ARG2

$expr ARG1 = ARG2

$expr ARG1 != ARG2

$expr ARG1 >= ARG2

$expr ARG1 > ARG2

$expr ARG1 + ARG2

$expr ARG1 – ARG2

$expr ARG1 * ARG2

使用乘法时,需要使用反斜杠进行转义

$expr ARG1 % ARG2

(2) 字符串操作

$expr length “xxx” //计算字符串长度

$expr substr “this is a”pos length //从第pos位开始截取length长度的子串

$expr index “tesr”e //获取e在主串中首次出现的位置

(3) 增量计数

例子

loop=3

loop=`expr $loop + 1`

echo $loop

结果是4,在第二行代码中,使用反引号,shell会将反引号中的内容作为一个系统命令,这样一来,就好像我们在命令行内输入了expr $loop + 1然后这个命令的返回结果被赋值到loop。

(4) 模式匹配(按照正则表达式模式匹配串)

通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。

> VALUE=account.doc

> expr $VALUE : ’.*’

8

在expr中可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名。

$expr $VALUE : ‘\(.*\).doc’

accounts

(5) 其他

+ TOKEN

将TOKEN解释为串,不管它是一个关键字或者一个操作符

延伸知识:

引号的作用

1 双引号(“”)

1)使用””可引用除字符$(美元符号)、`(反引号)、\(反斜线)外的任意字符或字符串。双引号不会阻止shell对这三个字符做特殊处理(标示变量名、命令替换、反斜线转义)。

Eg:name=gezn; echo “User name:$name”//将打印User name :gezn

Echo “The date is:`date +date-%d-%m-%Y`”//将打印The date is: 03-05-2009

Echo –e “$USER\t$UID” //将打印gezn 500

2)如果要查新包含空格的字符串经常用到双引号

2 单引号(’’)

1) 如果用单引号把字符串括起来,则dayi9nhao内字符串中的任何特殊字符的特殊含义均被屏蔽。

2) 举例:echo –e ‘$USER\t$UID’//将打印$USER $UID(没有屏蔽\t,是因为选项“-e”的缘故)

echo ‘USER\t$UID’ //将打印$USER\t$UID

3 反引号(``)

1) shell将反引号中的内容作为一个系统命令,并执行其内容。使用这种方法可以替换输出为一个变量

2) 举例:a=`date + date-%d-%m-%Y` //将打印The date is: 03-05-2009

4.反斜线(\)

1)如果下一个字符有特殊含义,反斜线防止shell误解其含义,即屏蔽其特殊含义。

2)下属字符包含有特殊含义:& * + $ ` “ | ?

3) 在打印字符串时要加入八进制字符(ASCII相应字符)时,必须在前面加反斜线,否则shell作普通数字处。

举例: bj=Beijing; echo ”variable\$bj=$bj”//将打印variable $bj = beijing

------------------------------------------------------------------------------------------------------------------------------------------------

Shell特殊变量

在Shell中,预先定义了几个有特殊含义的Shell变量,它们的值只能由Shell根据实际情况进行赋值,而不能通过用户重新设置。shell的特殊变量包括它的位置和一些系统变量.

(一)常用位置变量:

$# 命令行上实际参数的个数,但不包含Shell脚本名。
$? 上一条命令执行后的返回值(也称作 “退出码”)。它是一个十进制数。多数Shell命令执行成功时,则返回值为0;如果执行失败,则返回非0值。
$$ 当前进程的进程号。
$! 上一个后台命令对应的进程号,这是一个由1~5位数字构成的数字串。
$- 由当前Shell设置的执行标志名组成的字符串。例如:
set -xv 这个命令行给Shell设置了标志-x和-v(用于跟踪输出)。
$* 表示在命令行中实际给出的所有实参字符串,它并不仅限于9个实参。
$@ 它与$*基本功能相同,但是使用时加引号,并在引号中返回每个参数
$0 脚本名称
$1..$9 第N个参数

下面的aaa bbb 为变量名

${aaa:-bbb} 如果$aaa为空或未定义,则取值$bbb.否则取值$aaa

${aaa:+bbb} 如果$aaa非空,则取值$bbb,否则取值为空

${aaa:=bbb} 如果$aaa非空,则取值$aaa,否则取值$bbb而且赋值(aaa=bbb)

${aaa:3} 如果aaa=abcdefg,则${aaa:3}的值为:defg ,相当于substr,计数从0开始

${aaa:3:2} 如上; ${aaa:3:2}取值为: de.相当于substr

${#aaa} 字符串$aaa的长度.

(二)常用系统变量:
$HOME 用户的主目录
$USER 用户名称
$GROUP 用户所属组名
$PATH 默认的搜索路径
$HOSTNAME 主机名称
$TZ 时区
$MAIL 存放邮件的路径名

练手:

#!/bin/bash

echo $0

echo $*

echo $@

echo $#

echo $$

echo $_

在terminal窗口中执行:

./test.sh -a -b –c /home

./test.sh

-a -b -c /home

-a -b -c /home

4

3250

/home

区别$*和$@编写如下test.sh脚本:

#!/bin/bash

function testargs

{

echo "$# args"

}

testargs "$*"

testargs "$@"

unset -f testargs

在terminal窗口中执行:

./test.sh -a -b /home

1 args //很明显就一个嘛,传入的是$*这个串,不是解释后的参数

3 args //$@必须和引号搭配,所以结果正确

#!/bin/bash

function testargs

{

echo "$# args"

}

testargs $*

testargs $@

unset -f testargs

再次执行有:

./test.sh -a -b /home

3 args

3 args

作者:Aga.J
出处:http://www.cnblogs.com/aga-j

阅读全文

与linux管道命令参数相关的资料

热点内容
政策pdf 浏览:290
有什么好玩的文娱app 浏览:807
python教学合集 浏览:955
有什么好用的小众app吗 浏览:116
芋道app源码 浏览:447
计算机程序员怎么找 浏览:280
智联发pdf 浏览:236
c语言编译错误变黑 浏览:72
手机软件加密了怎么解开 浏览:887
linux中的ln命令例子 浏览:142
为什么玩cf第一次进入服务器很慢 浏览:967
工作单源码 浏览:619
安卓如何关闭app自动升级 浏览:137
new文件夹怎么打开 浏览:633
安卓51如何优化 浏览:179
活塞式压缩机原理图 浏览:846
水环式压缩机工作原理 浏览:716
阿里云服务器安装后怎么使用 浏览:935
去做APP开户有什么危险没得啊 浏览:698
8分之1乘58算法 浏览:172