一 Linux作業系統和Shell
簡介
作業系統(Operating Systems, OS)實際上是一種用于計算機的軟、硬體資源管理調度的系統級軟體,它的主體是內核(Kernel),其主要負責行程管理、記憶體管理、檔案管理和外設管理等功能,而它也向外界提供了內核的介面即系統呼叫(System Call)以便于通過OS來利用計算機資源,
此外,OS還為用戶提供了一種互動式的命令列軟體,即Shell,它接受命令并將其傳遞給OS去執行,Shell本質上是一種命令列解釋器,而我們通常通過命令列終端去訪問Shell程式,
Unix是上世紀60年代開發出的多用戶、多任務的作業系統,而Linux是目前最為流行的類Unix系統,Linux將Bash作為默認的Shell,接下來,本文主要將根據UNIX Tutorial for Beginners對常用Shell命令做介紹,
系統目錄結構
Linux樹狀目錄結構:

以下為部分目錄的解釋:
- /bin:該目錄存放著最經常使用的命令,即可運行的Binaries (二進制檔案),
- /boot:該目錄下存放的是啟動Linux時使用的一些核心檔案,
- /dev:該目錄下存放的是Linux的外部設備,
- /etc:該目錄下存放的是所有的系統管理所需要的組態檔和子目錄,
- /home:用戶的主目錄,每個用戶都有一個以用戶的賬號命名的的目錄,
- /lib:該目錄下存放系統最基本的動態鏈接共享庫,其作用類似于Windows里的DLL檔案,
- /root:該目錄為系統管理員(超級權限者的用戶)的主目錄,
- /usr:該目錄存放的是用戶的很多應用程式和檔案,
- /usr/bin:系統用戶使用的應用程式,給系統用戶使用的指令,
二 常用Shell命令
1 目錄和路徑
當第一次登錄時,當前的作業目錄即主目錄,你的主目錄與你的用戶名具有相同的名稱,例如user123,它是你的個人檔案和子目錄的保存位置,
注意,在Liunx中,目錄本身是一種特殊的檔案,
1.1 列出檔案和目錄
ls (list)
$ ls,列出當前作業目錄下的檔案和子目錄

$ ls -a要列出主目錄中的所有檔案,包括名稱以點開頭的檔案(隱藏檔案,通常包含重要的程式配置資訊)

$ ls -l,以長模式(long)列出主目錄中的檔案

ls -l中各個輸出欄位的含義(包括檔案大小-位元組,修改時間)

大多數命令使用的選項形式是command -options arguments,由一個中劃線加上一個字符以及引陣列成,
但是許多命令,也支持長選項,長選項由兩個中劃線加上一個字組成,許多命令也允許把多個短選項串在一起使用,
例如,ls命令的選項如下

注意:dir和ls功能相同,但ls會高亮目錄始侄訓回傳主目錄,

1.2 創建目錄
mkdir (make directory),在作業目錄中創建一個子目錄
$ mkdir subdir
1.3 切換目錄
cd (change directory),將當前作業目錄更改為目標目錄(當前作業目錄是你所在的目錄,即你在檔案系統樹中的當前位置)
$ cd subdir
1.4 目錄 . 和 ..
當你鍵入$ ls -a時,可以發現有兩個特殊目錄,分別稱為(.)和(..)
當前目錄 (.)
(.)表示當前目錄,因此鍵入$ cd .會留在原地
父目錄 (..)
( .. ) 表示當前目錄的父目錄,因此鍵入$ cd ..會將你帶到檔案系統樹中的上一層目錄(父級目錄),
注意:鍵入不帶引數的即,$ cd始侄訓回傳主目錄,
1.5 路徑名
pwd(print work directory)
$ pwd,路徑名使你能夠確定與整個檔案系統相關的位置,
主目錄~
$ ls ~,可通過波浪號~字符來參考主目錄,它可用于指定從主目錄開始的路徑,
$ cd ~和$ cd都可以切換到主目錄
2 操縱檔案
使用命令列程式可以更輕松地完成復雜的檔案操作任務,
例如,使用如下命令:$ cp -u *.html destination可將所有HTML檔案從一個目錄復制到另一個目錄,但只復制目標目錄中不存在或比目標目錄中的版本更新的檔案,
通配符
使用在介紹和檔案相關的命令前,有必要了解一下使這些命令如此強大的通配符,
由于shell大量使用檔案名,它提供了特殊字符來幫助您快速指定檔案名組,這些特殊字符稱為通配符,通配符允許您根據字符模式選擇檔案名,
下表列出了通配符及其選擇的內容:

