1. 程式人生 > >linux小白入門篇之一

linux小白入門篇之一

初識linux

矛盾說:我從來不夢想,我只是在努力認識現實;戲劇家洪深說:我的夢想是明年吃苦的能力比今年更強;魯迅說:人生最大的痛苦是夢醒了無路可走;蘇格拉底說:人類的幸福和歡樂在於奮鬥,而最有價值的是為了理想而奮鬥。

簡述

Linux作業系統是UNIX作業系統的一種克隆系統,它誕生於1991 年的10 月5 日(這是第一次正式向外公佈的時間)。以後藉助於Internet網路,並通過全世界各地計算機愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類作業系統,並且使用人數還在迅猛增長。

Linux是一套免費使用和自由傳播的類Unix作業系統,是一個基於POSIX和UNIX的多使用者、多工、支援多執行緒和多CPU的作業系統。它能執行主要的UNIX工具軟體、應用程式和網路協議。它支援32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多使用者網路作業系統。它主要用於基於Intel x86系列CPU的計算機上。這個系統是由全世界各地的成千上萬的程式設計師設計和實現的。其目的是建立不受任何商品化軟體的版權制約的、全世界都能自由使用的Unix相容產品。

Linux以它的高效性和靈活性著稱,Linux模組化的設計結構,使得它既能在價格昂貴的工作站上執行,也能夠在廉價的PC機上實現全部的Unix特性,具有多工、多使用者的能力。Linux是在GNU公共許可許可權下免費獲得的,是一個符合POSIX標準的作業系統。Linux作業系統軟體包不僅包括完整的Linux作業系統,而且還包括了文字編輯器、高階語言編譯器等應用軟體。它還包括帶有多個視窗管理器的X-Windows圖形使用者介面,如同我們使用Windows NT一樣,允許我們使用視窗、圖示和選單對系統進行操作。

linux的誕生

Linux 作業系統的誕生、發展和成長過程始終依賴著五個重要支柱:UNIX 作業系統、MINIX 作業系統、GNU 計劃、POSIX 標準和Internet 網路。

1981 年IBM公司推出微型計算機IBM PC。 林納斯·託瓦茲 林納斯·託瓦茲

1981-1991 年間DOS作業系統一直是微機上作業系統的主宰。此時計算機硬體價格雖逐年下降,但軟體價格仍居高不下。當時Apple 的Mac OS 作業系統可以說是效能最好的,但是其天價沒人能夠輕易靠近。

1991 年,GNU 計劃已經開發出了許多工具軟體。最受期盼的Gnu C 編譯器已經出現,但還沒有開發出免費的GNU 作業系統。即使是MINIX 也開始有了版權,需要購買才能得到原始碼。而GNU 的作業系統HURD 一直在開發之中,但並不能在幾年內完成。對於林納斯·託瓦茲來說,已經不能等待了。

1991 年4 月,林納斯·託瓦茲開始醞釀並著手編制自己的作業系統。剛開始,他的目的很簡單,只是為了學習Intel 386 體系結構保護模式執行方式下的程式設計技術。但後來Linux 的發展卻完全改變了初衷。

1991 年初,林納斯·託瓦茲開始在一臺386sx 相容微機上學習minix 作業系統。通過學習,他開始醞釀開發一個新的免費作業系統。根據Linux 在comp.os.minix 新聞組上釋出的訊息,可以知道他逐步從學習minix 系統到開發自己的Linux 的過程。

1991 年的4 月份開始,林納斯·託瓦茲幾乎花了全部時間研究386-minix系統(hack the kernel),並且嘗試著移植GNU 的軟體到該系統上(GNU gcc、bash、gdb 等)。

1991 年4 月13 日在comp.os.minix 上釋出說自己已經成功地將bash 移植到了minix 上,而且已經愛不釋手、不能離開這個shell 軟體了。

1991 年7 月3 日,第一個與Linux 有關的訊息是在在comp.os.minix 上釋出的其中透露了他正在進行Linux 系統的開發,並且在Linux 最初的時候已經想到要實現與POSIX(UNIX 的國際標準)的相容問題了。

1991 年的10 月5 日,林納斯·託瓦茲在comp.os.minix 新聞組上釋出訊息,正式向外宣佈Linux 核心系統的誕生。這段訊息可以稱為Linux 的誕生宣言,並且一直廣為流傳。因此10 月5 日對Linux 社群來說是一個特殊的日子,許多後來Linux 的新版本釋出時都選擇了這個日子。所以RedHat 公司選擇這個日子釋出它的新系統也不是偶然的。

linux就介紹到這裡吧,接下來開始我們的linux入門學習吧!!!

linux學習

