linux可以創(chuàng)建文件指令如下:
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比瀏陽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式瀏陽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋瀏陽地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
1、“vi 文件名”命令,該命令輸入保存之后文件才被創(chuàng)建;
2、“touch 文件名”命令,該命令用于更改文件或目錄的時間,若文件不存在會自動創(chuàng)建;
3、“echo 文件內(nèi)容 文件名”命令,該命令會將指定內(nèi)容寫入文件中。?
注意事項(xiàng)
1、Linux touch命令用于修改文件或者目錄的時間屬性,包括存取時間和更改時間。若文件不存在,系統(tǒng)會建立一個新的文件。
2、“vi 文件名”命令只有輸入:w保存時,文件才會真正的被創(chuàng)建,直接:q退出,文件不會被創(chuàng)建。
3、echo命令的功能是在顯示器上顯示一段文字,一般起到一個提示的作用。該命令的一般格式為: echo [ -n ] 字符串。其中選項(xiàng)n表示輸出文字后不換行;字符串能加引號,也能不加引號。
用echo命令輸出加引號的字符串時,將字符串原樣輸出;用echo命令輸出不加引號的字符串時,將字符串中的各個單詞作為字符串輸出,各字符串之間用一個空格分割。
前三個和最后一個是兩個類型。前三個主要是Linux用來創(chuàng)建新的進(jìn)程(線程)而設(shè)計(jì)的,exec()系列函數(shù)則是用來用指定的程序替換當(dāng)前進(jìn)程的所有內(nèi)容。所以exec()系列函數(shù)經(jīng)常在前三個函數(shù)使用之后調(diào)用,來創(chuàng)建一個全新的程序運(yùn)行環(huán)境。Linux用init進(jìn)程啟動其他進(jìn)程的過程一般都是這樣的。
下面說fork、vfork和clone三個函數(shù)。這三個函數(shù)分別調(diào)用了sys_fork、sys_vfork、sys_clone,最終都調(diào)用了do_fork函數(shù),差別在于參數(shù)的傳遞和一些基本的準(zhǔn)備工作不同??梢娺@三者最終達(dá)到的最本質(zhì)的目的都是創(chuàng)建一個新的進(jìn)程。在這里需要明確一下,Linux內(nèi)核中沒有獨(dú)立的“線程”結(jié)構(gòu),Linux的線程就是輕量級進(jìn)程,換言之基本控制結(jié)構(gòu)和Linux的進(jìn)程是一樣的(都是通過struct task_struct管理)。
fork是最簡單的調(diào)用,不需要任何參數(shù),僅僅是在創(chuàng)建一個子進(jìn)程并為其創(chuàng)建一個獨(dú)立于父進(jìn)程的空間。fork使用COW(寫時拷貝)機(jī)制,并且COW了父進(jìn)程的棧空間。
vfork是一個過時的應(yīng)用,vfork也是創(chuàng)建一個子進(jìn)程,但是子進(jìn)程共享父進(jìn)程的空間。在vfork創(chuàng)建子進(jìn)程之后,父進(jìn)程阻塞,直到子進(jìn)程執(zhí)行了exec()或者exit()。vfork最初是因?yàn)閒ork沒有實(shí)現(xiàn)COW機(jī)制,而很多情況下fork之后會緊接著exec,而exec的執(zhí)行相當(dāng)于之前fork復(fù)制的空間全部變成了無用功,所以設(shè)計(jì)了vfork。而現(xiàn)在fork使用了COW機(jī)制,唯一的代價僅僅是復(fù)制父進(jìn)程頁表的代價,所以vfork不應(yīng)該出現(xiàn)在新的代碼之中。在Linux的manpage中隊(duì)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)建線程設(shè)計(jì)的(雖然也可以用clone創(chuàng)建進(jìn)程)。所以可以說clone是fork的升級版本,不僅可以創(chuàng)建進(jìn)程或者線程,還可以指定創(chuàng)建新的命名空間(namespace)、有選擇的繼承父進(jìn)程的內(nèi)存、甚至可以將創(chuàng)建出來的進(jìn)程變成父進(jìn)程的兄弟進(jìn)程等等。clone和fork的調(diào)用方式也很不相同,clone調(diào)用需要傳入一個函數(shù),該函數(shù)在子進(jìn)程中執(zhí)行。此外,clone和fork最大不同在于clone不再復(fù)制父進(jìn)程的??臻g,而是自己創(chuàng)建一個新的。
關(guān)于Linux命令的介紹,看看《linux就該這么學(xué)》,具體關(guān)于這一章地址3w(dot)linuxprobe/chapter-02(dot)html
linux命令有內(nèi)部命令和外部命令之分。內(nèi)部命令實(shí)際上是shell程序的一部分,其中包含的是一些比較簡練的linux系統(tǒng)命令,這些命令由shell程序識別并在shell程序內(nèi)部完成運(yùn)行,通常在linux系統(tǒng)加載運(yùn)行時shell就被加載并駐留在系統(tǒng)內(nèi)存中。外部命令是linux系統(tǒng)中的實(shí)用程序部分,因?yàn)閷?shí)用程序的功能通常都比較強(qiáng)大,所以它們包含的程序量也會很大,在系統(tǒng)加載時并不隨系統(tǒng)一起被加載到內(nèi)存中,而是在需要時才將其調(diào)進(jìn)內(nèi)存。通常外部命令的實(shí)體并不包含在shell中,但是其命令執(zhí)行過程是由shell 程序控制的。shell程序管理外部命令執(zhí)行的路徑查找、加載存放,并控制命令的執(zhí)行。