隨著mono的發展,也實現了跨平臺的開發,而要mono在Linux下跑起來,也需要掌握一些Linux的操作,下面小編整理了Linux系統的基本操作和常用命令,供大家參閱。
一、Shell的簡介
Linux系統中由核心,Shell,檔案系統和一些實用的程式構造。Shell是作業系統提供給使用者使用的介面
它提供了使用者與核心進行互動操作的一種介面。Shell負責接收使用者輸入的命令並將其送入核心去執行,並把系統的響應返回給使用者,因此Shell實質上就是一個命令解析器。
二、Linux圖形介面跟文字介面的切換
1,在圖形介面開啟終端視窗 輸入 init 3 便進入了文字編譯介面。
2,在文字編譯介面 輸入init 5 便能返回了圖形介面。
文字命令列介面下的關機與重啟操作
重啟 : reboot 或者 shutdown -r now
關機 : shutdown -h now
如定時在今天的17:30分關機 : shutdown -h 17:30
三、目錄結構
(1) /bin 與 /sbin
對Linux作業系統進行維護操作的實用命令基礎上都包含在/bin和/sbin 目錄中。
/bin 目錄通常存放使用者常用的一些基本命令,包括對目錄和檔案操作的命令,系統實用程式,壓縮工具,rpm包管理程式等,如:login,date,ping,netstat,mount```
除了/sbin目錄外,還有/usr/bin和/usr/local/bin目錄,也存放有一些軟體包所安裝的程式檔案
(2)/boot
/boot 是Linux的引導分割槽在根分割槽的掛載點目錄,該目錄下的內容就是引導分割槽中的內容,存放著Linux啟動所需要的檔案
(3) /dev
/dev是device(裝置)的簡寫,該目錄在Linux系統中是一個非常重要的目錄,用於存放系統中所有裝置的裝置檔案
(4)/etc
/etc 目錄也是Linux系統的一個非常重要的目錄,用於存放Linux系統的各種配置檔案,包括網路配置,裝置配置資訊,X系統配置,使用者資訊等都放在該目錄下。
(5)/home
Linux系統的所有普通使用者的目錄)(home directory)預設放在/home目錄中
(6)/lib
/lib 是library(庫)的簡寫,編譯器在編譯連結時,會自動到這兩個目錄下搜尋所需的庫檔案。
(7)/lost+found
該目錄用於存放系統非正常關機後,系統重啟時,進行磁碟檢查所產生的碎片檔案。
(8) /media 與 /mnt
在舊版Linux作業系統中,用於掛載CD-ROM,軟盤和U盤等裝置的掛點目錄。
(9) /misc /opt 與 /srv
這三個目錄預設都是空的。/misc 目錄用於存放一些額外的雜亂的檔案;/opt 目錄推薦用於安裝大型的應用軟體。
(10) /proc
/proc 目錄中的內容是由系統自動產生的,其內容是當前記憶體的一個虛擬映象,在該目錄中,可看到一些由當前執行的程序號組成的字目錄。
用cat 命令可以顯示該目錄下的一些特殊內容,可以檢視到系統的一些特殊資訊。
cat /proc/cpuinfo 詳細顯示當前系統CPU的硬碟資訊
cat /proc/interrupts 顯示當前系統裝置所使用到的中斷資訊
cat /proc/meminfo 顯示記憶體資訊
cat /proc/version 顯示Linux版本資訊
cat /proc/partitions 檢視目前機器中的所有磁碟及分割槽情況
(11) /sys
/sys 目錄下存放的時Linux系統的一些重要的裝置驅動程式和模組
(12) /usr
/usr 目錄一般用來存放與使用者直接相關的程式或檔案。使用者安裝的程式或要自行建立的目錄,一般可放在該目錄下。
(13)/tmp 與 /var
/tmp 存放臨時檔案,如程式執行期間產生的臨時檔案
/var 目錄則用於存放經常變化的檔案,對於存取頻繁或內容經常發生變化的檔案。
四、Linux的檔案屬性
ls命令僅列出檔名或者目錄名,使用“ls-l”或者"ll"命令,即可以列出檔案和目錄的詳細資訊,其顯示格式和各列的'含義如下所示
drwxr-xr-x 3 root root 4096 jul 2 10:34 text123
(檔案屬性) (數量) (擁有者) (所屬的組) (檔案大小) (建檔月份) (日) (時間) (檔名)
在Linux中,使用者對檔案的操作許可權分為可讀/可寫/可執行 三種,分別用r,w,x表示。如使用者無某個許可權,則在相應許可權位置用“-”來表示無許可權。
如某個檔案有x屬性,則該檔案就可以執行,屬於可執行檔案,具有x屬性的檔案一般是二進位制程式檔案或者可執行的指令碼檔案。
型別標識用於說明該檔案是“普通型別”還是“連結型別”檔案或者目錄。對於普通檔案,第一個型別標識顯示為“-”,若符號連結檔案,則該位置的標識為l(注:是L的小寫),若是目錄,則該位置的屬性標識為d。
a,對於屬性許可權的表示法;許可權除了r,w,x來表示外還可以用一個三位數字來表示,比如644,其中百位上的數字代表擁有者的許可權,十位上的數字代表擁有者所屬的使用者組中的其他使用者對該檔案或者目錄所擁有的許可權,個位上的數字,代表其他使用者對該檔案擁有的許可權,這種採用數字來表示許可權的方法,稱為絕對許可權表示法。
b,改變檔案或者目錄的許可權。由於許可權有兩種表示方法,因此,改變許可權的chmod命令的具體用法也有兩種。
利用絕對許可權表達來設定或者改變檔案或者目錄的許可權,其方法為:
chmod[R] 絕對許可權值 要設定的檔案或者目錄名
比如,假如~/檔案目前的許可權為rw-r--r--,若要是更改為rw-rw-r--,則實現的命令,chmod 664
第二種方法:
若要給其他使用者增加讀的許可權,則實現的命令為:
chmode 0+r ~/
若要同時去掉使用者組和其他使用者對該檔案的讀許可權,則實現命令為:
chmod go-r/
若檔案擁有者,使用者組和其他使用者都只賦予讀的許可權,則實現命令為:
chmod ugo-r ~/
若為檔案的擁有者和所屬的組增加s許可權,則為設定命令為:
chomd ug+S ~/
五、Linux常用命令
A,目錄操作
1,建立目錄
mkdir[-p] 目錄名稱及路徑
例如,若要在root使用者的主目錄中建立一個mysoft目錄,則實現的命令為:
[root@ROOT ~]#mkdir ~/text123
2,刪除目錄
rmdir 要刪除的目錄及路徑名稱
例如,若要刪除 /srv/www目錄下的images目錄,則操作命令為:
[root@ROOT ~]#rmdir /srv/www/images
3,查詢當前目錄
查詢當前所處的目錄位置使用pwd命令,該命令關鍵字來源於print working directory,其命令用法為:pwd
4,改變當前目錄
cd ~或 cd.. 等等
B,文字操作命令
1,Is命令
Is命令用於列出一個或者多個目錄下的檔案及目錄
2,cp命令
cp是copy命令的縮寫,用於檔案或者目錄的複製,其用法為:
cp[引數選項] 原始檔 目標檔案
cp -r源目錄 目標目錄
3,rm命令
rm命令用於刪除檔案或者目錄,在命令列中包括一個或多個檔名(各檔名間用空格分隔)
rm[引數選項]檔案或目錄名路徑
例如 要刪除/root/mysoft目錄及其下的全部內容,則操作命令為:
[root@ROOT ~]#rm -r /root/mysoft
4,mv命令
mv命令用於移動或者重新命名目錄或者檔案,命令關鍵字來源於move
mv[引數選項]源目錄或檔名 目標目錄或者檔名
例如 若要將/root/mysoft目錄移動到/root/newsoft 目錄之下,則實現命令為:
[root@ROOT ~]#mv ~/mysoft ~/newsoft/
[root@ROOT ~]#ll
[root@ROOT ~]#ls ~/newsoft/
若路徑相同,僅檔名或者目錄名不同,則更名檔案或者目錄,例如,若要將
~/mydoc/檔案更名為,則實現的命令為:
[root@ROOT ~]#mv ~/mydoc/ ~/mydoc/
mv 命令若使用-b(backup)引數,則在覆蓋已存在的檔案前,系統會自動建立原存在的檔案的一個備份,備份檔名為原名稱後附加一個~符號。
5,touch 命令
該命令用來更新指定的檔案或者目錄的訪問時間和修改時間為當前系統的日期和時間,檢視當前系統日期和時間,可使用date命令。
比如,若要在~/mydoc目錄下建立兩個空檔案file。text和,則命令為:
[root@ROOT ~]#touch ~/mydoc/~/mydoc/
各檔名用空格分隔
6,ln命令
該命令用來建立符號連結 (相當於建立快捷方式)
a,軟連結
軟連結,由於指向原檔案或原目錄的一個連結,因此生成的連結檔案很小。原檔案刪除後,連結檔案也會失去了作用,刪除連結檔案,對原檔案無任何影響。
ln -s真實檔案或目錄 符號連結檔名或者目錄名
例如,若要將/bin/b檔案建立一個名為的符號連結檔案,則建立命令為:
[root@ROOT ~]#ln -s /lib/b /lib/
b,硬連結
建立硬連結,實質就是建立了另一個指向相同節點。硬連結使用不用帶-s引數的ls命令來建立,其方法為:
ln 原檔名 硬連結檔名
硬連結無法跨越不同的檔案系統,分割槽和掛載的裝置,只能在原始檔所在的同一磁碟的同一個分割槽上建立硬連結,而且硬連結只針對檔案,不能用於目錄。刪除原檔案後,硬連結檔案仍然可以使用。
比如,在/root目錄下建立一個名為 檔案型別,檔案內容為 it is my life ,然後建立一個
該檔案的硬連結檔案,硬連結檔名為 則操作為:
[root@ROOT ~]#echo 'it is my life'>/root/
[root@ROOT ~]#ll
[root@ROOT ~]#ln
[root@ROOT ~]#ll -i *
7,檢視文字檔案的內容
a, cat 命令
在cat命令後面可指定多個檔案或者使用萬用字元,實現依次顯示多個檔案的內容。
比如:
[root@ROOT ~]#cat
增加使用-n引數選項,在顯示時可為各行加上編號。比如:
[root@ROOT ~]#cat -n
more或less命令
對於內容較多的檔案,不適合用cat命令來檢視,此時使用more或者less命令。
more命令可實現分屏顯示檔案內容,按任意鍵後,系統會自動顯示下一屏的內容,到達末尾行,命令執行立即結束。cat是連續滾動顯示的。
less比more功能更強大,除了有more的功能外,還支援用游標鍵向上或向下滾動瀏覽檔案,對於寬文件還支援水平滾動,當達到檔案末尾時,less命令的不會自動退出,需要輸入Q來結束瀏覽。
head與tail命令
head命令用來檢視一個檔案前面部分的資訊,預設顯示前面10行的內容,也可指定要檢視
的行數 如 head -n
例如 要檢視/boot/grub/檔案前10行的內容,則操作為:
[root@ROOT ~]#head /boot/grub/
如要檢視前20行的內容,則操作命令為:
[root@ROOT ~]#head -20 /boot/grub/
命令
該命令用於在指定的檔案中查詢並顯示含有指定字串的行。其用法為:
grep 要找的字串文字 檔名
比如,若要在/var/log/maillog檔案中,查詢顯示含有alipay關鍵字的行的內容,則操作命令為:
[root@ROOT ~]#grep alipay /var/log/maillog
若要在當前目錄下的所有檔案中查詢輸出包含alipay關鍵字的行,則操作命令為:
[root@ROOT ~]#grep alipay *
9.重定向操作符">",">>"與"<""<<"
(1) 輸出重定向符">",">>"
">"和">>"為輸出重定符,它能實現將一個命令的輸出重定向到一個檔案中,而這個不是螢幕
。比如, 若要將last命令的輸出結果,傳遞儲存到中,則實現命令為:
[root@ROOT ~]#last >
[root@ROOT ~]#less
">"與">>"的區別是:“>”每次是以覆蓋方式重寫後面的檔案內容,若指定的檔案不存在,系統會自動
建立。若要將內容以追加的方式新增到後面的檔案中,應該採取">>"。
比如,若要將庫檔案的搜尋路徑以追加方式新增到/etc/檔案中,則實現的命令為:
[root@ROOT ~]#echo"/post4u/lib">>/etc/
(2) 輸入重定向符"<","<<"
標準輸入重定向符"<"用於改變一個命令的輸入源。比如cat
"<"為此處操作符,該操作符在從鍵盤讀取內容時,讀到指定的字串時,便停止讀取動作,然後將所讀取的內容輸出去。
"<<"該操作符在鍵盤讀取內容時,讀到指定的字串,便停止讀取動作,然後將所讀的內容輸出。與cat 結合操作 如 cat << 結束讀取的標識字串
10, 管道管理
管道操作符為"|". 利用管道操作符可實將一個命令的輸出當作另一個命令的輸入,後者的輸出有可以做為第三條命令的輸入。管道操作符通常與grep命令配置使用,實現從前面一個命令執行後的大量輸出結果中,查詢顯示指定的內容。例如,若要查詢系統當前是否安裝了openssl軟體包,則可以採用以下命令:
[root@ROOT ~]#rpm -qa|openssl
rpm -qa 用於查詢顯示當前系統的所有軟體包。由於軟體包比較多,顯示出來後逐個查詢很不方便,利用以上命令就比較快捷。通過管道操作,就將rpm -qa命令的輸出結果傳遞給grep命令進行查詢,grep查詢後將包括openssl關鍵字的那一行內容輸出。
六、軟體包的管理
1,檢視rpm軟體包
在Linux的維護與管理中,經常需要了解當前系統安裝了哪些軟體包,或者查詢某一個軟體包是否被安裝了,此時就需要使用rpm的軟體包查詢功能。
查詢軟體包使用-q引數,若要進一步查詢軟體包的其他方面的資訊,可結合使用一些相關的其他引數,比如-a,-i,-l和-f引數,這些引數分別來源於all,information,list和file,因此這幾個引數的功能與本身的英文單詞含義
相同。
(1),查詢已安裝的全部軟體包
要查詢已經安裝的全部軟體包,可結合使用-a引數,即利用-qa引數來實現。其命令為: rpm -qa 由於系統安裝的軟體包一般比較多,該命令的輸出是以連續滾屏的方式顯示的,不便於閱讀,因此,通常利用管道操作符結合less命令來實現瀏覽檢視,其命令為:
[root@ROOT ~]#rpm -qa|less
若要具體查詢某一個軟體包是否已安裝,或包含某關鍵字的軟體包都安裝了哪些,可利用管道操作符和grep命令來實現比如,如要在已安裝的軟體包中,查詢包含ssl關鍵字的軟體包有哪些,則實現的命令為:
[root@ROOT ~]# rpm-qa|grep ssl
5
docbook-style-dsssl-1.79-4.1
5
(2)檢視指定的軟體包是否被安裝了
命令用法:rpm -q 軟體包名稱列表
該命令可同時查詢多個軟體包,各軟體包名稱之間用空格符分隔。若指定的軟體包已經被安裝了,將顯示該軟體包的完整路徑,如沒有被按照則會提示沒有被安裝。
比如,若要查詢openssh軟體包是否已被安裝,則操作命令為:
[root@ROOT ~]#rpm -q openssh
5
如要查詢telnet-server服務的軟體包是否安裝,則操作命令為:
[root@ROOT ~]#rpm -q telnet-server
package telnet is not installed
(3) 安裝rpm軟體包
安裝rpm軟體包使用-i引數(install),通常還結合使用-v和-h引數,其中-v 引數代表verbose,利用該引數可顯示更為詳細的安裝資訊;-h 引數代表hash,在安裝過程中將通過顯示一系列"#"來表示安裝的進度。因此安裝RPM軟體包通常用法為:rpm -vih 軟體包全路徑
例如, 若要安裝軟體包,則操作命令為:
[root@ROOT ~]#rpm -ivh /media/cdrom/Server/ waning:.......
(4) 刪除軟體包
若要從Linux中刪除原來的prm軟體包所安裝的軟體包,可使用帶-e引數的rpm命令來實現,其命令用法為:rpm -e
軟體包名。