Upload
-chou
View
114
Download
6
Embed Size (px)
Citation preview
Unix Command
CSIE 基爾 @ NCU網路開源社
Updated: 10262013
課程
• 相關學分:計算機概論、編譯器、作業系統
• 等級:入門
• 背景知識:
• 課程目標:• 了解目錄概念
• 了解作業系統指令
• FreeBSD基本操作介紹
• 實際操作FreeBSD作業系統
Basic Concept
• 使用者要操作電腦,其實是由指令所構成的。
• 每個動作都是一堆「指令」所完成,即使是在windows也一樣
硬體
指令基本概念
命令CPU
指令集使用者
Windows的命令
命令怎麼執行的?
• 作業系統底下的命令分成兩種。
• 程式
• 一個最低階的作業系統原生指令
• 執行檔
• 在/bin這個目錄底下
• 原始碼• Google it
• linux 開發者原始碼包
Example source code [whoami]
進階:Assembler in linux
• Compiler
• Objdump
$ gcc [source code] –o [execute filename]
$ objdump –s –o [execute filename]
進階
執行檔
原始碼
組語
目錄概念
目錄
• 使用沒有圖形化介面的作業系統
• 會是在各個目錄(資料夾)上轉換的行為
• 口語上來說就是【某某目錄轉換到某某目錄】
• 轉換目錄的方式有兩種
• 1. 相對路徑轉換• 2. 絕對路徑轉換
(*´∀`)<:別懷疑這是國中物理(ノ° ロ°)ノ彡┻━┻
相對路徑轉換
12
• 相對路徑• 目錄或檔案相對於當前目錄的位子
• 假設你在conf這個目錄底下• 【其他目錄】相對於【conf目錄】的位置
絕對路徑轉換
13
• 絕對路徑• 目錄或檔案相對於根目錄的位子
• 不論你在哪個目錄底下• 【其他目錄】相對於【根目錄】的位置
常用路徑轉換
路徑 意義
. 這一個目錄
.. 上一個目錄
~ 家目錄
./ [filename] 這一個目錄底下的某個檔案
../ [filename] 上一個目錄底下的某個檔案
./ [dir] / 這一個目錄底下的某個目錄
Basic Command
指令長怎麼樣?
不論是在作業系統、switch等網路設備、甚至是組合語言,
指令都有各自的標準。
指令 $ ls
指令 [參數] $ ls –a
指令 [目標] $ ls –a /etc
指令 [參數] [目標] [參數] $ ls –a /etc –l /var
Example
cd 或 chdir
• Change directory
• 用途:目錄操作
#切換至/etc目錄
$ cd /etc
#印出自己所在位置
$ pwd
/etc
#切換至家目錄
$ chdir ~
#再印一次所在位置
$ pwd
/root
pwd
• Print working directory
• 用途:目錄操作
ls
• List
• 用途:目錄操作
• 常見參數:-al
#切換至/etc目錄
$ cd /etc
#印出目錄底下資訊
$ ls
#印出所有資訊
$ ls –al
#切換至家目錄
$ chdir ~
man 或 info
• Manual | information
• 用途:指令說明書
#查看man這個指令的用途
$ man man
#中斷查詢
Ctrl + z
ctrl+c 跟 ctrl+z
• 用途:中斷
who 跟 whoami
• 用途:使用者管理
#查看線上有誰
$ who
#查看自己是誰
Ctrl + z
Alt + F1~F8
• 用途:終端切換
(゚∀゚)<:Unix本身就是設計給多使用者同時操作的
whereis 跟 find
• 用途:套件操作
• Find常見關鍵字:-name
#找ls這指令程式在哪
$ whereis ls
#搜尋/bin目錄底下內容
$ find /bin
#搜尋/bin底下關鍵字ls
$ find /bin –name “ls”
cat 跟 tail 跟 head
• 用途:檔案操作
#印出/var/log/message裡面的內容
$ cat /var/log/message
Ctrl + c
$ tail /var/log/message
Ctrl + c
$ head /var/log/message
Ctrl + c
mkdir 跟 touch
• 用途:檔案操作
#切換回家目錄
$ cd ~
#新增資料夾dir1跟dir2
$ mkdir dir1
$ mkdir dir2
#進入資料夾dir1
$ cd dir1
#新增檔案file1跟file2
$ touch file1
$ touch file2
mv 跟 cp 跟 rm
• Move | Copy | Remove
• 用途:檔案操作
• 常見參數:-R
#切換回家目錄
$ cd ~
#搬動dir1中的file1至dir2
$ mv dir1/file1 dir2
#複製dir2中的file1成file3
$ cp dir2/file1 dir2/file3
#複製dir2資料夾到dir1下
$ cp –R dir2 dir1/
#刪除dir2資料夾
$ rm –R dir2
logout 跟 exit
• 用途:系統操作
halt 跟 reboot
• 用途:系統操作
#登出
$ logout
#關機
$ halt
#重開機
$ reboot
Advance Command
進階:重新導向 (>跟>>)
• 透過重導向將output導到其他input
連續指令 ( ; )
• 指令其實是可以一次下很多個
• 跟寫程式一樣,加個分號就好
#切換回家目錄
$ cd ~
#新增一個資料夾dir2
並且新增一個檔案file4
$ mkdir dir2; touch file4
Pipe指令 ( | )
• 指令可以串流
• 前個指令產生的output
• 作為下個指令的input
#切換回家目錄
$ cd ~
#新增一個檔案file5
將新增的檔案複製成file6
$ touch file5 | cp file5 file6
more 跟 less
• 用途:查看檔案
grep
• 用途:查看檔案
• 常見參數:關鍵字串
#用more查看記錄檔
$ cat /var/log/message | more
#查看記錄檔中十一月的紀錄
$ cat /var/log/message | grep „Nov‟