- 跟阿銘學Linux(第4版)
- 李世明
- 129字
- 2021-08-09 14:15:45
2.3 第一次親密接觸
重啟CentOS后,會出現如圖2-27所示的黑框,提示我們登錄。這個登錄界面沒有出現任何圖形,因為我們沒有安裝與圖形相關的程序包。如果你想使用圖形界面,可以在進入系統后安裝圖形套件,然后切換到圖形界面就可以了。
圖2-27 登錄
2.3.1 初次使用命令行登錄
在如圖2-27所示的黑框里單擊鼠標,在localhost login:
后面輸入root
并按回車,然后輸入先前設置的root密碼,進入CentOS系統,如圖2-28所示。
圖2-28 進入CentOS系統
2.3.2 設置網絡
由于在安裝系統時需要聯網下載安裝源,所以CentOS 8當前已經可以聯網了,只不過當前的IP地址是自動獲取到的。由于前面創建虛擬機時,我們已經將這臺機器設置成NAT網絡模式,因此后續的操作都是基于NAT模式,如果是橋接模式,則操作基本類似。
請運行如下命令:
# ip add
此時將返回如圖2-29所示的信息。
圖2-29 查看IP地址
ip add
命令就是用來查看IP地址的。這里請大家注意英文字母的大小寫,因為Linux操作系統是區分大小寫的。從圖2-29中可以看出,這臺機器有兩個IP地址。第一個地址127.0.0.1是回環地址,網卡名字叫作lo,Windows操作系統也有該地址,用于自己和自己通信。第二個地址192.168.72.128就是它自動獲取到的IP地址,其中ens33就是網卡的名字。你獲取到的IP地址和阿銘的可能不一樣,這是因為VMware分配的地址段不一樣,請大家放心,這并不是你沒有配置對。另外,你的網卡名字也不一定是ens33,這個不一樣也是沒有關系的。下面阿銘教你怎么看VMware NAT網絡模式的網段是多少。
首先同時按下Ctrl和Alt這兩個鍵,釋放鼠標,然后單擊VMware虛擬機左上角菜單欄中的“編輯”,選擇“虛擬網絡編輯器”,此時會彈出如圖2-30所示的界面。
圖2-30 虛擬網絡編輯器
選中VMnet8(NAT模式),此時下面就可以看到子網IP為192.168.72.0,子網掩碼為255.255.255.0,我們獲取到的那個IP就在這個子網里面。然后單擊右側的“NAT設置”按鈕,此時會出現如圖2-31所示的界面。
圖2-31 NAT設置
在這個界面中,我們會看到網關IP為192.168.72.2。請大家記住這個網關地址,因為接下來還會用到它。
我們先來測試一下CentOS 8是否可以聯網。請大家注意,你的CentOS 8能聯網的前提是你的物理機可以聯網。輸入如下命令進行測試:
# ping -c 4 www.aminglinux.com
運行結果如圖2-32所示。
圖2-32 測試網絡
ping
命令很多朋友用過,它是用來檢測網絡連通性的工具。圖2-32所示的結果表示本機是可以聯網的。如果你的結果和阿銘的不同,那說明你的設置很有可能有問題,請添加阿銘微信獲取幫助。
雖然CentOS 8已經可以聯網,但阿銘覺得這還不夠,因為你還不會手動給CentOS 8設置IP地址。在日常的運維工作中,我們是需要手動給Linux系統設置IP地址的。下面阿銘教你如何手動設置。輸入如下命令:
# vi /etc/sysconfig/network-scripts/ifcfg-ens33
請大家注意,在Linux系統下,命令后面是需要帶空格的,這個命令里的vi
是一個用來編輯文本的命令,第7章會詳細介紹它。它后面先是一個空格(當然跟多個空格也沒錯),再是一個文件的存儲路徑。這個文件是網卡的配置文件,要想修改IP地址,就得編輯它。你的網卡配置文件的名字和阿銘的(ifcfg-ens33)可能不一樣,這個主要由你的網卡名字決定。按回車后,進入如圖2-33所示的界面。
圖2-33 網卡配置文件
進入網卡配置文件后,可以使用上、下、左、右方向鍵去移動光標,但不能直接修改文件內容。要想修改文件內容,需按字母I鍵。我們需要修改的內容有,將BOOTPROTO="dhcp"
改為BOOTPROTO="static"
,并增加如下幾行字符:
IPADDR=192.168.72.128
NETMASK=255.255.255.0
GATEWAY=192.168.72.2
DNS1=119.29.29.29
這里需要說明的是,BOOTPROTO
用于設置網卡的啟動類型,其值為dhcp
表示自動獲取IP地址,為static
表示手動設置靜態IP地址。添加字符中的IPADDR
指定IP地址(請不要設置和阿銘一樣的IP地址,因為你的IP地址取決于前面自動獲取到的地址),NETMASK
指定子網掩碼,GATEWAY
指定網關(這個網關就是剛剛阿銘讓大家記住的網關地址),DNS1
指定上網用的DNS IP地址,這個119.29.29.29是國內DNSpod公司提供的一個公共DNS IP地址。完成以上修改后,按一下Esc鍵,緊接著輸入“:wq”并按回車,退出剛才的網卡配置文檔。然后重啟網卡,運行如下兩條命令:
# nmcli c reload ens33
# nmcli d reapply ens33
其中,第一條命令的作用是重新加載網卡配置文件,但它并不會馬上生效,第二條命令的作用是使第一條命令馬上生效。然后查看一下IP地址:
# ip add
如果正確的話,你看到的結果依然如圖2-29所示。當然,還需要再測試一下網絡連通性,此時輸入如下命令進行測試:
# ping -c 4 www.aminglinux.com
2.3.3 學會使用快捷鍵
在日常運維管理工作中,快捷鍵可以大大提高我們的工作效率。在Linux系統中,常用的快捷鍵如下。
Ctrl+C:結束(終止)當前命令。假如你輸入了一大串字符,但不想運行,則可以按Ctrl+C組合鍵,此時光標將跳入下一行,而剛剛的光標處會留下一個
^C
的標記,如圖2-34所示。圖2-34 結束命令
Tab:實現自動補全功能。這個鍵比較重要,使用頻率也很高。當你輸入命令、文件或目錄的前幾個字符時,它會自動幫你補全。比如,前面阿銘教大家編輯網卡配置文件時的文件路徑很長,這時結合Tab鍵就會很輕松。
- Ctrl+D:退出當前終端。同樣,你也可以輸入命令
exit
實現該功能。 - Ctrl+Z:暫停當前進程。這和Ctrl+C是有區別的,暫停后,使用
fg
命令恢復該進程,該知識點會在第10章中介紹到。 - Ctrl+L:清屏,使光標移動到屏幕的第一行。當命令和顯示的結果占滿整個屏幕后,我們每再運行一個命令,都會顯示在最后一行,這樣看起來極不方便,此時就可以使用這個快捷鍵,讓光標移動到屏幕第一行,也就是所謂的清屏。
- Ctrl+A:可以讓光標移動到命令的最前面。有時候一條命令很長,快敲完時發現前面某個字母不對,此時可以直接用這個快捷鍵把光標定位到行首,然后再用左右方向鍵微調光標的位置。
- Ctrl+E:可以讓光標移動到命令的最后面,作用同上一個。
2.3.4 學會查詢幫助文檔——man
命令
man
命令用于查看命令的幫助文檔,其格式為“man [命令]
”。例如,輸入如下命令:
# man ls
就可以查看ls
命令的幫助文檔,如圖2-35所示。
圖2-35 man
命令
如果屏幕不能完整顯示整個幫助文檔,可以按空格鍵下翻,或者按上下方向鍵前后移動文本。若想退出幫助文檔,則按字母鍵Q。當然,要想看明白這個文檔,還需要有一定的英文閱讀能力。man
命令非常實用,尤其是對于初學者,在我們新學一個命令,總是記不住或記不清它的各個選項的用法時,隨手運行一下man
命令,就可以找到了,非常方便!同時,阿銘相信經常查看英文的文檔也會提升你的英文閱讀能力。
2.3.5 Linux系統目錄結構
登錄Linux系統后,在當前命令窗口下輸入如下命令:
# ls /
此時將會出現如圖2-36所示的界面。
圖2-36 列出根目錄
你的結果可能和阿銘的有所不同,不要緊,目前我們探討的不是差異,而是相同的地方。其中,ls
是list的縮寫,該命令用于列出指定目錄或者文件。/
是Linux操作系統里面最核心的一個目錄,所有的文件和目錄全部在它下面,所以稱它為“根目錄”。前面講磁盤分區時,阿銘也是單獨給它分了一個區的。大家要逐漸適應Linux系統的特性,畢竟它和Windows有太多的差異。
通過2.3.4節中提到的命令man ls
,可以了解ls
命令的具體用法。對于ls
這個最常用的命令,阿銘在這里舉幾個簡單的例子幫你快速掌握其用法:
# ls
anaconda-ks.cfg
# ls -a
. .. anaconda-ks.cfg .bash_logout .bash_profile .bashrc .cshrc .tcshrcy
# ls -l
總用量 4
-rw-------. 1 root root 1435 12月 26 08:10 anaconda-ks.cfg
# ls anaconda-ks.cfg
anaconda-ks.cfg
# ls /var/
adm crash empty games kerberos local log nis preserve spool yp
cache db ftp gopher lib lock mail opt run tmp
說明 其中以
#
開頭的行都是運行的命令,#
下面的內容是命令運行后的結果。你的結果可能和阿銘的有所不同,但不要緊,這是因為你的系統和阿銘的系統是存在一些差異的。如果有任何異議,請聯系阿銘獲取幫助。下面阿銘來講解一下以上幾個小案例的含義。
- 后面不加任何選項也不跟目錄名或者文件名:會列出當前目錄下的文件和目錄,不包含隱藏文件。
- 后面加
-a
選項、不加目錄名或者文件名:會列出當前目錄下所有文件和目錄,含有隱藏文件。- 后面加
-l
選項、不加目錄名或者文件名:會列出當前目錄下除隱藏文件外的所有文件和目錄的詳細信息,包含其權限、所屬主、所屬組以及文件創建日期和時間。- 后面不加選項、只跟文件名:會列出該文件,通常在使用時都會加上
-l
選項,以查看該文件的詳細信息。- 后面不加選項、只跟目錄名:會列出指定目錄下的文件和目錄。
其實,ls
命令的可用項還有很多,阿銘只是介紹了最常用的選項。因為在日常工作和學習中,這些已經足夠。如果實在遇到不懂的選項,可以用man
命令來查看幫助文檔。
下面我們接著來討論Linux的目錄結構。
- /bin:bin是Binary的縮寫,該目錄下存放的是最常用的命令。
- /boot:該目錄下存放的是啟動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件。
- /dev:dev是Device(設備)的縮寫。該目錄下存放的是Linux的外部設備。在Linux中,訪問設備的方式和訪問文件的方式是相同的。
- /etc:該目錄下存放的是所有系統管理所需要的配置文件和子目錄。
- /home:這是用戶的家目錄。在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的。
- /lib和/lib64:這兩個目錄下存放的是系統最基本的動態鏈接共享庫,其作用類似于Windows里的DLL文件,幾乎所有的應用程序都需要用到這些共享庫。其中 /lib64為64位的軟件包的庫文件所在目錄。
- /media:系統會自動識別一些設備(如U盤、光驅等),當識別后,Linux會把識別的設備掛載到該目錄下。
- /mnt:系統提供該目錄是為了讓用戶臨時掛載別的文件系統。我們可以將光驅掛載到 /mnt/ 上,然后進入該目錄查看光驅里的內容。
- /opt:這是給主機額外安裝軟件所設置的目錄,該目錄默認為空。比如,你要安裝一個Oracle數據庫,可以放到該目錄下。
/proc:該目錄是一個虛擬目錄,是系統內存的映射,可以直接訪問它來獲取系統信息。該目錄的內容在內存里,我們可以直接修改里面的某些文件。比如可以通過下面的命令來屏蔽主機的
ping
命令,使其他人無法ping
你的機器。在日常工作中,你會經常用到類似的用法:# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all`
- /root:該目錄是系統管理員的用戶家目錄。
- /run:這個目錄和/var/run其實是同一個目錄,里面存放的是一些服務的pid。一個服務啟動完后,是有一個pid文件的。至于為什么說是同一個目錄,Linux是如何做到的,4.9節會詳細介紹。
- /sbin:s就是Super User(超級用戶)的意思,該目錄存放的是系統管理員使用的系統管理程序。
- /srv:該目錄存放的是一些服務啟動之后需要提取的數據。
- /sys:該目錄存放的是與硬件驅動程序相關的信息。
- /tmp:該目錄用來存放一些臨時文件。
- /usr:這是一個非常重要的目錄,類似于Windows下的Program Files目錄,用戶的很多應用程序和文件存放在該目錄下。在后面的章節中,我們會多次用到這個目錄。
- /usr/bin:該目錄存放的是系統用戶使用的應用程序。
- /usr/sbin:該目錄存放的是Super User使用的比較高級的管理程序和系統守護程序。
- /usr/src :該目錄是內核源代碼的默認放置目錄。
- /var:該目錄存放的是不斷擴充且經常修改的目錄,包括各種日志文件或者pid文件,剛剛提到的/var/run就在這個目錄下面。
這些目錄中有幾個重要的需要大家注意,不要誤刪除或者隨意更改其內部文件。下面阿銘再簡單對它們總結一下。
- /etc目錄下是系統的配置文件,如果更改了該目錄下的某個文件,可能會導致系統無法正常啟動。
- /bin、/sbin、/usr/bin和/usr/sbin目錄是系統預設的執行文件的放置目錄,其中/bin和/usr/bin目錄下是供系統用戶(除root外的通用賬戶)使用的命令,而/sbin和/usr/sbin目錄下則是供root用戶使用的命令。比如,
ls
命令就存放在/bin/目錄下。 - /var也是一個非常重要的目錄,系統上運行各個程序時所產生的日志都被記錄在該目錄下(即/var/log目錄中)。另外,
mail
命令的預設也放置在這里。
2.3.6 如何正確關機、重啟
Linux主要用在服務器領域,而在服務器上執行一項服務是永無止境的,除非遇到特殊情況,否則不會關機。和Windows不同,在Linux系統下,很多進程是在后臺執行的。在屏幕背后,可能有很多人同時在工作。如果直接按下電源開關關機,其他人的數據可能就此中斷。更嚴重的是,若不正常關機,嚴重時可能會造成文件系統損壞,從而導致數據丟失。
如果要關機,必須要保證當前系統中沒有其他用戶在登錄系統。可以使用who
命令查看當前是否還有其他人在登錄,或者使用命令ps -aux
查看是否還有后臺進程在運行。shutdown
、halt
、poweroff
都為關機的命令,我們可以使用命令man shutdown
查看其幫助文檔。例如,可以運行如下命令關機(//
符號后面的內容為注釋):
# shutdown -h 10 // 計算機將在10分鐘后關機,且會顯示在登錄用戶的當前屏幕中
# shutdown -h now // 立即關機
# shutdown -h 20:25 // 系統會在20:25關機
# shutdown -h +10 // 10分鐘后關機
# shutdown -r now // 立即重啟
# shutdown -r +10 // 10分鐘后重啟
# reboot // 重啟,等同于shutdown -r now
# halt // 關閉系統,等同于shutdown -h now和poweroff
不管是重啟系統還是關閉系統,首先要運行sync
命令,該命令可以把當前內存中的數據寫入磁盤中,防止數據丟失。
再來總結一下,關機的命令有shutdown -h now
、halt
、poweroff
和init 0
,重啟系統的命令有shutdown -r now
、reboot
和init 6
。
2.3.7 忘記root密碼怎么辦
以前阿銘忘記了Windows的管理員密碼,當時不會用光盤清除密碼,最后只能重裝系統。現在想來那是多么愚笨的一件事情。同樣,如果你忘記了Linux系統的root密碼,該怎么辦呢?重新安裝系統嗎?當然不用!你只需要進入緊急模式(emergency mode)更改root密碼即可。在CentOS 6中,我們是進入單用戶模式修改root密碼的,但在CentOS 7和CentOS 8中已經沒有單用戶模式了,而是這個緊急模式,具體操作步驟如下。
重啟系統
按3秒鐘向下的方向鍵,目的是不讓它進入系統,而是停留在開機界面,如圖2-37所示。
圖2-37 開機界面
按方向鍵移動光標,定位在第一行,按字母E鍵編輯它,然后進入另外一個界面,此時會出來很多字符,這些是CentOS 8啟動選項,那么這些字符有什么用呢?我們暫時先放一放,不用太過關心。移動向下的方向鍵,把光標定位到linux開頭的行。
進入緊急模式
按向右的方向鍵,將光標移動到
ro
這里,把ro
改成rw init=/sysroot/bin/sh
,如圖2-38所示。圖2-38 修改
ro
然后同時按Ctrl和X這兩個鍵,系統就會進入如圖2-39所示的界面,這樣就正式進入了緊急模式。
圖2-39 緊急模式
修改root密碼
首先切換到原始系統,然后修改密碼,操作過程如圖2-40所示。
圖2-40 修改密碼
其中
chroot
命令用來切換系統,后面的 /sysroot目錄就是原始系統(也就是我們的CentOS 8系統),在這個下面才可以修改root密碼。passwd
命令就是修改root密碼的命令,5.3.1節還會介紹它。但運行命令后,返回的結果很奇怪,出現了很多小方塊,俗稱亂碼。其實這些小方塊本來是漢字,但是VMware并不支持中文。如果大家知道passwd
命令的用法,此時連續輸入兩次新密碼就可以了。但作為新用戶,第一次看到亂碼肯定會不知所措,請跟著阿銘一起輸入LANG=en
,這個命令就是把當前終端的語言設置為英文。再次運行passwd
命令,就可以正常顯示字符了。密碼雖然修改完了,但是還需要一個額外的操作,相關命令如下:
# touch /.autorelabel
注意,這個文件名字一定要寫對,否則修改的密碼將不能生效。執行這一步的作用是讓SELinux生效,如果不執行,則之前修改的密碼是不會生效的。也就是說,即使你之后輸對了密碼,也無法登錄系統。至于SELinux是什么,13.4.1節會詳細介紹。執行完
touch
命令后,同時按Ctrl和D這兩個鍵,再輸入命令reboot
,這樣系統會重啟,等待幾秒后,出現登錄界面,此時使用我們新設置的密碼登錄即可。
2.3.8 學會使用救援模式
救援模式即rescue模式,這個模式主要應用于無法進入系統的情況,比如grub損壞或者某一個配置文件修改出錯。那么,如何使用救援模式呢?具體的操作方法如下。
啟動光驅
首先檢查你的光驅是否是開機啟動。具體方法是把鼠標挪到VMware右下角的小光盤圖標處,單擊它,此時會出現兩個選項,選擇“設置”選項,會彈出“虛擬機設置”對話框,看一下右側的“設備狀態”,要保證這兩個對鉤都是打上的,如圖2-41所示。
圖2-41 設備狀態
但此時,重啟系統并不會進入光驅啟動界面,這還需要我們設置一個VMware的BIOS。由于VMware啟動很快,往往我們還沒有來得及按F2鍵(要進入BIOS,需要按F2鍵),它就已經進入系統的啟動界面了。這里有一個技巧,首先把CentOS 8關機,然后在VMware左側選中這臺虛擬機并右擊,從中選擇“電源”→“啟動時進入固件”,如圖2-42所示。
圖2-42 進入BIOS
進入BIOS后,按向右方向鍵,選擇Boot,然后按“-”或者“+”鍵調節各個啟動對象,其中有硬盤、光驅、網卡等,總之結果是要讓CD-ROM Drive在最前面,也就是讓它第一個啟動。最終的結果如圖2-43所示。
圖2-43 BIOS
設置完這步之后,直接按F10鍵保存設置并退出。
進入救援模式
隨后進入光驅啟動界面,使用上下方向鍵選擇Troubleshooting,如圖2-44所示。
圖2-44 選擇Troubleshooting
按回車后,又出現如圖2-45所示的界面,使用向下方向鍵選擇Rescue a CentOS Linux system。
圖2-45 選擇Rescue a CentOS Linux system
按回車后,會出現如圖2-46所示的界面。
圖2-46 救援選項
圖2-47中有一些提示,它告訴我們,初始系統在/mnt/sysimage目錄下面,其實這和上一節的/sysroot類似。這里有4個選項:選擇第1) 項,將會繼續往下走;選擇第2) 項,將會把初始的系統掛載為只讀模式,我們不能寫磁盤,也就意味著不能再修改配置文件,也不能修改root密碼;選擇第3) 項,會直接出現一個shell;而選擇第4) 項,則會重啟。
這里選擇第1) 項,所以輸入數字1并回車,如圖2-47所示。它又告訴我們:初始系統已經掛載到了 /mnt/sysimage目錄下面,要想進入初始系統下面,需要執行
chroot /mnt/sysimage
命令,請再次按回車獲取到shell。圖2-47 獲取shell
進入初始系統后,執行修改root密碼的命令
passwd
,如圖2-48所示。圖2-48 修改root密碼
其實,執行完
chroot
命令之后,會發現命令行的前后有一處變化,即原來的sh-4.4
變成了bash-4.4
,這就是因為環境變量發生了變化,第10章再討論這個知識點。當然,救援模式并非只有修改root密碼這么簡單的作用,我們還可以在救援模式下處理一些故障、修復數據等。要想退出救援模式,也很簡單,先使用Ctrl+D組合鍵退出原始系統,然后執行reboot
命令即可。但是重啟后你會發現,它進入的依然是光驅啟動界面。所以,我們還需要再設置一遍BIOS,讓硬盤第一個啟動。這里還有一種方法,設置VMware,關閉光驅即可。
2.4 課后習題
(1) 32位和64位操作系統有什么區別?什么時候安裝32位或64位操作系統?如何查看Linux系統是32位的還是64位的?
(2) swap分區的作用是什么?如何決定swap分區的大小?
(3) 查資料了解bootloader、grub的概念,并理解它們的作用。
(4) 如何在安裝系統時給grub設置密碼?
(5) 在安裝Linux時,你是如何分區的?
- 全屋互聯:智能家居系統開發指南
- Linux運維實戰:CentOS7.6操作系統從入門到精通
- Implementing Cisco UCS Solutions
- 網絡操作系統:Windows Server 2003管理與應用
- Arch Linux Environment Setup How-to
- 蘋果電腦玩全攻略 OS X 10.8 Mountain Lion
- Instant Handlebars.js
- Windows Phone 8 Application Development Essentials
- INSTANT Galleria Howto
- Distributed Computing with Go
- Linux網絡配置與安全管理
- Advanced Infrastructure Penetration Testing
- Linux系統安全:縱深防御、安全掃描與入侵檢測
- 15分鐘!畫出我的漫畫角色:賣萌篇
- Gradle Effective Implementations Guide(Second Edition)