1. 程式人生 > 其它 >linux作業系統啟動流程及xshell相關

linux作業系統啟動流程及xshell相關

一、xshell

什麼是xshell?

xshell是一個遠端登入客戶端程式,對應的服務端程式是openssh-server(預設埠22)
套接字客戶端----網路----套接字服務端
xshell  openssh-server

為何要用xshell?

mac: iTerm2
   開啟命令列終端
   ssh root@伺服器的ip地址
windows: xshell
   緩衝區設定:控制內容顯示
   上下翻頁
   shift+paUp
   shift+PaDn

 

遠端連線失敗排錯

測試網路連通性:ping 服務端ip地址
關閉防火牆
  systemctl stop firewalld
  systemctl disable firewalld

關閉Selinux
setenforce 0   # 臨時關閉,載入不生效
setenforce 1   # 開啟,載入並生效
vim /etc/sysconfig/selinux中修改相關配置
修改SELINUX=disabled

檢視Selinux
getenforce

systemctl start sshd # 開啟ssh-server服務端

systemctl start network

 

二、作業系統的啟動流程

# 1 加電
# 2 啟動BIOS,檢測啟動專案
# 3 讀取啟動盤第一個扇區512bytes,包含MBR主引導記錄(466載入程式bootloader->grub, 64分割槽資訊,2結束標誌)
# 4 grub啟動
# 5 載入核心
讀取執行級別
0 --> 關機
1 --> 單使用者模式,不需要輸入賬號密碼登入進作業系統後就是管理員賬號,禁止遠端登陸,破解管理員密碼
2 --> 多使用者模式,沒有網路
3 --> 多使用者模式,有網路
5 --> 圖形介面模式
4 --> 系統保留的
6 --> 重啟
檢視啟動級別
/etc/systemd/system/default.target

sentos7啟動的第一個程式 ---> systemd
sentos6氣動的第一個程式 ---> init

啟動其他服務

系統密碼破解

# 1 開機進去之後3秒內按下e鍵進入到下面的第二張圖
# 2 按照第二張圖中修改,改完按ctrl+x
# 3 進去以後到第三張圖執行如下命令
chroot /sysroot/
   passwd root  # 這條命令輸完回車輸入密碼-->在回車輸入密碼
# 4 修改配置檔案,輸入vim /etc/sysconfig/selinux
把SELINUX=enforcing修改成 ---> SELINUX=disabled
# 5 重啟  

grub加密

sentos7.2+ 中引入了新的實用程式“grub2-setpassword"

1 執行grub2-setpassword命令
   # grub2-setpassword
   Enter password:
   Confirm password:
2 如果現在重新啟動系統並嘗試修改引導條目,系統將要求提供憑據,但是可以在沒有憑據的情況下修改引導條目。為了阻止未經授權的修改和未經授權的啟動,我們需要對/boot/grub2/grub.cfg檔案進行更改。開啟檔案並使用密碼搜尋需要保護的啟動條目,它以menuentry開頭。找到條目後,從中刪除 --unrestricted引數
3 reboot重啟驗證,只有當輸入正確的使用者名稱和密碼時,才能進入grub選單或者修改引導條目。

光碟修復修改密碼

# 1 重啟或開機的時候一直按f2進入BIOS介面,進入Boot把CD-ROM Drive調到第一項,然後按f10儲存退出
# 2 進入圖二,選Troubleshooting
# 3 進入圖三,選Rescue a CentOS system
# 4 進入圖四,選1)Continue
# 5 到了圖五,按回車即可
# 6 按照圖六提示操作
# 7 修改啟動項,改完之後重啟計算機

ps:
   sh-4.2# 這個是光盤裡面的目錄
   bash-4.2# 這個是真正系統的目錄
   當我們想重啟的時候應該退出到sh-4.2# 這個目錄

ps:
   進入光碟修復模式還可以修改grub密碼
   grub2-setpassword
   vim /boot/grub2/grub.cfg加上--unrestricted跟grub加密相反

給BIOS加密

# 按下圖設定

跨過BIOS加密

# 扣主機板電池

防扣主機板電池

# 鎖住主機板機櫃

 

三、系統命令

1 什麼是系統命令

shell直譯器對系統介面封裝的結果
	系統命令/shell命令 --> shell直譯器 --> 系統介面 --> 核心 --> 硬體
    應用程式 --> 系統命令/shell命令 --> shell直譯器 --> 系統介面 --> 核心 --> 硬體
    應用程式 --> 系統介面 --> 核心 --> 硬體

2 為何要用系統命令

更加方便的使用計算機

3 補充:什麼是shell

# 第一層意思
    shell代表的是直譯器,是對系統介面的封裝
    shell只是一種稱呼,而bash直譯器才是具體的一種shell

# 第二層意思
	shell這門程式語言(本質是一堆命令)
    用shell語言寫出來的檔案通常稱之為指令碼程式

4 posix

posix(Portable Operation System Interface),linux系統支援poxis,全稱是可移植的作業系統介面,posix是一種規範

 

5 shell互動式環境

#號代表管理員使用者,$號程式碼普通使用者
~號代表當前使用者的個人資料夾,家目錄

# 新建使用者
	useradd jingxian
    
# 用互動式修改密碼
    passwd jingxian  # 回車,輸入密碼和確認密碼即可
    
# 用非互動式修改密碼
	echo "123" | passwd egon --stdin

ps: 一條命令的執行相當於運行了一個程序,程序執行過程產生的結果或資料放到了記憶體中,程序之前彼此隔離。由於程序之前彼此隔離,要想兩個程序之前互動資料,這時用到了管道,管道的意思本質就是共享記憶體。

6 shell命令的語法格式

命令:就是一個單詞,對應著一個功能/程式,執行一條命令其實就是啟動了一個程序
選項:對命令的描述,控制著命令的具體執行
引數:命令的操作物件

ps: 硬碟知識補充
    硬碟 --> 水桶
    分割槽 --> 水桶的隔斷
    掛載點 --> 某一個具體的隔斷

ls				# 命令
ls -l			# 命令+選項
ls /boot/		# 命令+引數
ls -l /boot/	# 命令+選項+引數
# 類似於你在下發命令:你面前有一個逃兵,你下命令 --> 用刀殺了他 ---> 其中“殺”相當於命令,“用刀”相當於選項,“他”相當於引數 

1