linux os是什麼

2023-02-13 14:00:19

在linux中,OS是指作業系統,是管理和控制計算機硬體與軟體資源的計算機程式,是直接執行在「裸機」上的最基本的系統軟體,任何其他軟體都必須在作業系統的支援下才能執行。OS存在的原因:單純的硬體計算機,操作起來效率特別低下,難度特別高。

本教學操作環境:linux7.3系統、Dell G3電腦。

前言: OS(作業系統)的學習是很重要的,這裡學習作業系統先從Linux開始。

Linux是指令操作的,距離OS更近,更便於我們掌握OS。學習C++,一般從事後端較多,並且Linux對於想要從事後端是非常重要,LInux很大概率就是工作的OS。

一.OS(作業系統)基本概念

作業系統(Operating System,簡稱OS)是管理和控制計算機硬體與軟體資源的計算機程式,是直接執行在「裸機」上的最基本的系統軟體,任何其他軟體都必須在作業系統的支援下才能執行。

OS存在的原因:單純的硬體計算機,操作起來效率特別低下,難度特別高。

OS是一款軟體,用來進行對軟硬體資源進行管理的軟體,管理目的:對上,對下,提高操作效率。

1.png

現實生活中的作業系統

  • win7

  • Mac

  • Android

  • iOS

二.Linux常見指令

我們為什麼要學習指令呢?

因為所有的作業系統,剛開始的時候都是支援指令操作的,圖形化介面是後來才有的,所以指令執行距離OS更近,便於我們更好的掌握OS。

1.ls指令

(1)語法:ls [選項] [目錄或檔案] (目錄或檔案不寫為當前目錄)

(2)功能:對於目錄,該命令列出該目錄下的所有子目錄和檔案。

對於檔案,將列出檔名及其他資訊。

(3)常用選項

① 直接使用ls 只有子目錄和檔案

