Linux基礎 & bash基礎特性

Q1:描述計算機的組成及其功能。

計算機的組成:運算器、控制器、存儲設備、輸入設備、輸出設備。

  • 運算器:

運算器是計算機中執行各種算術和邏輯運算操作的部件。運算器的基本操作包括加、減、乘、除四則運算,與、或、非、異或等邏輯操作,以及移位、比較和傳送等操作,亦稱算術邏輯部件。

  • 存儲設備:

計算機總是需要記錄與讀取數據的,而這些數據當然不可能每次都由用戶經過鍵盤來打字。所以就需要有存儲設備。計算機系統上面的存儲設備包括硬盤、軟盤、U盤等,乃至大型機器的局域網存儲設備(SAN,NAS)等,都可以用來存儲數據。而其中的最常見的就是硬盤。存儲設備是用于儲存信息的設備,通常是將信息數字化后再以利用電、磁或光學等方式的媒體加以存儲。

  • 輸入設備:

向計算機輸入數據和信息的設備。是計算機與用戶或其他設備通信的橋梁。輸入設備是用戶和計算機系統之間進行信息交換的主要裝置之一。鍵盤,鼠標,攝像頭,掃描儀,光筆,手寫輸入板,游戲桿,語音輸入裝置等都屬于輸入設備。輸入設備(InputDevice)是人或外部與計算機進行交互的一種裝置,用于把原始數據和處理這些數的程序輸入到計算機中。計算機能夠接收各種各樣的數據,既可以是數值型的數據,也可以是各種非數值型的數據,如圖形、圖像、聲音等都可以通過不同類型的輸入設備輸入到計算機中,進行存儲、處理和輸出。

  • 輸出設備:

輸出設備是計算機硬件系統的終端設備,用于接收計算機數據的輸出顯示、打印、聲音、控制外圍設備操作等。也是把各種計算結果數據或信息以數字、字符、圖像、聲音等形式表現出來。常見的輸出設備有顯示器、打印機、繪圖儀、影像輸出系統、語音輸出系統、磁記錄設備等。

Q2:按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。

Linux發行版可以大體分為兩類:一類是商業公司維護的發行版,另一類是社區組織維護的發行版。Redhat是商業公司維護的代表,Debian是社區組織維護的代表。

Redhat系列目前有三個重要分支:RHEL、Fedora以及CentOS。RHEL的全稱是Redhat Enterprise Linux,中文名為紅帽企業版,是一種服務器發行版,它的穩定性非常好,但需要收費;Fedora主要面向桌面發行版,它的內核與應用軟件更新非??欤m合于Linux發燒友使用;CentOS是Linux發行版之一,它是來自于Red Hat Enterprise Linux依照開放源代碼規定釋出的源代碼所編譯而成。由于出自同樣的源代碼,因此有些要求高度穩定性的服務器以CentOS替代商業版的Red Hat Enterprise Linux使用。兩者的不同,在于CentOS并不包含封閉源代碼軟件,CentOS 是一個基于Red Hat Linux 提供的可自由使用源代碼的企業級Linux發行版本。每個版本的 CentOS都會獲得十年的支持(通過安全更新方式)。新版本的 CentOS 大約每兩年發行一次,而每個版本的 CentOS 會定期(大概每六個月)更新一次,以便支持新的硬件。這樣,建立一個安全、低維護、穩定、高預測性、高重復性的 Linux 環境。CentOS 是RHEL(Red Hat Enterprise Linux)源代碼再編譯的產物,而且在RHEL的基礎上修正了不少已知的 Bug ,相對于其他 Linux 發行版,其穩定性值得信賴。在穩定性方面,RHEL和CentOS的穩定性非常好,適合于服務器使用;Fedora由于軟件更新快,其穩定性較差,最好只用于桌面應用。

