Linux 登錄、註銷與關機

来源:https://www.cnblogs.com/alightpeng/archive/2019/07/26/11251623.html
-Advertisement-
Play Games

Linux 登錄、註銷與關機 這裡主要學習的是命令行環境下的相關操作。 一、登錄 Linux 預設的情況下會提供六個終端來讓用戶登錄,切換的方式為使用:【Ctrl + Alt + F1 ~ F6】的組合鍵。系統會將 [F1] ~ [F6] 命名為 tty1 ~ tty6 的操作介面環境。 也就是說, ...


Linux 登錄、註銷與關機

這裡主要學習的是命令行環境下的相關操作。

一、登錄

Linux 預設的情況下會提供六個終端來讓用戶登錄,切換的方式為使用:【Ctrl + Alt + F1 ~ F6】的組合鍵。系統會將 [F1] ~ [F6] 命名為 tty1 ~ tty6 的操作介面環境。

也就是說,當你按下 【Ctrl + Alt + F1】時,就會進入到 tty1 的終端界面中,同樣的 [F2] 就是 tty2。

tty 是 Teletype 的縮寫。Teletype 是最早出現的一種終端設備,類似電傳打字機,是由 Teletype 公司生產的。

在 CentOS 7 環境下,當啟動完成後,預設系統只會提供給你一個 tty。因此,無論是命令行界面還是圖形界面,都會出現在 tty1。tty2 ~ tty6 一開始是不存在的,當你使用上面的組合鍵進行切換時,系統才會產生相應的終端界面。

命令行模式下的登錄界面像下麵這樣:

CentOS Linux 7 (Core)
Kernel 3.10.0-957.21.3.el7.x86_64 on an x86_64
centos7 login: alight
Password:
Last login: Thu Jul 25 11:45:30 on tty1
[alight@centos7 ~]$ 

上面顯示內容的具體含義是這樣的:

  1. CentOS Linux 7 (Core)

    Linux 發行版的名稱(CentOS)與版本(7)。

  2. Kernel 3.10.0-957.21.3.el7.x86_64 on an x86_64

    Linux 內核的版本為 3.10.0-957.21.3.el7.x86_64,且目前這台主機的硬體架構為 x86_64

  3. centos7 login:

    其中,centos7 是你的主機名,是在安裝系統時進行設置的。而 login: 則是一個可以讓我們登錄的提示符,你可以在 login: 後面輸入你的賬號。這裡我輸入的是自己的賬號 alight。你也可以使用 root 賬號進行登錄,但由於 root 賬號在 Linux 系統下代表無窮的許可權,所以儘量不要使用 root 賬號登錄。

  4. Password:

    這是一個讓我們輸入密碼的提示符。請註意,輸入密碼的時候,屏幕上不會顯示任何輸入或代表輸入的字元,所以不要以為你的鍵盤壞掉了。

  5. Last login: Thu Jul 25 11:45:30 on tty1

    當用戶登錄系統後,系統會列出上一次這個賬號登錄系統的時間與終端名稱。建議還是看看這個信息,是否真的是自己的登錄。

  6. [alight@centos7 ~]$

    這一行是用戶正確登錄後才會顯示的信息。最左邊的 alight 顯示的是目前用戶的賬號,而 @ 之後接的 centos7 是主機名,~ 則指的是目前所在的目錄,最右邊的 $ 則是提示字元。

    ~ 符號代表的是 “用戶的家目錄” 的意思,它是個變數。舉例來說,root 的家目錄在 /root, 則 ~ 就代表 /root 的意思。而 alight 的家目錄在 /home/alight,所以如果以 alight 賬號登錄時,此時看到的 ~ 就相當於 /home/alight

    在 Linux 中,預設 root 的提示字元是 #,而一般身份用戶的提示字元為 $

以上就是 Linux 系統的登錄,再次強調在 Linux 系統下最好使用一般賬號登錄。因為系統管理員賬號 root 具有無窮大的許可權,例如它可以刪除任何一個文件或目錄。

因此,系統管理人員通常都會具有兩個賬號,平時以自己的一般賬號來使用主機的資源,在需要用到系統功能設置時,才切換到 root 身份。

二、註銷

註銷 Linux(離開系統)其實很簡單,直接輸入 exit 命令即可:

[alight@centos7 ~]$ exit

請註意:註銷並不是關機。基本上,Linux 本身已經有相當多的任務在進行,登錄也只是其中的一個任務而已,所以當你註銷(離開)時,這次登錄的任務就停止了,而其他的任務還在繼續進行中。

三、關機

在 Linux 系統下,由於每個程式(或者說是服務)都是在後臺執行。因此,在你看不到的屏幕後面其實可能有相當多人同時在你的主機上面工作,如果你直接按下電源開關來關機時,則其他人的數據可能就此中斷。

