Linux 在設計之初,就是基於 Intel x86 系列CPU架構計算機的,它是一個基於POSIX的多使用者、多工並且支援多執行緒和多 CPU 的作業系統,它是由世界各地成千上萬的程式設計師設計和開發實現的,當初開發Linux系統的目的就是建立不受任何商業化軟體版權制約的、全世界都能自由使用的類 Unix 作業系統相容產品。
1. Linux 的那些往事Linux 核心最初是由李納斯•託瓦茲(Linus Torvalds)在赫爾辛基大學讀書時出於個人愛好而編寫的,當時他覺得教學用的迷你版 UNIX 作業系統 Minix 太難用了,於是決定自己開發一個作業系統。第 1 版本於 1991 年 9 月釋出,當時僅有 10000 行程式碼。
據估計,現在只有 2% 的 Linux 核心程式碼是由李納斯•託瓦茲自己編寫的,雖然他仍然擁有 Linux 核心(作業系統的核心部分),並且保留了選擇新程式碼和需要合併的新方法的最終裁定權。現在大家所使用的 Linux,我更傾向於說是由李納斯•託瓦茲和後來陸續加入的眾多 Linux 好者共同開發完成的。
李納斯•託瓦茲無疑是這個世界上最偉大的程式設計師之一,何況,他還搞出了全世界最大的程式設計師交友社群 GitHub (開原始碼庫及版本控制系統)。
關於 Linux Logo 的由來是一個很有意思的話題,它是一隻企鵝。
為什麼選擇企鵝,而不是選擇獅子、老虎或者小白兔?有人說因為李納斯•託瓦茲是芬蘭人,所以選擇企鵝,有人說因為其他動物圖案都被用光了,李納斯•託瓦茲只好選擇企鵝。
我更願意相信以下說法,企鵝是南極洲的標誌性動物,根據國際公約,南極洲為全人類共同所有,不屬於世界上的任何國家,任何國家都無權將南極洲納入其版圖。Linux 選企鵝圖案作為 Logo,其含義是:開放原始碼的 Linux 為全人類共同所有,任何公司無權將其私有。
2. 常用的Linux命令下面將會向大家分享一些會經常用到的Shell命令
(1)cd -更改檔案目錄命令
# 切換到主目錄cd# 切換到主目錄cd ~# 切換到目錄/tmpcd /tmp# 切換到當前目錄的dir目錄cd dir# 切換到根目錄cd /# 切換到上一級目錄cd ..# 切換到二級目錄cd ../..# 切換到主目錄,例如是root使用者,則切換到/root下 cd ~
(2) ls -展示當前目錄下檔案命令
# 顯示當前目錄檔案ls# 給出當前目錄下所有檔案的一個長列表,包括以句點開頭的“隱藏”檔案ls -la# 列出當前目錄下以字母a開頭的所有檔案ls a*# 給出當前目錄下以.doc結尾的所有檔案ls -l *.doc
(3)pwd -檢視當前所在路徑
# 檢視自己當前所在路徑pwd
(4)cp -檔案複製命令
使用 cp 命令需要指定資料夾或進入需要操作的資料夾下進行操作
# 把檔案a複製為新檔案a.apkcp a a.apk# 把檔案afile從當前目錄複製到/home/bible/目錄下cp afile /home/bible/# 把當前目錄下的所有未隱藏檔案複製到/tmp/目錄下cp * /tmp # 遞迴性地把當前目錄下的docs目錄複製為新目錄docs.bak,保持檔案屬性,並複製所有的檔案,包括以句點開頭的隱藏檔案。為了方便起見,-a選項包含-R選項cp -a docs docs.bak# 若給出的原始檔是一個目錄檔案,此時將複製該目錄下所有的子目錄和檔案cp -r
(5)find -查詢檔案命令
# 在當前目錄中查詢rpm包find .-name *.rpm# 在當前目錄及其子目錄中查詢檔名包含page的檔案find .|grep page# 在系統的任何地方查詢檔名包含traceroute的檔案locate traceroute
(6)grep -搜尋檔案內容命令
# 在檔案exports中查詢包含bible的所有行grep bible /etc/exports# 在WEB伺服器日誌檔案access.log的後100行中查詢包含“404”的行tail -100 /var/log/apache/access.log|grep 404# 在WEB伺服器日誌檔案access.log的後100行中,查詢沒有被google訪問的行tail -100 /var/log/apache/access.log|grep -v googlebot# 在主apache配置檔案中,查詢所有非註釋行grep -v ^# /etc/apache2/httpd.conf
(7)mkdir -新建目錄命令
# 在當前目錄中建立名為photos的目錄mkdir photos# 在當前目錄下建立指定的巢狀子目錄mkdir -p this/that/theother
(8)touch -建立一個空的檔案
# 刪除檔案arm a# 刪除當前目錄下的所有檔案(未隱藏檔案)。rm命令不刪除目錄,除非也指定了-r(遞迴)引數。rm *# 刪除domed目錄以及它所包含的所有內容rm -rf domed# 刪除當前目錄下所有以字母a開頭的檔案,並且在每次刪除時,提示使用者進行確認rm -i a*
(10)vi -編輯檔案
# 用vi編輯檔案/etc/bubby.txt vi /etc/bubby.txt# 用vim編輯檔案/etc/bubby.txt vim /etc/bubby.txt# 快捷操作: 切換視窗:alt+1,alt+2 全屏: alt+回車 # 將vim掛起(暫停):ctrl+z,暫停後可進行其他shell操作,完了之後可透過 fg 命令切換回vim介面繼續編輯 :MR 檢視歷史檔案記錄(注意:MR大寫) :sp 橫向切換介面視窗 :vsp 縱向切換介面視窗 方便多檔案對照編碼 emacs /etc/bubby.txt 用emacs編輯檔案/etc/bubby.txt
(11)date- 系統日期設定
# 設定系統時期為2006年5月20日6點整。date -s “060520 06:00:00″
(12)reboot,shutdown -關閉和重啟計算機
# 重新啟動計算機reboot# 重新啟動計算機,停止服務後重新啟動計算機shutdown -r now# 關閉計算機,停止服務後再關閉系統shutdown -h now# 關閉計算機halt# 一般用shutdown -r now,在重啟系統時,關閉相關服務,shutdown -h now也是如此。
(13)df - 顯示磁碟空間使用情況
# 顯示指定檔案所在分割槽的磁碟使用情況df /etc/dhcp# 顯示檔案型別為ext4的磁碟使用情況df -t ext4
(14)gzip -壓縮和解壓檔案
# 把當前目錄下的每個檔案壓縮成.gz檔案gzip *# 把上例中每個壓縮的檔案解壓,並列出詳細的資訊gzip -dv *# 遞迴地解壓目錄gzip -dr rancher.gz
(15)zip -壓縮檔案
# 將/home/html/這個目錄下所有檔案和資料夾打包為當前目錄下的html.zipzip -q -r html.zip /home/html# 壓縮檔案cp.zip中刪除檔案a.czip -dv cp.zip a.c# 把/home目錄下面的mydata目錄壓縮為mydata.zipzip -r mydata.zip mydata# 把/home目錄下面的abc資料夾和123.txt壓縮成為abc123.zipzip -r abc123.zip abc 123.txt# 將logs目錄打包成log.zipzip -r log.zip ./logs
3. 結語
在過去的幾十年裡,Linux系統主要被應用於伺服器端、嵌入式開發和PC桌面3大領域,其中伺服器端領域是重中之重。例如,我們熟知的大型、超大型網際網路企業(百度、騰訊、Sina、阿里等)都在使用Linux系統作為其伺服器端的程式執行平臺,全球及國內排名前1000的 90%以上的網站使用的主流系統都是Linux系統。而我們在測試工作中也或多或少的會接觸到一些Linux命令,熟練的使用Linux命令可以讓我們在使用windows系統的dos命令時更加熟練。
PS: