Linux Programming Tutoring - Introduction to Linux environment and frequently used commands - TA : Jei-Wen Wei Lecturer : Chi-Sheng Shih
Outline Introduce Linux environment What is BASH Frequently used commands Exercise (optional)
Outline Introduce Linux environment What is BASH Frequently used commands Exercise (optional)
Linux environment (1/2) Linux is an operating system (OS) Applications System call OS Kernel Hardware
Linux environment (2/2) Linux (1991) Unix (1973) BSD (1977) Workstation in CSIE (linux1 ~ linux15) Unix (1973) 高階C語言 容易移植到不同的機器上 BSD (1977) 是Unix 的重要分支 Workstation in CSIE (bsd1 ~ bsd8)
Outline Introduce Linux environment What is BASH Frequent used commands Exercise (optional) *登入工作站 linux3.csie.nut.edu.tw *bash *按ctrl+d或打exit 離開bash
What is BASH (1/3) Bash is a shell What is shell For example : 用電腦聽音樂 硬體: 喇叭.音效卡晶片 Kernel management: driver App: users Shell is communication with user and kernel
What is BASH (2/3) User Interface ( Shell , application ) Kernel Hardware
What is BASH (3/3) Bash shell 有很多的優點 記憶用過的指令 (1000個) Tab鍵 Alias 命令別名 補齊命令 or 檢視資料使否正確 Alias 命令別名 Alias lm = ‘ls -al’ 前景背景控制 Shell script 可以將許多指令寫在一起 - 批次檔 *先打個 ls 然後按enter 會出現東西 接下來按箭頭向上 出現上一個輸入過指令 *就自己資料夾底下的東西 ex.出現htdocs 就打ht按tab鍵 自動補齊 *接下來的幾個優點 會隨著你們的coding行為越來越複雜時 使用到 今天先暫不介紹 如果之後你們有需要用到這些功能時 都可以在網路上查到很多資料
Outline Introduce Linux environment What is BASH Frequently used commands Exercise (optional)
Frequent used commands 詳細介紹指令的參數 man ls exit – 離開 *要使用指令 最重要的就是要知道指令如何使用 *接下來就是要離開工作站 *vim temp.c i 123 456 789 :wq
General (1/2) Command Synopsis Option Function ls ls [Option] [File] 列出全部檔案包括隱藏檔 -l 列出詳細的檔案資訊 cd cd [Path] / 回到root底下 ~ 回到家目錄 .. 回上一層 mkdir mkdir [Option] Dir. 建立目錄 rmdir rmdir [Option] Dir. 刪除目錄 mv mv [Option] Source Dest 移動檔案或目錄 Ls and Ls –al Cd packet and cd ~ Mkdir Anita and rmAnita Cd packet and mv temp.c ../
General (2/2) Command Synopsis Option Function rm rm [Option] [File] 刪除檔案及目錄 -i 刪除時提出警告 -f 刪除時不提出警告 -d 刪除目錄(=rmdir) cp cp [Option] Source Dest -a 複製目錄 若相同檔名的檔案直接覆蓋不提出警告 若相同檔名的檔案不直接覆蓋而且提出警告 Rm –i rm_v1.c rm –f rm_v2.c Cd .. cp cpme packet/
Read File Command Synopsis Option Function cat cat [Option] [File] 印出檔案內容至銀幕或合併檔案 -n 印出檔案及行號 head head [-n number] [File] 印出檔案的前10行 印出檔案的前number行 tail tail [-n number] [File] 印出檔案的後10行 譖出檔案的後number行 more more [Option] [File] 逐頁顯示檔案內容 -p 先清除螢幕再列出 -c 每頁都清除螢幕一次再從螢幕最頂端列出 -s 如果檔案中有許多連續空白列時,只顯示一列 *cat temp.c *head temp.c head –n 1 temp.c *tail temp.c tail –n 1 temp.c
System (1/2) Command Synopsis Option Function ps ps [Option] 查看系統中正在執行的程式資料 -l 長格式顯示 -u 顯示使用者名稱和起始時間 -i 顯示各程式的詳細執行情況 -s 顯示各程式的訊號名稱 -m 顯示記憶體分配情形 -a 其它使用者執行的程式一併顯示出來 -x 顯示所有程序 *Ps ps aux (有沒有剪號都可以使用)
System (2/2) Command Synopsis Option Function top top [-d number] 查看系統狀態 -d 每隔number查看系統狀態 按Ctrl+c or q 結束 kill kill [Option][PID] 終止執行的程式 -l 列出所有的信號 pwd pwd [Option] empty 顯示目前工作目錄路徑 who who [Option] 顯示目前線上使用者 -m 顯示本身的資料 -q 顯示使用者帳號和線上人數 -w 顯示線上使用者能否用write傳送訊息給他 Top Q Kill XXXX 不要按enter Who Who –m Who -q
Management read/write /execute (r/w/x) For example owner [-rwxrwx---] Owner = rwx = 4+2+1 = 7 Group = rwx = 4+2+1 = 7 Others = --- = 0+0+0 = 0 owner owner/group/others group others [-rwxrwxrwx] rwx rwx rwx *ls –l
Management Command Synopsis Option Function chmod chmod [-R] xyz [File or Dir.] 變更檔案屬性 -R Recursive 改變目錄下所有File xyz 數字類型的權限屬性 chown chown [-R] 帳號 [File or Dir.] 改變擁有者 -V 執行完後顯示訊息 chgrp chgrp [-R] [File or Dir.] 改變檔案或目錄的擁有群組 *chmod 664 temp.c *ls -l
Management 符號類型改變檔案權限 For example : chmod u=rwx,go=rx ABC 假如我們要設定ABC的權限成為-rwxr-xr-x chmod u=rwx,go=rx ABC chmod u g o a + (加入) - (除去) = (設定) r w x File or Dir. * Chmod g=r temp.c
Others (1/3) Command Synopsis Option Function grep grep [Option] 字串 [File] 用關鍵字找尋檔案 -number 列出找到字串的檔案名稱和字串前後幾行的內容 -c 顯示找到該字串的個數,不會顯示檔案內容 -h 不會顯示檔名,只會顯示內容 -I 忽略大小寫 -m 只找尋字串完全相同者 *grep 123 temp.c grep -1 123 temp.c
Others (2/3) Command Synopsis Option Function tar tar [Option] [Filename] Source 建立.tar 封裝檔 -cvf 將資料夾包成 File.tar -czvf 將資料夾壓縮成 File.tar.gz -cjvf 將資料夾壓縮成 File.tar.bz2 tar [Option] [Filename] 解開 .tar 封裝檔 -xvf 展開File.tar -xzvf 解開File.tar.gz -xjvf 解開File.tar.bz2 *tar –czvf tarme.tar tarme *tar –xzvf tarme.tar
Others (3/3) Command Synopsis Option Function su su [Option] 轉換身份成為系統管理員 -c Pass Command diff diff [Option] from-file to-file 比較兩個檔案的文字內容有何不同處 -b 忽略一行當中多個空白的差異 Ex. About you / About you -B 忽略空白行 -i 忽略大小寫不同 *diff temp.c diff.c (自己實作就好) 5c5 (temp.c裡的第五行被取代成diff.c內的第五行) 4d3(左邊第四行被刪掉了 與右邊第3行比較的話)
Stdin & Stdout & Stderr 標準輸入(stdin):代碼為 0 (< 或 <<) Command 正常指令執行結果 指令執行異常訊息 Stdout Stderr
I/O Redirection Command Function Command > file 把command的STDOUT存到file (若檔案存在則覆蓋) Command 1> file command 2> file 把command的STDERR存到file command >> file (若檔案存在則附加在後面) command 1>> file command 2>> file command < file 讀入file當作command的STDIN command 0< file *以剛剛diff出來的結果 > result Cat result
Pipe 如果想要讀/etc底下的file , 但顯示的資料很多時無法得知一開始出現的訊息? ls -al /etc | less | For example : 想要知道正在執行的程式中,只印出包含有自己帳號的字串 | Stdout Stdin Stdout Stdin *ps aux | grep init Command 1 Command 2 Command 3
Outline Introduce Linux environment What is BASH Frequently used commands Exercise (optional)
Reference Linux man page 鳥哥的Linux私房菜 Linux指令集 http://linux.die.net/man/ 鳥哥的Linux私房菜 http://linux.vbird.org/linux_basic/redhat6.1/linux_06command.php Linux指令集 http://www.pcnet.idv.tw/pcnet/linux/linux_command.htm