Debian,或者稱Debian系列,包括Debian和Ubuntu等。Debian是社區類Linux的典范,是迄今為止最遵循GNU規范的Linux系統。Debian最早由Ian Murdock于1993年創建,分為三個版本分支: stable, testing和unstable。其中,unstable為最新的測試版本,其中包括最新的軟件包,但是也有相對較多的bug,適合桌面用戶。testing的版本都經過unstable中的測試,相對較為穩定,也支持了不少新技術(比如SMP等)。而stable一般只用于服務器,上面的軟件包大部分都比較過時,但是穩定和安全性都非常的高。Debian最具特色的是apt-get/dpkg包管理方式,其實Redhat的YUM也是在模仿Debian的APT方式,但在二進制文件發行方式中,APT應該是最好的了。Debian的資料也很豐富,有很多支持的社區,有問題求教也有地方可去。Ubuntu嚴格來說不能算一個獨立的發行版本,Ubuntu是基于Debian的unstable版本加強而來,可以這么說Ubuntu就是一個擁有Debian所有的優點,以及自己所加強的優點的近乎完美的Linux桌面系統。根據選擇的桌面系統不同,有多個版本可供選擇,比如基于unity的Ubuntu,基于Gnome的Ubuntu Gnome,基于KDE的Kubuntu,基于LXDE的Lubuntu以及基于Xfce的Xubuntu等。特點是界面非常友好,容易上手,對硬件的支持非常全面,是最適合做桌面系統的Linux發行版本。

Q3:描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述。

Linux的哲學思想:

  • 1、一切皆文件;

  • 2、由眾多功能單一的程序組成,一個程序只做一件事,并且做好,組合小程序完成復雜任務;

  • 3、盡量避免跟用戶交互;

  • 4、使用文本文件保存配置信息。

自己的理解:

  • 一切皆文件:把幾乎所有的資源統統抽象為文件格式,比如通信借口、硬件設備也通過文件表示,便于統一管理。目前我對于統一管理的認識就是,抽象成文件以后,可以對文件設置屬主、屬組,這樣就能對于登錄到當前Linux系統中的用戶,設置他們能夠對文件讀、寫、執行等權限。

  • 對于由眾多功能單一的程序組成,一個程序只做一件事,一個小程序做一件事,這樣將復雜任務拆解成一個一個的小程序,這樣能夠使得Linux運行更加地高效。

  • 盡量避免跟用戶交互:易于以編程的方式實現自動化任務,可以通過腳本編程的方式實現大量服務器的自動化運維,這樣可以提高效率,減少錯誤。

  • 使用文本文件保存配置信息:Linux所有的配置文件都存放在文本配置文件當中(例:/etc/下的文件),無論什么配置修改都只需修改其配置文件即可,配置文件時文本形式的只需任意一款文本編輯器修改即可。這種保存形式便于Linux進行管理。

Q4:說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應的示例來闡述。

1、命令的語法通用格式:

~]# COMMAND OPTIONS ARGUMENTS
~]# 命令 + 選項 +參數

COMMAND:發起一命令,請求內核將某個二進制程序運行為一個進程;命令本身是一個可執行的程序文件。

OPTIONS:指定命令的運行特性。

ARGUMENTS:命令的作用對象;命令對什么生效;

2、詳細介紹部分命令的使用:

  • ifconfig:

ifconfig查看和配置網絡接口IP、子網掩碼、網關等信息;

命令格式:

ifconfig [網絡設備] [參數]

示例:

