一文帶你入門Linux

Apple_Web發表於2020-02-08

1.1 Linux的概述:

1.1.1 什麼是Linux:

1.1.1.1 學習Linux之前先了解Unix

  • Unix是一個強大的多使用者、多工作業系統。

  • 於1969年在AT&T的貝爾實驗室開發。

  • UNIX的商標權由國際開放標準組織(The Open Group)所擁有。

  • UNIX作業系統是商業版,需要收費,價格比Microsoft Windows正版要貴一些。

1.1.1.2 Linux的概述:

  • Linux是基於Unix的

  • Linux是一種自由和開放原始碼的作業系統,存在著許多不同的Linux版本,但它們都使用了Linux核心。Linux可安裝在各種計算機硬體裝置中,比如手機、平板電腦、路由器、臺式計算機

在這裡插入圖片描述

  • 誕生於1991 年10 月5 日。是由芬蘭赫爾辛基大學學生Linus Torvalds和後來加入的眾多愛好者共同開發完成
    在這裡插入圖片描述
    在這裡插入圖片描述

1.1.1.3 Linux的歷史:

​ Linux最初是由芬蘭赫爾辛基大學學生Linus Torvalds由於自己不滿意教學中使用的MINIX作業系統, 所以在1990年底由於個人愛好設計出了LINUX系統核心。後來釋出於芬蘭最大的ftp伺服器上,使用者可以免費下載,所以它的周邊的程式越來越多,Linux本身也逐漸發展壯大起來,之後Linux在不到三年的時間裡成為了一個功能完善,穩定可靠的作業系統.

1.1.1.4 Linux系統的應用:

  • 伺服器系統:

​ Web應用伺服器、資料庫伺服器、介面伺服器、DNS、FTP等等;

  • 嵌入式系統:

​ 路由器、防火牆、手機、PDA、IP 分享器、交換器、家電用品的微電腦控制器等等,

  • 高效能運算、計算密集型應用:

​ Linux有強大的運算能力。

  • 桌面應用系統

  • 移動手持系統

1.1.1.5 Linux的版本

Linux的版本分為兩種:核心版本和發行版本;

  • 核心版本是指在Linus領導下的核心小組開發維護的系統核心的版本號 ;

  • 發行版本是一些組織和公司根據自己發行版的不同而自定的 ;

1.1.1.6 Linux的主流版本

在這裡插入圖片描述

1.2 Linux的安裝:

1.2.1 虛擬機器安裝:

1.2.1.1 什麼是虛擬機器

虛擬機器:一臺虛擬的電腦.

虛擬機器軟體:

  • VmWare :收費的.

  • VirtualBox :免費的.

1.2.1.2 安裝VmWare

參考《虛擬軟體vmware安裝.doc》

1.2.2 CentOS的安裝

參考《CentOS6詳細安裝文件.doc》

1.2.3 Linux的目錄結構:

在這裡插入圖片描述

root管理員的home目錄root

其他使用者的home目錄home目錄中

1.3 Linux的常用命令

1.3.1 切換目錄命令cd:

使用
cd app	切換到app目錄
cd ..	切換到上一層目錄
cd /		切換到系統根目錄
cd ~		切換到使用者主目錄
cd -		切換到上一個所在目錄

1.3.2 列出檔案列表:ls ll dir

ls(list)是一個非常有用的命令,用來顯示當前目錄下的內容。配合引數的使用,能以不同的方式顯示目錄內容。
    格式:ls[引數] [路徑或檔名]

常用:
在linux中以 . 開頭的檔案都是隱藏的檔案

 ls
 ls -a  顯示所有檔案或目錄(包含隱藏的檔案)
 ls -l  縮寫成ll

1.3.3 建立目錄和移除目錄:mkdir rmdir

mkdir(make directory)命令可用來建立子目錄。
mkdir app    在當前目錄下建立app目錄
mkdir –p app2/test   級聯建立aap2以及test目

rmdir(remove directory)命令可用來刪除“空”的子目錄:
rmdir app    刪除app目錄

