導航:首頁 > 程序命令 > 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命令輸出相關的資料

熱點內容
曲式分析基礎教程pdf 瀏覽:14
php生成靜態html頁面 瀏覽:964
怎麼分割pdf 瀏覽:812
壓縮垃圾報警器 瀏覽:628
小公司一般都用什麼伺服器 瀏覽:967
java獲取時間gmt時間 瀏覽:819
為什麼csgo一直連接不到伺服器 瀏覽:503
安卓登ins需要什麼 瀏覽:835
機器人演算法的難點 瀏覽:225
全自動化編程 瀏覽:725
程序員高薪限制 瀏覽:692
壓縮圖片壓縮 瀏覽:75
美國發明解壓魔方 瀏覽:302
電腦怎麼備案網上伺服器 瀏覽:514
旅行商問題Python寫法 瀏覽:952
解壓破壞王裡面的所有兌換碼 瀏覽:860
文件夾如何拖拽還保留原來的 瀏覽:22
職業生涯pdf 瀏覽:954
ubuntu安裝軟體php 瀏覽:160
黑馬程序員退學流程 瀏覽:362