导航:首页 > 程序命令 > linuxshell命令输出

linuxshell命令输出

发布时间:2022-05-19 22:52:53

‘壹’ 请教C++程序如何捕获linux shell的输出

调用系统函数popen,利用管道实现输出的传送即可。
popen()
函数通过创建一个管道,调用
fork
产生一个子进程,执行一个
shell
以运行命令来开启一个进程。这个进程必须由
pclose()
函数关闭,而不是
fclose()
函数。pclose()
函数关闭标准
I/O
流,等待命令执行结束,然后返回
shell
的终止状态。如果
shell
不能被执行,则
pclose()
返回的终止状态与
shell
已执行
exit
一样。
type参数只能是读或者写中的一种,得到的返回值(标准
I/O
流)也具有和
type
相应的只读或只写类型。如果
type

"r"
则文件指针连接到
command
的标准输出;如果
type

"w"
则文件指针连接到
command
的标准输入。
command参数是一个指向以
NULL
结束的
shell
命令字符串的指针。这行命令将被传到
bin/sh
并使用-c
标志,shell
将执行这个命令。
popen的返回值是个标准
I/O
流,必须由pclose来终止。前面提到这个流是单向的。所以向这个流写内容相当于写入该命令的标准输入;命令的标准输出和调用popen的进程相同。与之相反的,从流中读数据相当于读取命令的标准输出;命令的标准输入和调用popen的进程相同。
例程如下:

#include<cstdio>
#include<unistd.h>
#include<cstring>
#include<cstdlib>
intmain()
{
FILE*read_fp;
charbuffer[BUFSIZ+1];
intchars_read;
memset(buffer,'',sizeof(buffer));
read_fp=popen("uname-a","r");
if(read_fp!=NULL)
{
chars_read=fread(buffer,sizeof(char),BUFSIZ,read_fp);
if(chars_read>0)
{
printf("Outputwas: %s ",buffer);
}
pclose(read_fp);
exit(EXIT_SUCCESS);
}
exit(EXIT_FAILURE);
}
运行结果如下:

‘贰’ linux shell如何判断上一条命令是否有输出

可以将命令的执行结果赋值给一个变量,然后通过变量的长度来判断是否有输出,如下命令判断是否有fake raid:

info=`ls/dev/mapper/isw_*`
if[-z"$info"];then
echo"findnofakeraid"
else
echo"yes,findresultis$info"
fi

这里info变量保存的是`ls /dev/mapper/isw_*`输出结果,通过if来判断输出是否为空,-z判断为空,-n判断是非空

‘叁’ 在linux中写出一个shell脚本,打印输出1~5的平方

#!/bin/bash

read -p "please input a number:" num

sum=0

for ((i=1;i<=$num;i++))

do

sum=$[$i**2+$sum]

done

echo $sum

注释:

num:输入的数;

sum:保存结果;

$i**2:求平方

(3)linuxshell命令输出扩展阅读:

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现代电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈。

Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性。

‘肆’ Linux最常用的Shell命令

有些人仍然会有这种愚蠢的想法,他们认为使用Linux就必须使用Linux
shell命令。胡说!你可以不懂得任何Linux命令,比如说ps,grep,ls等,但是你仍然可以使用很多现代的Linux桌面发行版。
Linux的系统管理员与桌面用户不一样,他们不像桌面用户一样使用Cinnamon,GNOME,Unity,或者KDE,他们所有的时间都是用Linux命令。
对于桌面用户来讲,若是了解一部分Linux命令,你可以更好的使用Linux,体验它的魅力,下面列举出了一些:
Shell基础:
你可以通过打开Linux的terminal(终端)来执行Shell命令。Shell的种类有很多种,例如CSH,Bourne
Shell,Korn
Shell。在现在的大多数Linux发行版中,默认的Shell一般都是Bourne
again
shell(bash)。
想看看你的Shell是哪一种,执行下面的命令
echo
$SHELL
在Linux中,$符号代表一个shell变量。所有的shell都用这种方式使用变量。有一些shell变量在你的系统启动的时候就有了默认值。例如,$SHELL;$LOGNAME是你的登录名,而$PATH变量指明了你的shell命令的搜索范围。
echo命令的作用就是打印出你的输入。如果你的输入具有shell的特殊意义,例如shell变量,他就输出变量的值。

