# CCCA<br>校園網路策進會 <br>Linux 入門 <br>
2020.03.17
---
### 講者
![](https://i.imgur.com/x1P1dEJ.png)
---
### Linux是什麼?
![](https://i.imgur.com/xfKNnVs.jpg) ![](https://upload.wikimedia.org/wikipedia/commons/thumb/b/b0/NewTux.svg/300px-NewTux.svg.png)
----
Linux嚴格來說是一個作業系統核心
Linus Torvalds在大學期間因為學校所使用的OS:
minix在他386架構的電腦相容性不好
而當時也沒有合適的作業系統
(Hurd/GNU Mach與386BSD均尚未問世)
所以就自己寫了一個~
---
### Linux發行版
#### GNU/Linux 的 distribution(發行套件,簡稱 distro)
| | RPM軟體管理 | DPKG軟體管理 | 其他 |
| --- | ---------- | ------------ | -------- |
| 商業公司 | RHEL (Red Hat 公司)<br>SuSE (Micro Focus) | Ubuntu (Canonical Ltd.) | |
| 社群單位 | Fedora<br>CentOS<br>OpenSuSE| Debian<br>B2D | Arch<br>Gentoo |
----
![](https://i.imgur.com/IwjIJOM.png)
---
接下來的內容大量參考自以前學長(Peter)的slides
http://slides.com/hero1364/cli
---
### SHELL
![](https://upload.wikimedia.org/wikipedia/commons/9/92/%E6%AE%BC%E5%B1%A4.png)
----
GUI vs. CLI
![](https://upload.wikimedia.org/wikipedia/zh/9/9c/Windows_8_explorer.png) ![](https://i.imgur.com/fMwXhxq.png =50%x)
----
### SHELL
常接觸到的 Shell
<div style="width:50%;margin-left:37.5%;text-align:left;">
● sh<br><br>
● csh / tcsh<br><br>
● bash<br><br>
● zsh<br><br>
</div>
---
為何使用 CLI
與圖形化介面(GUI)相比
* 熟悉 CLI 後,操作較 GLI 來的迅速
* 可以將 CLI 指令編寫成強大的工具
* 可以執行較為底層的功能
* 使用強大的技巧 (EX : Pipe, && , ||
----
課程規劃
* 基本指令教學與練習
* 實用軟體
---
man (manual)/info/help
* man command
* man man
---
TAB鍵
* 自動完成
* 列出可行選項
---
cd (change directory)
移到特定的目錄下
* cd / 移到根目錄
* cd . 移到現在的目錄
* cd .. 移到父目錄(上一層)
----
cd
* cd ./usr 移到 usr?
* cd /usr 移到 usr?
差別在哪裡?
----
Ans:
* cd ./usr 相對路徑
(當前目錄下的usr資料夾)
* cd /usr 絕對路徑
(根目錄下的usr資料夾)
---
pwd (print working directory)
回傳目前工作資料夾路徑
* pwd
/home/username
---
ls (list)
* ls
* ls -a (all:包含隱藏檔案)
* ls -l (long:包含檔案屬性)
* ls -al/la
* ls -lh (human-readable)
---
mkdir (make directory)
新增資料夾
* mkdir directory_name
---
touch (create file)
新增文件
* touch fileaname.format
* update/change last modified date
---
rmdir (remove empty directory)
刪除空資料夾
* rmdir directory_name
* 缺點: 只能刪除空資料夾
---
rm (remove)
刪除
* rm filename
* rm -r directory_name (remove recusively)
* rm -f file_name (force remove)
* rm -rf directory_name
* rm -d directory_name (rmdir)
---
cp (copy)
複製貼上
* cp /path/source /path/target
---
mv (move)
剪下貼上
* mv /path/source /path/target
* rename
---
echo (print string to standard output)
寫shell script的時候很好用
* echo "Hello world!"
* echo $0
* echo $USER
---
cat (con<u>cat</u>enate)
直接輸出檔案內容
* cat filename
* 超過無法回去
----
more
輸出檔案內容後可以用space換頁enter換行
----
less
輸出檔案內容後可以用左右鍵換頁上下鍵換行
----
head
顯示檔案前10行
----
tail
顯示檔案後10行
---
file
列出檔案格式
---
clear
清空當前頁面
----
history
顯示歷史輸入的指令
---
which application_name
當前應用程式的路徑
----
whereis application_name
所有與應用程式有關的路徑
---
&
背景執行
* sleep 30 &
----
jobs
查看背景任務
---
hostnamectl
系統資訊
----
lshw/lscpu/lspci
---
break time
---
應用程式
---
文字編輯器
nano
vi/vim
emacs
---
pipe |
stdout導向下一個程式
---
grep
搜尋字串
---
redirect
\> 覆寫
\>> 新增
< 將檔案由右導入至左
---
find
找檔案
* find path -name filename
* find path -user username
* find path group groupname
---
bc basic calculator
---
* sed
* awk
---
tar
壓縮
* tar -czvf filename
* tar -xzvf filename
---
wget (web get)
* wget -r http://www.nctu.edu.tw
---
非常好的參考資源:
<a href="https://linux.vbird.org/">鳥哥的私房菜 -- 新站</a>
<a href="https://linux.vbird.org/">鳥哥的私房菜 -- 舊站</a>
---
Thanks for listening~
{"metaMigratedAt":"2023-06-15T05:01:12.785Z","metaMigratedFrom":"Content","title":"CCCA<br>校園網路策進會 <br>Linux 入門 <br>","breaks":"true","contributors":"[{\"id\":\"be465814-df88-47d8-9db1-dd395394822a\",\"add\":4634,\"del\":1110}]"}