此外,最大的問題是,若不正常關機,還有可能造成文件系統的損毀(因為來不及將數據回寫到文件中,所以有些服務的文件會有問題)。所以正常情況下,要關機時需要註意以下幾個方面。

  • 觀察系統的使用狀態

    如果要查看目前有誰線上,可以執行 who 這個命令;如果要看網路的聯機狀態,可以執行 netstat -a 這個命令;如果要看後臺執行的程式可以執行 ps -aux 這個命令,使用這此命令可以讓你稍微瞭解主機目前的使用狀態,進而可以讓你判斷是否可以關機。

  • 通知線上用戶關機的時刻

    要關機前總得給線上的用戶一些時間來結束它們的工作,所以,這個時候你可以使用 shutdown 命令來達到此目的。

  • 正確關機命令的使用

    例如 shutdownreboot 兩個命令。

  • 將數據同步寫入硬碟中的命令:sync

  • 常用的關機命令:shutdown

  • 重新啟動,關機:reboothaltpoweroff

由於 Linux 系統的關機或重新啟動是很重大的系統操作,因此只有 root 才能夠執行例如 shutdownreboot 等命令。不過在某些發行版中,例如 CentOS 系統,它允許你在本機前的 tty1 ~ tty6 中,可以用一般賬號來關機或重新啟動,但某些發行版需要你輸入 root 的密碼。

數據同步寫入磁碟:sync

在電腦運行時,所有的數據都得要讀入會記憶體後才能夠被 CPU 處理,而數據又常常需要由記憶體寫回硬碟當中(例如保存的操作)。由於硬碟的速度太慢(相對於記憶體來說),如果常常讓數據在記憶體與硬碟中來回寫入或讀出,系統的性能就不會太好。

因此在 Linux 系統中,為了加快數據的讀取速度,在預設的情況下,某些已經載入到記憶體中的數據將不會直接被寫回硬碟,而是先暫存在記憶體當中。這樣一來,如果一個數據被重覆改寫,由於它尚未被寫入硬碟,因此可以直接由記憶體當中讀取出來,在速度上一定是快很多的。

但是,萬一你的系統因為某些情況造成不正常關機時,由於數據尚未被寫入硬碟當中,所以就會造成數據的更新不正常。這個時候就需要 sync 這個命令來進行數據的寫入操作。直接在命令行模式下輸入 sync,則在記憶體中尚未被更新的數據,就會寫入硬碟中。所以,在系統關機或重新啟動之前,最好多執行幾次這個命令。

[alight@centos7 ~]$ su -
Password:
Last login: Sat Jul 20 15:08:30 CST 2019 on pts/0
[root@centos7 ~]$ sync

su - 這個命令可以切換到 root 身份,需要輸入密碼。

sync 也可以被一般賬號使用,只不過一般賬號更新的硬碟數據就只有自己的數據,而 root 可以更新整個系統中的數據。

常用的關機命令:shutdown

我們關機時經常使用的是 shutdown 這個命令,而這個命令會通知系統內的各個進程(processes),並且將通知系統中的一些服務來關閉。shutdown 可以完成如下的工作:

  • 可以自由選擇關機模式:關機或重啟。
  • 可以設置關機時間:可設置成立刻關機,也可設置某一個特定的時間才關機。
  • 可以自定義關機信息:在關機之前,可以將自己設置的信息發送給線上用戶。
  • 可以僅發出警告信息:有時可能要進行一些測試,而不想讓其他的用戶干擾,或是明確地告訴用戶某段時間要註意一下,這時可以使用 shutdown 來嚇一嚇用戶,但卻不是真的要關機。

shutdown 簡單的語法規則如下:

shutdown [-krhc] [TIME] [WALL]

選項與參數:
-k  : 不是真的關機,只是發送警告信息出去。
-r  : 在將系統的服務停掉之後就重新啟動(常用)。
-h  : 將系統的服務停掉後,立即關機(常用)。
-c  : 取消已經在進行的 shutdown 命令內容。
TIME: 指定系統關機的時間。若沒指定,則預設 1 分鐘後自動進行。
WALL: 要發送的警告信息。
[root@centos7 ~]# shutdown -h 10 'I will shutdown after 10 mins'
Shutdown scheduled for Fri 2019-07-26 16:34:21 CST, use 'shutdown -c' to cancel.
[root@centos7 ~]# 
Broadcast message from root@centos7 (Fri 2019-07-26 16:24:21 CST):

I will shutdown after 10 mins
The system is going down for power-off at Fri 2019-07-26 16:34:21 CST!

在執行 shutdown 之後,系統告訴大家,這台機器會在十分鐘後關機,並且會將信息顯示在目前登錄者的屏幕上。你可以輸入 shutdown -c 來取消這次的關機命令。下麵提供幾個常見的時間參數進行參考。

