close

7~15章指令總覽

  • echo --- Display a line of text 顯示一列文字
  • clear --- Clear the screen清除螢幕
  • history --- Display the contents of the history list顯示記錄清單的內容
  • id --- Display user identity顯示使用者識別碼
  • chmod --- Change a file's mode變更檔案模式
  • umask --- Set the default file permissions設定檔案的預設權限
  • su --- Shell Run a shell as another user以另個使用者身份執行
  • sudo --- Execute a command as another user以另個使用者身份執行命令
  • chown --- Change a file's owner變更檔案的所有者
  • chgrp --- Change a file's group ownership變更檔案的群組所有者
  • passwd --- Change a user's password變更使用者的密碼
  • ps --- Report a snapshot of current processes回報常下程序的快照
  • top --- Display tasks顯示任務
  • jobs --- List active jobs列出活動中的工作
  • bg --- Place a job in the background將工作置於背景作業
  • fg --- Place a job in the foreground將工作置於前景作業
  • kill --- Send a signal to a process傳送訊號給程序
  • killall --- Kill processes by name以名稱刪除程序
  • shutdown --- Shutdown or reboot the system關閉或重啟系統
  • printenv --- Print part or all of the environment 列印環境的內容
  • set --- Set shell options 設定shell選項
  • alias --- Create an alias for a command新增命令的別名
  • export --- Export environment to subsequently executed programs匯出環境內容,供後續的程式使用
  • mount --- Mount a file system載入一個文件系統
  • umount --- Unmount a file system卸載一個文件系統
  • fsck --- Check and repair a file system檢查修復一個文件系統
  • fdisk --- Partition table manipulator分區表控制器
  • mkfs --- Create a file system創建文件系統
  • fdformat --- Format a floppy disk格式化一張磁碟
  • dd --- Write block oriented data directly to a device把一面向的數據寫入設備
  • genisoimage --- Create an ISO 9660 image file創建一個ISO
  • wodim --- Write data to optical storage media把資料存在光碟機(現在很少用)
  • md5sum --- Calculate an MD5 checksum計算檢查碼

參考題目:

1. echo 的延展功用有哪些? 請舉例說明

  • 延展路徑名稱Pathname Expansion --- 萬用字元的運作
  • echo * --- 列出目錄內的所有檔案 (不會顯示隱藏檔案)
  • echo .* --- 顯示隱藏檔案
  • 延展波浪Tilde Expansion
  • echo ~ --- 回至家目錄
  • 延展算術Arithmetic Expansion
  • echo $((4+4)) --- 運算數式
  • 延展大括弧Brace Expansion --- 依大括弧內的模式,延展成多個字串
  • echo {Z..A} --- 倒序排列字母
  • 新增檔案或目錄之用
  • 延展參數Parameter Expansion --- 把一小段資料以客製的名稱儲存起來,或許可以將這些 資料稱為變數,"USER" 變數的內容就是使用者名稱
  • echo $USER --- 顯示現在的使用者名稱
  • 替代命令Command Substitution
  • echo $(ls)

ls -l $(which cp) --- 當做ls命令的參數,還可用管線