使用通配符,可以為檔案名構建非常復雜的選擇標準,以下是一些模式示例及其匹配內容:

我們可以將通配符用于任何接受檔案名引數的命令,
2.1 復制檔案
cp(copy)
$ cp file1 file2是在當前作業目錄中復制file1,并將其稱為file2的命令,
例如,將當前目錄的檔案復制到子目錄,并重命名,

2.2 移動檔案
mv(移動)
$ mv file1 file2 移動(或重命名)file1到file2
要將檔案從一個地方移動到另一個地方,請使用mv命令,

mv命令還可以用于重命名檔案,其方法是將檔案移動到同一目錄,但給它一個不同的名稱,

2.3 洗掉檔案和目錄
rm(remove),rmdir(remove directory)
要洗掉檔案,請使用rm命令,

使用rm file1 file2可以同時洗掉file1和file2
使用遞回選項 ( -r),rm 也可用于洗掉目錄:
rm -r dir1, 目錄dir1連同它們的所有內容一起被洗掉,
注意,Linux沒有取消洗掉命令,一旦你用
rm洗掉了一些東西,它就消失了,如果您不小心rm,尤其是使用通配符*,可能會對系統造成嚴重損害,
在使用rm通配符之前,請嘗試這個有用的技巧:
使用
ls來構造命令,通過這樣做,可以在洗掉檔案之前查看通配符的效果,使用ls測驗命令后,使用向上箭頭鍵呼叫命令,然后在命令中rm,
ls使用rmdir命令洗掉一個目錄(首先確保它是空的,Linux不允許您洗掉非空目錄),
2.4 查看檔案型別
file命令可以查看檔案的資料型別,file將檢查一個檔案并告訴我們它是什么型別的檔案,
要使用該file程式,我們只需鍵入:$ file name_of_file

該file程式可以識別大多數型別的檔案,例如:

2.5 在螢屏上顯示檔案的內容
clear(clear screen)
clear命令可用于清除前面命令的終端視窗
cat (concatenate)
cat命令可用于在螢屏上顯示檔案的內容(cat本質上是一種重定向)

less
less命令一次將檔案的內容寫入螢屏一頁,
如果要查看另一頁,請按空格鍵,如果要退出閱讀,請按q,對于長檔案, less優先于cat使用,
head
head命令將檔案的前10行寫入螢屏,先清屏再輸入
$ head -5 readme.txt, 將檔案的前5行寫入螢屏,
tail
tail命令將檔案的最后10行寫入螢屏,
2.6 搜索檔案內容
使用less的簡單搜索
使用less命令,您可以在文本檔案中搜索關鍵字(模式),例如,要在science.txt中搜索單詞science,請輸入$ less science.txt
然后,仍然在less中,鍵入正斜杠 [ / ],后跟要搜索的單詞
less將查找并突出顯示關鍵字,鍵入 [ n ] 以搜索下一個出現的單詞,
grep(不要問為什么叫grep)
$ grep 'keyword' file, grep在檔案中搜索指定的單詞或模式,
grep命令區分大小寫
先清屏,再輸入% grep 科學 science.txt
要忽略大小寫區別,請使用 -i 選項,即鍵入
$ grep -i 科學 science.txt
要搜索短語或模式,您必須將其括在單引號中(撇號),例如要搜索陀螺,輸入$ grep -i '陀螺' science.txt
grep的其他一些選項是:
v顯示那些不匹配的行n在每個匹配行之前加上行號c只列印匹配行的總數
一次可以使用多個選項,例如,沒有單詞science或Science的行數是$ grep -ivc science science.txt
wc(word count)
wc命令是一個方便的小工具,
要對readme.txt進行字數統計,請鍵入% wc -w readme.txt
要找出檔案有多少行,請鍵入% wc -l readme.txt
使用帶有通配符的命令
上述介紹的幾個命令接受多個檔案和目錄名稱作為引數,因此可以使用通配符來指定它們,這里有一些例子:

未完待續
Reference
- UNIX Tutorial for Beginners http://www.ee.surrey.ac.uk/Teaching/Unix/index.html
- Linux教程
https://www.runoob.com/linux/linux-system-contents.html - TLCL
http://billie66.github.io/TLCL/book/index.html
http://linuxcommand.org/lc3_lts0050.php
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/498661.html
標籤:其他
下一篇:yum工具的使用
