linux常用命令有如下:
為卓資等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及卓資網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站設計、成都網(wǎng)站建設、卓資網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
1、cp命令,作用復制,參數(shù)如下:
-a:將文件的特性一起復制。
-p:連同文件的屬性一起復制,而非使用默認方式,與-a相似,常用于備份。
-i:若目標文件已經(jīng)存在時,在覆蓋時會先詢問操作的進行。
-r:遞歸持續(xù)復制,用于目錄的復制行為。
-u:目標文件與源文件有差異時才會復制。
2、rm命令作用為刪除,參數(shù):
-f:就是force的意思,忽略不存在的文件,不會出現(xiàn)警告消息。
-i:互動模式,在刪除前會詢問用戶是否操作。
-r:遞歸刪除,最常用于目錄刪除,它是一個非常危險的參數(shù)。
3、mv命令作用為移動文件:
-f:force強制的意思,如果目標文件已經(jīng)存在,不會詢問而直接覆蓋。
-i:若目標文件已經(jīng)存在,就會詢問是否覆蓋。
-u:若目標文件已經(jīng)存在,且比目標文件新,才會更新。
4、pwd命令,作用為查看”當前工作目錄“的完整路徑。
pwd-P#顯示出實際路徑,而非使用連接(link)路徑;pwd顯示的是連接路徑。
5、rmdir命令刪除目錄:
rmdir [選項]... 目錄...
-p:遞歸刪除目錄dirname,當子目錄刪除后其父目錄為空時,也一同被刪除。如果整個路徑被刪除或者由于某種原因保留部分路徑,則系統(tǒng)在標準輸出上顯示相應的信息。
-v:verbose顯示指令執(zhí)行過程。
前三個和最后一個是兩個類型。前三個主要是Linux用來創(chuàng)建新的進程(線程)而設計的,exec()系列函數(shù)則是用來用指定的程序替換當前進程的所有內(nèi)容。所以exec()系列函數(shù)經(jīng)常在前三個函數(shù)使用之后調(diào)用,來創(chuàng)建一個全新的程序運行環(huán)境。Linux用init進程啟動其他進程的過程一般都是這樣的。
下面說fork、vfork和clone三個函數(shù)。這三個函數(shù)分別調(diào)用了sys_fork、sys_vfork、sys_clone,最終都調(diào)用了do_fork函數(shù),差別在于參數(shù)的傳遞和一些基本的準備工作不同??梢娺@三者最終達到的最本質(zhì)的目的都是創(chuàng)建一個新的進程。在這里需要明確一下,Linux內(nèi)核中沒有獨立的“線程”結構,Linux的線程就是輕量級進程,換言之基本控制結構和Linux的進程是一樣的(都是通過struct task_struct管理)。
fork是最簡單的調(diào)用,不需要任何參數(shù),僅僅是在創(chuàng)建一個子進程并為其創(chuàng)建一個獨立于父進程的空間。fork使用COW(寫時拷貝)機制,并且COW了父進程的??臻g。
vfork是一個過時的應用,vfork也是創(chuàng)建一個子進程,但是子進程共享父進程的空間。在vfork創(chuàng)建子進程之后,父進程阻塞,直到子進程執(zhí)行了exec()或者exit()。vfork最初是因為fork沒有實現(xiàn)COW機制,而很多情況下fork之后會緊接著exec,而exec的執(zhí)行相當于之前fork復制的空間全部變成了無用功,所以設計了vfork。而現(xiàn)在fork使用了COW機制,唯一的代價僅僅是復制父進程頁表的代價,所以vfork不應該出現(xiàn)在新的代碼之中。在Linux的manpage中隊vfork有這樣一段話:It is rather unfortunate that Linux revived this specter from the past. The BSD man page states: "This system call will be eliminated when proper system sharing mechanisms are implemented. Users should not depend on the memory sharing semantics of vfork() as it will, in that case, be made synonymous to fork(2)."
clone是Linux為創(chuàng)建線程設計的(雖然也可以用clone創(chuàng)建進程)。所以可以說clone是fork的升級版本,不僅可以創(chuàng)建進程或者線程,還可以指定創(chuàng)建新的命名空間(namespace)、有選擇的繼承父進程的內(nèi)存、甚至可以將創(chuàng)建出來的進程變成父進程的兄弟進程等等。clone和fork的調(diào)用方式也很不相同,clone調(diào)用需要傳入一個函數(shù),該函數(shù)在子進程中執(zhí)行。此外,clone和fork最大不同在于clone不再復制父進程的??臻g,而是自己創(chuàng)建一個新的。
關于Linux命令的介紹,看看《linux就該這么學》,具體關于這一章地址3w(dot)linuxprobe/chapter-02(dot)html
Sync命令
在用reboot命令啟動unix系統(tǒng)后,系統(tǒng)提示出錯信息,部分應用程序不能正常工作。經(jīng)仔細檢查系統(tǒng)文件,并和初始的正確備份進行比較,發(fā)現(xiàn)某些文件確實被破壞了,翻來覆去找不到文件遭破壞的原因,最后想到了寫緩存命令——sync,在reboot前沒有運行sync命令,導致了系統(tǒng)文件的改變而不能正常工作。
sync命令的作用是,將有關文件系統(tǒng)的存儲器常駐信息送入物理介質(zhì)內(nèi)。在暫停系統(tǒng)之前,比如要重新啟動機器,一定要去執(zhí)行sync命令。unix系統(tǒng)運行經(jīng)驗表明,為確??煽科鹨?,應執(zhí)行兩遍sync命令,這是因為sync命令完成時,并不保證信息實際寫到了磁盤上,雖然已經(jīng)執(zhí)行了一遍這個命令。在執(zhí)行sync命令以后,要等待磁盤工作燈滅了(假定有系統(tǒng)工作指示燈的話),再去真正暫停機器的運行或啟動機器。
unix系統(tǒng)遭受破壞是隨時都可能發(fā)生的事情,因此在啟動機器或關機之前一定要運行sync命令。記住在任何情況下,慎重地執(zhí)行sync命令決不會有任何壞處
umount時間過長,sync命令的使用
有一個問題,比如 cp 一個文件到SD卡上,是不是首先先將這個文件寫到SDRAM上,然后umount的時候再將SDRAM中的內(nèi)容真正寫SD卡上? 我umount的時候會過多一會才出現(xiàn)終端的提示符,根據(jù)寫入文件的大小確定 umount的時間?
后來查了一下資料,Linux文件系統(tǒng)更新是一個復雜的過程,當用戶程序對文件系統(tǒng)進行修改以后,例如進行了寫操作,文件數(shù)據(jù)把修改記錄在內(nèi)核緩沖中,在數(shù)據(jù)沒有寫到磁盤的時候,依然能夠執(zhí)行用戶進程,所有數(shù)據(jù)的改變都在inode的內(nèi)容中得到反映。磁盤的數(shù)據(jù)更新實際上是異步進行的,很有可能在寫操作已經(jīng)完成很長時間以后才真正對磁盤的數(shù)據(jù)進行更新。
sync命令強制把磁盤緩沖的所有數(shù)據(jù)寫入磁盤,如果在沒有把磁盤緩沖區(qū)的信息寫入磁盤之前終止系統(tǒng),則磁盤的文件系統(tǒng)就會處在一個不穩(wěn)定的狀態(tài)。而在正常模式下即使沒有對分區(qū)進行umount的操作,在重啟之前系統(tǒng)會調(diào)用sync命令強制把磁盤緩沖的所有數(shù)據(jù)寫入磁盤,而在急救模式下必須對所掛的分區(qū)進行umount的操作,系統(tǒng)才會調(diào)用sync命令強制把磁盤緩沖的所有數(shù)據(jù)寫入磁盤,請在急救模式下的朋友注意這個問題。其實“reboot -n(Don’t sync before reboot or halt)”在重啟之前不用sync命令強制把磁盤緩沖的所有數(shù)據(jù)寫入磁盤,就很能說明問題。
所以要 cp 完之后要執(zhí)行 sync 命令將緩沖區(qū)的內(nèi)容寫到磁盤中,然后再umount 就不會出現(xiàn)延時了.
經(jīng)驗證,采用此方法,延遲寫入問題可以解決
linux命令有內(nèi)部命令和外部命令之分。內(nèi)部命令實際上是shell程序的一部分,其中包含的是一些比較簡練的linux系統(tǒng)命令,這些命令由shell程序識別并在shell程序內(nèi)部完成運行,通常在linux系統(tǒng)加載運行時shell就被加載并駐留在系統(tǒng)內(nèi)存中。外部命令是linux系統(tǒng)中的實用程序部分,因為實用程序的功能通常都比較強大,所以它們包含的程序量也會很大,在系統(tǒng)加載時并不隨系統(tǒng)一起被加載到內(nèi)存中,而是在需要時才將其調(diào)進內(nèi)存。通常外部命令的實體并不包含在shell中,但是其命令執(zhí)行過程是由shell 程序控制的。shell程序管理外部命令執(zhí)行的路徑查找、加載存放,并控制命令的執(zhí)行。
名稱欄目:linux命令sn作用,linux 查看sn號的命令
文章路徑:http://sd-ha.com/article22/hcocjc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供關鍵詞優(yōu)化、自適應網(wǎng)站、做網(wǎng)站、網(wǎng)站策劃、手機網(wǎng)站建設、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)