經過前面的學習,大概了解了計算機組成原理和作業系統的一些知識。儘管這些知識都是瑣碎的,拼湊的,在以後的工作和學習中仍需進行深入的了解。但是這些預備知識對於準備跨入 linux 大門的童鞋來說,應該是足夠了。現在我們可以愉(ku)快(bi)的敲命令了,這篇文章就來對這幾天學習的命令做乙個總結。
在開始 linux 的命令學習之前,不妨回顧一下作業系統有關的知識,這些知識在後面的學習中可能會用到,有必要再次了解。
1.kernel 核心和系統呼叫
kernel 是作業系統的核心,第一天中我們有說道作業系統的一些核心功能,比如程序管理、記憶體管理、檔案系統、網路管理等,這些都是由核心提供的。這些功能是每個作業系統的基本功能,那些執行在作業系統上面的軟體,都或多或少需要使用到核心提供的功能。因此我們這裡可以換個角度理解核心的作用:將計算機硬體的計算能力抽象出來,並提供給上層軟體呼叫。這種呼叫被稱為系統呼叫。
系統呼叫,可以解釋為呼叫作業系統提供的最底層api進行程式設計。但是對於程式設計師來說,系統呼叫太過底層和複雜,使用起來非常麻煩。這時我們就需要用到庫(library),庫是作業系統對系統呼叫更高一層的抽象,通過呼叫庫進行程式設計,比系統呼叫簡單的多。這些作業系統的層次結構我們清楚了:kernel 核心 -> 各種庫 -> 應用程式。應用程式是建立在各種庫的基礎之上的。
2.magic number 魔數
我們編寫的軟體,也叫可執行檔案。軟體的本質上也是乙個檔案,只是可以被執行,那麼作業系統怎麼判斷這個檔案是否可以被執行呢?或者從**執行這個檔案呢?這就要用到魔數。魔數,顧名思義,它是有魔力的,它的魔力在於:可以告訴作業系統這個檔案是乙個可執行檔案還是普通的檔案,以及其他的一些資訊。
具體而言,魔數是在每乙個檔案的二進位制**的開頭處,用來表示檔案型別以及許可權等的幾個特殊字元,這些特殊字元的格式是固定的。雙擊某個應用程式,或者在 cli 中輸入命令回車後,shell 就會將二進位制檔案提交給作業系統的核心 kernel ,kernel 就去尋找這個檔案的魔數,從這個魔數去判斷該檔案是否可執行,或者有無執行許可權等等。如果檢測的要求合法,就會執行該檔案,如果檢測不合法,則拒絕執行。
3.工作目錄
想必你已發現,只要我們處於作業系統中,就無時無刻不處於某乙個目錄中。我們完成的所有的操作,都是在某乙個目錄中完成的。這個目錄也叫工作目錄(working directory)。
這裡留下乙個問題:linux 的基本哲學之一就是一切皆檔案,那麼目錄是不是一種檔案呢?檔名是不是一種檔案呢?檔名和檔案的存放位置是**?這些問題我也不懂,留在後序做解答。
說到工作目錄,這裡引入本文要介紹的第乙個 linux 命令:pwd(print working directory)。該命令用來在 bash 上以字串的形式輸出使用者當前所在的的工作目錄。
4.linux 檔案系統介紹
linux 使用的是層級檔案系統,也可以叫做屬性檔案系統,根檔案系統(root file system)等等。是從乙個根目錄開始,向下蔓延的檔案系統樹。" / "表示根檔案系統。絕大多數的 linux 發行版都遵循 fhs 標準,fhs 表示是 linux 標準委員會提出的檔案系統層級標準,規定了 linux 發行版必須建立哪些檔案。因此我們幾乎在所有的 linux 發行版中,都可以看到一些相同的目錄結構,比如 " /boot "、" /dev "、" /etc" 等等,下面將逐一介紹這些目錄。
/lib:用來存放庫檔案。我們在上面對庫進行了簡單的介紹,知道了庫就是作業系統從系統呼叫抽象出來,以提供給應用程式使用的介面。其實,庫還分為動態庫和靜態庫兩種。
5.linux 檔案命名的的規則
6.常用命令
cd(change directory):切換目錄
type:判斷命令的型別。
hash:檢視 shell 中快取的命令
date:顯示時間或者修改時間
獲取命令幫助
如果多個章節都有相同的命令,需要手動指定在哪個章節查詢,否則預設顯示第一次匹配。使用 whatis command 可以檢視命令的章節資訊。
man 命令中的相關操作(以下均表示按鍵)
tree:檢視指定目錄的目錄樹結構(這個挺帥的)
echo:內容輸出
mkdir:建立目錄
touch:修改檔案的時間戳資訊/建立檔案
touch -a file:改變檔案的最後一次訪問時間戳
touch -m file:改變檔案的修改時間戳
touch 在修改檔案的時間戳時,會首先判斷檔案是否存在,如果存在就修改檔案時間戳資訊,如果不存在,就建立乙個新檔案。因此我們經常使用 touch 來建立新檔案。
touch -c file:修改已存在檔案的時間戳,如果檔案不存在,則不做任何操作。
touch -a -t 209912122359 file:改變檔案的時間戳資訊到指定的時間。這是黑客常用的伎倆。
stat file:檢視檔案的時間戳資訊
rm file:刪除檔案
cp:複製檔案
mv:移動檔案
install:複製檔案或建立目錄
cat:顯示檔案的內容
more / less file:讀取長檔案內容,並能夠進行翻屏
head:檢視檔案的前 n 行,預設為10
tail:檢視檔案的後 n 行,預設為10
cut:抓取文字中的內容
sort:對文字中的內容進行排序,預設按照 ascii 排序
uniq:去除重複行
wc file:文字統計
tr:字元轉換
7.bash 和其的一些特性(包括一些命令)
bash 也是乙個命令,表示在當前的 shell 中開啟乙個子 shell。exit 命名表示退出當前 shell 並回到上乙個 shell,如果上乙個 shell 已經是根 shell,則退出當前使用者。linux 中每登入乙個使用者就會開啟乙個 bash,並且可以同時登陸多個使用者。據此可以 su 之後 exit 又回到原先的使用者 shell。
bash 是命令列工具,除了 bash 之外,類似的還有 csh,ksh 等。值的注意的是 shell 可以交替開啟,如可以在 bash 中開啟 csh,再在 csh 中開啟 ksh。也就是說乙個 shell 的子 shell 並不要求和原來一致。
bash 的一些操作技巧:
命令歷史:bash 會記錄執行過的命令,使用上下箭頭切換,也可使用 history 命令檢視記錄:
經過執行的命令被存放在記憶體的緩衝區中,當使用者正常退出時,會將緩衝區中的內容追加到 ~ 下的 .bash_history 中,因此下一次該使用者登陸系統時,還可以繼續使用 history。
歷史命令的使用技巧:
命令別名:
命令替換:類似於 php 中的魔術變數
檔名通配:
以上是 linux 中檔案路徑的萬用字元寫法,和正規表示式有幾分相似。
8.總結
這篇文章主要介紹了 linux 的一些基本概念和常用命令,包括 linux 的檔案系統,以及一些常用的操作檔案和目錄的命令。最後介紹了 bash 的特性和一些使用技巧,需要不斷的練習和複習,才能掌握上面的內容。
Linux學習筆記0 0 2
刪除目錄或檔案的方法,我學習了兩個乙個是使用rmdir命令另乙個是使用rm命令。下面對這兩個命令進行簡要講解。1.1 rmdir 命令 rmdir 命令的作用就是從乙個目錄中刪除乙個或者多個空的子目錄。簡單粗暴的說,你只能刪除你包含的乙個或者多個空資料夾。看下面例項 1rmdir test 刪除 t...
linux學習打卡 002
今天主要是學習如何安裝虛擬機器和掌握一些linux系統的基礎命令。熟練度警告!systemctlsystemctl管理服務的啟動 重啟 停止 過載 檢視狀態等常用命令 常用系統工作命令常見執行linux命令的格式是 命令名稱 命令引數 命令物件 echo命令 用於在終端輸出字串或者變數提取後的值,格...
NingShanFeng 之linux的常用命令
ls 是英文單詞 list 的縮寫,功能是列出目錄的內容,是使用者常用的命令之一,它類似於dos 寫的dir命令 ls常用引數 引數含義 a顯示指定目錄下所有子目錄與檔案,包括隱藏檔案 l以列表方式顯示檔案的詳細資訊 h配合 l 以人性化的方式顯示檔案大小 與dos下的檔案操作類似,在unix li...