② -l 列出檔案的詳細資訊(可以寫成ls -l,也可以寫成ll

③ -a 列出目錄下的所有檔案,包括以 . 開頭的隱含檔案

以 . 開頭的檔案我們稱為隱藏檔案,在任意目錄下,都會存在兩個隱藏檔案

.(當前路徑) ..(上級路徑)

④ -i 輸出檔案的i節點的索引資訊

⑤ -n 用數位的 UID,GID 代替名稱

(4)舉例

ls -al

2.pwd指令

(1)語法:pwd

(2)功能:顯示使用者當前所在目錄

Linux的路徑分割符是:/(斜槓)

Window的路徑分割符是:\(反斜槓)

(3)舉例

pwd

3.cd指令

我們一般定位某個檔案,是通過路徑定位的方式,找到檔案的。那為什麼我們是通過路徑的方式定位檔案的呢?

Linux的目錄結構本質是一顆多叉樹(1. 每一個子節點既可以是一個目錄(再放目錄或者普通檔案,遞迴式的定義),也可以是一個普通檔案 2. 這顆多叉樹的葉子節點,一定是一個普通檔案或者空目錄)

因此任何一個節點,可以有多個子節點,但是任何一個子節點,都只有一個父節點。

所以常規的路徑定位是具有唯一性的(絕對路徑具有唯一性

除了相對路徑,還有絕對路徑(相對於當前所處的路徑)

如果是日常使用,推薦相對路徑 —— 簡單

如果是新增組態檔之類,推薦絕對路徑 —— 不會出錯

(1)語法:cd [目錄名]

(2)功能:改變工作目錄,將當前工作目錄改變到指定的目錄下。(進入輸入的目錄)

(3)常用選項

① cd .. 返回上級目錄(.為當前目錄,..為上級目錄)

② cd 絕對路徑

③ cd 相對路徑

④ cd - 返回最近存取目錄

⑤ cd ~ 進入使用者家目錄(/home/hb)

(4)舉例

cd .. :返回上級目錄

cd /home/hb/code :絕對路徑

cd ../test :相對路徑

cd - :返回最近存取目錄

cd ~ :進入使用者家目錄

4.touch指令

如果我們建立了一個空檔案,在磁碟中會佔據空間嗎?

要佔用 檔案有屬性資料,也是資料

檔案 = 檔案內容 + 檔案屬性

我們要學的所有的檔案操作無非兩類:

①對檔案的內容操作

②對檔案的屬性操作

(1)語法:touch [選項] [檔案]

(2)功能:touch命令引數可更改檔案或目錄的日期時間,包括存取時間和更改時間,或者新建一個不存在的檔案,

(3)常用選項

① 直接使用touch 建立一個檔案

(4)舉例

touch test.c

5.mkdir指令

(1)語法:mkdir [選項] [目錄名字]

(2)功能:在當前目錄下建立一個目錄

(3)常用選項

-p [路徑名稱] 可以是一個路徑名稱,此時若路徑中的某些目錄尚不存在,加上此選項後,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄

(4)舉例

mkdir dir :建立一個目錄

mkdir -p dir1/dir2/dir3 :遞迴建立多個目錄

6.rmdir指令 && rm指令

rmdir是一個於mkdir相對於的指令,mkdir是建立目錄,而rmdir是刪除目錄

Ⅰ. rmdir:

(1)語法:rmdir [選項] [目錄名字]

(2)功能:刪除空目錄

(3)常用選項

① -p 當子目錄被刪除後如果父目錄也變成空目錄的話,就連帶父目錄一起刪除

(4)舉例

rmdir dir

rmdir -p dir

Ⅱ. rm(一般這個用的較多)

(1)語法:rm [選項] [目錄名字]

(2)功能:刪除檔案或目錄

(3)常用選項

① 直接使用rm 刪除一個檔案或目錄(檔案都可以刪除,但只能刪除空目錄)

② -r 刪除目錄及其下的所有檔案(可以刪除非空目錄)

③ -f 強制刪除檔案,即使檔案屬性為唯讀(即防寫)

④ -i 刪除前逐一詢問確認

(4)舉例

rm dir :刪除目錄

rm test :刪除檔案

rm -r dir :刪除目錄下所有檔案

rm -rf dir :強制刪除目錄下所有檔案

rm -ir dir :刪除目錄下所有檔案時依次詢問

* 萬用字元:匹配當前目錄下的任何內容

rm * :刪除當前目錄下的所有檔案(等價於rm ./*)

./ 當前目錄:告知系統,要存取的資源在當前目錄下,如果省略,部分情況下,預設就是當前目錄

7.man指令

(1)語法:man [選項] 命令

(2)功能:man相當於一個聯機手冊,Linux的命令有很多引數,我們不可能全都記住,這時候就可以使用man來獲取幫助。

(3)常用選項

① -k 根據關鍵字搜尋聯機幫助

② man man 可以搜尋man的相關操作

③ 數位 輸入對應的數位,會去查詢不同的命令

man手冊:

1 是普通的命令

2 是系統呼叫,如open(通過這個可以很方便的查到如何呼叫這個函數,以及需要加說明標頭檔案)

3 是庫函數,如printf

4 是特殊檔案,也就是/dev下的各種裝置檔案

5 是指檔案的格式,比如password,就會說明這個檔案中各個欄位的函數

6 是給遊戲留的,由各個遊戲自己定義

7 是附件和一些變數,比如像environ這種全域性變數在這裡就由有說明

8 是系統管理用的命令,這些命令只能由root使用,如ifconfigman相當於一個聯機手冊,Linux的命令有很多引數,我們不可能全都記住,這時候就可以使用man來獲取幫助。

(4)舉例

man 1 ls

man 3 printf

8.cp指令

(1)語法:cp [選項] 原始檔或目錄 目標檔案或目錄

(2)功能:複製檔案或目錄

(3)常用選項

① 直接使用cp 複製一個檔案

② -r 遞迴處理,將指定目錄下的檔案和子目錄一併複製

③ -f 強制複製檔案或目錄,不論目的檔案或目錄是否已經存在

④ -i 覆蓋之前先詢問

(4)舉例

cp file.txt file2.txt

cp -r dir1 dir2

cp -rf dir ..

9.mv指令

mv命令是move的縮寫,可以用來移動檔案或者將檔案改名,經常用來備份檔案或者目錄。

(1)語法:mv [選項] 原始檔或目錄 目標檔案或目錄

(2)功能

根據mv命令中第二個引數型別的不同(是目標檔案還是目標目錄),mv命令將檔案重新命名或將其移至一個新的目錄中。

①當第二個引數型別是原始檔(源目錄)時,mv命令完成檔案重新命名,此時,原始檔只能有一個,它將所給的原始檔或目錄重新命名為給定的目標檔名

②當第二個引數型別是已存在的目錄名稱時,原始檔或目錄引數可以有多個,mv命令將各引數指定的原始檔均移至目標目錄中

(3)常用選項

① 直接使用mv 移動或重新命名一個檔案或目錄

② -f 如果目標檔案已經存在,不會詢問直接覆蓋

③ -i 若目標檔案已經存在時,會詢問是否覆蓋

(4)舉例

mv file.txt a.txt

mv file.txt ..

mv dir1 dir2 dir

10.cat指令

(1)語法:cat [選項] [檔案]

(2)功能:檢視目標檔案的內容

(3)常用選項

① -n 輸出行編號

(4)舉例

cat file.txt

cat -n file.txt

除了cat,還有tac,從後往前檢視

tac file.txt

重定向:

這裡先介紹一個echo,類似於printf,輸出資訊到顯示器上

例如:echo "hello world"

(1)輸出重定向

建立一個檔案touch file.txt,然後可以通過echo "hello world" > file.txt,使本來應該寫入到顯示器的內容,把它寫入到檔案中(每次都會情況原始檔案的內容,進行重新寫入)

(2)追加重定向

echo "hello Linux" >> file.txt,類似上面的輸出重定向,但是這裡是兩個>,並且它不會清空原始內容,而是在原始檔案的結尾進行新增式的寫入

(3)輸入重定向

cat < file.txt,輸入重定向是把本來應該從鍵盤檔案中讀取資料的方式,改成從指定的檔案中讀取

11.more指令

(1)語法:more [選項] [檔案]

(2)功能:功能類似cat,但是可以手動向下翻

(3)常用選項

① -n 輸出行編號

② q 退出more

(4)舉例

more file.txt

12.less指令

(1)語法:less [選項] 檔案

(2)功能:類似cat和more,但是功能更強大,可以向上和向下翻(一般都使用less)

(3)常用選項

① -n 輸出行編號

② q 退出less

(4)舉例

less file.txt

13.head指令

(1)語法:head [選項] [檔案]

(2)功能:顯示檔案開頭(預設顯示開頭10行)

(3)常用選項

① -n<行數> 想要顯示的行數

(4)舉例

head -20 file.txt

14.tail指令

(1)語法:rm [選項] [檔案]

(2)功能:顯示末尾開頭(預設顯示末尾10行)

(3)常用選項

① -n<行數> 想要顯示的行數

(4)舉例

tail -20 file.txt

管道:

如果我們想要檢視檔案的中間部分,比如一個1萬行的文字,我們想要檢視[5000, 5030]行的資訊,我們怎麼辦呢?

①建立臨時檔案

通過head -5030 file.txt > temp.txt,先得到一個臨時檔案,然後在tail -30 temp.txt,我們才能看到[5000, 5030]中的資訊了。

比較複雜。

②管道

管道是用來級聯多個命令,來完成流水線式的資料處理工作的。(可以傳輸資料資源)

| 這個就是管道

這麼寫 head -5030 file.txt | tail -30 就可以通過管道來完成檢視了。

15.date指令(時間相關指令)

(1)語法:date [選項] [格式]

(2)功能:指定格式顯示時間或者顯示時間戳

(3)常用選項

① 在顯示上,使用者可以設定想要顯示出的格式,格式設定為一個+後接標記,其中常用的標記列表如下:

%H:小時

%M:分鐘

%S:秒

%X:相當於%H:%M:%S

%d:日

%m:月份

%Y:年份

%F:相當於%Y-%m-%d

② 時間戳

時間->時間戳 date+%s

時間戳->時間 date -d@時間戳

時間戳是從1970年1月1日開始所經過的秒數,不考慮閏秒

(4)舉例

date +%Y-%m-%d_%H:%M:%S

date +%s

16.cal指令

(1)語法:cl [選項] [年份]

(2)功能:顯示日曆

(3)常用選項

① 直接使用就是當前月份

② -3 顯示前一個月,當前月,下一個月的月曆

③ -y 顯示當前年份的年曆

(4)舉例

cal -3

cal -y 2020

17.find指令

find命令在目錄結構中搜尋檔案,並執行指定的操作

Linux下find命令提供了相當多的查詢條件,功能很強大。由於find具有強大的功能,因次它的選項也很多。

(1)語法:find [查詢位置] [選項] [查詢]

(2)功能:用於在檔案樹中查詢檔案,並作出相應的處理(可能存取磁碟)

(3)常用選項

① -name 按照檔名查詢檔案

(4)舉例

find /usr/include/ -name stdio.h

18.grep指令

(1)語法:grep [選項] 搜尋的字串 檔案

(2)功能:在檔案中搜尋字串,將找到的行列印出來(使用正規表示式搜尋)

(3)常用選項

① 直接使用grep,列印出帶有想要字串的行

② -i 忽略大小寫的不同,將大小寫視為相同

③ -n 輸出行號

④ -v 反向列印,列印出沒有想要搜尋的字串的那些行

(4)舉例

grep 'hello' file.txt

grep -i 'HeLlo' file.txt

grep -iv 'HeLlo' file.txt

19.zip/unzip指令

1.zip:

(1)語法:zip 定義壓縮檔名.zip [目錄或檔案]

(2)功能:將目錄或檔案壓縮成zip格式

(3)常用選項

① 直接使用zip 壓縮一個檔案

② -r 可壓縮一個目錄下的所有檔案

(4)舉例

zip test.zip package

zip -r test.zip tar_package

zip -r test.zip -d tar_package

2.unzip

(1)語法:unzip 壓縮檔案

(2)功能:解壓縮

(3)常用選項

① 直接使用unzip 解壓縮

② -d 指定壓縮到哪一個路徑下

(4)舉例

unzip test.zip

unzip test.zip -d /home

20.tar指令

(1)語法:tar [選項] [檔案或目錄]

(2)功能:壓縮檔案或解壓縮

(3)常用選項

① -c 建立一個壓縮檔案

② -z 判斷是否具有gzip的屬性,是否需要用gzip壓縮

③ -f 使用檔名,在f之後要立即接檔名,不能再加引數

④ -x 解開一個壓縮檔案

⑤ -t 檢視壓縮包裡面的檔案

⑥ -v 壓縮的過程中顯示檔案

⑦ -C 解壓到指定目錄下

(4)舉例

tar czf test.tgz tar_package // 壓縮檔案

tar xzf test.tgz // 解壓縮

tar xzf test.tgz -C /home // 解壓縮到指定目錄

tar xzvf test.tgz 解壓縮過程顯示檔案

21.bc指令

(1)語法:bc [數位][符號][數位]

(2)功能:計算器

(3)常用選項

① 直接使用bc 計算

(4)舉例

bc 1+2

22.uname指令

(1)語法:uname [選項]

(2)功能:用來獲取電腦和作業系統的相關資訊(可用來顯示linux主機所用的作業系統的版本、硬體名稱等基本資訊)

(3)常用選項

① -r 顯示核心版本

② -a 詳細輸出所有資訊,依次為核心名稱、主機名、核心版本號、核心版本、硬體名、處理器型別、硬體平臺型別、作業系統名稱

(4)舉例

uname -r

uname -a

23.熱鍵

Tab:命令自動補齊

Ctrl+c:終止失控程式

Ctrl+d:快速退出賬戶

Ctrl+r:搜尋歷史命令

24.關機指令

(1)語法:shutdown [選項]

(2)功能:關機

(3)常用選項

① -h 將系統的服務停掉後,立即關機

② -r 在將系統的服務停掉之後就重重新啟動

③ -t 在-t後加秒數,表示過多少秒關機

(4)舉例

shutdown -h

三.shell命令及執行原理

1.介紹

Linux嚴格意義上說的是一個作業系統,我們稱之為」核心(kernel)「,但是一般使用者不能直接使用kernel,而是通過kernel的」外殼「程式,也就是shell,來與kernel溝通。(shell是一種外殼程式)

2.作用

外殼可以保護OS系統,降低操作OS的成本,

shell外殼:傳遞使用者指令,交給OS,OS執行完畢,結果交給shell,shell再交給使用者。

從技術角度,Shell的簡單定義:命令列直譯器包含:

①將使用者的命令翻譯給kernel處理

②同時,將核心的處理結果翻譯給使用者

Linux中,外殼就是命令列直譯器。

Window中,外殼就是圖形化介面

在centos 7中常用的命令列直譯器(shell),叫做bash

四.Linux許可權概念

Linux下有兩種使用者:①超級使用者(root)②普通使用者

①超級使用者:可以在Linux系統下做任何事情,不受限制

②普通使用者:在Linux下做有限的事情

③超級使用者的命令提示字元是"#",普通使用者的命令提示字元是"$"

命令:su [使用者名稱]

功能:切換使用者

從普通使用者切換到root使用者,使用su root或su - ,從root使用者切換到普通使用者user,使用su user

舉例:

su -
su user
登入後複製

相關推薦:《Linux視訊教學

以上就是linux os是什麼的詳細內容,更多請關注TW511.COM其它相關文章!