linux簡介 Linux內核最初只是由芬蘭人李納斯·托瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的。 Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。 Linux能運行主要的UN ...
linux簡介
Linux內核最初只是由芬蘭人李納斯·托瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的。
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。
Linux能運行主要的UNIX工具軟體、應用程式和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
linux啟動過程
Linux系統的啟動過程可以分為5個階段:
內核的引導。
運行 init。
系統初始化。
建立終端 。
用戶登錄系統
內核引導
電腦打開電源後,首先是BIOS開機自檢,按照BIOS中設置的啟動設備(通常是硬碟)來啟動。
操作系統接管硬體以後,首先讀入 /boot 目錄下的內核文件
運行init
init 進程是系統所有進程的起點,init 程式首先是需要讀取配置文件 /etc/inittab。
運行級別
許多程式需要開機啟動。它們在Windows叫做"服務"(service),在Linux就叫做"守護進程"(daemon)。
init進程的一大任務,就是去運行這些開機啟動的程式。
但是,不同的場合需要啟動不同的程式,比如用作伺服器時,需要啟動Apache,用作桌面就不需要。
Linux允許為不同的場合,分配不同的開機啟動程式,這就叫做"運行級別"(runlevel)。也就是說,啟動時根據"運行級別",確定要運行哪些程式。
Linux系統有7個運行級別(runlevel):
運行級別0:系統停機狀態,系統預設運行級別不能設為0,否則不能正常啟動
運行級別1:單用戶工作狀態,root許可權,用於系統維護,禁止遠程登陸
運行級別2:多用戶狀態(沒有NFS)
運行級別3:完全的多用戶狀態(有NFS),登陸後進入控制台命令行模式
運行級別4:系統未使用,保留
運行級別5:X11控制台,登陸後進入圖形GUI模式
運行級別6:系統正常關閉並重啟,預設運行級別不能設為6,否則不能正常啟動
系統初始化
在init的配置文件中有這麼一行: si::sysinit:/etc/rc.d/rc.sysinit 它調用執行了/etc/rc.d/rc.sysinit,而rc.sysinit是一個bash shell的腳本,它主要是完成一些系統初始化的工作,rc.sysinit是每一個運行級別都要首先運行的重要腳本。
它主要完成的工作有:激活交換分區,檢查磁碟,載入硬體模塊以及其它一些需要優先執行任務
l5:5:wait:/etc/rc.d/rc5
這一行表示以5為參數運行/etc/rc.d/rc,/etc/rc.d/rc是一個Shell腳本,它接受5作為參數,去執行/etc/rc.d/rc5.d/目錄下的所有的rc啟動腳本,/etc/rc.d/rc5.d/目錄中的這些啟動腳本實際上都是一些連接文件,而不是真正的rc啟動腳本,真正的rc啟動腳本實際上都是放在/etc/rc.d/init.d/目錄下。
而這些rc啟動腳本有著類似的用法,它們一般能接受start、stop、restart、status等參數。
/etc/rc.d/rc5.d/中的rc啟動腳本通常是K或S開頭的連接文件,對於以 S 開頭的啟動腳本,將以start參數來運行。
而如果發現存在相應的腳本也存在K打頭的連接,而且已經處於運行態了(以/var/lock/subsys/下的文件作為標誌),則將首先以stop為參數停止這些已經啟動了的守護進程,然後再重新運行。
這樣做是為了保證是當init改變運行級別時,所有相關的守護進程都將重啟。
至於在每個運行級中將運行哪些守護進程,用戶可以通過chkconfig或setup中的"System Services"來自行設定。
用戶登錄系統
一般來說,用戶的登錄方式有三種:
(1)命令行登錄
(2)ssh登錄
(3)圖形界面登錄
圖形模式與文字模式的切換方式
Linux預設提供了六個命令視窗終端機讓我們來登錄。
預設我們登錄的就是第一個視窗,也就是tty1,這個六個視窗分別為tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 來切換它們。
如果你安裝了圖形界面,預設情況下是進入圖形界面的,此時你就可以按Ctrl + Alt + F1 ~ F6來進入其中一個命令視窗界面。
當你進入命令視窗界面後再返回圖形界面只要按下Ctrl + Alt + F7 就回來了。
如果你用的vmware 虛擬機,命令視窗切換的快捷鍵為 Alt + Space + F1~F6. 如果你在圖形界面下請按Alt + Shift + Ctrl + F1~F6 切換至命令視窗
Linux 關機
在linux領域內大多用在伺服器上,很少遇到關機的操作。畢竟伺服器上跑一個服務是永無止境的,除非特殊情況下,不得已才會關機。
正確的關機流程為:sync > shutdown > reboot > halt
關機指令為:shutdown ,你可以man shutdown 來看一下幫助文檔。
例如你可以運行如下命令關機:
sync 將數據由記憶體同步到硬碟中。
shutdown 關機指令
shutdown –h 10 ‘This server will shutdown after 10 mins’,電腦將在10分鐘後關機,並且會顯示在登陸用戶的當前屏幕中。
Shutdown –h now 立馬關機
Shutdown –h 20:25 系統會在今天20:25關機
Shutdown –h +10 十分鐘後關機
Shutdown –r now 系統立馬重啟
Shutdown –r +10 系統十分鐘後重啟
reboot 就是重啟,等同於 shutdown –r now
halt 關閉系統,等同於shutdown –h now 和 poweroff
關機的命令有 shutdown –h now halt poweroff和 init 0 , 重啟系統的命令有 shutdown –r now reboot init 6
linux基本操作命令
目錄結構
/bin:bin是Binary的縮寫, 這個目錄存放著最經常使用的命令。
/boot:這裡存放的是啟動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件。
/dev :dev是Device(設備)的縮寫, 該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。
/etc:這個目錄用來存放所有的系統管理所需要的配置文件和子目錄。
/home:用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的。
/lib:這個目錄里存放著系統最基本的動態連接共用庫,其作用類似於Windows里的DLL文件。幾乎所有的應用程式都需要用到這些共用庫。
/lost+found:這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些文件。
/media:linux系統會自動識別一些設備,例如U盤、光碟機等等,當識別後,linux會把識別的設備掛載到這個目錄下。
/mnt:系統提供該目錄是為了讓用戶臨時掛載別的文件系統的,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以查看光碟機里的內容了。
/opt:這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。
/proc:這個目錄是一個虛擬的目錄,它是系統記憶體的映射,我們可以通過直接訪問這個目錄來獲取系統信息。這個目錄的內容不在硬碟上而是在記憶體里,我們也可以直接修改裡面的某些文件,比如可以通過下麵的命令來屏蔽主機的ping命令,使別人無法ping你的機器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:該目錄為系統管理員,也稱作超級許可權者的用戶主目錄。
/sbin:s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式。
/selinux:這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似於windows的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的文件的。
/srv:該目錄存放一些服務啟動之後需要提取的數據。
/sys:這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。
sysfs文件系統集成了下麵3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對偽終端的devpts文件系統。
該文件系統是內核設備樹的一個直觀反映。
當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中被創建。
/tmp:這個目錄是用來存放一些臨時文件的。
/usr:這是一個非常重要的目錄,用戶的很多應用程式和文件都放在這個目錄下,類似於windows下的program files目錄。
/usr/bin:系統用戶使用的應用程式。
/usr/sbin:超級用戶使用的比較高級的管理程式和系統守護程式。
/usr/src:內核源代碼預設的放置目錄。
/var:這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌文件。
在linux系統中,有幾個目錄是比較重要的,平時需要註意不要誤刪除或者隨意更改內部文件。
/etc: 上邊也提到了,這個是系統中的配置文件,如果你更改了該目錄下的某個文件可能會導致系統不能啟動。
/bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行文件的放置目錄,比如 ls 就是在/bin/ls 目錄下的。
值得提出的是,/bin, /usr/bin 是給系統用戶使用的指令(除root外的普通用戶),而/sbin, /usr/sbin 則是給root使用的指令。
/var: 這是一個非常重要的目錄,系統上跑了很多程式,那麼每個程式都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裡。
文件屬性
當為[d]則是目錄當為[-]則是文件;
若是[l]則表示為鏈接文件(link file);
若是[b]則表示為裝置文件裡面的可供儲存的介面設備(可隨機存取裝置);
若是[c]則表示為裝置文件裡面的串列埠設備,例如鍵盤、滑鼠(一次性讀取裝置)
若是[p]則表示為管道文件
基本命令
--ls 列出當前目錄文件
語法 ls-l 目錄或文件
ls-l #列出文件的詳細信息,如創建者,創建時間,文件的讀寫許可權列表等等
ls-d #列出目錄下所有的文件,包括以“.“開頭的隱藏文件
ls-a #查看目錄(不查看裡面的內容)
ls-s #以文件的大小進行排序
--pwd 列印當前用戶所在的當前目錄位置
語法 pwd
--cd 切換目錄
語法 cd 目錄
cd.. #表示返回到上級目錄位置,也就是父目錄
cd. #表示進入到當前用戶所在的目錄
--history 歷史命令
語法 history
游標上下鍵 #查看歷史命令
ctrl+r #搜索歷史命令(輸入一段某條命令的關鍵字:必須是連續的)
!168 #執行歷史命令中第168條命令
!字元串 #搜索歷史命令中最近一個以xxxx字元開頭的命令
別名使用
語法 alias 別名='commint'
alias ab='ls -l /opt'
ab
刪除別名
un alias ab
設置別名永久生效
局部生效
echo"alias ab='ls -l /opt' >> .bashrc
全局生效
echo'ab='ls-l/opt'>> /etc/bashrc
快捷鍵
ctrl+C #終止前臺運行的程式
ctrl+D #退出
cutl+L #清屏
curl+A #跳到命令行的開頭
ctrl+E #跳到命令行的結尾
ctrl+U #將游標處到命令行開頭的內容刪除
ctrl+K #將游標處到命令行末尾的內容刪除
系統時間
hwclock –s #將系統時鐘調整為與目前的硬體時鐘一致
hwclock –w #將硬體時鐘調整為與目前的系統時鐘一致
修改時間
date-s"2018-6-8 22:21"
date-s"2018-6-8"
修改時間顯示方式
date"+%Y%m%d %H:%M:%S"
20180518 17:44:19
date"+%Y/%m/%d %H:%M:%S"
2018/05/1817:44:19
計算程式運行時間
time ls-l/etc
real 0m0.022s #實際使用時間
user 0m0.005s #用戶狀態使用的時間
sys 0m0.017s #內核狀態使用的時間
我是MIkel Pan,雲計算愛好者,定期更新生活感悟,心靈進化者就在MIkel Pan,喜歡我就來找我吧!
博客園地址:http://www.cnblogs.com/plyx/
簡書地址:https://www.jianshu.com/u/5986765934f4