由於初次學習linux,所以我們目前將在虛擬機器上進行,可勁造,造壞不要怕,一個命令重置就OK了。 本文主要講是在虛擬機器進行上linux的學習,所以先來開啟虛擬機器吧,等一等……再開啟虛擬機器之前我們要大體一下知道linux的系統結構,我們都聽說過linux一切皆檔案,所以我們先了解一下linux的系統結構也就是她的目錄,及其各個目錄的作用。

1、linux的系統結構

linux是一個倒樹型結構,最大的目錄 叫根目錄‘/’ 二級目錄

/bin   二進位制可執行檔案 系統常規命令h
/boot  啟動目錄 ,存放系統自動啟動檔案,核心,初始化程式h
/dev   系統裝置管理檔案 
/etc   大多數系統配置檔案存放路徑 h
/home  普通使用者家目錄 區分普通使用者h
/lib   函式庫
/lib   64位函式庫
/media  臨時掛載點
/mnt    臨時掛載點
/opt    第三方軟體安裝路徑
/proc   系統硬體資訊和系統程序資訊
/root   超級使用者家目錄
/run    自動臨時掛載點
/sbin 系統管理命令,通常只有root可以執行
/srv   系統資料目錄
/var   系統資料目錄
/sys   核心相關資料
/tmp 臨時檔案產生目錄
/usr  使用者相關資訊資料

2、虛擬機器的操作

虛擬機器開啟				rht-vmctl start desktop                
虛擬機器顯示				rht-vmctl view desktop
虛擬機器關閉				rht-vmctl  poweroff desktop
虛擬機器重置				rht-vmctl reset desktop

Red hat Enterprise Linux Server 7.0 (Maipo) ##系統版本 Kernel 3.10.0-123.el7.x86_64 on an x86_64 ##核心版本,系統位數

desktop login:root          ##登陸使用者名稱稱輸入,此時root為超級使用者     
Password:                   ##密碼輸入不顯示

在這裡插入圖片描述 既然打開了虛擬機器,難麼我們快試試命令吧,終於揭開了linux神祕的面紗了,好激動啊!!!

3、命令提示符欄位含義及其執行

命令提示符欄位的含義

[[email protected] ~]$      ##root 當前使用者,執行shell的使用者
[[email protected] ~]$      ##@ 分隔符號
[[email protected] ~]$      ##foundation0 主機名短名稱
[[email protected] ~]$      ##~ 工作目錄
[[email protected] ~]$      ##$ 身份提示符       $表示如同使用者      #表示超級使用者

如何執行命令

|命令 | 引數 | 目標| |ls | -l | test|

注意: 1 )引數指定命令某些功能,可加可不加 2)命令和引數和目標之間有空格 3)在執行命令時特殊情況除外 4)命令在命令提示符後輸入,否則無效

命令的幫助

whatis [命令] ##檢視命令的功能
[命令] --help ##檢視命令的幫助
[]      ##選擇加入的內容,可加可不加
...     ##加入的內容個數任意
<>      ##內容在命令執行過程當中必須要加

4、檔案的管理

1) 檔案建立 touch filename (file) 在這裡插入圖片描述

2)目錄建立 mkdir directory (test) 一步建立 在這裡插入圖片描述 mkdir -p redhat/we/file 建立遞迴目錄,上層目錄不存在

在這裡插入圖片描述

3)刪除檔案

rm -f file

在這裡插入圖片描述

4)目錄刪除 rm -r text 在這裡插入圖片描述 5)檔案與目錄的複製 在這裡,我給大家把/etc/passwd檔案複製到/root下。 在這裡插入圖片描述

cp 原始檔  目的地檔案
cp -r 源目錄  目的地目錄
cp 原始檔1 原始檔2 目的地目錄
cp -r 原始檔1 原始檔2 目的地目錄

6)檔案的移動 在/root下建立兩個資料夾test1 test2並且在test2中建立file1,人後將file1移到test1中,看程式碼。 在這裡插入圖片描述 mv 原始檔 目的地檔案 mv 源目錄/原始檔 目的地目錄

7 )檔案檢視 接下來就檢視一下剛才複製過來的passwd檔案吧,上程式碼。

在shell中檢視passwd檔案 在這裡插入圖片描述 less 分頁瀏覽(:q##退出) 在這裡插入圖片描述 檢視最前面的3行 在這裡插入圖片描述 檢視最後3行 在這裡插入圖片描述

cat						##輸出檔案全部內容
less					##分頁瀏覽
head			file	##檢視檔案前10行
head	-n 	3	file	##檢視檔案前3行
tail			filee	##檢視檔案後10行
tail	-n	3	file	##檢視檔案的後3 行
tail	-f		file	##監控檔案內容的變化

8)檔案大小統計

wc
wc		-l		##行數
wc		-w		##單詞數
wc		-c		#位元組數