一个重要的地方是,你要注意文本的大小写。例如,ls,是DOS的dir命令的Linux版本。这个命令列出当前工作目录下的文件列表。如果你输入的是LS,你得到的只能是“找不到命令”的错误信息。
另外在Linux
shell命令中一个重要的地方是,你可以将命令串起来。这是Unix/Linux从第一天开始就有的巧妙的特点。最简单的将命令连起来的办法就是使用“|”,我们称之为“pipe”。第一个命令的输出就是下一个命令的输入。
Linux命令有自己的语法规则:
基本的语法就像这样:
command
-option
file
例如:
ls
-la
这行命令的意义是输出当前目录的所有文件的文件名,l代表“long”,a代表“all”,有了l选项,你会发现,输出的内容比较丰富,不只包括文件
名,还有文件的访问权限,所有者,所属组等。你会发现这个命令会在屏幕上输出大量的信息,如果当前目录的文件比较多的话。
现在就是“pipe”出场的时候了。
ls
-la
|
more
你会在屏幕上看到如下信息:

你也可以在大多数Linux命令中使用通配符。通配符就是可以代表文件名中任何未知的字符或字符串。例如,*就代表任意字符串,?代表单个字符。例如:

‘伍’ linux shell命令

在linux系统中常用的shell命令主要有6个,下面是具体的介绍:
1、mkdirnewdir:新建目录。
2、touchfilename:新建文件。
3、vi/vimfilename:编辑文件。
4、wc[-lwm] :统计行数、单词数、字符数。
5、–hsfilename:查看文件大小。
6、lsof–i:port:查看监听port端口的进程。

‘陆’ 请问linux把shell的信息全部输出到文本文件的命令是什么

user 创建新的用户账户
alias 设置命令的别名
bzips .bz2的文件压缩程序
cal 月历显示
cat 将所有内容输出到标准输出设备
chfn 更改finger命令显示的信息
chgrp 变更文件与目录的所属组
chmod 更换文件或目录的权限
chown 更换文件或目录的拥有者或所在组
clear 清除画面上的信息
col 滤除控制字符
cp 复制文件或目录
crontab 设置定时器
date 设置显示系统时间及日期
dd 由键盘输入文件中的数据,然后依照指定格式来转换数据,再输出至所指定的文件或屏幕上
df 显示磁盘文件系统的使用状况
dmesg 显示开机信息
显示目录或文件所占磁盘空间
e2fsck 检查ext2文件系统
echo 文字显示
edquota 编辑quota
egrep 查找文件中符合条件的字符串
exec shell执行命令后即交出控制权
export 设置显示环境变量
fdisk 磁盘分割(分区)
fg 前台执行程序或命令
fgrep 查找文件中符合条件的字符串
file 识别文件类型
find 查找文件或目录
finger 显示用户信息
free 查看内存状态
fsck 检查文件系统并试着修复错误
ftp 传输文件
grep 搜索文件中符合条件的字符串
groupadd 创建组
groupdel 删除组
groupmod 改变组识别码或名称
gunzip 文件解压
gzip 文件压缩
halt 关闭系统
help shell创建命令内容
history 列出所有使用过的命令
hostname 查询及设置主机名称
id 显示用户ID及所属的组ID
ifconfig 显示或设置网络上状态
insmod 加载模块
jobs 显示正在后台执行的工作
kill 删除执行中的程序或工作
last 列出目前与过去登录系统的用户相关信息
less 显示文件内容
lilo 安装内核加载、开机管理程序
linuxconf 设置Linux系统
ln 连接文件或目录
locate 寻找文件
login 登录系统
logout 注销系统
ls 列出目录内容
lsmod 显示已加载系统的模块名称
mail E-mail管理程序
make 编译系统核心或模块
man 在线查询命令
m 复制MS-DOS文件
mdel 删除MS-DOS文件
mdeltree 删除MS-DOS文件及包含的子目录文件
mdir 显示MS-DOS目录
mkbootdisk 创建目前系统的引导盘
mkdir 创建目录
mke2fs 创建ext2文件系统
mkfs 创建各种文件系统
more 一页一页地显示文件内容(文本文件)
miunt 挂入文件系统
mouseconfig 设置鼠标相关参数
mv 移动或更名现有的文件或目录
netconfig Red Hat Linux用来设置网络功能的图形接口程序
netstat 显示目前系统的网络状态
nice 变更程序执行时的优先等级
nohup 在用户注销系统后继续以后台的方式执行指定的命令
open 查找第一个可使用的虚拟终端,并执行位于“--”符号后的命令
passwd 提供管理员及用户管理或变更密码
patch 利用修补文件来修改源文件
pine 邮件处理程序,它可收发电子邮件及浏览新闻组
ping 使用ICMP对远程主机发出要求响应的信息,以侦测远程主机的网络功能是否正常
ps 显示程序执行的状况
pwd 显示目前的工作目录
quota 查询磁盘空间限制以及使用情形
quotacheck 检查磁盘使用空间及限制
quotaoff 关闭磁盘使用空间限制
quotaon 开启磁盘使用空间限制
reboot 停止系统运作并重新开机
renice 重新调整程序执行的优先级
repquota 显示磁盘空间限制状况
rm 删除文件或目录
rmdir 删除目录
rpm 管理Red Hat Linux套件
set 设置Shell的执行方式
setup 设置公用程序,可设置的选项包括:登录认证方法、键盘配置、
鼠标配置、开机启动服务、声卡本配置、时区设置和 X Window配置等
shutdown 系统关机
startx 启动 X Window
stat 显示inode内容
su 变更用户身份
sync 将内存缓冲区内的数据写入磁盘
tail 列出文件内容最后部分
talk 和其他用户交谈
tar 文件备份
telnet 登录远程主机
top 显示及管理执行中的程序
traceroute 显示封包到远程主机间的详细路径
umask 在创建文件时预设的权限屏蔽
umount 卸载文件系统
unalias 删除别名
uname 显示系统信息
uncompress 将.Z文件解压缩
unzip 将.Zip文件解压缩
useradd 创建用户账号
userdel 删除用户账户
vi 编辑文本文件
w 显示目前登录系统的用户信息
wall 将信息传送至每位终端用户
whereis 查找文件,预设whereis去查找的文件包括:/bin、/etc、/sbin、
/usr/bin、/usr/etc、/usr/games、/usr/include、/usr/lib、
/usr/local、/usr/man、/usr/sbin、/usr/src、/usr/local/bin、
/usr/local/etc、/usr/local/game、/usr/local/lib 和/usr/local/man>
which 在环境变量¥PATH 设置的目录中,搜索符合条件的文件
who 显示目前登录系统的用户信息
whoami 显示用户名称
whois 搜索并显示用户信息
write 可传送信息给另一位登录的用户
Xconfigurator 设置 Xfree86
xf86config 设置XFree86
zip 压缩程序

