在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)常用選項
( 4)範例
mkdir dir :建立一個目錄
mkdir -p dir1/dir2/dir3 :遞歸建立多個目錄
6.rmdir指令&& rm指令
rmdir是mkdir相對於的指令,mkdir是建立目錄,而rmdir是刪除目錄
Ⅰ. rmdir:(1)語法
(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
##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 ,輸入重定向是把本來應該從鍵盤檔案讀取資料的方式,改成從指定的檔案讀取
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行)
① -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:%
# % %S
%d:日%m:月份
%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.txtgrep -i 'HeLlo' file.txtgrep -iv 'HeLlo' file.txt
19 .zip/unzip指令
1.zip:
(1)語法:zip 定義壓縮檔案名稱. zip [目錄或檔案]
(2)功能:將目錄或檔案壓縮成zip格式
(3)常用選項
① 直接使用zip 壓縮一個檔案② -r 可壓縮一個目錄下的所有檔案(4)範例
zip -r test.zip -d tar_package#zip test.zip package
zip -r test.zip tar_package
unzip
(1)語法:unzip 壓縮檔案
(2)功能:解壓縮
#( 3)常用選項
① 直接使用unzip 解壓縮
② -d 指定壓縮到哪一個路徑下
(4)
範例 unzip test.zipunzip test.zipunzip test.zip -d /home
:tar [選項] [檔案或目錄]#20.tar指令
(1)
語法
(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.熱鍵
② 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下有兩種用戶:①超級用戶(root)②普通用戶
①超級用戶:可以在Linux系統下做任何事情,不受限制
②普通用戶:在Linux下做有限的事情
③超級用戶的命令提示字元是"#",普通用戶的命令提示字元是"$"
指令:su [用戶名]
功能:切換用戶
從普通用戶切換到root用戶,使用su root或su - ,從root使用者切換到一般使用者user,使用su user
範例:
su - su user
相關推薦:《Linux影片教學 》
以上是linux os是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!