這是我首次安裝虛擬機,也是首次接觸Linux系統。對於下學期要運用的這個操做系統,以及如何在本身的電腦上安裝虛擬機,我仍是有些期待和好奇的。html
我一直跟着婁老師的教程走,整體而言仍是比較順利的。儘管遇到了很多問題,但經過在網上搜尋解決方法與不斷地動手操做實踐,全部的困難都得以解決,也收穫很多。所以,我很贊同婁老師在教程裏說的:linux
在此強烈建議把教程走完,出錯了也會有不同的收穫。ios
我遇到的第一個問題是新建虛擬電腦,操做系統選擇Linux,版本選擇Ubuntu。在這裏我看到教程裏Ubuntu是64位,但我在選擇Ubuntu時並無64位,而只有32位。當時我沒有太在乎這個問題,進而選擇了32位,並繼續Next。程序員
一路較爲順利,虛擬機建立完成:正則表達式
接下來要作的是安裝Ubuntu系統軟件,在官網下載桌面版:Ubuntu 16.04 LTS。在雙擊啓動建立好的虛擬機並選擇啓動盤以後,卻沒有出現應有的安裝界面,Virtualbox提示「FATAL:No bootable medium found!System halted.」shell
經過在網上查詢資料得知:ubuntu
類型 | 緣由 | 解決措施 |
---|---|---|
已安裝系統的狀況 | 引導設備設置錯誤致使 | 首先,在出現錯誤的虛擬機上右鍵選擇「設置」。在設備中點擊「系統」,啓動順序只勾選」硬盤「便可。此時再啓動系統即可以正常引導。 |
未安裝系統的狀況 | 沒有設置好光盤鏡像 | 首先,選中出錯的虛擬機,點擊「設置」按鈕。在「設置」中選擇「存儲」——「沒有盤片」,右側點擊光盤的圖標,選擇要加載的系統ISO鏡像便可。擇好鏡像後,點擊「啓動」,此時再看虛擬機可否正常引導。 |
——應用自百度經驗《virtualbox提示no bootable medium found怎麼辦》vim
很明顯個人遇到的狀況屬於第一種類型。可是在根據步驟進行操做後,問題並無獲得解決。此時Virtualbox提示「This kernel requires an X86-64 CPU,but only detected an i686 CPU.(當前系統內核須要64位的cpu,但是隻檢測到32位的) 這我想起了以前遇到的問題:Ubuntu沒法選擇64位,因而我選擇了32位。通過查詢資料得知:瀏覽器
VirtualBox安裝64位的系統須要知足如下條件:安全
1. 64位的cpu
2. 安裝的系統必須爲64位
3. cpu容許硬件虛擬化
個人環境前兩項都符合,因此應該是第三個條件沒有被知足。
第3項須要在bios中開啓這個選項,將Virtualization狀態改成enabled。
——應用自《VirtualBox 安裝 Linux時 報錯This kernel requires an X86-64 CPU,but only detected an i686 CPU錯誤的解決辦法》
1. BIOS中的虛擬化技術
本文介紹瞭如何在主板BIOS中啓用虛擬化技術(VT)。要運行一些操做系統,虛擬化軟件和虛擬機,硬件虛擬化就須要啓用。大多數狀況下,不須要虛擬化技術的操做系統能夠正常運行在啓用了虛擬化技術的系統,但有些須要這種技術的操做系統,必須啓用虛擬化技術才能運行。
全部最新的處理器和主板都支持虛擬化技術,檢查一下你的主板廠商是否支持而且要知道如何啓用或禁用BIOS中的VT。當在主板上啓用虛擬化技術後,操做系統能當即檢測到。
2. 在哪裏能找到在BIOS中的虛擬化技術(VT)?
首先開機進入BIOS,通常機器是按F2,個人T420是按F1,而後進入Security,Virtualization,選擇Enable便可。不一樣的主板可能選項會有所不一樣,請自行參考主板廠商的幫助。
在你更改設置後,禁用或啓用虛擬化,建議關閉計算機最小10秒,而後從新啓動機器(冷啓動),確保正常開啓虛擬化技術。若是你的主板是最新的,它在冷啓動後可以檢測到配置變化。每當我改變個人主板上的VT設置,它都會自動推遲下次從新啓動生效。
通常來講,用virtualBox安裝64bit的虛擬機:
- 64位的cpu(帶硬件虛擬化支持)和64位的操做系統
- 必須運行64位的VirtualBox,才能夠裝32位或64位的虛擬機;32位的VirtualBox只能裝32位的虛擬機,而不論硬件是否支持64位
- 你必須容許硬件虛擬化;軟件虛擬化是不支持64位虛擬機
——應用自《VirtualBox沒有64位選項,沒法安裝64位的解決方法》
經過查閱資料,我也瞭解到更多關於BIOS的知識。其中這篇百度經驗介紹得較爲具體:《如何進入BIOS之聯想筆記本BIOS的基本設置圖解》。經過查閱資料並動手操做,我進入電腦的BIOS更改了VT設置,成功地解決了問題。
接下來就是按照教程裏的步驟安裝操做系統,一路都較爲順利,沒有遇到多少問題。
操做系統安裝成功。接下來是安裝加強功能:
好啦,初始工做算是完成咯。
接下來我要面對的是從未接觸過的內容:與平時慣用的 Window 風格相差甚大的操做系統、內容冗雜又龐大的 Linux 命令,這些都很令我頭疼。想必我從如今的小白一隻,到入門學習,再到較爲熟練地操做 Linux 系統,還有很長的路要走。路途漫漫,腳踏實地、一點一滴地努力和進步吧。
Linux 主要是系統調用和內核那兩層。固然直觀地看,咱們使用的操做系統還包含一些在其上運行的應用程序,好比文本編輯器、瀏覽器、電子郵件等。
這一節介紹了 Linux 的歷史,Linux 與 Windows 的區別,以及如何學習 Linux。經過了解到 Linux 的特色:
課程中給出瞭如何學習 Linux 的建議:首先要擺正學習心態。
其中:
Linux大都在命令行下操做,可否接受不用或少用圖形界面。
這句話直截了當地指出了 Linux 的特色: 與咱們平時慣用的 Windnows 有所不一樣,用戶將不能依賴圖形界面,而是在命令行下操做。這種轉變對於咱們初學者而言可能較爲困難,可是對於程序員來講在操做上會更加方便。我想這也是 Linux 一樣受歡迎並且被普遍使用的緣由之一吧。
課程強調要注重基礎,從頭開始。提供的學習路徑以下:
Linux 自己是沒有圖形界面的,咱們一般在 UNIX/Linux 發行版上看到的圖形界面實際都只是運行在 Linux 系統之上的一套軟件。若是隻有服務器也是不能實現一個完整的桌面環境的,固然還須要一個客戶端,咱們稱爲 X Client,幾個最流行的實現了客戶端功能的桌面環境分別是 KDE,GNOME,XFCE,LXDE 。
實驗樓以前使用的桌面環境是 LXDE ,目前使用的是 XFCE 。
終端本質上是對應着 Linux 上的 /dev/tty 設備,Linux 的多用戶登錄就是經過不一樣的 /dev/tty 設備完成的。
比較常見的終端模擬器有: gnome-terminal,Konsole,xterm,rxvt,kvt,nxterm 和 eterm 。實驗樓的實驗中的終端程序是 xfce 桌面環境自帶的 xfce-terminal 。
切換純命令行界面的「terminal」:[Ctrl]+[Alt]+[F1]~[F6]。
切換到其中一個終端後切換回圖形界面:[Ctrl]+[Alt]+[F7]
UNIX/Linux 操做系統下的 Shell 既是用戶交互的界面,也是控制系統的腳本語言。
在 UNIX/Linux 中比較流行的常見的 Shell 有 bash、zsh、ksh、csh 等等。
Ubuntu 終端默認使用的是 bash,默認的桌面環境是 GNOME 或者 Unity(基於 GNOME),實驗樓的環境中使用的分別是 zsh 和 xfce。
輸入:打開終端,按鍵盤輸入,而後按回車
touch file 建立一個名爲file的文件
cd /etc/ 進入一個目錄
pwd 查看當前所在目錄
輸出:輸出會返回你想要的結果,好比你要看什麼文件,就會返回文件的內容。若是隻是執行,執行失敗會告訴你哪裏錯了,若是施行成功那麼會沒有輸出,由於linux的哲學就是:沒有結果就是最好的結果。
Tab:使用Tab鍵來進行命令補全,當你忘記某個命令的全稱時能夠只輸入它的開頭的一部分,而後按下Tab鍵就能夠獲得提示或者幫助完成。不止補全命令,補全目錄、補全命令參數都是沒問題的。
Ctrl+c:強行終止當前程序(你能夠放心它並不會使終端退出)。
其餘一些經常使用快捷鍵以下:
按鍵 | 做用 |
---|---|
Ctrl+d | 鍵盤輸入結束或退出終端 |
Ctrl+s | 暫停當前程序,暫停後按下任意鍵恢復運行 |
Ctrl+z | 將當前程序放到後臺運行,恢復到前臺爲命令fg |
Ctrl+a | 將光標移至輸入行頭,至關於Home鍵 |
Ctrl+e | 將光標移至輸入行末,至關於End鍵 |
Ctrl+k | 刪除從光標所在位置到行末 |
Alt+Backspace | 向前刪除一個單詞 |
Shift+PgUp | 將終端顯示向上滾動 |
Shift+PgDn | 將終端顯示向下滾動 |
使用鍵盤上的方向上鍵↑,恢復以前輸入過的命令。
通配符是一種特殊語句,主要有星號(*)和問號(?),用來對字符串進行模糊匹配(好比文件名、參數名)。當查找文件夾時,可使用它來代替一個或多個真正字符;當不知道真正字符或者懶得輸入完整名字時,經常使用通配符代替一個或多個真正字符。
Shell 經常使用通配符:
字符 | 含義 |
---|---|
* | 匹配 0 或多個字符 |
? | 匹配任意一個字符 |
[list] | 匹配 list 中的任意單一字符 |
[!list] | 匹配 除list 中的任意單一字符之外的字符 |
[c1-c2] | 匹配 c1-c2 中的任意單一字符 如:[0-9] [a-z] |
{string1,string2,...} | 匹配 string1 或 string2 (或更多)其一字符串 |
{c1..c2} | 匹配 c1-c2 中所有字符 如{1..10} |
在 Linux 環境中,若是遇到困難,可使用man命令,它是Manual pages的縮寫。用戶能夠經過執行man命令調用手冊頁。要查看相應區段的內容,就在 man 後面加上相應區段的數字便可。
$ man <command_name>:得到某個命令的說明和使用方式的詳細介紹。
man man:查看 man 命令自己的使用方式。
$ man 1 ls:顯示第一區段中的ls命令 man 頁面。
$ ls --help:快速查看一些一個命令的某個具體參數的做用。
打開終端,輸入命令:
$ who am i 或者 $ who mom likes
使用 whoami(去掉空格)可查看當前登陸用戶的用戶名, pts/0 中 pts 表示僞終端。所謂僞是相對於 /dev/tty 設備而言的。僞終端就是當你在圖形用戶界面使用 /dev/tty7 時每打開一個終端就會產生一個僞終端, pts/0 後面那個數字就表示打開的僞終端序號,後面則表示當前僞終端的啓動時間。
who 命令其它經常使用參數:
參數 | 說明 |
---|---|
-a | 打印能打印的所有 |
-d | 打印死掉的進程 |
-m | 同am i,mom likes |
-q | 打印當前登陸用戶數及用戶名 |
-u | 打印當前登陸用戶登陸信息 |
-r | 打印運行等級 |
在 Linux 系統裏, root 帳戶擁有整個系統至高無上的權利,好比 新建/添加 用戶。
建立用戶須要 root 權限,要用到 sudo 這個命令。使用這個命令有兩個大前提,一是你要知道當前登陸用戶的密碼,二是當前用戶必須在 sudo 用戶組。
注意:Linux 下密碼輸入是不顯示任何內容的,能夠盲打密碼。退出當前用戶跟退出終端同樣可使用 exit 命令或者使用快捷鍵 Ctrl+d。
使用groups命令:$ groups 用戶名
其中冒號以前表示用戶,後面表示該用戶所屬的用戶組。這裏能夠看到 shiyanlou 用戶屬於 shiyanlou 用戶組,每次新建用戶若是不指定用戶組的話,默認會自動建立一個與用戶名相同的用戶組。
默認狀況下新建立的用戶是不具備 root 權限的,也不在 sudo 用戶組。用在sudo用戶組的用戶執行 sudo 命令能夠將用戶添加到 sudo 用戶組,讓它也可使用 sudo 命令得到 root 權限。
$ su 在sudo用戶組的用戶名 $ groups 須要添加到sudo用戶組的用戶名 $ sudo usermod -G sudo 須要添加到sudo用戶組的用戶名 $ groups 須要添加到sudo用戶組的用戶名
$ sudo deluser 須要刪除的用戶名 --remove-home
$ ls -l
假設目前是 lilei 用戶登陸,新建一個文件,命名爲 「 iphone6 」: $ touch iphone6
可見文件全部者是 lilei。如今,換回到 shiyanlou 用戶身份,使用如下命令變動文件全部者爲shiyanlou :
$ cd /home/lilei $ ls iphone6 $ sudo chown shiyanlou iphone6
如今查看,發現文件全部者成功修改成 shiyanlou 。
若是你有一個本身的文件不想被其餘用戶讀、寫、執行,那麼就須要對文件的權限作修改,有兩種方式。
每一個文件的三組權限(擁有者,所屬用戶組,其餘用戶,記住這個順序是必定的)就對應這一個 "rwx",也就是一個 '7' ,因此若是我要將文件「iphone6」的權限改成只有我本身能夠用那麼就這樣:
$ chmod 700 iphone6
如今,其餘用戶已經不能讀這個「 iphone6 」文件了:
完成上述相同的效果,能夠經過如下命令:
$ chmod go-rw iphone6
g、o 還有 u 分別表示 group、others 和 user,+ 和 - 分別表示增長和去掉相應的權限。
FHS(文件系統層次結構標準),多數 Linux 版本採用這種文件組織形式,FHS 定義了系統中每一個區域的用途、所須要的最小構成的文件和目錄同時還給出了例外處理與矛盾處理。
FHS 定義了兩層規範:
第一層是, / 下面的各個目錄應該要放什麼文件數據,例如 /etc 應該放置設置文件,/bin 與 /sbin 則應該放置可執行文件等等。
第二層則是針對 /usr 及 /var 這兩個目錄的子目錄來定義。例如 /var/log 放置系統日誌文件,/usr/share 放置共享數據等等。
(圖片)
使用 cd 命令能夠切換目錄
使用 . 表示當前目錄
.. 表示上一級目錄(以 . 開頭的文件都是隱藏文件,因此這兩個目錄必然也是隱藏的,你可使用 ls -a 命令查看隱藏文件)
- 表示上一次所在目錄
~ 一般表示當前用戶的 home 目錄。 使用 pwd 命令能夠獲取當前所在路徑(絕對路徑)
以home目錄爲起點,分別以絕對路徑和相對路徑的方式進入 /usr/local/bin 目錄:
絕對路徑:$ cd /usr/local/bin
相對路徑:$ cd ../../usr/local/bin
注:在進行目錄切換的過程當中請多使用 Tab 鍵自動補全,可避免輸入錯誤,連續按兩次 Tab 能夠顯示所有候選結果。
建立名爲 test 的空白文件,由於在其它目錄沒有權限,因此須要先 cd ~ 切換回用戶的 /home/shiyanlou 目錄:
$ cd ~
$ touch test
使用 mkdir(make directories)命令能夠建立一個空目錄,也可同時指定建立目錄的權限屬性。
建立名爲「 mydir 」的空目錄:
$ mkdir mydir
使用 -p 參數,可同時建立一個多級目錄:
$ mkdir -p father/son/grandson
使用 cp(copy)命令複製一個文件到指定目錄。將以前建立的「 test 」文件複製到「 /home/shiyanlou/father/son/grandson 」目錄中:
$ cp test father/son/grandson
若是直接使用 cp 命令複製一個目錄的話,會出現錯誤。要成功複製目錄須要加上 -r 或者 -R 參數,表示遞歸複製:
$ cp -r father family
使用 rm(remove files or directories)命令刪除一個文件:
$ rm test
忽略提示,直接刪除文件,可使用 -f 參數強制刪除:
$ rm -f test
跟複製目錄同樣,要刪除一個目錄,也須要加上 -r 或 -R 參數:
$ rm -r family
使用 mv(move or rename files)命令移動文件(剪切)。將文件「 file1 」移動到 Documents 目錄:
$ mkdir Documents
$ mv file1 Documents
將文件「 file1 」重命名爲「 myfile 」:
$ mv file1 myfile
要實現批量重命名可使用一個看起來更專業的命令 rename 來實現。它要用 perl 正則表達式來做爲參數。
使用通配符批量建立 5 個文件:$ touch file{1..5}.txt
批量將這 5 個後綴爲 .txt 的文本文件重命名爲以 .c 爲後綴的文件:$ rename 's/.txt/.c/' *.txt
批量將這 5 個文件,文件名改成大寫:$ rename 'y/a-z/A-Z/' *.c
前兩個命令都是用來打印文件內容到標準輸出(終端),其中 cat 爲正序顯示,tac 爲倒序顯示。
查看以前從 /etc 目錄下拷貝來的 passwd 文件,加上 -n 參數顯示行號:
$ cat -n passwd
nl 命令,添加行號並打印,是個比 cat -n 更專業的行號打印命令。
使用 more 命令打開 passwd 文件:
$ more passwd
$ tail /etc/passwd
只看一行, 加上 -n 參數,後面緊跟行數:
$ tail -n 1 /etc/passwd
在 Linux 中文件的類型不是根據文件後綴來判斷的,一般使用 file 命令查看文件的類型:
$ file /bin/ls
在 Linux 下面編輯文件一般咱們會直接使用專門的命令行編輯器好比(emacs,vim,nano)
$ vimtutor
召喚一雙眼睛
$ xeyes
使用以下命令將它放到後臺運行:
$ nohup xeyes &