1.3.4 瀏覽檔案

【cat、more、less】

cat
用於顯示檔案的內容。
格式:cat[引數]<檔名>

     cat yum.conf

more
一般用於要顯示的內容會超過一個畫面長度的情況。按空格鍵顯示下一個畫面。
回車顯示下一行內容。
按 q 鍵退出檢視。
 more yum.conf
    空格顯示下一頁資料  回車顯示下一行的資料

less
用法和more類似,不同的是less可以通過PgUp、PgDn鍵來控制。
     less yum.conf
         PgUp 和 PgDn 進行上下翻頁.

【tail】

tail命令是在實際使用過程中使用非常多的一個命令,它的功能是:用於顯示檔案後幾行的內容。
用法:
tail -10 /etc/passwd   檢視後10行資料
tail -f catalina.log   動態檢視日誌(*****)


ctrl+c 結束檢視

1.3.5 檔案操作:

【rm】

rm  刪除檔案
用法:rm [選項]... 檔案...
rm a.txt    刪除a.txt檔案
刪除需要使用者確認,y/n

rm 刪除不詢問
rm -f a.txt    不詢問,直接刪除

rm 刪除目錄
rm -r a    遞迴刪除

不詢問遞迴刪除(慎用)
rm -rf  a    不詢問遞迴刪除
rm -rf *     刪除所有檔案
rm -rf /*    自殺

【cp、mv】

cp(copy)命令可以將檔案從一處複製到另一處。一般在使用cp命令時將一個檔案複製成另一個檔案或複製到某目錄時,需要指定原始檔名與目標檔名或目錄。
cp a.txt b.txt    將a.txt複製為b.txt檔案
cp a.txt ../    將a.txt檔案複製到上一層目錄中


mv 移動或者重新命名
mv a.txt ../    將a.txt檔案移動到上一層目錄中
mv a.txt b.txt    將a.txt檔案重新命名為b.txt

【tar】命令:(打包或解壓)

tar命令位於/bin目錄下,它能夠將使用者所指定的檔案或目錄打包成一個檔案,但不做壓縮。一般Linux上常用的壓縮方式是選用tar將許多檔案打包成一個檔案,再以gzip壓縮命令壓縮成xxx.tar.gz(或稱為xxx.tgz)的檔案。

常用引數:
-c:建立一個新tar檔案
-v:顯示執行過程的資訊
-f:指定檔名
-z:呼叫gzip壓縮命令進行壓縮
-t:檢視壓縮檔案的內容
-x:解開tar檔案


打包:
tar –cvf xxx.tar ./*

打包並且壓縮:
tar –zcvf xxx.tar.gz ./* 

解壓 
tar –xvf xxx.tar
tar -xvf xxx.tar.gz -C /usr/aaa

在這裡插入圖片描述
擴充:.tar與.gz有什麼聯絡與區別?
我們在windows下經常進行壓縮解壓等操作。在linux上也經常會用到,但是比較常見的是.tar.gz

很多人見到就條件反射,壓縮用czvf,解壓用xzvf。但是,你真的瞭解這個字尾名嗎?

其實:
.tar只是進行打包,並沒有壓縮。 可用tar-cvf進行打包,用tar-xvf進行解包。
.tar.gz是既打包又壓縮 。tar –czvf [ 壓縮包名 ] [檔案或目錄]打包並且壓縮,tar –xzvf [壓縮包名]解包並且壓縮。注意:-z表示bzip的操作!
.gz 只壓縮。只能針對檔案。如果需要對一個目錄下的全部檔案壓縮,則用gzip -r [目錄]。gzip [檔名]進行壓縮,gzip –d [檔名]進行解壓。

【grep】命令

查詢符合條件的字串。
用法: grep [選項]... PATTERN [FILE]...

示例:
grep lang anaconda-ks.cfg  在檔案中查詢lang
grep lang anaconda-ks.cfg –color 高亮顯示

在這裡插入圖片描述在這裡插入圖片描述
在這裡插入圖片描述

1.3.6 其他常用命令

【pwd】

顯示當前所在目錄

【touch】

建立一個空檔案

touch a.txt

【ll -h】

友好顯示檔案大小

【wget】

下載資料

wget http://nginx.org/download/nginx-1.9.12.tar.gz

1.4 Vi和Vim編輯器

1.4.1 Vim編輯器:

在Linux下一般使用vi編輯器來編輯檔案。
vi既可以檢視檔案也可以編輯檔案。
三種模式:命令列、插入、底行模式。
	切換到命令列模式:按Esc鍵;
	切換到插入模式:按 i 、o、a鍵;
        i 在當前位置生前插入
        I 在當前行首插入
        a 在當前位置後插入
        A 在當前行尾插入
        o 在當前行之後插入一行
        O 在當前行之前插入一行

切換到底行模式:按 :(冒號);
更多詳細用法,查詢文件《Vim命令合集.docx》和《vi使用方法詳細介紹.docx》


開啟檔案:vim file
退出:esc  :q
修改檔案:輸入i進入插入模式
儲存並退出:esc:wq

不儲存退出:esc:q!

進入插入模式:
i:在當前的游標所在處插入
o:在當前游標所在的行的下一行插入
a:在游標所在的下一個字元插入

快捷鍵:
dd – 快速刪除一行
R – 替換

1.4.2 重定向輸出>和>>

> 重定向輸出,覆蓋原有內容;
>> 重定向輸出,又追加功能;
示例:
cat /etc/passwd > a.txt  將輸出定向到a.txt中
cat /etc/passwd >> a.txt  輸出並且追加

ifconfig > ifconfig.txt

1.4.3 管道 |

管道是Linux命令中重要的一個概念,其作用是將一個命令的輸出用作另一個命令的輸入。
示例
ls --help | more  分頁查詢幫助資訊
ps –ef | grep java  查詢名稱中包含java的程式

ifconfig | more
cat index.html | more
ps –ef | grep aio

1.4.4 &&命令執行控制:

命令之間使用 && 連線,實現邏輯與的功能。 

只有在 && 左邊的命令返回真(命令返回值 $? == 0),&& 右邊的命令才會被執行。 

只要有一個命令返回假(命令返回值 $? == 1),後面的命令就不會被執行。

mkdir test && cd test

1.4.5 網路通訊命令

ifconfig  顯示或設定網路裝置。
ifconfig  顯示網路裝置
ifconfig eth0 up 啟用eth0網路卡
ifconfig eth0 down  停用eth0網路卡

ping   探測網路是否通暢。
ping 192.168.0.1

netstat 檢視網路埠。
netstat -an | grep 3306 查詢3306埠占用情況

1.4.6 系統管理命令

date 顯示或設定系統時間
date  顯示當前系統時間
date -s “2014-01-01 10:10:10“  設定系統時間

df 顯示磁碟資訊
df –h  友好顯示大小

free 顯示記憶體狀態
free –m 以mb單位顯示記憶體組昂頭

top 顯示,管理執行中的程式

clear 清螢幕

ps 正在執行的某個程式的狀態
ps –ef  檢視所有程式
ps –ef | grep ssh 查詢某一程式

kill 殺掉某一程式
kill 2868  殺掉2868編號的程式
kill -9 2868  強制殺死程式

du 顯示目錄或檔案的大小。
du –h 顯示當前目錄的大小

who 顯示目前登入系統的使用者資訊。

hostname 檢視當前主機名
修改:vi /etc/sysconfig/network

uname 顯示系統資訊。
uname -a 顯示本機詳細資訊。
依次為:核心名稱(類別),主機名,核心版本號,核心版本,核心編譯日期,硬體名,處理器型別,硬體平臺型別,作業系統名稱

1.5 Linux的使用者和組

1.5.1 使用者的管理

useradd 新增一個使用者
useradd test 新增test使用者
useradd test -d /home/t1  指定使用者home目錄

passwd  設定、修改密碼
passwd test  為test使用者設定密碼

切換登入:
ssh -l test -p 22 192.168.19.128

su – 使用者名稱

userdel 刪除一個使用者
userdel test 刪除test使用者(不會刪除home目錄)
userdel –r test  刪除使用者以及home目錄

1.5.2 組管理:

當在建立一個新使用者user時,若沒有指定他所屬於的組,就建立一個和該使用者同名的私有組

建立使用者時也可以指定所在組

groupadd  建立組
groupadd public  建立一個名為public的組
useradd u1 –g public  建立使用者指定組

groupdel 刪除組,如果該組有使用者成員,必須先刪除使用者才能刪除組。
groupdel public

1.5.3 id,su命令

【id命令】

功能:檢視一個使用者的UID和GID
用法:id [選項]... [使用者名稱]

直接使用id
直接使用id 使用者名稱
【su命令】
功能:切換使用者。
用法:su [選項]... [-] [使用者 [引數]... ]
示例:
su - u1 切換到u1使用者,並且將環境也切換到u1使用者的環境(推薦使用)

在這裡插入圖片描述
【su命令】

功能:切換使用者。
用法:su [選項]... [-] [使用者 [引數]... ]
示例:
su - u1 切換到u1使用者,並且將環境也切換到u1使用者的環境(推薦使用)

【賬戶檔案】

/etc/passwd  使用者檔案
/etc/shadow  密碼檔案
/etc/group  組資訊檔案

【使用者檔案】

root:x:0:0:root:/root:/bin/bash
賬號名稱:		在系統中是唯一的
使用者密碼:		此欄位存放加密口令
使用者標識碼(User ID):  系統內部用它來標示使用者
組標識碼(Group ID):   系統內部用它來標識使用者屬性
使用者相關資訊:		例如使用者全名等
使用者目錄:		使用者登入系統後所進入的目錄
使用者環境:		使用者工作的環境

【密碼檔案】

shadow檔案中每條記錄用冒號間隔的9個欄位組成.
使用者名稱:使用者登入到系統時使用的名字,而且是惟一的
口令:  存放加密的口令
最後一次修改時間:  標識從某一時刻起到使用者最後一次修改時間
最大時間間隔:  口令保持有效的最大天數,即多少天后必須修改口令
最小時間間隔:	再次修改口令之間的最小天數
警告時間:從系統開始警告到口令正式失效的天數
不活動時間:	口令過期少天后,該賬號被禁用
失效時間:指示口令失效的絕對天數(從1970年1月1日開始計算)
標誌:未使用

【組檔案】

root:x:0:
組名:使用者所屬組
組口令:一般不用
GID:組ID
使用者列表:屬於該組的所有使用者

1.6 Linux的許可權命令

1.6.1 檔案許可權

在這裡插入圖片描述

屬主(user) 屬組(group) 其他使用者
r w x r w x r w x
4 2 1 4 2 1 4 2 1

1.6.2 Linux三種檔案型別:

  • 普通檔案: 包括文字檔案、資料檔案、可執行的二進位制程式檔案等。

  • 目錄檔案: Linux系統把目錄看成是一種特殊的檔案,利用它構成檔案系統的樹型結構。

  • 裝置檔案: Linux系統把每一個裝置都看成是一個檔案

1.6.3 檔案型別標識

普通檔案(-)
目錄(d)
符號連結(l)
進入etc可以檢視,相當於快捷方式

字元裝置檔案(c)
塊裝置檔案(s)
套接字(s)
命名管道(p)

1.6.4 檔案許可權管理:

chmod 變更檔案或目錄的許可權。
chmod 755 a.txt 
chmod u=rwx,g=rx,o=rx a.txt
chmod 000 a.txt  / chmod 777 a.txt

chown 變更檔案或目錄改檔案所屬使用者和組
chown u1:public a.txt	:變更當前的目錄或檔案的所屬使用者和組
chown -R u1:public dir	:變更目錄中的所有的子目錄及檔案的所屬使用者和組

相關文章