A. linux怎麼利用無名管
無名管道的缺點:
沒有名字,因此無法使用open()打開
只能用於親緣進程間(如父子進程、兄弟進程、祖孫進程等)通信
半雙工工作方式,讀寫端是分開的,pipefd[0]為讀端,pipefd[1]為寫端
寫入操作不具有原子性,因此只能用於一對一的簡單通信
不能用lseek()來定位
具體使用:
1.查看命令: man 2 pipe
2.頭文件:#include <unistd.h>
3、函數原型: int pipe(int pipefd[2]);
a、pipefd[2] :無名管道的兩個文件描述符,int型的數組,大小為2,pipefd[0]為讀端,pipefd[1]為寫端
4、返回值:
成功:返回0
失敗:返回-1
B. 大俠求助,如何用腳本調用pipe一類命令
在monkey中不知有什麼命令。 老師提醒的是用command 調用pipe
C. 管道命令(pipe)使用及與shell重定向區別
管道命令是用來定位輸出,也就是查詢到很多信息只需要其中個別然後可以切割輸出,而重定向是輸出位置不一樣,可以把查詢到的信息輸出到屏幕或者文本或者其他。
D. 請教python如何執行shell管道命令
Python執行Linux系統命令,即在Python腳本中調用Shell命令,具體有以下四種方法:
1、os.system
//僅僅在一個子終端運行系統命令,而不能獲取命令執行後的返回信息
system(command) -> exit_status
Execute the command (a string) in a subshell.
//如果再命令行下執行,結果直接列印出來:
>>> os.system('ls')
04101419778.CHM bash document media py-django video
11.wmv books downloads Pictures python
all-20061022 Desktop Examples project tools
2、os.popen
//該方法不但執行命令還返回執行後的信息對象
popen(command [, mode='r' [, bufsize]]) -> pipe
Open a pipe to/from a command returning a file object.
3、使用模塊 subprocess
>>> import subprocess
>>> subprocess.call(["cmd", "arg1", "arg2"],shell=True)
//獲取返回和輸出:
import subprocess
p = subprocess.Popen('ls', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in p.stdout.readlines():
print line,
retval = p.wait()
4、使用模塊 commands
>>> import commands
>>> dir(commands)
['__all__', '__builtins__', '__doc__', '__file__', '__name__', 'getoutput', 'getstatus','getstatusoutput', 'mk2arg', 'mkarg']
>>> commands.getoutput("date")
'Wed Jun 10 19:39:57 CST 2009'
>>>
>>> commands.getstatusoutput("date")
(0, 'Wed Jun 10 19:40:41 CST 2009')
E. Linux系統編程—管道
Linux 實現 IPC 其中的一種方式——管道
管道又分:
1、無名管道:無名管道只能用於有親緣關系的進程。
2、有名管道:有名管道用於任意兩進程間通信。
你就可以把管道理解成位於進程內核空間的「文件」。
給文件加引號,是因為它和文件確實很像,因為它也有描述符。但是它確實又不是普通的本地文件,而是一種抽象的存在。
當進程使用 pipe 函數,就可以打開位於內核中的這個特殊「文件」。同時 pipe 函數會返回兩個描述符,一個用於讀,一個用於寫。如果你使用 fstat函數來測試該描述符,可以發現此文件類型為 FIFO。
而無名管道的無名,指的就是這個虛幻的「文件」,它沒有名字。本質上,pipe 函數會在進程內核空間申請一塊內存(比如一個內存頁,一般是 4KB),然後把這塊內存當成一個先進先出(FIFO)的循環隊列來存取數據,這一切都由操作系統幫助我們實現了。
pipe 函數打開的文件描述符是通過參數(數組)傳遞出來的,而返回值表示打開成功(0)或失敗(-1)。
它的參數是一個大小為 2 的數組。此數組的第 0 個元素用來接收以讀的方式打開的描述符,而第 1 個元素用來接收以寫的方式打開的描述符。也就是說,pipefd[0] 是用於讀的,而 pipefd[1] 是用於寫的。
打開了文件描述符後,就可以使用 read(pipefd[0]) 和 write(pipefd[1]) 來讀寫數據了。
注意事項
1、這兩個分別用於讀寫的描述符必須同時打開才行,否則會出問題。
2、如果關閉讀 (close(pipefd[0])) 端保留寫端,繼續向寫端 (pipefd[1]) 端寫數據(write 函數)的進程會收到 SIGPIPE 信號。
3、如果關閉寫 (close(pipefd[1])) 端保留讀端,繼續向讀端 (pipefd[0]) 端讀數據(read 函數),read 函數會返回 0。
當在進程用 pipe 函數打開兩個描述符後,我們可以 fork 出一個子進程。這樣,子進程也會繼承這兩個描述符,而且這兩個文件描述符的引用計數會變成 2。
如果你需要父進程向子進程發送數據,那麼得把父進程的 pipefd[0] (讀端)關閉,而在子進程中把 pipefd[1] 寫端關閉,反之亦然。為什麼要這樣做?實際上是避免出錯。傳統上 pipe 管道只能用於半雙工通信(即一端只能發,不能收;而另一端只能收不能發),為了安全起見,各個進程需要把不用的那一端關閉(本質上是引用計數減 1)。
步驟一:fork 子進程
步驟二:關閉父進程讀端,關閉子進程寫端
父進程 fork 出一個子進程,通過無名管道向子進程發送字元,子進程收到數據後將字元串中的小寫字元轉換成大寫並輸出。
有名管道打破了無名管道的限制,進化出了一個實實在在的 FIFO 類型的文件。這意味著即使沒有親緣關系的進程也可以互相通信了。所以,只要不同的進程打開 FIFO 文件,往此文件讀寫數據,就可以達到通信的目的。
1、文件屬性前面標注的文件類型是 p
2、代表管道文件大小是 0
3、fifo 文件需要有讀寫兩端,否則在打開 fifo 文件時會阻塞
通過命令 mkfifo 創建
通過函數 mkfifo創建
函數返回 0 表示成功,-1 失敗。
例如:
cat 命令列印 test文件內容
接下來你的 cat 命令被阻塞住。
開啟另一個終端,執行:
然後你會看到被阻塞的 cat 又繼續執行完畢,在屏幕列印 「hello world」。如果你反過來執行上面兩個命令,會發現先執行的那個總是被阻塞。
有兩個程序,分別是發送端 send 和接收端面 recv。程序 send 從標准輸入接收字元,並發送到程序 recv,同時 recv 將接收到的字元列印到屏幕。
發送端
接收端
編譯
運行
因為 recv 端還沒打開test文件,這時候 send 是阻塞狀態的。
再開啟另一個終端:
這時候 send 端和 recv 端都在終端顯示has opend fifo
此時在 send 端輸入數據,recv 列印。
F. 有關於shell的命令,本人剛接觸shell,主要是想知道他具體的命令
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命令中使用通配符。通配符就是可以代表文件名中任何未知的字元或字元串。例如,*就代表任意字元串,?代表單個字元。例如:
ls
-l a*
這個命令會列出在當前工作目錄下所有的以小寫a開頭的文件,比如說abc.txt,alpha.jpg等等。
ls
a?cd
這條命令會列出所有以小寫a開頭隔一個未知字元以小寫cd結尾的所有文件。例如adcd,axcd,但是不會列出adfdcd,也不會列出axcd.txt。
一些常用的命令
man:如果你想了解每一個命令代表什麼含義以及他的用法,你就可以使用man(意義為manual)命令,例如:
man
ls
man輸出的內容是為系統管理員和開發者編寫的,如果你想了解更多命令的用法,你可以去找網路上的Linux命令文檔,有一個非常方便的就是丹尼爾·巴雷特的Linux的袖珍指南。
在以前如果你真的想學習Linux和Unix你必須閱讀man手冊。而在2012年的今天,面對如此好用的圖形界面,這句話顯得不是那麼的重要,但是如果你想了解Linux更深,閱讀man手冊仍然是一個好的開始。
su和sudo:su命令的作用是切換用戶,這也被稱為超級用戶,因為在有些系統中su命令可以使你以系統的所有許可權用戶root登錄。除非你是系統管理員,否則我絕不推薦你使用su切換到root,因為這可能給你帶來很多麻煩。
一個相對安全的多的辦法是使用sudo命令,這個命令可以上你以root許可權運行一個命令。
這兩個命令都需要系統密碼。在大多數Linux的桌面發行版中這兩個是相同的,就是你系統的第一個用戶設置的密碼。
grep:grep是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。例如:
grep
foo /etc/passwd
返回在password文件中所有的含有foo的行
grep -i 「foo」
/etc/passwd
-i選項是忽略大小寫,這就意味著若某一行含有FOO或FOo也會被搜索到。
grep還支持遞歸搜索:
grep
-r 「foo」
/home/sjvn
這條命令將會搜索/home/sjvn目錄及其子目錄下所有的包含「foo」的行
grep也通常與其他命令串連起來使用,例如:
ls
-la | grep
foo*
列出當前目錄下任何以foo開頭的文件或目錄。例如如下文件將被匹配:foo,foobar,foolish.txt等等。
ps:報告進程的狀態。此命令將顯示哪些程序正在運行。我使用PS和grep比其他任何命令使用的都要多。
現在假如你有一個程序運行出了錯誤,你不能再桌面上把他關掉,(我看準你了,火狐),我運行如下命令就能查看他的進程id:
ps
-ef | grep firefox
這條命令做了如下事情:
kill -9
1234
·第一,他找出所有當前在我的電腦上運行的程序
·然後grep命令找出這些文件中叫「firefox」的,顯示到屏幕上。
·每一行都有一個進程id數字。有了,現在我就可以是用...
kill:這條命令就想他的名字一樣,他可以幹掉指定的進程。幹掉運行錯誤的firefox或者其他我想幹掉的進程。
kill
1234
這將會幹掉所有進程id為1234的程序。為了確保這個程序已經被幹掉(強行終止),我使用下面的命令。
clear:如果你覺得你的屏幕上有太多的東西,看起來很討厭,可以使用clear命令清空。
文件/目錄命令
cp:cp代表,就是復制,他可以復制一個或多個文件到指定的一個或多個目錄下。
一個通常的用法是:
cp
fred.txt ethel.txt
把fred.txt中的內容復制到當前文件夾中名為ethel.txt中
cp fred.txt
/home/sjvn/docs/fred.txt
把fred.txt復制到指定文件中。
cp *.txt
/home/sjvn/docs/
復制當前目錄下所有以.txt結尾的文件到指定的目錄下。
cp -r
/home/sjvn/docs/*
/home/sjvn/backup
遞歸的復制在/home/sjvn/docs/目錄下的所有文件到指定的文件夾。
hostname:顯示你當前登錄進去的計算機的名稱。
mv:mv(意義為move)顧名思義就是移動,可以移動指定文件到指定位置。當然這個命令有的時候還可以用來實現重命名。
例如:
mv
fred.txt
ethel.txt
這條命令的作用你可以簡單的認為是重命名fred.txt為ethel.txt。
當然此命令還有其他用法,此處不再一一羅列,用法與cp類似,只是這條命令不再保留原文件。
rm:rm代表remove,是刪除的意思,所以我運行:
rm
fred.txt
我將刪除fred.txt。
我強烈推薦你在執行rm命令的時候使用-i選項。這兒選項將在你執行命令的時候詢問你是否要真的刪除文件。就像這樣:
rm
-i fred.txt
系統信息
uname:uname
-a命令用一行簡短的給你總結的電腦的基本信息。這通常包括你的電腦名稱,Linux內核版本,你的發行版名稱等。
對於更詳細的信息,你可以使用cat命令,他可以顯示你的Linux電腦中的文本信息。
cat
/proc/cpuinfo
展示你的CPU的重要的統計。
cat
/proc/version
展示你的當前運行的Linux發行版的詳細信息。
cat
/etc/printcap
展示你當前安裝的列印機。
set | more:
set|more
組合命令可以給你更多的呢當前的桌面環境變數的信息。單如果你只是想知道你系統環境變數中的某一個或兩個,可以執行如下命令:
echo
$PATH
結束或者說是另一個開始
這里給你展示的只不過是Linux命令的表皮。成百上千的書和網站可以給你更多更復雜的如何使用Linux命令的展示。本文只是讓你在想了解比Linux
Gui更深一層時的參考。
G. 在C語言中實現 UNIX中的輸入\輸出重導向,管道(pipe「|」),和後台工作(「&」)命令
要想自行實現
那麼就需要從命令行讀取識別>和<
在解析出>/<之後, 讀取下一個參數,作為重定向文件名
然後,在程序中, 通過freopen 打開重定向文件。
至於管道 就麻煩的多,因為要把輸出 作為其他程序輸入
這樣 需要把輸出保存在緩沖中,調用參數程序,然後把緩沖數據作為參數程序的輸入。
H. centos 怎樣寫linux命令
Linux的常用基本命令。
首先啟動Linux。啟動完畢後需要進行用戶的登錄,選擇登陸的用戶不同自然許可權也不一樣,其中「系統管理員」擁有最高許可權。
在啟動Linux後屏幕出現如下界面顯示:
……
Red Hat Linux release 9 (Shrike)
Kernel2.4.20.8 on an i686
login:
輸入:root(管理員名)後,計算機顯示輸口令(password:),輸入你的口令即可。當計算機出現一個「#」提示 符時,表明你登錄成功!
屏幕顯示Linux提示符:[root@localhost root]#_
這里需要說明的是「Red Hat Linux release 9 (Shrike)」表示當前使用的操作系統的名稱及版本。「2.4.20.8」表示Linux操作系統的核
心版本編號。「i686」表示該台電腦使用的CPU的等級。
下面我們來介紹常用基本命令
一,注銷,關機,重啟
注銷系統的logout命令
1,Logout 注銷是登陸的相對操作,登陸系統後,若要離開系統,用戶只要直接下達logout命令即可:
[root@localhost root]#logout
Red Hat Linuxrelease 9(Shike)
Kernel2.4.20.8 on an i686
Login: ← 回到登陸的畫面
2,關機或重新啟動的shutdown命令
Shutdown命令可以關閉所有程序,依照用戶的需要,重新啟動或關機。
參數說明如下:
立即關機:-h 參數讓系統立即關機。範例如下:
[root@localhost root]#shutdown –h now ← 要求系統立即關機
指定關機時間:time參數可指定關機的時間;或設置多久時間後運行shutdown命令,範例如下:
[root@localhost root]#shutdown now ← 立刻關機
[root@localhost root]#shutdown +5 ← 5分鍾後關機
[root@localhost root]#shutdown 10:30 ← 在10:30時關機
關機後自動重啟:-r 參數設置關機後重新啟動。範例如下:
[root@localhost root]#shutdown -r now ← 立刻關閉系統並重啟
[root@localhost root]#shutdown -r 23:59 ← 指定在23:59時重啟動
3,重新啟動計算機的reboot命令
顧名思義,reboot命令是用來重新啟動系統的。常用的參數如下:
-f 參數:不依正常的程序運行關機,直接關閉系統並重新啟動計算機。
-I 參數:在在重新啟動之前關閉所有網路介面。
雖然reboot命令有個參數可以使用,但是一般只需要單獨運行reboot命令就可以了
二,文件與目錄的操作
1,列出文件列表的ls命令
ls(list)命令是非常有用的命令,用來顯示當前目錄中的文件和子目錄列表。配合參數的使用,能以不同的方式顯示目錄內容。範例
如下:
顯示當前目錄的內容:
[tony@free tony]$ ls
Desktop mail myinstall.log test.txt ← 有兩個目錄及兩個文件夾
當運行ls命令時,並不會顯示名稱以「.」開頭的文件。因此可加上「-a」參數指定要列出這些文件。範例如下:
[tony@free tony]$ ls –a
以「-s」參數顯示每個文件所有的空間,並以「-S」參數指定按所有佔用空間的大小排序。範例如下:
[tony@free tony]$ ls –s –S
總計36
4 Desktop 4 mail 24 myinstall.log 4 test.txt
在ls命令後直接加上欲顯示的目錄路徑,就會列出該目錄的內容。範例如下:
[tony@free tony]$ ls –l/usr/games
2,切換目錄的cd命令
cd(change directory)命令可讓用戶切當前所在的目錄。範例如下:
[tony@free home]$ cd tony ← 切換到當前目錄下的tony子目錄
[tony@free tony]$ cd .. ← 切換到上一層目錄
[tony@free home]$ cd / ← 切換到系統根目錄
[tony@free /]$ cd ← 切換到用戶主目錄
[tony@free tony]$ cd /usr/bin ← 切換到/usr/bin目錄
3,創建目錄的mkdir命令
Mkdir(make directory)命令可用來創建子目錄。下面的範例會在所在目錄下創建tool子目錄。
[tony@free tony]$ mkdir tool
4,刪除目錄的rmdir命令
rmdir(remove directory)命令可用來刪除「空」的子目錄。範例如下:
[tony@free tony]$ rmdir tool ← 刪除tool目錄
5,復制文件的cp命令
cp()命令可以將文件從一處復制到另一處。一般在使用cp命令將以個文件復製成另一個文件或復制到某個目錄時,需要指定原始文件
名與目的文件名或目錄。範例如下:
[tony@free tony]$ cp data1.txt data2.txt ← 將data1.txt復製成data2.txt
[tony@free tony]$ cp data3.txt /tmp/data ← 將data3復制到/tmp/data目錄中
顯示復制過程:加入-v參數可顯示命令執行過程。範例如下:
[tony@free tony]$ cp zip.txt zip2.txt ← 一般狀態下不會顯示復制過程
[tony@free tony]$ cp –v zip.txt zip3.txt ← 以-v顯示復制過程
zip.txt ->zip3.txt
遞回復制:加入「-R」參數可同時復制目錄下的所有文件及子目錄。範例如下:
[tony@free tony]$ cp –v –R * backup ← 將所有文件(含子目錄文件)復制到backup目錄
6,刪除文件或目錄的rm命令
rm(remove)命令可以刪除文件或目錄。範例如下:
[tony@free tony]$ rm myfile ← 刪除指定的文件
[tony@free tony]$ rm * ← 刪除當前目錄中的所有文件
rm命令的常用參數如下:
強迫刪除:使用-f參數時,rm命令會直接刪除文件,不再詢問。範例如下:
[tony@free tony]$ rm –f *.txt ← 強迫刪除文件
遞回刪除:-r 也是一個相當常用的參數,使用此參數可同時刪除指定目錄下的所有文件及子目錄。範例如下:
[tony@free tony]$ rm –r data ← 刪除data目錄(含data目錄下所有文件和子目錄)
[tony@free tony]$ rm –r * ← 刪除所有文件(含當前目錄所有文件,所有子目錄和子目錄下的文件)
強制刪除指定目錄:當使用-r參數刪除目錄時,若該目錄下有許多子目錄及文件,則系統會不間斷地詢問,以確認您的確要刪除
目錄或文件。若已確定要刪除所存目錄及文件,則可以使用-rf參數,如此一來,系統將直接刪除該目錄中所有的文件及子目錄,不再詢問。范
例如下:
[tony@free tony]$ rm –rf tmp 強制刪除tmp目錄及該目錄下所有文件及子目錄
顯示刪除過程:使用-v 參數。範例如下:
[tony@free tony]$ rm –v
7,讓顯示畫面暫停的more命令
為了避免畫面顯示瞬間就閃過去,用戶可以使用more命令,讓畫面在顯示滿一頁時暫停,此時可按空格鍵繼續顯示下一個畫面,或按Q鍵停
止顯示。
當使用ls命令查看文件列表時,若文件太多則可以配合more命令使用。範例如下:
[tony@free bin]$ ls –al more
單獨使用more命令時,可用來顯示文字文件的內容。範例如下:
[tony@free tony]$ more data.txt
8,連接文件的cat命令
cat(concatenate) 命令可以顯示文件的內容(經常和more命令搭配使用),或是將數個文件合並成一個文件。範例如下:
逐頁顯示 preface.txt的內容:
[tony@free tony]$ cat preface.txt more
將preface.txt 附加到outline.txt文件之後:
[tony@free tony]$ cat preface.txt >> outline.txt
將new.txt和info.txt合並成readme.txt文件:
[tony@free tony]$ cat new.txt info.txt >readme.txt
9,移動或更換文件,目錄名稱的mv命令
mv (move)命令可以將文件及目錄移動到另一個目錄下面,或更換文件及目錄的名稱。範例如下:
[tony@free backup]$ mv a.txt .. ← 將a.txt文件移到上層目錄
[tony@free backup]$ mv z1.txt z3.txt ← 將 z1.txt改名成z3.txt
[tony@free backup]$ cd.. ← 切換到上一層目錄
[tony@free tony]$ mv backup.. ← backup 目錄上移一層
10,顯示當前所在目錄的pwd命令
pwd(print working directory)命令可顯示用戶當前所在的目錄。範例如下:
[tony@free tony]$ pwd
/home/tony ← 當前所在目錄為「/home/tony」
11,查找文件的locate命令
locate 命令可用來搜索包含指定條件字元串的文件或目錄。範例如下:
[tony@free tony]$ locate zh_CN 列出所有包含「zh_CN」字元串的文件和目錄。
由於locate命令是從系統中保存文件及目錄名稱的資料庫中搜索文件,雖然系統會定時更新資料庫,但對於剛新增或刪除的文件、目錄,
仍然可能會因為資料庫尚未更新而無法查得,此時可用root身份運行updatedb命令更新,為此資料庫得內容正確。
12,搜索字元串得grep命令
grep 命令可以搜索特定字元串來並顯示出來,一般用來過濾先前得結果,避免顯示太多不必要得信息。範例如下:
[tony@free etc]$ grep text *.conf ← 搜索當前目錄中擴展名為.conf且包含「text」字元串得文件。
grep:amd.conf: ← 拒絕不符許可權得操作
grep:diskcheck.conf: ← 拒絕不符許可權得操作
grep:grub.conf ← 拒絕不符許可權得操作
若您是使用一般許可權的用戶運行,上例的輸出結果會包含很多如「拒絕不符許可權的操作之類的錯誤信息,可使用-s參數消除。
[tony@free etc]$ grep –s text *.conf
13,重導與管道
重導(redirect)可將某命令的結果輸出導文件中,它有兩中命令:「>」和「>>」。「>」可將結果輸出到文件中,該文件原有的內容會被
刪除:「>>」則將結果附加到文件中,原文件內容不會被清除。範例如下:
[tony@free tony]$ ls –a>dir.txt ← 將ls –a命令執行結果輸出到dir.txt文件。
[tony@free tony]$ cat data1.txt >> data2.txt ← 將 data1.txt 內容附加到data2.txt文件之後。
通道(pipe)命令的符號是「」,可將某命令的結果輸出給另一命令,一下範例將ls命令的輸出結果傳給grep命令過濾:
[tony@free etc]$ ls gerp conf ← 搜索並顯示ls命令運行結果中包含有「conf」字元串
在舉一個刪除文件或目錄的例子,可以利用yes命令重復輸出「y」字元的特性,將結果傳給rm命令,如此即可避免重復輸入「y」:
[tony@free tony]$ yes rm –r mydir
三,使用光碟及軟盤
在Linux的文字模式下要使用光碟或軟盤,並不是只將光碟或軟盤放入即可,用戶需要運行載入的命令,才可讀寫數據。所謂載入就是將存
儲介質(如光碟和軟盤)指定成系統中的某個目錄(如/mnt/cdrom或mnt/floppy)。通過直接存取此載入目錄,即可讀寫存儲介質中的數據。
以下就來看看文字模式下的載入及卸載命令。
1,載入的mount命令
要使用光碟時先把光碟放入光碟機,然後執行載入的mount命令,將光碟載入至系統中:
[tony@free tony]# mount/dev/cdrom/mut/cdrom ← 載入光碟
同理,使用軟盤之前也需要和光碟一樣,必須先載入後才能使用:
[tony@free tony]# mount/dev/fd0/mut/floppy ← 載入軟盤
2,卸載的umount命令
如果不需要使用光碟或軟盤,則需先執行卸載命令之後,才能將光碟或軟盤退出。範例如下:
[tony@free tony]# umount / mnt/cdrom ← 光碟卸載
在不使用軟盤時執行umount 命令卸載軟盤,再將軟盤拿出
[tony@free tony]# umount / mnt/ ← 軟盤卸載
四,在後台運行程序
用戶有時的程序有可能要花費很多時間,如果將它放在前台運行,將導致無法繼續做其他事情,最好的方法就是將它放在後台運行,甚至
可能希望在用戶注銷系統後,程序還可以繼續運行。讓我們看看那如何實現這一目的。
1,在後台運行程序的&、bg命令
將程序放到後台運行的最簡單方法就是在命令最後加上「&」,範例如下:
[tony@free root]# updatedb & ← 在後台執行 locate 資料庫更新命令
[tony@free root]# bg ← 將更新操作放到後台運行
2,前台運行的程序fg命令
如果用戶當前已有程序在後台運行,可以輸入fg命令,將它從背景中移到前台運行:
[tony@free root]# fg ← 放到前台執行的命令會顯示出來
3,在退出後讓程序繼續運行的nohup命令
此命令可使用戶退出系統後,程序繼續運行。範例如下:
[tony@free rony]$ nohup myserver &
然後用戶就可以退出了,當再次登錄的時候,可以用ps –aux命令看到程序仍在後台中運行。
五,任務調度命令
計算機有很多程序需要周期性的被運用,例如清理磁碟中不要的暫存檔、備份系統數據、檢查遠程伺服器的郵件等。對於這些重復性的工
作,其實不需要每次都辛苦地運行這些程序。可利用任務調度命令,指定系統定期在某個時間運行這些程序,輕輕鬆鬆完成想要執行的工作。
任務調度的crond常駐命令
crond 是Linux用來定期執行程序的命令。當安裝完成操作系統後,默認便會啟動此任務調動命令。crond命令每分鍾會定期檢查是否有要
執行的工作,如果有要執行的工作,便會自動執行該工作。由於任務調度中間的操作過程十分繁雜,我們只將任務調度文件的寫法介紹給大家
,供大家參閱:
Minute Hour Day Month DayOfWeek Command
在這段文字中除了「Command」是每次都必須指定的欄位以外,其他自動皆可視需求自行決定是否指定。
六,任務調度的系統工作
/ect/crontab/文件是Linux系統工程的任務調度設置文件,其默認的內容如下:
SHELL=/bin/bash ← 指定執行任務調度工作時所使用的SHELL
PATH=/shin:/bin:/usr/sbin:/usr/bin ← 指定命令搜索的路徑
MAILTO=root ← 指定將輸出結果給root用戶
HOME=/ ← 指定跟目錄
I. 收集CMD語言命令
樓主問的應該是[運行]的命令吧,不是CMD的命令,
Windows常用命令集
winver---------檢查windows版本
wmimgmt.msc----打開windows管理體系結構(wmi)
wupdmgr--------windows更新程序
w腳本--------windows腳本宿主設置
write----------寫字板
winmsd---------系統信息
wiaacmgr-------掃描儀和照相機向導
winchat--------xp自帶區域網聊天
mem.exe--------顯示內存使用情況
msconfig-----------啟動
msconfig.exe---系統配置實用程序
mplayer2-------簡易widnows media player
mspaint--------畫圖板
mstsc----------遠程桌面連接
mplayer2-------媒體播放機
magnify--------放大鏡實用程序
mmc------------打開控制台
mobsync--------同步命令
dxdiag---------檢查directx信息
drwtsn32------ 系統醫生
devmgmt.msc--- 設備管理器
dfrg.msc-------磁碟碎片整理程序
diskmgmt.msc---磁碟管理實用程序
dcomcnfg-------打開系統組件服務
ddeshare-------打開dde共享設置
dvdplay--------dvd播放器
nslookup-------ip地址偵測器
net stop messenger-----停止信使服務
net start messenger----開始信使服務
notepad--------打開記事本
nslookup-------網路管理的工具向導
ntbackup-------系統備份和還原
narrator-------屏幕「講述人」
ntmsmgr.msc----移動存儲管理器
ntmsoprq.msc---移動存儲管理員操作請求
netstat -an----(tc)命令檢查介面
syncapp--------創建一個公文包
sysedit--------系統配置編輯器
sigverif-------文件簽名驗證程序
sndrec32-------錄音機
shrpubw--------創建共享文件夾
secpol.msc-----本地安全策略
syskey---------系統加密,一旦加密就不能解開,保護windows xp系統的雙重密碼
services.msc---本地服務設置
sndvol32-------音量控製程序
sfc.exe--------系統文件檢查器
sfc /scannow---windows文件保護(掃描錯誤並復原)
tsshutdn-------60秒倒計時關機命令
tourstart------xp簡介(安裝完成後出現的漫遊xp程序)
taskmgr--------任務管理器 (2000/xp/2003)
eventvwr-------事件查看器
eudcedit-------造字程序
explorer-------打開資源管理器
packager-------對象包裝程序
perfmon.msc----計算機性能監測程序
progman--------程序管理器
regedit.exe----注冊表
rsop.msc-------組策略結果集
regedt32-------注冊表編輯器
rononce -p ----15秒關機
regsvr32 /u *.dll----停止dll文件運行
regsvr32 /u zipfldr.dll------取消zip支持
cmd.exe--------cmd命令提示符
chkdsk.exe-----chkdsk磁碟檢查
certmgr.msc----證書管理實用程序
calc-----------啟動計算器
charmap--------啟動字元映射表
cliconfg-------sql server 客戶端網路實用程序
clipbrd--------剪貼板查看器
conf-----------啟動netmeeting
compmgmt.msc---計算機管理
cleanmgr-------垃圾整理
ciadv.msc------索引服務程序
osk------------打開屏幕鍵盤
odbcad32-------odbc數據源管理器
oobe/msoobe /a----檢查xp是否激活
lusrmgr.msc----本機用戶和組
logoff---------注銷命令
iexpress-------木馬捆綁工具,系統自帶
fsmgmt.msc-----共享文件夾管理器
utilman--------輔助工具管理器
gpedit.msc-----組策略
J. 關於linux中管道的問題 pipe();
管道是進程間通信的一種方式,用到fork(),你可以參看bash的源碼,看它是如何實現的。
這還需要一些編譯原理方面的知識,至少要知道命令行分析等。