1 Linux的相關概念 html
1.1 什麼是操做系統?linux
操做系統(英語:operating system,縮寫:OS)是管理計算機硬件與軟件資源的計算機程序,同時也是計算機系統的內核與基石。操做系統須要處理如管理與配置內存、決定系統資源供需的優先次序、控制輸入與輸出設備、操做網絡與管理文件系統等基本事務。操做系統也提供一個讓用戶與系統交互的操做界面。shell
1.2 操做系統的分類ubuntu
Windows、Linux、Unixvim
1.3 Unix及其衍生(可參考<<浪潮之巔>>)centos
1.4 Linux是什麼?(有興趣能夠看Linus Torvalds的傳記,中文名<<只是爲了好玩>>)服務器
Linux是一種自由和開放源代碼的類UNIX操做系統,該操做系統的內核由林納斯·託瓦茲在1991年10月5日首次發佈。在加上用戶空間的應用程序以後,成爲Linux操做系統。網絡
內核官網:https://www.kernel.org/session
譚邦寧教授:minix(微內核)ssh
Linux的幾大派系
Debian系----ubuntu(deb包管理方式)
Redhat系----fedora, Centos(rpm包管理方式)
1.5 GNU、自由軟件、開源、自由軟件、GPL許可證和基金會(FSF)
GNU(GNU is no Unix)GNU於1983年由Richard Stallman(rms)發起,意在爲全部軟件用戶可以自由控制本身的計算而構建一款由你們共同努力開發而成的操做系統。rms今天仍然是GNU的首席搞事者。
GNU的基本目標和一向目標是提供一個和Unix兼容的100% 自由軟件的操做系統。不是95%、也不是99.5%、而是100%自由。這個系統的名字叫GNU,是GNU's Not Unix的首字母遞歸縮寫—這是對Unix的技術思想致敬的一種方法,同時表達GNU有所不一樣。從技術上說,GNU很像Unix。可是它不一樣於Unix,GNU給予其用戶自由。
"自由軟件"尊重用戶的自由,而且尊重整個社區。粗略來說,一個軟件若是是自由軟件,這意味着用戶能夠自由地運行,拷貝,分發,學習,修改並改進該軟件。所以,"自由軟件"是關乎自由的問題,與價格無關,軟件如何訂價並不影響它是否被歸類爲自由軟件。而Free Software中的Free是指"自由言論"中的自由,而非"免費"這一意項。爲避免歧義,在使用英文時,咱們也會借用法語或西班牙語的"Libre Software"來指自由軟件。
開源軟件(英語:open source software,英文縮寫:OSS,中文也稱:開放源代碼軟件)是一種源代碼能夠任意獲取的計算機軟件,這種軟件的版權持有人在軟件協議的規定之下保留一部分權利並容許用戶學習、修改、增進提升這款軟件的質量。開源協議一般匹配開放源代碼的定義的要求。一些開源軟件被髮布到公有領域。開源軟件常被公開和合做地開發。開源軟件是開放源代碼開發的最多見的例子,也常常與用戶生成內容作比較[1]。 開源軟件的英文"open-source software"一詞出自自由軟件的營銷活動中。
GNU通用公共許可協議(英語:GNU General Public License,簡稱 GNU GPL、GPL)是普遍使用的免費軟件許可證,能夠保證終端用戶得自由運行,學習,共享和修改軟件。許可證最初由GNU項目的自由軟件基金會 (FSF)的理查德·斯托曼(Richard Matthew Stallman)撰寫,並授予計算機程序的收件人自由軟件定義的權利。 GPL是一個Copyleft許可證,這意味着派生做品只能以相同的許可條款分發。 這與許可免費軟件許可證有所區別 ,其中BSD許可證和MIT許可證是普遍使用的示例。 GPL是第一個廣泛使用的Copyleft許可證。
自由軟件基金會(英語:Free Software Foundation,FSF)是一個致力於推廣自由軟件的美國民間非營利性組織。它於1985年10月由理查德·斯托曼創建。其主要工做是運行GNU計劃,開發更多的自由軟件。
2 虛擬機
實驗環境的搭建
環境:Centos7.4+Vmware Worksation12
終端:Xshell
阿里雲鏡像站:https://opsx.alibaba.com/mirror
Centos歷史鏡像:http://vault.centos.org/
共享資源站:r.aminglinux.com
Centos7.aminglinux.com
操做系統安裝過程(略)
注意點:
a 選擇Centos64位
b 網絡模式選NAT或橋接
c 分區方案
自定義分區
分區 /boot 200M
Swap 不超過8G, 小於8G內存的2倍
剩餘:/
d 軟件包選擇
最小化安裝(把開發工具裝上)
e 系統安裝完成後必定要作快照,如需多臺虛擬機,能夠經過克隆連接方式實現
3 配置網絡
a 圖形化方式修改nmtui
b修改配置文件方式
[root@bogon ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens32"
UUID="f78a6b73-f367-498a-b3ee-47f6b29ceab4"
DEVICE="ens32"
ONBOOT="yes"
IPADDR="192.168.1.211"
PREFIX="24"
GATEWAY="192.168.1.1"
DNS1="8.8.8.8"
DNS2="223.5.5.5"
"/etc/sysconfig/network-scripts/ifcfg-ens32" 21L, 419C
修改後wq保存,重啓網絡服務
[root@bogon ~]# systemctl restart network.service
終端快捷鍵(emac編輯模式set -o | grep emac查看是emac模式)
CTRL-C 中斷(有時是delete或者del)
CTRL-Z 暫停(放入後臺執行)
CTRL-I 清屏,至關於clear
CTRL-D 退出終端
CTRL-S 鎖定終端
CTRL-Q 解鎖終端
CTRL-B 左移光標
CTRL-F 右移光標
CTRL-P 查看上一條命令(或上移光標)
CTRL-N 查看下一條命令(或下移光標)
CTRL-A 移動光標至行首
CTRL-E 移動光標至行尾
CTRL-W 刪除前一個詞
CTRL-U 刪除從光標至行首的內容
CTRL-K 刪除光標至行尾的內容
CTRL-Y 粘貼已刪除的文本(例如ctrl-u刪除的內容)
CTRL-H 刪除字符
M-b 向左移動一個單詞(先按esc鍵,再按b鍵)
M-f 向右移動一個單詞(先按esc鍵,再按f鍵)
tab 命令補全,沒事多按tab鍵
4 遠程登陸
a 使用PuTTY遠程鏈接Linux
putty下載(下載完整綠色包)
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
調緩衝區大小(調到最大)
調語言爲utf-8
調日誌記錄
調整完之後記得保存session
b 使用xshell鏈接Linux
c PuTTY密鑰認證
/root/.ssh/ 權限700
/root/.ssh/authorized_keys 權限600
將公鑰內容複製到authorized_keys文件,保存
[root@bogon ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config
驗證
d xshell密鑰認證
1. 進入用戶密鑰生成嚮導
2 生成密鑰對
3 在Linux服務器上新建.ssh目錄和authorized文件(以root用戶例)
/root/.ssh/ 權限700
/root/.ssh/authorized_keys 權限600
將公鑰內容複製到authorized_keys文件,保存
4 關閉selinux
[root@bogon ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config
5 配置xshell使用證書
e Linux機器相互登陸
1 生成密鑰對
2 後續步驟與putty/xshell和xshell的密鑰登陸一致,參考上述putty或shell的密鑰登陸。
簡述以下
在須要訪問的Linux服務器上(以root用戶登陸爲例)新建.ssh目錄和authorized文件
/root/.ssh/ 權限700
/root/.ssh/authorized_keys 權限600
將公鑰內容複製到authorized_keys文件,保存
3 關閉selinux
[root@bogon ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config
4 經過ssh username@ip_addr 方式鏈接
注意:若是須要使用密鑰登陸,須要登陸的每一個用戶都須要單獨作公鑰上傳動做。好比你想使用xxx用戶名登陸,就須要在該用戶家目錄下創建.ssh目錄和authorized_keys。上傳公鑰。
5 運行級別的概念
實際上Centos7以上的版本已經沒有了運行級別的概念。init程序已經由原來的sysinit方式改變爲systemd。
轉而用target的概念,運行級的說法只是爲了向前兼容。
systemctl基礎用法
a 列出服務列表
[root@bogon ~]# systemctl list-units --type=service
UNIT LOAD ACTIVE SUB DESCRIPTION
abrt-ccpp.service loaded active exited Install ABRT coredump hook
abrt-oops.service loaded active running ABRT kernel log watcher
abrtd.service loaded active running ABRT Automated Bug Reporting Tool
auditd.service loaded active running Security Auditing Service
chronyd.service loaded active running NTP client/server
crond.service loaded active running Command Scheduler
……
b 啓動服務(以網絡服務爲例)
[root@bogon ~]# systemctl restart network.service
c 中止服務
[root@bogon ~]# systemctl stop network.service
d 重啓服務
[root@bogon ~]# systemctl restart network.service
e 默認啓動級別
[root@bogon ~]# systemctl get-default
multi-user.target
Centos7中的運行級
[root@bogon ~]# ls -l /usr/lib/systemd/system/runlevel*.target
lrwxrwxrwx. 1 root root 15 Apr 20 23:18 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 Apr 20 23:18 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 Apr 20 23:18 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Apr 20 23:18 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Apr 20 23:18 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 Apr 20 23:18 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 Apr 20 23:18 /usr/lib/systemd/system/runlevel6.target -> reboot.target
其餘有須要參考man 1 systemd
有用連接:
https://www.ibm.com/developerworks/cn/linux/1407_liuming_init3/index.html
6 單用戶模式
將下圖紅色圓圈部分修改成:rw init=/sysroot/bin/sh , 而後執行ctrl+x 啓動
修改密碼
更新selinux信息
exit退出chroot, reboot重啓
7 設置grub密碼
a 生成密鑰
b 編輯/boot/gurb2/grub.cfg
c 保存,退出
d 重啓驗證
進入單用戶模式須要密碼,說明配置成功
8 光盤救援模式
修改成光盤啓動模式
改完密碼之後,執行exit退出chroot
而後重啓從新進入系統。
擴展連接:
http://www.javashuo.com/article/p-podsaqcr-m.html
http://blog.51cto.com/13055758/2086322
參考連接
https://commons.wikimedia.org/wiki/File:Unix_history-simple.svg
https://www.gnu.org/gnu/about-gnu.html
https://zh.wikipedia.org/wiki/%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6