在linux中,OS是指作業系統,是管理和控制計算機硬體與軟體資源的計算機程式,是直接執行在「裸機」上的最基本的系統軟體,任何其他軟體都必須在作業系統的支援下才能執行。OS存在的原因:單純的硬體計算機,操作起來效率特別低下,難度特別高。
本教學操作環境:linux7.3系統、Dell G3電腦。
前言: OS(作業系統)的學習是很重要的,這裡學習作業系統先從Linux開始。
Linux是指令操作的,距離OS更近,更便於我們掌握OS。學習C++,一般從事後端較多,並且Linux對於想要從事後端是非常重要,LInux很大概率就是工作的OS。
作業系統(Operating System,簡稱OS)是管理和控制計算機硬體與軟體資源的計算機程式,是直接執行在「裸機」上的最基本的系統軟體,任何其他軟體都必須在作業系統的支援下才能執行。
OS存在的原因:單純的硬體計算機,操作起來效率特別低下,難度特別高。
OS是一款軟體,用來進行對軟硬體資源進行管理的軟體,管理目的:對上,對下,提高操作效率。
現實生活中的作業系統
win7
Mac
Android
iOS
我們為什麼要學習指令呢?
因為所有的作業系統,剛開始的時候都是支援指令操作的,圖形化介面是後來才有的,所以指令執行距離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是刪除目錄
(1)語法:rmdir [選項] [目錄名字]
(2)功能:刪除空目錄
(3)常用選項
① -p 當子目錄被刪除後如果父目錄也變成空目錄的話,就連帶父目錄一起刪除
(4)舉例
rmdir dir
rmdir -p dir
(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
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下有兩種使用者:①超級使用者(root)②普通使用者
①超級使用者:可以在Linux系統下做任何事情,不受限制
②普通使用者:在Linux下做有限的事情
③超級使用者的命令提示字元是"#",普通使用者的命令提示字元是"$"
命令:su [使用者名稱]
功能:切換使用者
從普通使用者切換到root使用者,使用su root或su - ,從root使用者切換到普通使用者user,使用su user
舉例:
su -
su user
登入後複製
相關推薦:《Linux視訊教學》
以上就是linux os是什麼的詳細內容,更多請關注TW511.COM其它相關文章!