# 傳說中的第二次社課
*YoMin Su*
---
## 玩弄Linux好簡單
不會基本操作,還何談寫程式?
----
### 基本操作的部分
```shell=
ls
#列出該資料夾的內容
cd <PATH>
#切換資料夾
pwd
#印出目前路徑
```
> 請善用 Tab的自動補完功能
----
### 還是基本操作
```shell=
mv <src> <dst>
#移動檔案
cp <src> <dst>
#複製檔案
```
> 這裡更適合用 Tab補完目錄
----
### 新建與刪除很重要
```shell=
mkdir <dir>
#新建資料夾,可以一次輸入多個
rm <file>
#刪除檔案
rm -r <dir>
#刪除資料夾,不加參數會掛掉
```
> 用不到的東西砍掉很正常吧~
----
### stdout是啥?可以吃嗎?
```shell=
cat <file>
#印出檔案內容
echo "String"
#印出你打的東西
```
> 廢話,當然不能吃,但很重要
----
### 背景程式好多喔,真礙眼
```shell=
ps
#列出背景執行的程式,加上 -aux 可以列出全部
kill <PID>
#砍掉該執行中的程式
```
> 沒事別亂砍,別亂砍沒事
----
### 所以我說編輯檔案呢?
```shell=
nano
#比較符合直覺的編輯器
vim
#快速鍵組成的編輯器
sed
#看都不看就改下去的部分
```
> 別急別急,以後有的是時間編
----
### 捷徑什麼的,該不會沒有吧?
```shell=
ln <TARGET>
#硬連結,殺了一個我,還有千千萬萬個我
ln -s <TARGET>
#軟連結,算我怕你吧,別動我真身
```
> 有是有,但你真的想聽?
----
### 萬般皆下品,唯有權限高
```shell=
su <User>
#切換使用者,要該使用者的密碼
sudo
#取得管理員權限,需要自己的密碼(且帳號在sudo群組)
```
> 沒sudo真滴難辦事...
----
### 是大於小於欸,跟+<><有關嗎?
```shell=
(src) > (dst)
#將src放入dst中
(src) >> (dst)
#將src加入dst中
(src) < (dst)
#將dst送入src中
(src) << (dst)
#將dst加入src中
```
> 好像哪裡怪怪的...
---
## 實作環節
----
### ①請建立出與下圖相同的資料夾結構

----
### ②請在各資料下創建出指定檔案,並包含指定內容

----
- \<dir>/run.py
```python=
print('Hello World!')
```
- \<dir>/run.js
```javascript=
console.log("Hello World!");
```
- \<dir>/trash.txt
```shell=
#使用以下指令生成此檔案內容
head /dev/urandom | tr -dc A-Za-z0-9
```
----
### ③請將back與front資料夾中的檔案移動到temp中

----
### ④請在back中建立run.py的硬連結,在front中建立run.js的軟連結

----
### ⑤請將整個temp資料夾刪除

----
### ⑥請以sudo重新建立temp資料夾,並使用sudo建立run.js文件

----
### ⑦嘗試修改front資料夾中的run.js。
###### 我猜會噴錯
----
### ⑧最後,分別使用python3與node去執行back與front資料夾中的檔案

---
# 好玩嗎?
希望你是這樣認為的
----
## 我們下次再見

{"metaMigratedAt":"2023-06-15T14:05:38.916Z","metaMigratedFrom":"YAML","title":"傳說中的第二次社課","breaks":true,"slideOptions":"{\"transition\":\"concave\"}","description":"YoMin Su","contributors":"[{\"id\":\"86b6dc70-72ec-4014-84f0-bfb2a06c3dc4\",\"add\":2341,\"del\":286}]"}