‘柒’ linux中,怎么通过shell语句获取当前日期,输出格式要求20111224.

在Linux下,可以通过date语句来获取当前日期:

输入:date +%Y%m%d

输出:20190314

命令实际执行情况如下图:


(7)linuxshell命令输出扩展阅读

GNU 对 date 命令的另一个扩展是 -d 选项,使用这个功能强大的选项,您可以完成很多有意义的工作。

1、快速地查明一个特定的日期究竟是星期几:

输入:date -d "nov 22"

输出:2019年 11月 22日 星期五 00:00:00 CST

在本示例中,您可以看到今年(2019年)的 11 月 22 日是星期五。

2、获得相对日期

-d 选项还可以告诉您,相对于当前日期之前或者以后的日期。

如,您需要了解两星期以后的日期,那么:

输入: date -d "2 weeks"

输出:2019年 03月 29日 星期五 00:12:24 CST

3、使用 next/last指令,您可以得到以后的星期几是哪一天:

输入: date -d "next monday" (下周一的日期)

输入: date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d

输入: date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d

输入: date -d last-month +%Y%m(上个月是几月)

输入: date -d next-month +%Y%m(下个月是几月)

4、使用 ago 指令,您可以得到过去的日期:

输入: date -d "30 days ago" (30天前的日期)

5、您可以使用负数以得到相反的日期:

输入: date -d "dec 14 -2 weeks" (相对:dec 14这个日期的两周前的日期)

输入: date -d "-100 days" (100天以前的日期)

输入: date -d "50 days" (50天后的日期)



‘捌’ 如何使用linux的shell 命令输出本地网页数据 例如sed,awk,grep 指令

  1. 图片中看到average throughput 放在了表格中,sed、awk等都是处理文本的,所以是对网页的源文件进行处理的,需要查看你源文件中 该变量的前后文,才能写出来

  2. grep、sed一般是处理在同一行中的,内容,sed虽然也可以处理跨行的情况,不过比较难,所以建议使用awk进行处理。

阅读全文

与linuxshell命令输出相关的资料

热点内容
云服务器网卡充值 浏览:509
编程就是软件 浏览:49
服务器如何添加权限 浏览:437
引用指针编程 浏览:851
手机加密日记本苹果版下载 浏览:63
命令行括号 浏览:176
java程序升级 浏览:490
排序算法之插入类 浏览:227
gcccreate命令 浏览:73
海尔监控用什么app 浏览:64
系统盘被压缩开不了机 浏览:984
linuxredis30 浏览:541
狸窝pdf转换器 浏览:696
ajax调用java后台 浏览:904
活塞式压缩机常见故障 浏览:614
break算法 浏览:731
换电池的app是什么 浏览:771
单片机ad采样快速发送电脑 浏览:22
第五人格服务器错误是什么回事儿 浏览:468
查看手机谷歌服务器地址 浏览:191