linux命令有內(nèi)部命令和外部命令之分。內(nèi)部命令實(shí)際上是shell程序的一部分,其中包含的是一些比較簡(jiǎn)練的linux系統(tǒng)命令,這些命令由shell程序識(shí)別并在shell程序內(nèi)部完成運(yùn)行,通常在linux系統(tǒng)加載運(yùn)行時(shí)shell就被加載并駐留在系統(tǒng)內(nèi)存中。外部命令是linux系統(tǒng)中的實(shí)用程序部分,因?yàn)閷?shí)用程序的功能通常都比較強(qiáng)大,所以它們包含的程序量也會(huì)很大,在系統(tǒng)加載時(shí)并不隨系統(tǒng)一起被加載到內(nèi)存中,而是在需要時(shí)才將其調(diào)進(jìn)內(nèi)存。通常外部命令的實(shí)體并不包含在shell中,但是其命令執(zhí)行過(guò)程是由shell 程序控制的。shell程序管理外部命令執(zhí)行的路徑查找、加載存放,并控制命令的執(zhí)行。
創(chuàng)新互聯(lián)公司IDC提供業(yè)務(wù):托管服務(wù)器,成都服務(wù)器租用,托管服務(wù)器,重慶服務(wù)器租用等四川省內(nèi)主機(jī)托管與主機(jī)租用業(yè)務(wù);數(shù)據(jù)中心含:雙線機(jī)房,BGP機(jī)房,電信機(jī)房,移動(dòng)機(jī)房,聯(lián)通機(jī)房。
RPM軟件包:這種軟件包的擴(kuò)展名為 “.rpm” ,只能在使用RPM機(jī)制的Linux操作系統(tǒng)中安裝,如RHEL、Fedora、centOS等。RPM軟件包一般針對(duì)特定版本的操作系統(tǒng)量身定制,因此依賴性較強(qiáng)。
源代碼安裝包:這種軟件包是程序員開(kāi)發(fā)完成的原始代碼,一般被制作成 “.tar.gz” 或 “.tar.bz2” 等格式的壓縮包文件,因多數(shù)使用 tar 命令打包而成的,所以經(jīng)常被稱為 “tarball”。?《Linux就該這么學(xué)》一起學(xué)習(xí)更多知識(shí)。
使用RPM軟件包管理命令——RPM
一、RPM命令具有非常強(qiáng)大的功能,結(jié)合不同的命令選項(xiàng)及子選項(xiàng)主要可以實(shí)現(xiàn)以下三類功能。
1、查詢、驗(yàn)證RPM軟件包的相關(guān)信息。
2、安裝、升級(jí)、卸載RPM軟件包。
3、維護(hù)RPM數(shù)據(jù)庫(kù)信息等綜合管理操作。
二、查詢RPM軟件包信息的各選項(xiàng)如下:
-q:查詢已知名稱的軟件包是否已經(jīng)安裝;
-qp:針對(duì)尚未安裝的RPM軟件包文件進(jìn)行查詢;
-qa:顯示當(dāng)前系統(tǒng)中以RPM方式安裝的所有軟件列表;
-qi:查看指定軟件包的名稱、版本、許可協(xié)議、用途描述等詳細(xì)信息(–info);
-ql:顯示指定的軟件包在當(dāng)前系統(tǒng)中安裝的所有目錄、文件列表(–list);
-qf:查看指定的文件或目錄是哪個(gè)軟件包所安裝的(–file);
-qpi:查看指定軟件包的名稱、版本、許可協(xié)議、用途描述等詳細(xì)信息;
-qpl:查看該軟件包準(zhǔn)備要安裝的所有目標(biāo)目錄、文件列表;
三、安裝、升級(jí)、卸載 rpm軟件包
在日常系統(tǒng)管理工作中,安裝、升級(jí)及卸載軟件包是管理應(yīng)用程序是最基本的工作內(nèi)容。那么我們來(lái)看一下,使用 rpm 命令實(shí)現(xiàn)這些操作時(shí),基本的命令選項(xiàng):
-i:在當(dāng)前系統(tǒng)中安裝(install)一個(gè)新的RPM軟件包;
-e:卸載指定名稱的軟件包;
-U:檢查并升級(jí)系統(tǒng)中的某個(gè)軟件包,若該軟件包原來(lái)并未安裝,則等同于“-i” 選項(xiàng);
-F:檢查并更新系統(tǒng)中的某個(gè)軟件包,若該軟件包原來(lái)并未安裝,則放棄安裝;
-h:在安裝或升級(jí)過(guò)程中,以 # 號(hào)顯示安裝進(jìn)度;
-v:顯示軟件安裝過(guò)程中的詳細(xì)信息;
–force:強(qiáng)制安裝某個(gè)軟件包,當(dāng)需要替換以安裝的軟件包及文件,或者安裝一個(gè)比當(dāng)前使用的軟件版本更舊的軟件時(shí),可以使用此選項(xiàng);
–nodeps:在安裝或升級(jí)、卸載一個(gè)軟件包時(shí),不檢查與其他軟件包的依賴關(guān)系。
四、維護(hù)RPM數(shù)據(jù)庫(kù)
(1)重建rpm數(shù)據(jù)庫(kù)
rpm數(shù)據(jù)庫(kù)用于記錄在Linux操作系統(tǒng)中安裝、卸載、升級(jí)應(yīng)用程序的相關(guān)信息,由rpm軟件包管理系統(tǒng)自動(dòng)完成維護(hù)、一般不需要我們用戶干預(yù)。當(dāng)RPM數(shù)據(jù)庫(kù)發(fā)生損壞(可能是由于誤刪文件、非法關(guān)機(jī)、病毒破壞等導(dǎo)致),且操作系統(tǒng)無(wú)法自動(dòng)修復(fù)時(shí),將導(dǎo)致無(wú)法正常使用 rpm 命令,這時(shí)我們可以執(zhí)行以下操作:
(2)導(dǎo)入驗(yàn)證公鑰:
前三個(gè)和最后一個(gè)是兩個(gè)類型。前三個(gè)主要是Linux用來(lái)創(chuàng)建新的進(jìn)程(線程)而設(shè)計(jì)的,exec()系列函數(shù)則是用來(lái)用指定的程序替換當(dāng)前進(jìn)程的所有內(nèi)容。所以exec()系列函數(shù)經(jīng)常在前三個(gè)函數(shù)使用之后調(diào)用,來(lái)創(chuàng)建一個(gè)全新的程序運(yùn)行環(huán)境。Linux用init進(jìn)程啟動(dòng)其他進(jìn)程的過(guò)程一般都是這樣的。
下面說(shuō)fork、vfork和clone三個(gè)函數(shù)。這三個(gè)函數(shù)分別調(diào)用了sys_fork、sys_vfork、sys_clone,最終都調(diào)用了do_fork函數(shù),差別在于參數(shù)的傳遞和一些基本的準(zhǔn)備工作不同??梢?jiàn)這三者最終達(dá)到的最本質(zhì)的目的都是創(chuàng)建一個(gè)新的進(jìn)程。在這里需要明確一下,Linux內(nèi)核中沒(méi)有獨(dú)立的“線程”結(jié)構(gòu),Linux的線程就是輕量級(jí)進(jìn)程,換言之基本控制結(jié)構(gòu)和Linux的進(jìn)程是一樣的(都是通過(guò)struct task_struct管理)。
fork是最簡(jiǎn)單的調(diào)用,不需要任何參數(shù),僅僅是在創(chuàng)建一個(gè)子進(jìn)程并為其創(chuàng)建一個(gè)獨(dú)立于父進(jìn)程的空間。fork使用COW(寫(xiě)時(shí)拷貝)機(jī)制,并且COW了父進(jìn)程的??臻g。
vfork是一個(gè)過(guò)時(shí)的應(yīng)用,vfork也是創(chuàng)建一個(gè)子進(jìn)程,但是子進(jìn)程共享父進(jìn)程的空間。在vfork創(chuàng)建子進(jìn)程之后,父進(jìn)程阻塞,直到子進(jìn)程執(zhí)行了exec()或者exit()。vfork最初是因?yàn)閒ork沒(méi)有實(shí)現(xiàn)COW機(jī)制,而很多情況下fork之后會(huì)緊接著exec,而exec的執(zhí)行相當(dāng)于之前fork復(fù)制的空間全部變成了無(wú)用功,所以設(shè)計(jì)了vfork。而現(xiàn)在fork使用了COW機(jī)制,唯一的代價(jià)僅僅是復(fù)制父進(jìn)程頁(yè)表的代價(jià),所以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)程)。所以可以說(shuō)clone是fork的升級(jí)版本,不僅可以創(chuàng)建進(jìn)程或者線程,還可以指定創(chuàng)建新的命名空間(namespace)、有選擇的繼承父進(jìn)程的內(nèi)存、甚至可以將創(chuàng)建出來(lái)的進(jìn)程變成父進(jìn)程的兄弟進(jìn)程等等。clone和fork的調(diào)用方式也很不相同,clone調(diào)用需要傳入一個(gè)函數(shù),該函數(shù)在子進(jìn)程中執(zhí)行。此外,clone和fork最大不同在于clone不再?gòu)?fù)制父進(jìn)程的??臻g,而是自己創(chuàng)建一個(gè)新的。
關(guān)于Linux命令的介紹,看看《linux就該這么學(xué)》,具體關(guān)于這一章地址3w(dot)linuxprobe/chapter-02(dot)html
1. ls 命令,只展示文件夾名稱內(nèi)容,ll展示文件權(quán)限還有一些什么
2.cd 進(jìn)入目錄? ./當(dāng)前目錄??? ../表示上級(jí)目錄
3.cp? 作用復(fù)制
4.rm? 作用刪除
5.mv作用移動(dòng)
6.pwd查看目錄完整目錄
7.tar壓縮目錄
8.kill殺死進(jìn)程
9.ps查看系統(tǒng)進(jìn)程線程
權(quán)限相關(guān)
chmod更改權(quán)限
文本查看編輯等命令
1.vi/vim 編輯文件
2.cat 查看配置文件,查看的是整個(gè)文件,注意使用grep過(guò)濾篩選
3.tail? 一般使用它查詢文件最后多少條
shutdown - h 關(guān)機(jī)
shutdown - r 重啟
1、sync命令的作用:是將有關(guān)文件系統(tǒng)的存儲(chǔ)器常駐信息送入物理介質(zhì)內(nèi)。
2、在暫停系統(tǒng)之前,比如要重新啟動(dòng)機(jī)器,一定要去執(zhí)行sync命令。unix系統(tǒng)運(yùn)行經(jīng)驗(yàn)表明,為確??煽科鹨?jiàn),應(yīng)執(zhí)行兩遍sync命令,這是因?yàn)閟ync命令完成時(shí),并不保證信息實(shí)際寫(xiě)到了磁盤(pán)上,雖然已經(jīng)執(zhí)行了一遍這個(gè)命令。在執(zhí)行sync命令以后,要等待磁盤(pán)工作燈滅了(假定有系統(tǒng)工作指示燈的話),再去真正暫停機(jī)器的運(yùn)行或啟動(dòng)機(jī)器。
1、作用at命令用來(lái)在指定時(shí)刻執(zhí)行指定的命令序列。
2、格式at[-V][-qx][-ffile][-m]time。
3、主要參數(shù)
-V:顯示標(biāo)準(zhǔn)錯(cuò)誤輸出。
-q:許多隊(duì)列輸出。
-f:從文件中讀取作業(yè)。
-m:執(zhí)行完作業(yè)后發(fā)送電子郵件到用戶。
time:設(shè)定作業(yè)執(zhí)行的時(shí)間。time格式有嚴(yán)格的要求,由小時(shí)、分鐘、日期和時(shí)間的偏移量組成,其中日期的格式為MM。DD。YY,MM是分鐘,DD是日期,YY是指年份。偏移量的格式為時(shí)間+偏移量,單位是minutes、hours和days。
擴(kuò)展資料:
學(xué)習(xí)linux注意事項(xiàng)
1、Linux嚴(yán)格區(qū)分大小寫(xiě)。
2、Linux所有的存儲(chǔ)設(shè)備都必須掛載之后用戶才能使用,包括硬盤(pán)、U盤(pán)和光盤(pán)。
3、Windows下的程序不能直接在Linux中安裝和運(yùn)行。