計算機是現代社會人類必不可少的工具,計算機知識也是未來人類不可或缺的基本生存技能。本篇博客將簡要介紹計算機的基本構成,以及linux操作系統的一些入門知識。
1.計算機的組成及公用
馮.諾依曼教授提出現代計算機由5大系統構成:控制器、運算器、器、輸入設備和輸出設備。經過近百年的發展,雖然各類計算機層出不窮,但大多計算機仍是馮.諾依曼計算機的組織結構,只是作了一些改進而已,并沒有從根本上突破馮體系結構的束縛。
- 控制器:由其控制計算機完成各種計算、存儲、顯示等功能。
- 運算器:根據控制器的指令,從存儲器讀取計算程序和數據,完成計算,并將結果送給存儲器存儲或輸出設備
- 存儲器:用于存儲計算機運行的各類指令和數據,包括高速寄存器、內存等。
- 輸入、輸出設備:它們是計算機與人類或其他設備的交互接口,通過輸入輸出設備,可將程序和數據傳給計算機,或將計算機內存儲的數據或計算結果傳遞給其他設備。
2.linux發行版相關知識
Linux是一個開源的操作系統內核。所謂開源就是指任何人在遵守一定的規則下,可以對其進行修改和開發。所謂操作系統內核,是指操作系統中的核心部分,提供了操作系統的基本功能。其和發行版之間的關系可以這樣理解:內核相當于一個毛坯房子,而各類發行版可以認為是在毛坯房子上裝修好的房子。毛坯房子只有一種,但不同人對房子的功能和審美有不同的需求,也就導致了有各種發行版的存在。
Linux目前主要有三大系列的發行版本:
- Debian。Debian誕生與linux發布后的1993年,基于Debian的發行版目前已經發展成為一個龐大的家族。著名的發行版是Ubuntu。自從國內強制規定計算機出廠時必須帶操作系統,好多廠商就自帶Ubuntu這個免費的系統。還有一個著名的發行版Kali linux,基于Blacktrack開發,它是一個專業的滲透測試和安全審計工具。被網友廣泛提及的應用就是用其破解Wifi密碼,進行蹭網。還有一個國內的發行版,深度(Deepin)。其前身 Hiweed Linux 是中國第一個基于 Debian的本地化衍生版,它包含有許多自行開發的特色軟件,如:深度軟件中心、深度截圖、深度音樂播放器和深度影音等,在軟件中心中,也有很多符合國人使用習慣的軟件:wps、騰訊通、qt開發環境、pdf工具等,如果用于日常辦公,基本可以滿足需求,上手使用也是比較容易的。
- RedHat。國人稱其為“紅帽”。紅帽是一家商業公司開發的linux發行版,主要的發行版是RHEL(紅帽企業版linux,服務器版),以及fedora(桌面版)。還有一個基于RHEL編譯的免費版本:Centos(community enterprise operate system社區企業版操作系統),這也是眾多企業在生產環境中使用的版本,也是運維工程師經常遇到的版本之一。
- Slackware。相比與Debian和RedHat而言,Slackware就有些薄弱了,其自身發布后,并沒有多大的發展,反而是基于Slackware的二次發行版S.u.S.E發展的枝繁葉茂,這其中就包括Opensuse等。
- 其它。主要有Gentoo,Arch等。還有一個分支,就是現在廣泛應用與移動終端的Android,大量應用于手機、平板電腦、智能電視、電視盒等設備。
具體的Linux發行版本可參考linux Distribution Timeline(https://en.wikipedia.org/wiki/File:Linux_Distribution_Timeline.svg)
3.linux的哲學思想
Linux的哲學思想,可以認為是linux設計開發的基本遵循和基本要求,主要體現在四個方面:
- 一切皆文件。起初聽說一切皆文件這句話,感覺有些蒙。數據在計算機上本來就是以文件的形式存在,而所謂的一切又指的什么?老師講目錄也是文件,也勉強能理解,區別于windows的文件夾,而其將硬件也抽象為文件,確實在一開始難以理解。但在應用中,當你需要使用光盤或者新增加硬盤時,就能對一切皆文件有深一層的認識。在windows中,使用光驅,直接雙擊就可以,而linux中,光驅需要一個設備文件,注意,就是文件,然后將此設備文件掛載到系統的某個目錄下,才可以訪問。這里的設備文件,就是將硬件光驅抽象為一個文件,訪問硬件,就是要通過這個設備文件訪問。
- 功能單一的程序組合完成復雜功能。自己感覺這個很像目前的社會發展和社會分工。一個人如果會做許多工作,那么這個人很可能在這些工作中都不深入。相反,社會分工越來越細,一個人只需要把一件事做的極致就可以了。對應到計算機上,單一功能的程序可能能完成的任務很少,但它高效、穩定、可靠。這樣對于要完成復雜功能,一是可以重復利用很多已經開發好的功能單一的程序,減少開發難度;二是對于復雜程序而言,這種搭積木式的組合,也可使代碼高效。
- 盡量避免和用戶交互??梢岳斫鉃闄C器能做的,就不需要人為干預,如果需要關注,系統也可以根據用戶指定,輸出交互信息。
- 使用文本文件保存程序配置信息。我們知道,在windows上配置軟件,基本都是通過點擊選擇等操作完成。在linux上,所以的程序配置都是通過文本文件來配置和保存,其優點是對于使用者,文本文件的查看和修改是相當迅速便捷的,節省了使用者的時間。
當然,linux還有很多哲學思想,體現在方方面面中,例如,簡潔,從命令的名稱中可以看出,只要能讓使用者見名知意,能多簡單就多簡單,絕不多寫一個字母。如ls,是list之意,pwd是print work directory之意,很簡潔。對于初學者而言,可能會有些困擾,但久了,就能感覺到便捷。
4.一些基礎命令
命令是CLI的核心,相對于shell而言,有內部命令(內嵌命令)和外部命令之分。內部命令,是指shell內部自帶的命令,外部命令,就是shell外部的程序提供的命令。一個命令主要由三部分組成:命令名、選項、參數。
- 命令名COMMAND:用于區別各種命令,向操作系統指明了需要完成的動作。
- 選項OPTION:用于修正命令的動作的,一般而言,命令都有默認動作,而選項就是用于修正命令默認動作的,比如,一個命令默認完成顯示功能,而如果要更改顯示的具體內容和格式,就需要通過選項來完成。選項分為長選項和短選項,長選項顧名思義,就是“長”,通過 — ,連接一個單詞或者單詞組合來表示;短選項,就是“短”,方便輸入,看起來簡潔,通過 – ,連接一個字母來表示,短選項可以組合使用,即通過 – ,連接幾個短選項字母。
- 參數ARGUMENT:用于指明命令的作用對象的,也就是說這個命令作用于誰??梢赃@樣理解,命令名相當于動詞,而選項相當于副詞或形容詞,參數相當于名詞。如“買便宜的書”,買是動詞,相當于命令名,指明動作是買,便宜的是形容詞,修正命令名買,書,說明了買的對象是書,而不是其他物品。
如 ls –l /etc這條命令,ls是命令名,指明的動作是顯示,-l,指明了顯示時需要使用長格式來顯示,而目錄/etc則指明了需要顯示的是/etc目錄,而不是其他。
注意: 有些命令的選項也可以帶參數,稱為選項的參數,用于說明選項的作用對象
下面介紹幾個常見的linux命令
- ifconfig 用于顯示和配置網絡接口(網卡),用于替代ip addr 和ip link 命令
- 顯示網絡
ifconfig 不帶任何選項和參數,顯示系統所有網絡接口相關信息
ifconfig INTERFACE_NAME 顯示指定網絡接口的信息
- 配置網絡
ifconfig INTERFACE_NAME [aftype] options | address …
ifconfig INTERFACE_NAME up | down ,開啟或關閉一個網絡接口,向交換機接口上的 no shutdown和shutdown一樣,為管理員在軟件層面上關閉接口。
ifconfig INTERFACE_NAME add 為接口配置一個ip地址,如:ifconfig eth0 add 192.168.31.5
ifconfig INTERFACE_NAME del 刪除接口ip地址
ifconfig INTERFACE_NAME netmask add 為指定接口配置掩碼
ifconfig還包括設置接口的mtu值、6to4隧道、多播、網卡類型等相關選項。
- echo echo的中文意思是回音,這里主要取“回”之意,將echo的內容,根據選項,進行顯示。
主要可使用的參數有 –n –e
-n 指顯示完成后,不自動換行
-e 指使轉意字符生效(默認轉意字符不生效) 經常使用的轉意字符有以下幾個:
\ 輸出一個\
\b 輸出一個退格鍵,如echo -e “he\bllo” 將輸出 he又輸出一個退格鍵,刪除了字母 e,然后接著輸出字母 llo,最后結果是 hllo
\v 輸出一個垂直制表符
\t 輸出一個水平制表符,相當于tab鍵
\0NNN 使用1到3位控制輸出字符的格式的,例如顏色、是否加粗等。如,控制輸出字體顏色為紅色:echo -e “\033[31mhello\033[0m”或echo -e “\033[31mhello”
第一條命令echo -e “\033[31mhello\033[0m” 第一個\033表示字體要帶顏色,設置為31m即紅色,第二個\033也表示字體要帶顏色,0m表示恢復為使用系統默認顏色。
第二條命令echo -e “\033[31mhello” 在hello后沒有控制符,即沒有恢復為系統默認顏色,所有在該shell進程中的顏色顯示,都將是紅色,包括命令提示符等,直到使用0m恢復為系統默認值為止。
- tty 顯示該終端對應的設備文件
- startx 打開圖形化用戶接口,即GUI
- export shell內部命令,用于顯示或設置shell變量的值
顯示:export –p
設置:export NAME=value
- pwd 顯示當前的工作目錄
- history 顯示命令歷史
history命令用于顯示命令歷史信息,不帶選項時,顯示該用戶家目錄下的.bash_history內容以及此次登錄后所運行的命令歷史信息。
涉及到history命令的幾個環境變量是:
HISTSIZE:默認1000,指當前shell可以保存的命令歷史條數
HISTFILE:默認當前用戶家目錄下的.bash_history
HISTFILESIZE:默認1000,指HISTFILE所能保存的命令歷史條數,超過該數量后,后續的命令被保存,最早的命令記錄將被刪除
HISTCONTROL:共三個值,ignoredumps與上一條命令重復的命令將不被記錄在命令歷史中(默認值) ignorespace 以空格開頭的命令將不被記入命令歷史中 ignoreboth 與上一條命令重復和以空格開頭的都不被記入命令歷史中
常用的選項有 –r 和 –w
-r 指重新加載用戶家目錄下的.bash_history內容
-w 指將當前shell的命令歷史信息增加至.bash_history中
幾個相關用法:
!NUM:重新執行命令歷史中的第NUM條命令
!ABC:重新執行最近一次以ABC開頭的命令
!!:重新執行上一條命令
上下方向鍵,系統將在內存空間的命令歷史中,以時間為順序,顯示最新執行的命令。
8.關機、重啟類命令
poweroff關閉系統 poweroff TIME [message]
reboot重啟系統 reboot TIME [message]
halt 關閉系統 halt TIME [message]
shutdown 當于基本可以相當于上三條命令合集,可通過選項實現上述三個命令的功能,
shutdown –r TIME [message] 相當于 reboot TIME [message]
shutdown –H TIME [message] 相當于 halt TIME [message]
shutdown –P TIME [message] 相當于 poweroff TIME [message]
不同在于shutdown –c [message] 可取消即將執行的關機或重啟操作
poweroff、reboot、halt默認都是調用shutdown來完成操作,通過-f或–force選項,系統將不調用shutdown,而是調用它自己的系統調用來完成相應的poweroff、reboot、halt操作。
9.系統時間類命令
date用于顯示系統的日期和時間,不帶任何參數,顯示時間和日期 ??墒褂酶袷交ぞ呖刂骑@示的時間和日期方式。
+%T 時:分:秒
+%D 月/日/年
+%Y 年
+%m 月
+%d 日
+%H 時
+%M 分
+%S 秒
+%s 自1970年1月1日起經過的絕對秒數
以上控制方式可以組合使用,如:date “+%Y-%m-%d %H:%M:%S” 將以類似于2018-02-28 31:38:26的格式顯示日期時間信息。
hwclock 顯示系統硬件時間,可以認為是bios時間。一般而言,設備開機后,運行的時間越長,硬件時間和系統時間越可能不一致,調整方式如下:
hwclock -hctosys 以硬件時間為準,將系統時間調整為硬件時間(可用短選項 -s)
hwclock -systohc 以系統時間為準,將硬件時間調整為系統時間(可用短選項 -w)
個人認為使用長選項,有明確的英文含義,容易記憶。
5.linux幫助
對linux而言,一個程序,應該由四部分組成,一是程序的二進制文件,二是程序運行所依賴的庫文件,三是程序的配置文件,四是程序的幫助文件。幫助信息是程序使用者學習程序使用的重要部分,一個沒有幫助信息的程序,是不可以想象的。
上一節提到過,命令由內外之分,對于linux命令的幫助信息而言,不同類別命令,也有不同的獲取辦法(查看命令是內部或外部命令使用type [COMMAND])。
對于內部命令,使用help [COMMAND]來獲取幫助信息。
對于外部命令,則有以下幾種方式:一是使用man命令,即man [OPTIONS] [COMMAND];二是使用info命令,即info [OPTIONS] [COMMAND];三是一般外部命名會有一個長選項,–help(有些會有短選項 –h),使用 command_name –help 來獲取幫助信息。
注意:man命令不僅僅可以顯示外部命令的幫助信息,還可以顯示一些諸如配置文件的使用幫助信息。
man命令是查找幫助信息的最常用的命令,下面詳細介紹:man是manual的前三個字母,是手冊的意思,用于顯示一個命令的手冊信息。這個手冊是命令開發人員根據一定的規范編寫的。手冊信息根據不同內容分為不同的章節,一般分為8個章節,分別如下:
- 1 User Commands 用戶命令幫助
- 2 System Calls 系統調用幫助
- 3 C Library Functions C庫函數
- 4 Devices and Special Files 設備和特殊文件
- 5 File Formats and Conventions 文件格式
- 6 Games et. Al. 游戲
- 7 Miscellanea 雜項
- 8 System Administration tools and Daemons 系統管理工具和守護進程
還有一些其他章節幫助信息,如1p、0、1x、9等。一個manual手冊,可能包含上述的某幾個章節,或者一個章節,在使用時,man命令根據其默認配置文件(/etc/man.config),查找到第一個章節,并予以顯示(man內部顯示使用less –is命令)。如果要顯示其它章節,則需要使用man # COMMAND,其中#表示章節。需要查看一個手冊都有哪些章節時,使用whatis 命令。
前面提到,man命令顯示手冊時,內部使用的是less -is命令,所以,在查看時,可以使用一些同less命令相同的一些屏幕控制和文本查找方式:
- f 或者F 或者 SPACE(空格鍵),向下翻整屏
- b 或者B:backward,向上翻N行,默認整屏
- d 或者D:downward,向下翻N行,默認屏幕的一半行數,即翻半屏
- u 或者U:backward,向上翻N行,默認屏幕的一半行數,即翻半屏
- ENTER(回車鍵),默認向下翻1行
- 查找: 使用/keyword或者?keyword
/keyword從當前位置向下查找keyword,查找到后,屏幕以查找到的第一個keyword為第一行開始顯示,使用n或N鍵在查找到的關鍵字之間跳轉
?keyword從當前位置向上查找keyword,查找到后,屏幕以查找到的第一個keyword為第一行開始顯示,使用n或N鍵在查找到的關鍵字之間跳轉
??注意:在使用n或N跳轉時,n表示跳轉方向和使用的/或?方向相同,即如果使用/,n則表示向下一個跳轉,如果使用?,n則表示向上調轉 .查找的keyword不區分大小寫 ,最后使用q退出man手冊。
6.linux發行版基礎目錄名稱命名法則及功用規定
Linux由于是一個開源系統,每個人都可以對其做修改,這樣就可能導致其目錄五花八門、支離破碎。為解決這一可能存在的問題,Linux設計了FHS(Filesystem Hierarchy Standard 文件系統層級標準)來規范一個linux系統中所需要有的文件及其名稱。
????/ 根目錄,即任何的linux系統必須有根目錄,其他一切目錄和文件都以根為起始點
????/bin binary,用戶的基本命令二進制文件
????/boot 系統啟動時boot loader需要的所有文件,但不包括配置文件
????/dev 設備文件,一般不需要手動創建
????/etc 配置文件
???? /home 默認普通用戶的家目錄文件
????/lib 基本共享庫和內核模塊
??????/lib64 64位系統上的基本共享庫和內核模塊
????/media 可移動設備的掛載點,如移動硬盤、U盤、CDrom等
????/mnt 臨時文件系統或設備的掛載點,
????/opt optional用于安裝一些可選的的程序
????/sbin system binary 系統管理員命令的基本二進制文件(一般只讀)
????/srv 系統提供的數據
????/tmp 臨時文件
? ? ? ? ? ? ? /usr universal shared resource通用共享資源,它是FHS的第二大部分。它是共享的只讀數據。并且,它一般和系統平臺沒有關系,即不同的主機之間的/usr是可以通用的
??????/usr/bin 用戶命令二進制文件
??????/usr/include C程序的頭文件包含
??????/usr/lib 庫文件
??????/usr/local 本地的層級機構(一般安裝完系統為空)
??????/usr/sbin 非重要的系統命令二進制文件
??????/usr/share 與平臺無關的共享數據
????/var 存儲可變數據文件。包括有鎖文件、日志文件、郵件等
????/proc 虛擬文件,即將與系統相關的內存中的數據抽象為文件,供用戶調用和查看
????/sys 虛擬文件,與/proc目錄功能相同,在新的linux內核中采用。
具體參考站點:http://www.pathname.com/fhs/
以上是對linux的一些粗淺認識,肯定有很多錯誤和理解不到位的地方,請聯系:1103212768@qq.com
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/91787
作業寫的不錯,繼續加油。
@馬哥教育:還有老師點贊啊,哈哈
@koala:加油