[root@promote ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.107  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe71:bc51  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:71:bc:51  txqueuelen 1000  (Ethernet)
        RX packets 4723  bytes 431081 (420.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1059  bytes 106786 (104.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 4  bytes 340 (340.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 340 (340.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • echo:

echo回顯,命令的功能是在顯示器上顯示一段文字;

命令格式:

echo [SHORT-OPTION]... [STRING]...

-n:不自動進行換行操作

[root@promote ~]# echo -n 'hello world'
hello world[root@promote ~]#

-e:讓轉移符生效

[root@promote ~]# echo 'hello \nworld'
hello \nworld
[root@promote ~]# echo -e 'hello \nworld'
hello 
world

\n:表示換行

STRING可以使用引號,單引號和雙引號均可用;

單引號:強引用,變量引用不執行替換;

雙引號:弱引用,變量引用會被替換;

[root@promote ~]# echo '$SHELL'
$SHELL
[root@promote ~]# echo "$SHELL"
/bin/bash
  • tty:

tty查看當前的終端設備;

命令格式:

tty [OPTION]...

示例:

[root@promote ~]# tty
/dev/pts/3
  • startx:

startx用于打開圖形化界面

命令格式:startx

示例:

[root@promote ~]# startx &
  • export:

export設置或顯示環境變量;

示例:

[root@promote ~]# export $PATH
-bash: export: `/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin': 不是有效的標識符
  • pwd:

pwd查看當前“工作目錄”的完整路徑;

命令格式:

pwd [OPTION]...

示例:

[root@promote radio]# pwd
/home/radio
  • history:

history顯示命令歷史

history命令是shell內嵌命令,用于顯示指定數目的指令命令,讀取歷史命令文件中的目錄到歷史命令緩沖區和將歷史命令緩沖區中的目錄寫入命令文件。

命令格式:

history [選項] [參數]

參數:

-c:清空命令歷史(清空內存中的內容)

-d offset [n]:根據offset偏移量來刪除指定條目,如果添加[n],表示從指定位置開始刪除n個

-a:從內存到文件

-r:從文件讀取命令歷史至列表中 #如果history -c清空后,直接history -r,再history,可以讀取文件中的內容

-w:保存到文件中

n:顯示最近的n條命令

示例:

[root@promote radio]# history 10
396  man export
397  man pwd
398  cd /home
399  ls
400  cd radio/
401  pwd
402  man history
403  clear
404  history 
405  history 10

調用命令歷史列表中的命令:

!#:再一次調用歷史列表中的第#條命令;

?。。涸僖淮螆绦猩弦粭l命令;

!STRING:再一次執行命令歷史列表中最近一個STRING開頭的命令;

  • shutdown:

shutdown關機或重啟命令;

命令格式:

shutdown [OPTIONS...] [TIME] [WALL...]

參數:

-h:halt將系統的服務停掉后,立即關機

-r:reboot在將系統的服務停掉之后就重新啟動

-c:cancel取消已經在進行的shutdown進程

-n:不采用正常程序來關機,用強迫的方式殺掉所有執行中的程序后自行關機

-k:不要真的關機,只是發送警告信息出去

示例:

[root@promote radio]# shutdown +8888
Shutdown scheduled for 五 2016-11-04 01:27:45 CST, use 'shutdown -c' to cancel.
[root@promote radio]# shutdown -c
Broadcast message from root@promote.cache-dns.local (Fri 2016-10-28 21:19:55 CST):
The system shutdown has been cancelled at Fri 2016-10-28 21:20:55 CST!
  • poweroff:

poweroff關閉計算機操作系統并且切斷系統電源;

  • reboot:

reboot進行重啟;

命令格式:

reboot [options]

選項:

-n:重啟之前保留當前數據;

-f:強制重啟計算機;

-w:模擬重啟,并將數據寫入到”/var/log/wtmp”日志文件中;

-d:重啟,但不寫入日志;

-i:重啟計算機前關閉網絡;

  • hwclock:

在Linux中有硬件時鐘與系統時鐘兩種時鐘。硬件時鐘是指主機板上的時鐘設備,即通??稍贐IOS上設定的時鐘。系統時鐘指的是kernel中的時鐘。當Linux啟動時,系統時鐘就會去讀硬件時鐘設定,之后系統時鐘即獨立運作。所有Linux相關指令與函數都是讀取系統時鐘的設定。

命令格式:

hwclock [function] [option...]

參數:

-s,–hctosys:以硬件時鐘為準,把系統調整為與硬件時間相同;

-w,–systohc:以系統時鐘為準,把硬件時間調整為與系統時鐘相同;

示例:

[root@promote radio]# hwclock -w
[root@promote radio]# hwclock
2016年10月28日 星期五 21時50分47秒  -0.384467 秒
  • date:

date顯示日期的命令;

命令格式:

date [OPTION]... [+FORMAT]

參數:

%F:完整日期格式;

%H:顯示小時;

%M:顯示分鐘;

%r:時間顯示,含時分秒上下午;

%s:總秒數,自1970-01-01 00:00:00 UTC;

%T:時間,含時分秒,24小時制顯示;

示例:

[root@promote ~]# date
2016年 10月 28日 星期五 21:56:03 CST
[root@promote ~]# date +%F
2016-10-28
[root@promote ~]# date +%Y-%m-%d
2016-10-28
[root@promote ~]# date +%H:%M:%S
21:58:51
[root@promote ~]# date +%F%H:%M:%S
2016-10-2821:59:25
[root@promote ~]# date +%r
下午 10時08分44秒
[root@promote ~]# date +%s
1477663845
[root@promote ~]# date +%T
22:11:22

Q5:如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。

獲取命令的使用幫助,可先使用type確定這個命令是內部命令還是外部命令,以便對應操作:

  • 內部命令:

1、help

help COMMAND

help命令用于顯示shell內部的幫助信息。help命令只能顯示shell內部的命令幫助信息。

  • 外部命令:

1、info

~]# info [OPTION]... [MENU-ITEM...]

info指令是man指令的詳細內容。但man使用起來要方便的多。一個man只有一頁,而info總是將它們的內容組織成多個區段(節點),每個區段也可能包含子區段(子節點)。info工具可顯示更完整的最新的GNU工具信息。通常man中若包含的信息概要在info中也有時,會有提示:“請參考info頁更詳細內容”。

2、使用手冊:manual

手冊位置:/usr/share/man

~]# man COMMAND

man命令,通過man指令可以查看Linux中的指令幫助、配置文件幫助和編程幫助等信息。man是在程序安裝的時候安裝的幫助文檔,可以在系統的目錄下找到,如果軟件有配套的頁面,就可以使用man來查找。比如通過指令:ls /user/share/man可以看到很多man幫助文檔的存儲,從中看到有很多個man#文件,Linux的一些man指令文檔就存在于這些文件內。一個程序的man幫助文檔可能存在多個man中,比如我們用指令:whatis COMMAND,查看到COMMAND的多個信息。

  • man文檔章節劃分:

man(1):用戶在shell環境中可以操作的命令或可執行文件;

man(2):系統內核可調用的函數或工具等;

man(3):一些常用的函數與函數庫,大部分為C的函數庫;

man(4):設備文件的說明,通常在/dev下的文件;

man(5):配置文件或者是某些文件的格式;

man(6):游戲;

man(7):慣例與協議等;

man(8):系統管理員可用的管理命令;

man(9):與kernel相關的文件;

Q6:請羅列Linux發行版的基礎目錄名稱命名法則及功用規定。

/:根目錄,是整個系統最重要的一個目錄,所有的目錄都是由根目錄衍生出來的;

/bin:放置的是在單用戶維護模式下還能夠被操作的命令;

/boot:放置開機會使用到的文件;

/dev:在Linux系統上,任何設備與接口設備都是以文件的形式存在于這個目錄中;

/etc:系統主要的配置文件;

/home:系統默認的用戶主文件夾;

/lib:開機時會調用的函數庫;

/media:放置的可以刪除的設備,包括軟盤、光盤、DVD等都暫時掛載在此;

/mnt:掛載一些額外的設備;

/opt:放置第三方軟件;

/root:系統管理員的主文件夾;

/sbin:開機過程中所需要設置系統環境的,包含了開機、修復、還原系統所需要的命令;

/srv:一些網絡服務啟動之后,所需要取用的數據目錄;

/tmp:一般用戶或者正在執行程序暫時放置文件的地方;

/proc:目錄本身就是一個虛擬文件系統,放置的數據都是內存當中的,該目錄本身不占任何硬盤空間;

/sys:一個虛擬文件系統,主要記錄與內核相關的信息,同樣不占硬盤容量;

/usr:放置的數據屬于可分享的與不可變動的,所有系統默認的軟件都會放在該目錄下;

/usr/bin/:絕大部分的用戶可使用命令都放在這里;

/usr/include/:C和C++等程序語言的頭文件與包含文件放置處;

/usr/lib/:包含各應用軟件的函數庫、目標文件,以及不被一般用戶慣用的執行文件或腳本;

/usr/local/:系統管理員在本機自行安裝自己下載的軟件;

/usr/sbin/:非系統正常運行所需要的系統命令;

/usr/share/:放置共享文件;

/usr/src/:放置源碼;

/var:主要針對常態性變動的文件;

/var/cache/:應用程序本身運行過程中產生的一些暫存文件;

/var/lib/:程序本身運行過程中,需要使用到的數據文件放置的目錄;

/var/lock/:某些設備或者文件資源一次只能被一個應用程序所使用,為了不被兩個設備同時使用,因此就要上鎖,以確保被單一使用;

/var/log/:登錄文件放置的目錄;

/var/mail/:放置個人電子郵件信箱的目錄;

/var/run/:某些程序啟動以后,會將它們的UID放置在這個目錄下;

/var/spool/:放置一些隊列數據,通常使用后會被刪除;

原創文章,作者:N24_VC,如若轉載,請注明出處:http://www.www58058.com/56020

(0)
N24_VCN24_VC
上一篇 2016-10-30
下一篇 2016-10-30

相關推薦

  • 基于heartbeat v1+ldirectord實現LVS集群高可用

    前言 高可用集群,High Availability Cluster,簡稱HA Cluster,是指以減少服務中斷時間為目的的服務器集群技術。通過上文可以看出,LVS集群本身并不能實現高可用,比如Director Server不能檢測Real Server的健康度,一旦其中一臺或全部Real Server宕機,Director Server還會繼續轉發請求,…

    Linux干貨 2015-06-08
  • day5總結筆記

    本文內容: 索引節點 硬鏈接與軟鏈接 重定向 用戶組 useradd命令 索引節點: 索引節點包含了一個表,包含了有關文件的元數據,包含:     文件類型,權限,UID,GID 鏈接數(指向這個文件名路徑名稱個數)      該文件的大小和不同的時間戳。&n…

    系統運維 2016-08-08
  • hello! 我的博客第一站

    大家好!  這是我進博客的第一天,一個剛進來的新司機。在這里我就不秀我的車技了,只希望各位老司機開車不要太快,我暈車      —— 生命不息,奮斗不止

    Linux干貨 2017-07-11
  • linux 文件管理命令

    cp 復制文件或者路徑 單源復制: cp [OPTION]…[-T] SOUTCE DEST 如果DEST不存在:則事先創建此文件,并復制源文件的數據流到DEST中 如果DEST存在:   如果DEST是非目錄文件:則覆蓋目標文件; 如果DEST是目錄,就在這個目錄中創建一個同名的文件,把源數據復制到這個文件中。 多源復制: cp [O…

    Linux干貨 2017-08-28
  • Linux各發行版、哲學思想、基礎目錄

    Linux發行版本? Linux操作系統的發行版本可以大體分為兩類,一類是商業公司維護的發行版本,一類是社區組織維護的發行版本,前者以著名的Redhat(RHEL)為代表,后者以Debian為代表。               R…

    Linux干貨 2016-10-26
  • 馬哥教育網絡班20期+第5周課程練習

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; grep "^[[:space:]]\+.*" /boot/grub/grub.conf   2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行; grep&nb…

    Linux干貨 2016-07-12

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-11-02 16:28

    贊!格式排版都很不錯,作者有心了,以后拿出來就可以直接當參考文檔,加油加油~

欧美性久久久久