[root@centos7 ~]# shutdown -h now
立即關機,其中 now 相當於時間為 0 的狀態。
[root@centos7 ~]# shutdown -h 20:25
系統在今天的 20:25 關機,若在 20:26 才執行此命令,則明天的 20:25 才關機。
[root@centos7 ~]# shutdown -h +10
系統十分鐘後關機。
[root@centos7 ~]# shutdown -r now
系統立即重新啟動。
[root@centos7 ~]# shutdown -r +30 'The system will reboot'
系統三十分鐘後重新啟動,並顯示後面的信息給所有線上的使用者。
[root@centos7 ~]# shutdown -k now 'This system will reboot'
僅發出警告信息,系統並不會關機。

重新啟動,關機:reboothaltpoweroff

[root@centos7 ~]# sync; sync; sync; reboot
重新啟動。雖然目前的 shutdow、reboot、halt 等命令都已經在關機前進行了 sync 這個程式的調用,不過多做幾次總是比較放心點。
[root@centos7 ~]# halt
系統停止,屏幕可能會保留系統已經停止的信息。
[root@centos7 ~]# poweroff
系統關機,所以沒有提供額外的電力,屏幕空白。

更多 haltpoweroff 的選項功能,請務必使用 man 去查詢一下。

實際使用管理工具 systemctl 關機

目前系統中所有服務的管理是使用 systemctl 這個命令。這個命令相當複雜,這裡只學習與關機有關的部分。

請註意,上述 haltpoweroffrebootshutdown 等,其實都是調用 systemctl 這個命令。這個命令與關機有關的語法如下:

systemctl [命令]

命令包括:
halt        進入系統停止模式,屏幕可能會保留一些信息。
poweroff    進入系統關機模式,直接關機。
reboot      直接重新啟動。
shutdown    進入休眠模式。
[root@centos7 ~]# systemctl reboot
系統重新啟動。
[root@centos7 ~]# systemctl poweroff
系統關機。

學習參考資料:

《鳥哥的 Linux 私房菜 - 基礎學習篇(第四版)》第 4 章


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在C#中的Datatable數據變數的操作過程中,有時候我們需要往現有的DataTable中新增一個自定義數據列,該列在原有的DataTable變數中並不存在,屬於用戶手工自定義新增的數據列,在往DataTable變數中新增數據列有時候還可能需要指定新增的位置,例如新增到DataTable變數中的第 ...
  • 在C#中的Datatable數據變數的操作過程中,有時候我們需要遍歷DataTable變數獲取每一行的數據值,例如將DataTable變數轉換為List集合的時候,我們就會遍歷DataTable變數,遍歷DataTable變數獲取到每一行的DataRow對象,通過DataRow對象我們可以獲取到對應 ...
  • shell從廣義上分為兩類: GUI:GNOME KDE XFACE等 CLI:sh csh bash shell啟動:當用戶登錄完成後,系統會自動啟動shelll程式 進程:應用程式的副本,用PID區分(在系統中,進程只認為自己存在) root student用戶 shell:父shell程式和子 ...
  • [toc] linux定時任務 計劃任務時間管理 crontab配置文件解析 crontab命令選項 | 參數 | 含義 | | | | | e | 編輯定時任務 | | l | 查看定時任務 | | r | 刪除定時任務 | | u | 指定其他用戶 | 計劃任務編寫實踐 使用root用戶每5分鐘 ...
  • 問題現象 mac蓋上蓋子喚醒或者里臨時拔出數據線,再重新連接之後,經常出現下麵問題: 1. 【系統偏好設置】 【顯示器】仍可以識別外接顯示器; 2. 外接顯示器會提示無信號輸入 解決方法 方法一 通過【系統偏好設置】 【顯示器】 【排列】,勾選【鏡像顯示器】,外接顯示器就可以恢復正常。如果是斷開數據 ...
  • 命令歷史 以:和/開頭的命令都有歷史紀錄,可以首先鍵入:或/然後按上下箭頭來選擇某個歷史命令。 啟動vim 在命令行視窗中輸入以下命令即可 vim 直接啟動vim(直接打開的話,在有內容的情況下,在退出的時候保存的時要有文件名) vim filename 打開vim並創建名為 filename 的文 ...
  • 簡介 本文講述的是調教 Helm 3 和 harbor 1.6+ 的經驗,從 helm2 更新到 helm 3 並且將 charts 推送到 harbor 中進行存儲,移除了原先的 helm serve,在講述怎麼操作之前先來看一下Helm 3 和 Harbor 1.6+ 的新特性。 Helm 3 ...
  • 總結起來,基本都是ctrl+w然後加上某一個按鍵字母,觸發一個功能。 (1)在shell里打開幾個文件並且分屏: vim -On file1 file2 ... vim -on file1 file2 ... 大O表示垂直分割(vertical),小o表示水平分割(預設horizontal),後... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...