在這裡插入圖片描述

5、vim 的簡單操作

在linux下,我們使用最多文字編輯器的便是vim,因為vim 具有程式編輯的能力,可以主動的以字型顏色辨別語法的正確性,方便程式設計。 vim 在vim的命令模式下可以配置vim的工作方式 (vim passwd)按i進入插入模式 在這裡插入圖片描述

:set nu        	    ##行號新增
:set nonu     	  	##取消行號
:set mouse=a        ##新增滑鼠選擇
:set cursorline     ##行線顯示

在這裡插入圖片描述

在這裡插入圖片描述 關鍵字搜尋

n			#向下匹配
N			#向上匹配
/keyword	##高度顯示關鍵字

vim file ##進入file檔案,進行編輯

按[i]		  ##進入insert模式,開始編輯檔案
按[Esc]       ##退出inser模式
:wq          ##儲存退出
:q           ##退出不儲存
:q!          ##強制退出
ZZ			  ##儲存退出

複製、貼上、剪下 y ##複製命令 d ##刪除命令 c ##剪下命令 這三種命令的用法一樣,只需將y換成想要執行的命令就行了,這裡只講 (複製) y。 在這裡插入圖片描述

yl			##複製一個字母
y3l			##複製3個字母
yw			##複製一個單詞
y3w			##複製3個單詞
yy			##複製一行
y3y			##複製3行

注意:在剪下之後會進入插入模式,要貼上需要按[Esc]退出插入模式,然後按 p 貼上

p			##貼上
u		 	##撤銷
ctrl + r 	##恢復撤銷

vim 視覺化模式

v			##字元視覺化
V			##行視覺化
ctrl + v	##塊視覺化

在這裡插入圖片描述 字元的替換 將passwd檔案中的sbin字元換成love,並且將love高度顯示 在這裡插入圖片描述

:%s/要替換的字元/替換成的字元/g
:1.5s/要替換的字元/替換的字元/g    ##替換1到5行

vim的分屏 進行上下左右分屏 在這裡插入圖片描述

crtl + w	s		##上下分屏
crtl + w	v		##左右分屏
crtl + w	c		##關閉游標移動所在的螢幕
crtl + w	上下左右	##游標西東到指定的螢幕
: sp file 			##同時編輯當前檔案和file

vim下游標的操作

gg			##游標移動到檔案的第一行
G			##游標移動到檔案的最後
:數字		##游標移動到指定行
在插入模式下
i       ##游標所在位置插入
I       ##游標所在行行首
a       ##游標所在字元的下一個位置
A       ##游標所在行行尾
o       ##游標所在行下一行
O       ##游標所在行上一行
s       ##刪除游標所在字元插入
S       ##刪除游標所在行插入

6、目錄與路徑

檔案的地址 相對路徑:相對於當前系統所在目錄的一個名稱間歇,此名稱省略了系統當前所在名稱此名稱不以/開頭 絕對路徑:是檔案在系統的真實位置,此路徑以/開頭,此路徑在尋找是不會考慮現在所在的路徑 自動補齊 可以實現命令和路徑自動補齊

pwd         ##檢視當前所在路徑
cd  [目錄]  ##開啟到指定目錄
cd    ~     ##開啟到當前使用者所在的家目錄
cd    ..    ##開啟到上一層目錄
cd    -     ##開啟的上一個目錄(兩個目錄之間)

檢視目錄

ls  		dir			##列出當前所知目錄下的檔案
ls 	 -l 	file 		##檔案屬性
ls 	 -d	dir				##顯示目錄本身
ls 	 -a	dir		    	##顯示所有檔案(包括隱藏檔案)
ls	 -S	dir				##檢視並且按照檔案大小排序

在這裡插入圖片描述

7、系統中history的用法

history			##檢視歷史
history	-c		##清空當前環境中的歷史
!數字			##呼叫此行歷史
!test			##執行以test關鍵字開頭的命令
ctrl + r +關鍵字 ##呼叫歷史中最近一條含有關鍵字的歷史

在這裡插入圖片描述

8、系統的通用配置符

*				##匹配0到任意字元
?				##匹配單個字元
[[:alpha:]]		##單個字母
[[:lower:]]		##單個小寫字母
[[:upper:]]		##單個大寫字母
[[:digit:]]		##單個數字
[[:punct:]]		##單個符號
[[:alnum:]]		##單個字母或數字

[1-9]			##1位,是1-9的任意數字
[!3-5]			##1位,不是3-5的數字
[^3-5]			##1位,不是3-5的數字
{1..3}			##3位,1 2 3
{1,3,5}			##3位,1,4,7這三個數字

在這裡插入圖片描述 在這裡插入圖片描述 第一篇就到這吧!!! 待續……