---
# System prepended metadata

title: Linux指令參考

---

https://usb.ctbcbank.com/UploadFile/20240227/14BM12KW16BB_putty.zip
# 檔案及目錄管理
![image](https://hackmd.io/_uploads/SyyC1_Hn6.png)

# 使用者及權限管理
![image](https://hackmd.io/_uploads/rJP4xOHna.png)

# 正規表示
![image](https://hackmd.io/_uploads/B1gVZ_r2p.png)

# 程序管理
![image](https://hackmd.io/_uploads/B1St-dr2a.png)

# vim內常用指令
![image](https://hackmd.io/_uploads/HJKwmOrn6.png)

# shell script 變數
![image](https://hackmd.io/_uploads/BJ4rhoS26.png)


---
# 延伸練習題組

以ssh or putty or MobaXterm建立連線，使用員編(z000xxxxx)作為帳密登入

#### 檔案操作

1.  修改密碼
2.  修改/home/z000xxxxx的資料夾權限，使其內所有檔案&資料夾可以讓群組內的使用者可讀可執行
3.  在z000xxxxx內建立一個名為"LinuxPractice"的資料夾
4.  在"LinuxPractice"裡面建立檔案"test1.txt"
5.  複製"LinuxPractice"資料夾為"LinuxPracticeCopy"
6.  刪除LinuxPracticeCopy內的test1.txt
7.  把LinuxPracticeCopy移動至LinuxPractice內

#### 檔案撰寫

1.  列出環境變數，若無java路徑請自行修改PATH (jdk放置於/data/hdd1/01_archive/jdk-17.0.9/)
2.  利用vim撰寫一隻java程式(FirstJava.java)，能接一個參數，印出執行時間、印出環境變數的PATH、印出接取的參數
3.  在linux上編譯且執行
4.  利用vim撰寫一隻shell程式(FirstShell.sh)可以執行FirstJava
    -   可以接受一個參數
    -   參數=1：執行FirstJava後將印出的訊息寫入檔案(檔名: result_當前執行時間.txt)
    -   參數=2：執行FirstJava後將印出的訊息同時寫入(result.txt & result_當前執行時間.txt)(非覆蓋，持續寫入)
    -   其他：執行FirstJava後印出訊息
5.  撰寫Housekeeping.sh
    -   檢測在/home/z000xxxxx/  資料夾下的檔案
    -   檔名為txt結尾
    -   系統日期-檔案最後更新日期>3天
    -   符合條件即刪除
6.  撰寫ServicePractice.sh
    -   印出偶數持續寫入檔案(ServicePractice.txt)
    -   印出一次sleep三秒
    -   寫到100即覆寫檔案從頭計算(2.4.6.8.......100 > 2.4.6.8........)
    -   持續寫入直到主動停止程式
    -   利用背景執行並找出該程序的PID

#### 批次執行

1.  使用crontab建立兩個批次
    -   FirstShell.sh: 執行頻率設為每20分鐘執行一次
    -   Housekeeping.sh : 執行頻率設為每天的13:30