2. echo 在哪兩種情況下結果會直接省略出輸入的字元? 請舉例說明

  用算數式顯示的東西是如何? 單引號、雙引號的功用? 請舉例說明

  • echo 在哪兩種情況下結果會直接省略出輸入的字元?
  • echo this is a  test --- shell移除額外的空格
  • echo The total is $100.00 --- shell看不懂參數"$1",直接移除它
  • 為了使打出的文字在輸出結果顯示相同,需要借助引號
  • 用算數式顯示的東西是如何?
  • echo "$USER $((2+2)) $(cal)" --- 顯示使用者當下系統的當月日曆

 

  • 單引號、雙引號的功用?
  • 雙引號 --- 雙引號內的字元,就是字元,不會被shell解讀為特別的意思; 除了"$""\" (反斜線)、與"`" (反引號)。以雙引號可以使用含空格的檔名
  • echo $(cal) --- 產生多個參數

  • echo "$(cal)" --- 只有一個參數

  • 單引號 --- 抑制所有的延展
  • echo text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER --- 顯示檔案當前位置及計算結果
  • echo "text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER" --- 顯示檔案及計算結果
  • echo 'text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER' --- 直接顯示輸入的文字內容

          

  • 單引號及雙引號區別
  • 在輸入需計算的數值後,單引號輸出會顯示輸入的計算過程,雙引號則是直接顯示計算結果
  • 在變數的設定當中,雙引號仍然可以保有變數的內容,但單引號內僅能是一般字元 ,而不會有特殊符號

3. ls出來的檔案,權限為何?

  檔案權限有哪幾種? 如何改變檔案權限?  如何改變身分?

  • ls出來的檔案,權限為何?
  • ls是『list』的意思,重點在顯示檔案的檔名與相關屬性
  • ls -al --- 列出所有的檔案詳細的權限與屬性

  • 在Unix的安全模式下,使用者擁有的檔案及目錄,就能夠控制它們的近用權
  • 使用者可以屬於某群組,該群組可能有多個使用者,都能近用其檔案及目錄
  • 檔案及目錄的擁有者可以授權所有人都能近用,Unix稱為world
  • 檔案權限有哪幾種?
  • 檔案的權限有三:讀、寫、執行
  • 檔案類型權限 -rw-rw-r--
  • 第一個字元是檔案屬性

  屬性

檔案類型

     -

常態檔案

     d

目錄

     l

連結檔

     c

字元檔案 --- 裝置檔裡面的序列埠(處理位元組流量)設備

例如:終端機、數據機 (一次性讀取裝置)

     b

區塊檔案 --- 裝置檔裡面的可供儲存的周邊(處理區塊資料)設備

例如:硬碟或CD-ROM (可隨機存取裝置)          

  • 其他9個字元稱為檔案模型
  • 以三個為一組,且均為『rwx』的三個參數的組合

Owner

Group

World

rwx

rwx

rwx

  • [ r ]代表可讀read、[ w ]代表可寫(write)、[ x ]代表可執行(execute)

    屬性

檔案

目錄

    r

允許打開及讀取

同時設定執行屬性,則可列出目錄的內容

    w

允許編寫或擷取,

但不能重新命名或刪除

由目錄屬性決定檔案的刪除及

重新命名權限

同時設定執行屬性,

則允許新增、刪除、重新命令

目錄內的檔案

     x

允許將檔案視為程式並執行

 

  允許進入目錄

  • 三個權限的位置不會改變,如果沒有權限,就會出現減號[ - ]
  • 第一組Owner --- 檔案擁有者可具備的權限
  • 第二組Group --- 加入此群組之帳號的權限
  • 第三組 World --- 非本人且沒有加入本群組之其他帳號的權限

  

  • 範例

  • 常見檔案屬性

 

 

  • 如何改變檔案權限?
  • 只有檔案擁有者及超級使用者才有權以chmod變更檔案權限
  • 權限的設定方法有兩種, 分別可以使用數字或者是符號來進行權限的變更
  • 數字類型改變檔案權限 (8進位數字)
    • 檔案的基本權限就有九個,分別是owner/group/others三種身份各有自己的read/write/execute權限

                 

  • 範例
  • 檔案的權限字元為:『-rwxrwxrwx』,使用數字來代表各個權限,各權限的分數對照表如下:r:4、w:2、x:1

→ 每種身份各自的三個權限分數是需要累加的,例如當權限為: [-rwxrwx---] 分數則是:owner = rwx = 4+2+1 = 7group = rwx = 4+2+1 = 7others= --- = 0+0+0 = 0,設定權限的變更時,該檔案的權限數字就是770  

  • [me@linuxbox ~]$ ls -l foo.txt → 列出此檔案權限

-rw-rw-r-- 1 me me 0 2016-03-06 14:52 foo.txt

[me@linuxbox ~]$ chmod 600 foo.txt → 變更檔案權限

[me@linuxbox ~]$ ls -l foo.txt → 列出以變更檔案權限

-rw------- 1 me me 0 2016-03-06 14:52 foo.txt

  • 符號類型改變檔案權限
    • 九個權限分別是(1)user (2)group (3)others三種身份,藉由u, g, o來代表三種身份的權限,a 則代表 all 亦即全部的身份,讀寫的權限則寫成r, w, x

           符號

意義

              u

檔案與目錄的擁有者

      g

群組擁有者

     o

其他非擁有者

     a

全部身份

 

chmod

  1.  
  2.  
  3.  
  4.  

+ (新增)

- (移除)

= (特定)

  1.  
  2.  
  3.  

檔案或目錄

  • 範例:
  • [root@study ~]# chmod  u=rwx,go=rx  .bashrc → 改變檔案權限

[root@study ~]# ls -al .bashrc → 列出變更檔案權限

-rwxr-xr-x. 1 root root 176 Dec 292013 .bashrc

  • user (u):具有可讀、可寫、可執行的權限
  • group 與 others (g/o):具有可讀與執行的權限
  • 如何改變身分?
  • 有三種方式改變身分:
  • 登出,再以另個身份登入
  • 使用su命令 --- 讓使用者在新的shell或以該使用者之名,執行該使用者的命令
  • 使用sudo命令 --- 允許管理者設定/etc/sudoers組態檔,允許特定使用者在其他身份執行命令

4.   有哪些指令可檢視電腦當前的程序?  如何關閉系統?

  • 有哪些指令可檢視電腦當前的程序?
  • ps --- 將某個時間點的程序運作情況擷取下來 (只顯示機器瞬間的狀態)
  • top --- 動態觀察程序的變化
    • 預設每三秒鐘更新一次
    • 顯示兩個部份:上方的系統摘要,以及依CPU活動排序的程序
  • 如何關閉系統?
  • 關閉系統的程序包括依序終止系統上的程序,以及處理若干重要的日常瑣事,才能關閉電源。
    • halt、poweroff、reboot、及shutdown,前三個命令用不到選項或參數
  • Shutdown --- 可以指定三種動作(暫停、關機、或重開機)
  • shutdown -h now --- 立即關機
  • shutdown -h 21:30 --- 指定時間關機
  • shutdown -r now --- 重開機

5. 哪些指令可檢視環境? 環境變數有哪些?

  • 哪些指令可檢視環境?
  • 可用bash內建的set命令或printenv程式檢查環境的內容
  • set命令同時顯示shell及環境變數
  • set | less → 列出所有shell、環境變數及內容
  • printenv只顯示環境變數
  • printenv | less → 列出所有環境變數及內容
  • 列出指定的變數值:printenv USER → me
  • echo 查看變數的內容
  • echo $HOME → /home/me
  • 別名無法以set或printenv查看,只能用alias命令查看
  • 環境變數有哪些?

    

6. 為何要學vi?  vi的模式有幾種? 如何切換及移動游標? 如何用vi編輯檔案?

  • 為何要學vi?
  • vi隨時可用:在沒有圖形介面的情況下,vi可說是最後的稻草,所有的 Unix Like 系統都會內建 vi 文書編輯器,其他的文書編輯器則不一定會存在  Ex: nano還不普及
  • 很多個別軟體的編輯介面都會主動呼叫 vi
  • vi輕量且快速:因為程式簡單,編輯速度相當快速,容易找到快速啟動,沒有選單也 不需等待載入幾個 MB
  • vi的模式有幾種? 如何切換及移動游標?
  • vi 共分為三種模式,分別是『一般指令模式』、『編輯模式』與『指令列命令模式』
  • 一般指令模式 --- 預設模式
  • 使用『上下左右』按鍵來移動游標
  • 使用『刪除字元』或『刪除整列』來處理檔案內容
  • 使用『複製、貼上』來處理文件資料
  • 編輯模式 ---
  • 按下『i, I, o, O, a, A, r, R』等任何一個字母,才會進入編輯模式
  • 左下方會出現『 INSERT 或 REPLACE 』的字樣,此時才可以進行編輯
  • 按下『Esc』即可退出編輯模式
  • 指令列命令模式 ---
  • 輸入『 : / ? 』三個中的任何一個按鈕,就可以將游標移動到最底下那一列
  • 提供『搜尋資料』的動作
  • 可進行讀取、存檔、大量取代字元、離開 vi 、顯示行號的動作
  • 一般指令模式可與編輯模式及指令列模式切換; 但編輯模式與指令列模式之間不可互相切換

    

  • 一般指令模式切換到編輯模式

進入插入或取代的編輯模式

i, I插入模式

i :從目前游標所在處插入

I :在目前所在列的第一個非空白字元處開始插入

a, A插入模式

a:從目前游標所在的下一個字元處開始插入

A:從游標所在列的最後一個字元處開始插入

o, O插入模式

o:在目前游標所在的下一列處插入新的一列

O:在目前游標所在處的上一列插入新的一列

r, R取代模式

r:只會取代游標所在的那一個字元一次

R:會一直取代游標所在的文字,直到按下 ESC 為止

[Esc]

退出編輯模式,回到一般指令模式中

 

  • 一般指令模式切換到指令列模式

指令列模式的儲存、離開等指令

:w 儲存

將編輯的資料寫入硬碟檔案中

:q 離開

離開 vi

:wq

儲存後離開

ZZ

儲存後離開

 

  • 一般指令模式 --- 游標移動、刪除、複製

移動游標的方法

h 或 向左方向鍵(←)

游標向左移動一個字元

l 或 向右方向鍵(→)

游標向右移動一個字元

j 或 向下方向鍵(↓)

游標向下移動一個字元

k 或 向上方向鍵(↑)   

游標向上移動一個字元

[Ctrl] + [f]

螢幕『向下』移動一頁,相當於 [Page Down]按鍵

[Ctrl] + [b]

螢幕『向上』移動一頁,相當於 [Page Up] 按鍵

0 或功能鍵[Home]

移動到這一列的最前面字元處

$ 或功能鍵[End]

移動到這一列的最後面字元處

  1.  

移動到這個檔案的最後一列

       nG

n 為數字。移動到這個檔案的第 n 列

      n<Enter>

n 為數字。游標向下移動 n 列

 

刪除及複製方法

x, X

x:向後刪除一個字元 (相當於 [del] )

X:向前刪除一個字元 (相當於 [backspace] )

dd

刪除游標所在的那一整列

ndd

n 為數字。刪除游標所在的向下 n 列

yy

複製游標所在的那一列

nyy

n 為數字。複製游標所在的向下 n 列

 

  • 如何用vi建立及編輯檔案?
  • 使用 vi 來建立一個名為 404040456.txt 的檔案:
    1. 輸入vi404040456.txt進入一般指令模式

  1. 按下 i 進入編輯模式,開始編輯文字

  1. 按下 [ESC] 按鈕回到一般指令模式
  2. 進入指令列模式,檔案儲存並離開 vi 環境

7. 如何客製化提示符號?

  • 提示符號可以透過 PS1 這個環境變數來設定
  • 設計提示符號
    1. 查看ps1_old變數的內容: echo $ps1_old → [\u@\h \W]\$
    2.  PS1= → 什麼都沒有,只有游標
    3. 加入提示符號,可加入特殊字元;
  • 添加鈴聲:$ PS1="\[\a\]\$ "
  • 加入資訊性的提示符號,主機名稱及時間$ PS1="\A \h \$ "     17:33 linuxbox $
  • 字元本身及背景的顏色設計

1. PS1="\[\033[0;31m\]<\u@\h \W>\$ " → 紅色的提示符號

    <me@linuxbox ~>$

2. PS1="\[\033[0;41m\]<\u@\h \W>\$\[\033[0m\] " → 紅色背景的提示符號

    <me@linuxbox ~>$

  • 常見提示符號字串內容

      

8. 套件工具類型分為哪幾種? 兩種套件分別執行的工作有哪些?

  • 套件工具類型分為哪幾種?
  • 套件管理系統有兩種工具:
  • 低階工具:安裝及移除套件 ex: dpkg (Debian)
  • 高階工具:搜尋元資料及解決相依問題 ex: apt-get, aptitude (Debian)
  • 兩種套件分別執行的工作有哪些?
  • 高階工具
  • 以高階工具搜尋典藏所元資料--- apt-get update, apt-cache serach search_string
  • 使用高階工具從典藏所以完整的相依性方案下載並安裝套件--- apt-get update, apt-get install package_string
  • 移除套件 --- apt-get remove package_name
  • 更新套件--- apt-get update; apt-get upgrade
  • 套件資訊命令--- apt-cache show package_name
  • 低階工具
  • 套件安裝 (未經相依性驗證) --- dpkg --install package_file
  • 移除套件
  • 更新套件 (從其他地方下載更新後的套件,可以直接安裝,取代舊的版本)--- dpkg --install package_file
  • 列出已安裝套件 --- dpkg –list
  • 套件狀態命令--- dpkg --status package_name
  • 套件檔案識別命令--- dpkg --search file_name

9. 硬體如何掛載、卸載及格式化?

  • 掛載、卸載及格式化
  1. 插入USB,終端機輸入[me@linuxbox ~]$ mount → 查看目前掛載的檔案
  2. 會看到/dev/sde1 → 表示USB以掛載至電腦中
  3. 切換使用者,並輸入密碼,再輸入[root@linuxbox ~]# umount /dev/ sde1卸載
  4. [me@linuxbox ~]$ sudo mkfs -t vfat /dev/sde 1→ 格式化清空    或是 [me@linuxbox ~]$ sudo mkfs -t ext3 /dev/sdb1 → 格式化清空
arrow
arrow
    文章標籤
    6月9日
    全站熱搜

    wendy1251103 發表在 痞客邦 留言(0) 人氣()